İçeriğe geç
Belgeler menüsü

Akış ve imleç

GET /v1/akis servis edilen içeriğin olaylarını eskiden yeniye verir. Her olay bir DisOlay'dır:

json
{ "olay_id": "…", "imlec": "MjAyNi0xMC0wN1Qx…", "olay": "duzeltme", "zaman": "2026-10-07T11:19:00Z",
  "icerik": "haber", "haber": { "no": "H-001230", "surum_no": 2 }, "varlik": null }
olayNe
yeniİlk servis
duzeltmeHaberin yeni sürümü (duzeltmeler ve surum_no)
iptalİptal: yayından kaldırın (govde, spot, medya boş)
guncellemeServisteki medyanın bilgisi ya da kırpması değişti (yalnızca olay=guncelleme istenirse)

Döngü

  1. İlk istekte imleç vermeyin: son 24 saatten (ya da baslangic'tan) başlar; en çok 7 gün geri gidilir. Daha eskisi için /v1/haberler ve /v1/ara.
  2. Yanıttaki sonraki_imlec'i saklayın ve bir sonraki istekte ?imlec= olarak verin.
  3. devami_var doğruysa hemen yeniden sorun; yanlışsa en erken 10 saniye bekleyin. Daha sık soran dakikalık sınıra takılır.
  4. Aynı olay iki kez gelebilir: olay_id'yi saklayıp ayıklayın, düzeltmeyi surum_no büyükse uygulayın.
bash
curl -s "https://api.<alan>/v1/akis?boyut=50" -H "Authorization: Bearer $YHA_ANAHTAR"
curl -s "https://api.<alan>/v1/akis?imlec=$IMLEC" -H "Authorization: Bearer $YHA_ANAHTAR"
python
import time, requests
OTURUM = requests.Session(); OTURUM.headers["Authorization"] = f"Bearer {ANAHTAR}"
imlec = oku_imlec()
while True:
    y = OTURUM.get("https://api.<alan>/v1/akis", params={"imlec": imlec, "boyut": 100}, timeout=30)
    if y.status_code == 429: time.sleep(int(y.headers.get("Retry-After", "10"))); continue
    y.raise_for_status(); g = y.json()
    for olay in g["ogeler"]: isle(olay)
    if g["sonraki_imlec"]: imlec = g["sonraki_imlec"]; yaz_imlec(imlec)
    if not g["devami_var"]: time.sleep(10)

Süzgeçler

icerik (haber, fotograf, video), kategori_id (virgüllü), il_id, oncelik (flas, onemli, normal), olay (varsayılan yeni,duzeltme,iptal), paket_id, boyut (en çok 100).

Embargo

Önceden verilen embargolu içerik servis anında embargo: { "zaman", "suruyor": true } ile gelir. Saatinden önce yayımlamayın; yazılımınız embargo.zaman'ı beklemelidir.

Medya

haber.medya yalnızca paketinizin açtığı medyayı taşır. Dosyayı GET /v1/varliklar/:id/dosya?secenek=web ile alın: 303 ile süreli, imzalı bir adrese yönlendirilirsiniz (curl -L). Kopya hazırlanıyorsa 202 ve Retry-After gelir. İndirilen fotoğraf ve video aylık indirme kotasına girer (aynı dosya 24 saat içinde yeniden indirilirse düşmez). Seçenekler: fotoğrafta kucuk, web, orijinal; videoda 1080p, 720p, 480p.

360° görüntüleyici

360° içerik (tur: foto_360, video_360; numara YHA-360-000412) paketinizde 360° türü açıksa gelir. Nesnede kuresel: { "izdusum": "esdikdortgen", "acilis": { "yon", "egim", "yakinlik" }, "goruntuleyici_adresi" } vardır; açılar derecedir (yön 0 kuzey, saat yönünde; eğim −90…90; yakınlık 30…120 yatay görüş açısı). Seçenekler: 360° fotoğrafta kucuk, kapak (açılış yönünden düz kare), web (eşdikdörtgen 4096 × 2048), orijinal; 360° videoda 3840x1920, 1920x960 (kaynaktan büyük kalite yoktur) ve kapak. Eşdikdörtgen dosyalarda 360° bilgisi (fotoğrafta GPano, videoda Spherical Video V2 ve V1 açılış yönü) korunur; ses stereodur.

Kendi görüntüleyicinizi ajansın döşemeleriyle kurmak için GET /v1/varliklar/:id/goruntuleyici (kapsam icerik.indir; bir API çağrısı) görüntüleyici yanıtını verir: fotoğrafta doseme.adres_kalibi ({seviye}/{sutun}/{satir} yer tutuculu, 512 × 512 JPEG) ve seviyeler, videoda video.adres (gömme kopyası, 2560 × 1280, ilerlemeli MP4). Döşeme istekleri API kotasına girmez; jeton başına dakikalık sınıra girer (429 yavasla). Jeton süresi dolunca (doseme.bitis_zamani) uç yeniden çağrılır; anahtar iptal edilince ya da abonelik düşünce döşeme adresleri en geç 60 saniyede 403 verir. 360° olmayan içerikte 409 kuresel_degil.

Listeler

/v1/haberler, /v1/varliklar ve /v1/ara yeniden eskiye sıralı, imleçlidir: { "ogeler", "sonraki_imlec", "devami_var" }. Sayfa numarası ve toplam sayı yoktur. Ayrıntı uçları ETag verir; If-None-Match ile 304 alırsınız.