Skip to Content

Kampanya oluştur

POST https://app.apsilo.com/api/public/v1/campaigns

Şablonla toplu gönderim oluşturur; scheduledAt boşsa hemen başlar. Hemen gönderimde tahmini maliyet bakiyeyi aşıyorsa kayıt oluşturulmaz (402 INSUFFICIENT_BALANCE, details.estimate); planlı kampanyada bakiye başlangıçta denetlenir (insufficient_balance durumu). Lisans, kanal hesabı ve alıcı uygunluğu kuralları uygulama arayüzüyle aynıdır. Yanıtta kampanya detayı ve estimate döner.

Gerekli kapsam: campaigns:write

Parametreler

ParametreYerTipGereklilikAçıklama
Idempotency-Keybaşlıkstringisteğe bağlıİsteğe özgü benzersiz değer (1–255 yazdırılabilir ASCII; ör. UUID). Aynı anahtar + aynı yol ve gövde 24 saat içinde kaydedilmiş yanıtı döner (Idempotent-Replayed: true); farklı gövde veya işlenmekte olan istek 409 IDEMPOTENCY_CONFLICT. Hata yanıtları saklanmaz.
X-Request-Idbaşlıkstringisteğe bağlıİsteğe bağlı istek kimliğiniz (8–100 karakter: harf, rakam, ._:-); yanıtta aynen döner ve kayıtlara işlenir.

İstek gövdesi

AlanTipGereklilikAçıklama
namestringzorunlu
templateIdstring (uuid)zorunluOnaylı şablon (kanal şablondan belirlenir)
channelAccountIdstring (uuid)isteğe bağlıGönderici hesap (e-postada birden fazla hesap varsa)
audienceobjectzorunluHedef kitle: contacts (kişi kimlikleri), segment, tags (etiket adları; bulunamayan etiket 422), all, filter (uygulamadaki filtre grubu)
askValuesobjectisteğe bağlıŞablonun “gönderimde sor” slotlarının değerleri (slot → değer; GET /templates/{id} → askOnSend) Varsayılan: {}.
headerMediaIdstring (uuid) | nullisteğe bağlıMedyalı başlıkta kullanılacak medya
scheduledAtstring (date-time) | nullisteğe bağlıPlanlanan başlangıç; boş/null = hemen
{ "name": "Ekim indirimi — VIP", "templateId": "0b9e4c1a-6f2d-4a7b-9c3e-000000000080", "audience": { "type": "tags", "tags": [ "VIP" ], "match": "any" }, "askValues": { "body.1": "%20", "button.0.code": "EKIM20" }, "headerMediaId": "0b9e4c1a-6f2d-4a7b-9c3e-000000000042", "scheduledAt": "2026-10-01T07:00:00Z" }

Yanıtlar

DurumAçıklama
201Kampanya oluşturuldu
401Kimlik doğrulanamadı. Olası kodlar: API_KEY_INVALID, API_KEY_REVOKED, API_KEY_EXPIRED.
402Bakiye yetersiz. Olası kodlar: INSUFFICIENT_BALANCE.
403Erişim reddedildi. Olası kodlar: FEATURE_NOT_LICENSED, API_SCOPE_MISSING, IP_NOT_ALLOWED, LICENSE_EXPIRED, LICENSE_NOT_FOUND, FORBIDDEN.
409Çakışma. Olası kodlar: CONFLICT, IDEMPOTENCY_CONFLICT, MEDIA_IN_USE, SOCIAL_APPROVAL_REQUIRED, SOCIAL_POST_NOT_EDITABLE.
422İşlenemeyen istek. Olası kodlar: VALIDATION_FAILED, MESSAGING_WINDOW_CLOSED, CHANNEL_ACCOUNT_MISSING, CONTACT_BLOCKED, STORAGE_LIMIT_REACHED, SOCIAL_POST_INVALID, SOCIAL_PLATFORM_UNAVAILABLE.
429Hız sınırı aşıldı. Olası kodlar: RATE_LIMITED.
500Sunucu hatası. Olası kodlar: INTERNAL.

Yanıt gövdesi

AlanTipGereklilikAçıklama
dataCampaignCreatedzorunlu