Tanıtım Yazısı API Dokümanı

Siparişlerinizi kendi yazılımınızdan otomatik verin: site listesini çekin, içeriğinizi gönderin, yayın linkini alın. Ajanslar, bayiler ve içerik otomasyonu kuranlar için.

Tek AnahtarHesabınıza özel API anahtarı
JSON YanıtHer dilden kolay bağlantı
Test ModuBakiye düşmeden deneyin

Başlangıç

API Anahtarı İste

API, sitemizdeki üyeliğinize bağlı çalışır. Siparişlerin tutarı hesabınızdaki bakiyeden düşer; fiyatlar sitede gördüğünüz fiyatlarla aynıdır.

1
Üye olun

Sitemize üye olun ve hesabınıza bakiye yükleyin.

2
Anahtar isteyin

İletişim sayfasından API anahtarı isteyin; hesabınıza özel tanımlanır.

3
İsteğe ekleyin

Her isteğe anahtarınızı Authorization başlığında ekleyin.

Taban adres
https://tanitimyazisi.co
Kimlik doğrulama başlığı
Authorization: Bearer ANAHTARINIZ

Yanıtların tamamı application/json; charset=UTF-8 biçimindedir. Anahtar başına dakikada 600 istek sınırı vardır. Anahtarınızı kimseyle paylaşmayın; başkasının eline geçtiğini düşünürseniz bize yazın, yenisini verelim.

GET /api/urunler

Site listesi

Yayında olan tüm siteleri liste fiyatı ve değerleriyle döndürür. Liste günde birkaç kez çekilmek için uygundur; her siparişten önce çekmeniz gerekmez.

İstek
curl "https://tanitimyazisi.co/api/urunler" \
  -H "Authorization: Bearer ANAHTARINIZ"
Yanıt (kısaltılmış)
{
  "status": "success",
  "total_count": 1150,
  "updated_at": "2026-10-08T12:00:00Z",
  "data": [
    {
      "id": 50,
      "domain": "ornekhaber.com",
      "url": "https://ornekhaber.com",
      "metrics": { "moz_da": 42, "moz_pa": 38, "site_age": "9 yıl" },
      "attributes": { "google_news": "1" },
      "pricing": { "amount": 750, "currency": "TRY" },
      "delivery": { "estimated_time": "2 İş Günü", "status": "active" }
    }
  ]
}
AlanTipAçıklama
total_countsayıListedeki site sayısı.
updated_atmetinYanıtın üretildiği an (UTC).
data[].idsayıSitenin bizdeki numarası.
data[].domainmetinAlan adı. Sipariş verirken domain alanına bu değeri yazarsınız.
data[].urlmetinSitenin tam adresi.
data[].metrics.moz_dasayıDomain Authority (DA).
data[].metrics.moz_pasayıPage Authority (PA).
data[].metrics.site_agemetinSite yaşı, örn. 9 yıl. Bilinmiyorsa boş gelir.
data[].attributes.google_newsmetinGoogle News kaydı: 1 var, 0 yok.
data[].pricing.amountsayıListe fiyatı (pricing.currency: TRY).
data[].delivery.estimated_timemetinTahmini yayın süresi.

Değeri unknown gelen alanlar şu an kullanılmıyor.

GET /api/bakiye

Bakiye
İstek
curl "https://tanitimyazisi.co/api/bakiye" \
  -H "Authorization: Bearer ANAHTARINIZ"
Yanıt
{
  "ok": true,
  "bakiye": 4250.00,
  "kredi_limiti": 0,
  "kullanilabilir": 4250.00,
  "para_birimi": "TRY"
}

kullanilabilir sipariş verirken kullanabileceğiniz toplam tutardır.

POST /api/siparis

Sipariş ver

Bir site için tanıtım yazısı siparişi açar. İçeriği metin olarak (icerik) ya da dosya olarak (dosya) gönderebilirsiniz; ikisinden biri zorunludur (ikisi birden gelirse dosya kullanılır). İstek multipart/form-data ya da application/x-www-form-urlencoded olarak gönderilir.

AlanAçıklama
domain zorunluYazının yayınlanacağı site. Örn. ornekhaber.com (listede domain alanındaki değer). Başında https:// ya da www. olsa da kabul edilir.
icerikYazının gövdesi; düz metin ya da HTML. Bağlantılarınızı HTML içinde <a href="..."> olarak gönderin. En fazla 300.000 karakter. Yazı metni, başlıklar, bağlantılar ve görseller aynen korunur; <script>, <iframe> gibi çalışabilir öğeler çıkarılır.
baslikicerik ile birlikte: yazının başlığı.
dosyaicerik yerine dosya: docx, doc, txt, html, htm, rtf, zip, rar. En fazla 20 MB; boş dosya kabul edilmez.
gorselYazının görseli (isteğe bağlı): jpg, jpeg, png, webp. En fazla 20 MB.
yayin_zamaniİleri tarihli yayın için tarih (isteğe bağlı), YYYY-AA-GG. Boşsa en kısa sürede yayınlanır.
siparis_notuEditöre notunuz (isteğe bağlı), en fazla 1.000 karakter.
istek_noSizin ürettiğiniz benzersiz numara (8–80 karakter; harf, rakam, - _ . :). Aynı numarayla ikinci kez gelen istek yeni sipariş açmaz, ilk siparişin yanıtını döndürür. Önerilir.
test1 gönderirseniz sipariş açılmaz, bakiye düşmez; yalnızca ödeyeceğiniz tutar hesaplanıp döner.
İstek — metin içerikle
curl -X POST "https://tanitimyazisi.co/api/siparis" \
  -H "Authorization: Bearer ANAHTARINIZ" \
  -F "domain=ornekhaber.com" \
  -F "baslik=Yazınızın Başlığı" \
  --form-string "icerik=<p>Yazınız... <a href=\"https://siteniz.com\">bağlantı</a></p>" \
  -F "istek_no=siparis-2026-000123" \
  -F "gorsel=@kapak.jpg"
İstek — dosyayla
curl -X POST "https://tanitimyazisi.co/api/siparis" \
  -H "Authorization: Bearer ANAHTARINIZ" \
  -F "domain=ornekhaber.com" \
  -F "dosya=@yazi.docx" \
  -F "gorsel=@kapak.jpg"
Yanıt
{
  "ok": true,
  "siparis_id": 8012,
  "detay_id": 23110,
  "domain": "ornekhaber.com",
  "fiyat": 750,
  "odenen": 750,
  "durum": "Beklemede",
  "kalan_bakiye": 3500
}
Test modu yanıtı (test=1)
{
  "ok": true,
  "test": true,
  "domain": "ornekhaber.com",
  "urun_id": 50,
  "fiyat": 750,
  "odenecek": 750,
  "kullanilabilir_bakiye": 4250,
  "bakiye_yeterli": true
}

odenen bakiyenizden düşen tutardır. detay_id değerini saklayın; yayın durumunu bu numarayla sorgularsınız.

Bağlantı koparsa ne olur? Yanıtı alamadıysanız siparişin açılıp açılmadığını bilemezsiniz. istek_no gönderdiyseniz aynı isteği güvenle tekrar yollayabilirsiniz: sipariş daha önce açıldıysa yanıtta "tekrar": true ile aynı sipariş döner, bakiyeniz ikinci kez düşmez.

GET /api/siparis-durum

Durum ve yayın linki

Parametre olarak detay_id (virgülle ayırarak birden çok) ya da siparis_id gönderin. Yalnızca kendi siparişleriniz döner.

İstek
curl "https://tanitimyazisi.co/api/siparis-durum?detay_id=23110,23111" \
  -H "Authorization: Bearer ANAHTARINIZ"
durumdurum_adiAnlamı
1islemdeSipariş alındı, yayın bekleniyor
2tamamlandiYayınlandı; url dolu
3iptalİptal edildi
4odeme_bekliyorÖdeme bekleniyor
Yanıt
{
  "ok": true,
  "kalemler": [
    {
      "detay_id": 23110,
      "siparis_id": 8012,
      "domain": "ornekhaber.com",
      "durum": 2,
      "durum_adi": "tamamlandi",
      "url": "https://ornekhaber.com/yazinizin-basligi/",
      "planlanan_yayin_tarihi": null,
      "yayin_tarihi": "2026-10-09 11:05:42"
    },
    {
      "detay_id": 23111,
      "siparis_id": 8013,
      "domain": "digerhaber.com",
      "durum": 1,
      "durum_adi": "islemde",
      "url": null,
      "planlanan_yayin_tarihi": "2026-10-20",
      "yayin_tarihi": null
    }
  ]
}

planlanan_yayin_tarihi: sipariş verirken istediğiniz yayın günü (YYYY-AA-GG), seçilmediyse null. yayin_tarihi: yazının yayınlandığı an (YYYY-AA-GG SS:DD:ss), henüz yayınlanmadıysa null. Her iki alan eski siparişlerde de döner.

Yayın genellikle 2 iş günü içinde yapılır. Durumu saatte birkaç kez sorgulamak yeterlidir; yazı yayınlandığında ayrıca e-posta da gönderilir.

GET /api/siparisler

Sipariş listesi

Site siparişlerinizi (tek tek ve paket içinde aldıklarınız) yeniden eskiye doğru, sayfa sayfa döndürür. Parametreler (hepsi isteğe bağlı): sayfa (varsayılan 1), adet (varsayılan 50, en fazla 100), durum (yukarıdaki durum numaralarından biri). tarih siparişi verdiğiniz an; planlanan_yayin_tarihi ve yayin_tarihi yukarıdaki /api/siparis-durum yanıtındakiyle aynıdır.

İstek
curl "https://tanitimyazisi.co/api/siparisler?adet=20&durum=2" \
  -H "Authorization: Bearer ANAHTARINIZ"
Yanıt
{
  "ok": true,
  "toplam": 137,
  "sayfa": 1,
  "adet": 20,
  "kalemler": [
    {
      "detay_id": 23110,
      "siparis_id": 8012,
      "domain": "ornekhaber.com",
      "fiyat": 750,
      "durum": 2,
      "durum_adi": "tamamlandi",
      "url": "https://ornekhaber.com/yazinizin-basligi/",
      "tarih": "2026-10-08 14:32:10",
      "planlanan_yayin_tarihi": null,
      "yayin_tarihi": "2026-10-09 11:05:42"
    }
  ]
}

Hata Yanıtları

Hatalı isteklerde HTTP durum kodu ile birlikte aşağıdaki biçimde bir yanıt döner. Programınızda error alanındaki kodu kullanın; message okunabilir açıklamadır.

{ "status": "error", "error": "bakiye_yetersiz", "message": "Bakiye yetersiz. Gereken: 750 TL, kullanilabilir: 500 TL" }
HTTPerrorNe zaman
403—Anahtar yok, yanlış ya da kapatılmış.
403kullanici_bagli_degilAnahtar bir üyeliğe bağlı değil; yalnızca site listesini okuyabilir.
403hesap_kapaliAnahtarın bağlı olduğu üyelik kapatılmış.
404kullanici_yokAnahtarın bağlı olduğu üyelik artık yok.
404site_bulunamadidomain listede yok ya da artık yayında değil.
422dogrulamaEksik ya da geçersiz alan (içerik yok, dosya türü kabul edilmiyor vb.). Ayrıntı errors alanındadır.
422bakiye_yetersizTutar kullanılabilir bakiyenizi aşıyor. Sipariş açılmaz.
422parametre_eksikDurum sorgusunda detay_id ya da siparis_id yok.
409istek_isleniyorAynı istek_no ile bir istek o an işleniyor; birkaç saniye sonra tekrar deneyin.
429cok_fazla_istekDakikalık istek sınırı aşıldı; kısa süre bekleyin.
500dosya_kaydedilemediDosya sunucuya kaydedilemedi; sipariş açılmadı, bakiye düşmedi. Aynı isteği tekrar gönderebilirsiniz.

Önerilen Akış

Destek
1
Listeyi alın

/api/urunler ile siteleri ve fiyatları kendi sisteminize kaydedin; günde bir-iki kez yenileyin.

2
Önce deneyin

Entegrasyonu test=1 ile kurun; tutarı ve bakiyenizi görün, hiçbir sipariş açılmaz.

3
Siparişi verin

Her siparişe kendi istek_no değerinizi ekleyin, dönen detay_id değerini saklayın.

4
Yayını izleyin

/api/siparis-durum ile sorgulayın; durum_adi tamamlandi olduğunda url yayın linkiniz, yayin_tarihi yayınlandığı andır.

Entegrasyon sırasında takıldığınız bir yer olursa bize yazın.
WhatsApp Çevrimiçi · Hemen yanıt