Posts and Scheduling
A platform-specific post lifecycle with draft, scheduled, and publish_now modes.
Gönderiler
Gönderi modları
POST /posts endpointinde mode alanı kaydın nasıl işleneceğini belirler.
draft
Panelde düzenlenebilir taslak olarak kalır.
scheduled
scheduledAt ile planlı yayın kuyruğuna girer.
publish_now
Sadece posts:publish scope'u varsa anında yayınlanır.
Planlama zamanı
scheduledAt ISO 8601 formatında UTC zaman damgası bekler. Geçmiş tarih 422 validation_error döner.
Gönderi planla
curl -X POST https://api.xplanner.co/v1/posts \ -H "Authorization: Bearer $XPLANNER_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: post-scheduled-001" \ -d '{ "workspaceId": "wrk_123", "socialSetId": "set_123", "mode": "scheduled", "scheduledAt": "2026-08-20T09:00:00.000Z", "text": "Haftalık ürün güncellemesi hazır.", "publishTargets": [ { "socialAccountId": "social_x_123", "platform": "x" }, { "socialAccountId": "social_threads_123", "platform": "threads" } ] }'Medya kuralları
Medya geçerliliği yayın hedefi başına hesaplanır. Ortak içerik kullanan senkron hedefler de kendi platform sınırlarını korur.
Alt text maksimum 1000 karakterdir.
X en fazla 4 görsel veya tek GIF kabul eder.
LinkedIn görsel/GIF carousel veya tek video kurallarını uygular.
Threads görsel ve video carousel destekler; GIF kabul etmez.
Hedefe özel mediaRefs, ortak gönderi medya havuzunun alt kümesi olmalıdır.
Detay, güncelleme ve riskli aksiyonlar
Yeni detay endpointleriyle mevcut gönderiyi okuyabilir, PATCH ile güncelleyebilir, cancel ile planını iptal edebilir veya publish ile yayın kuyruğuna alabilirsin.
GET /posts/{id} posts:read ile tekil gönderi döndürür.
PATCH /posts/{id} posts:update ile çalışır.
POST /posts/{id}/cancel posts:schedule ile çalışır.
POST /posts/{id}/publish yalnızca posts:publish kabul eder.