POST /api/render

Bir şablonu verdiğiniz verilerle çizip görsel çıktısını döndürür. Yanıt gövdesi binary görseldir (PNG, JPEG veya GIF).

Gövde parametreleri

templatestringzorunlu
Çizilecek şablonun kimliği. Geçerli değerler: og-default, instagram-quote, promo-banner, promo-animated. Tüm liste: şablonlar.
dataobject
Şablon alanlarını içeren anahtar-değer eşleşmesi. Eksik alanlar varsayılan değerlerle doldurulur.
format"png" | "jpeg" | "gif"
Çıktı biçimi. Varsayılan png. gif yalnızca animasyonlu şablonlarda çalışır.
qualitynumber
JPEG kalitesi (1–100). Varsayılan 90.
fpsnumber
GIF kare hızı (5–50). Planınıza göre kırpılabilir.
durationMsnumber
GIF süresi (200–10000 ms).

İstek başlıkları

Content-Type: application/json   (zorunlu)
x-api-key: sr_live_...          (opsiyonel; yoksa anonim plan)

Yanıt

Başarılı (200):

Content-Type: image/png | image/jpeg | image/gif
X-Plan: pro
X-RateLimit-Limit: 240
X-RateLimit-Remaining: 239
X-Quota-Limit: 5000
X-Quota-Remaining: 4999

Hatalar:

400  { "error": "template alanı zorunludur" }
400  { "error": "şablon animasyonlu değil" }
401  { "error": "geçersiz veya iptal edilmiş API anahtarı" }
403  { "error": "planınız GIF çıktısını desteklemiyor" }
404  { "error": "bilinmeyen şablon" }
429  { "error": "istek hızı aşıldı" }
429  { "error": "günlük kota doldu" }

Örnek

curl -X POST http://localhost:3000/api/render \
  -H "Content-Type: application/json" \
  -H "x-api-key: sr_live_..." \
  -d '{
    "template": "instagram-quote",
    "data": {
      "quote": "Küçük adımlar büyük yollar açar",
      "author": "— Anonim",
      "accent": "#38bdf8"
    },
    "format": "png"
  }' --output alinti.png