Geliştiriciler

REST API dokümantasyonu

Kimlik doğrulama, uç noktalar, örnek istek ve yanıtlar, webhook'lar, sınırlar, hata kodları ve canlı model kataloğu.

REST API

İstekler HTTPS üzerinden JSON ile yapılır; anahtarını Authorization başlığında gönder.

Temel adres

https://xide.app/api/v1

Kimlik doğrulama

Authorization: Bearer xide_live_...

Hızlı başlangıç

  1. 1Modelleri listele

    bash
    export XIDE_API_KEY="xide_live_..."
    
    curl "https://xide.app/api/v1/models?category=image" \
      -H "Authorization: Bearer $XIDE_API_KEY"
  2. 2Üretim başlat

    bash
    curl -X POST "https://xide.app/api/v1/generate/text-to-image-flux-2-pro" \
      -H "Authorization: Bearer $XIDE_API_KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: order-42" \
      -d '{"inputs": {"prompt": "a red fox in fresh snow"}, "metadata": {"order": 42}}'
  3. 3Sonucu bekle ve al

    bash
    curl "https://xide.app/api/v1/jobs/JOB_ID?wait=30" \
      -H "Authorization: Bearer $XIDE_API_KEY"

Görsel, video ve ses alanlarına yükleme kimliği (upload_id), herkese açık bir https adresi ya da önceki bir çıktının url'si verilebilir.

Uç noktalar

POST /api/v1/generate/{model}
curl -X POST "https://xide.app/api/v1/generate/text-to-image-flux-2-pro" \
  -H "Authorization: Bearer $XIDE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-42" \
  -d '{"inputs": {"prompt": "a red fox in fresh snow"}, "metadata": {"order": 42}}'
Örnek yanıt
{
  "ok": true,
  "data": {
    "job": {
      "job_id": "cmjob1a2b3c4d5e6f7g8h9i0",
      "status": "queued",
      "model": "text-to-image-flux-2-pro",
      "model_name": "Flux 2 Pro",
      "cost_credits": 60,
      "created_at": "2026-10-26T10:00:00.000Z",
      "completed_at": null,
      "error": null,
      "outputs": [],
      "result": null,
      "metadata": {
        "order": 42
      },
      "source": "api"
    },
    "balance": 1140
  }
}

Yanıt biçimi

Başarılı yanıt { "ok": true, "data": … }, hata { "ok": false, "error": { "code", "message" } } biçimindedir. Hız sınırı X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset başlıklarında döner. Hata mesajları Accept-Language başlığına göre Türkçe, İngilizce, İspanyolca, Rusça ya da Arapça gelir.

Webhook'lar

İş bittiğinde webhook_url adresine job.completed, job.failed ya da job.cancelled olayı gönderilir. Başlıklar: X-Xide-Event, X-Xide-Timestamp ve X-Xide-Signature (sha256=HMAC_SHA256(sır, zaman damgası + "." + gövde)). Ulaşılamazsa üç kez denenir.

Node.js
// Node.js — verify the signature with the raw request body
const crypto = require("crypto");
const timestamp = req.headers["x-xide-timestamp"];
const signature = req.headers["x-xide-signature"];
const expected = "sha256=" + crypto
  .createHmac("sha256", process.env.XIDE_WEBHOOK_SECRET)
  .update(timestamp + "." + rawBody)
  .digest("hex");
const valid = signature.length === expected.length &&
  crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));

Tekrar korumalı istek

Üretim isteğine Idempotency-Key başlığı eklersen aynı anahtarla 24 saat içinde gelen tekrarlar yeni iş açmaz ve kredi harcamaz; ilk iş 200 ve Idempotent-Replayed: true başlığıyla döner. Ağ hatasından sonra güvenle yeniden deneyebilirsin.

Sınırlar

Anahtar başına dakikada 60 istek · JSON gövde en çok 256 KB · dosya yükleme en çok 1 GiB (adresten 256 MB), aynı anda en çok 2 yükleme · iş bekleme (wait) en çok 50 sn.

OpenAPI

Tüm uç noktaların makine tarafından okunabilir tanımı (OpenAPI 3.1). Postman, Insomnia ya da kod üreticilerine doğrudan verebilirsin:

https://xide.app/api/v1/openapi.json

Hata kodları

401unauthorized
Anahtar eksik, geçersiz ya da iptal edilmiş
403forbidden
Hesap askıda, e-posta doğrulanmamış ya da IP izinli değil
403forbidden_scope
Anahtarın bu işlem için yetkisi yok
402insufficient_credits
Kredin yetersiz
422validation_error
Girdiler geçersiz (eksik ya da hatalı alan)
413payload_too_large
Gövde ya da dosya boyut sınırını aşıyor
404model_not_found
Model bulunamadı
404not_found
İş ya da dosya bulunamadı
409conflict
İş artık iptal edilemez ya da aynı Idempotency-Key ile istek sürüyor
409model_disabled
Model geçici olarak kapalı
429rate_limited
Dakikalık istek ya da eşzamanlı yükleme sınırı aşıldı
429daily_credit_cap_reached
Anahtarın günlük kredi tavanı doldu
429too_many_active_jobs
Aynı anda çalışan iş sınırı doldu
503maintenance
Sistem bakımda; Retry-After kadar sonra dene
503api_disabled
Geliştirici API'si geçici olarak kapalı
500internal
Beklenmeyen hata; tekrar dene

Örnek webhook gövdesi

İş bittiğinde webhook_url adresine bu gövde imzalı olarak gönderilir.

POST webhook_url
{
  "event": "job.completed",
  "job": {
    "job_id": "cmjob1a2b3c4d5e6f7g8h9i0",
    "status": "completed",
    "model": "text-to-image-flux-2-pro",
    "model_name": "Flux 2 Pro",
    "cost_credits": 60,
    "created_at": "2026-10-26T10:00:00.000Z",
    "completed_at": "2026-10-26T10:00:09.000Z",
    "error": null,
    "outputs": [
      {
        "id": "cmoutput7x6w5v4u3t2s1r0q",
        "kind": "image",
        "url": "https://xide.app/api/v1/files/cmoutput7x6w5v4u3t2s1r0q",
        "download_url": "https://xide.app/api/v1/files/cmoutput7x6w5v4u3t2s1r0q?download=1",
        "content_type": "image/png",
        "width": 1024,
        "height": 1024,
        "duration": null,
        "size_bytes": 1832211,
        "nsfw": false
      }
    ],
    "result": null,
    "metadata": {
      "order": 42
    },
    "source": "api"
  },
  "sent_at": "2026-10-26T10:00:10.000Z"
}

Model kataloğu

128 model. Model kimliğini üretim isteğinde kullan; kredi aralıkları tahminidir, kesin tutar için quote çağır.

Model ve kimlikKategoriKrediVaryantlar

ElevenLabs Voiceover

voiceover-elevenlabs-turbo-v2-5
Ses1–4.000—

Lyria 3

music-generation-lyria-3
Ses80–160—

Google Lyria

music-generation-google-lyria
Ses80—

Sound Effects

sound-effects
Ses5–110—

Audio Isolation

audio-isolation
Ses60—

Remove Background

beta-remove-background
Görsel düzenleme3—

Upscaler Precision V2

image-upscaler-precision-v2
Görsel düzenleme90–1.440—

Upscaler Precision

image-upscaler-precision
Görsel düzenleme90—

Upscaler Creative

image-upscaler
Görsel düzenleme90–1.440—

GPT Image 2.5 (Edit)

text-to-image-gpt-image-2-5-edit
Görsel düzenleme15–10.000—

GPT Image 2 (Edit)

text-to-image-gpt-image-2-edit
Görsel düzenleme15–5.000—

Seedream 5.0 Pro (Edit)

text-to-image-seedream-v5-pro-edit
Görsel düzenleme75–150—

Seedream V5 Lite (Edit)

text-to-image-seedream-v5-lite-edit
Görsel düzenleme50—

Seedream 4.5 (Edit)

text-to-image-seedream-v4-5-edit
Görsel düzenleme50—

Seedream 4 (Edit)

text-to-image-seedream-v4-edit
Görsel düzenleme50—

Flux Pro

image-expand-flux-pro
Görsel düzenleme50—

Flux Reimagine

beta-text-to-image-reimagine-flux
Görsel düzenleme50—

Ideogram Image Edit

ideogram-image-edit
Görsel düzenleme30–90—

Ideogram

image-expand-ideogram
Görsel düzenleme60—

Seedream V4.5

image-expand-seedream-v4-5
Görsel düzenleme50—

Image Relight

image-relight
Görsel düzenleme75–150—

Style Transfer

image-style-transfer
Görsel düzenleme200—

Image Change Camera

image-change-camera
Görsel düzenleme50—

Skin Enhancer Creative

skin-enhancer-creative
Görsel düzenleme100—

Skin Enhancer Faithful

skin-enhancer-faithful
Görsel düzenleme200—

Skin Enhancer Flexible

skin-enhancer-flexible
Görsel düzenleme600—

AI Image Detector

classifier-image
Araçlar8—

Image to Prompt

image-to-prompt
Araçlar8—

Classic Text-to-Image

text-to-image
Görsel1–4—

Flux 2 Klein

text-to-image-flux-2-klein
Görsel10–45—

Flux 2 Turbo

text-to-image-flux-2-turbo
Görsel20—

Flux Dev

text-to-image-flux-dev
Görsel10—

Flux 2 Flex

text-to-image-flux-2-flex
Görsel80–280—

Flux 2 Pro

text-to-image-flux-2-pro
Görsel50–175—

Flux Pro 1.1

text-to-image-flux-pro-v1-1
Görsel50—

HyperFlux

text-to-image-hyperflux
Görsel10—

Flux Kontext Pro

text-to-image-flux-kontext-pro
Görsel70—

Flux Kontext Max

text-to-image-flux-kontext-max
Görsel150—

GPT Image 2

text-to-image-gpt-image-2
Görsel15–5.000—

GPT Image 2.5

text-to-image-gpt-image-2-5
Görsel15–10.000—

Seedream 4

text-to-image-seedream-v4
Görsel50—

Seedream 4.5

text-to-image-seedream-v4-5
Görsel50—

Seedream V5 Lite

text-to-image-seedream-v5-lite
Görsel50—

Seedream 5.0 Pro

text-to-image-seedream-v5-pro
Görsel75–150—

Nano Banana Pro Flash

text-to-image-nano-banana-pro-flash
Görsel75–150—

Nano Banana Pro

text-to-image-nano-banana-pro
Görsel75–150—

Z-Image

text-to-image-z-image
Görsel5—

Mystic

mystic
Görsel50–130—

Gemini 2.5 Flash

gemini-2-5-flash-image-preview
Görsel120—

Runway

text-to-image-runway
Görsel200—

Video Upscaler Turbo

video-upscaler-turbo
Video60–300—

WAN 2.7 (Image to Video)

image-to-video-wan-2-7
Video260–3.000—

WAN 2.7 (Reference to Video)

reference-to-video-wan-2-7
Video260–2.000—

WAN 2.7 (Text to Video)

text-to-video-wan-2-7
Video260–3.000—

WAN 2.7 (Video Edit)

video-edit-wan-2-7
Video130–2.000—

WAN 2.5 1080p (Image to Video)

image-to-video-wan-2-5-i2v-1080p
Video1.500–3.0001080P · 720P · 480P

WAN 2.5 1080p (Text to Video)

text-to-video-wan-2-5-t2v-1080p
Video1.500–3.0001080P · 720P · 480P

WAN 2.6 1080p (Image to Video)

image-to-video-wan-v2-6-1080p
Video1.500–4.5001080P · 720P

WAN 2.6 1080p (Text to Video)

text-to-video-wan-v2-6-1080p
Video1.500–4.5001080P · 720P

WAN 2.2

image-to-video-wan-v2-2-720p
Video160–320720P · 480P

WAN 2.2 580p

image-to-video-wan-v2-2-580p
Video80–160—

Kling 3 Pro (Motion Control)

video-kling-v3-motion-control-pro
Video1.500PRO · STD

Kling 3 Omni

video-kling-v3-omni-4k
Video1.200–6.0004K · PRO · STD

Kling 3.0 Turbo I2V

image-to-video-kling-v3-turbo-1080p
Video780–3.9001080P · 720P

Kling 3.0 Turbo T2V

text-to-video-kling-v3-turbo-1080p
Video780–3.9001080P · 720P

Kling 3 Omni Pro (Reference to Video)

reference-to-video-kling-v3-omni-pro
Video285–1.425PRO · STD

Kling 3 Pro

video-kling-v3-pro
Video270–1.350PRO · STD

Kling 4K I2V

video-kling-4k-i2v
Video1.200–6.000—

Kling 4K T2V

video-kling-4k-t2v
Video1.200–6.000—

Kling 2.6 Pro (Motion Control)

video-kling-v2-6-motion-control-pro
Video1.100PRO · STD

Kling 2.6 Pro (Image to Video)

image-to-video-kling-v2-6-pro
Video225–450—

Kling 2.5

image-to-video-kling-v2-5-720p
Video140–280720P · PRO

Kling Elements Pro

image-to-video-kling-elements-pro
Video475–950PRO · STD

Kling O1 Pro (Image to Video)

image-to-video-kling-o1-pro
Video500–1.000PRO · STD

Kling O1 Pro (Video Reference)

image-to-video-kling-o1-pro-video-reference
Video500–1.000—

Kling O1 Standard (Video Reference)

image-to-video-kling-o1-std-video-reference
Video375–750—

Veo 3.1 (Reference to Video)

reference-to-video-veo-3-1
Video1.600–2.720—

Veo 3.1 Fast (Image to Video)

image-to-video-veo-3-1-fast
Video400–2.160FAST · image-to-video-veo-3-1

Veo 3.1 Fast (Text to Video)

text-to-video-veo-3-1-fast
Video400–2.160FAST · text-to-video-veo-3-1

Veo 3.1 Lite (Image to Video)

image-to-video-veo-3-1-lite
Video160–320—

Veo 3.1 Lite (Text to Video)

text-to-video-veo-3-1-lite
Video160–320—

Seedance 2.5 Pro

video-seedance-2-5-pro-1080p
Video4.400–33.0001080P · 720P · 480P

Seedance 2.0 Pro

video-seedance-2-pro-4k
Video5.600–21.0004K · 1080P · 720P · 480P

Seedance 2.0 Fast

video-seedance-2-fast-720p
Video940–3.525720P · 480P

Seedance 2.0 Mini

video-seedance-2-mini-720p
Video560–2.100720P · 480P

Happy Horse 1.1 (Image to Video)

image-to-video-happy-horse-1-1
Video495–4.200—

Happy Horse 1.1 (Reference to Video)

reference-to-video-happy-horse-1-1
Video495–4.200—

Happy Horse 1.1 (Text to Video)

text-to-video-happy-horse-1-1
Video495–4.200—

Happy Horse 1.0 (Video Edit)

video-edit-happy-horse-1
Video550–950—

Happy Horse 1.0 (Image to Video)

image-to-video-happy-horse-1
Video495–4.200—

Happy Horse 1.0 (Reference to Video)

reference-to-video-happy-horse-1
Video495–4.200—

Happy Horse 1.0 (Text to Video)

text-to-video-happy-horse-1
Video495–4.200—

MiniMax Hailuo 2.3 1080p Fast

image-to-video-minimax-hailuo-2-3-1080p-fast
Video258—

MiniMax Hailuo 2.3 1080p

image-to-video-minimax-hailuo-2-3-1080p
Video240—

MiniMax Hailuo 2.3 768p Fast

image-to-video-minimax-hailuo-2-3-768p-fast
Video150–250FAST · image-to-video-minimax-hailuo-2-3-768p

MiniMax Hailuo 02 1080p

image-to-video-minimax-hailuo-02-1080p
Video720—

MiniMax Hailuo 02 768p

image-to-video-minimax-hailuo-02-768p
Video210–350—

MiniMax Video 01 Live

image-to-video-minimax-live
Video720—

LTX Video 2.0 Pro (Image to Video)

image-to-video-ltx-2-pro
Video360–1.200PRO · FAST

LTX Video 2.0 Pro (Text to Video)

text-to-video-ltx-2-pro
Video360–1.200PRO · FAST

PixVerse V6 (Transition)

image-to-video-pixverse-v6-transition
Video100–3.000—

PixVerse V6 (Text to Video)

text-to-video-pixverse-v6
Video100–3.000—

PixVerse V5.5 (Transition)

image-to-video-pixverse-v5-5-transition
Video500–2.000—

PixVerse V5.5 (Text to Video)

text-to-video-pixverse-v5-5
Video500–2.000—

PixVerse V5 (Image to Video)

image-to-video-pixverse-v5
Video500–1.600—

PixVerse V5 (Transition)

image-to-video-pixverse-v5-transition
Video500–1.600—

PixVerse V5 (Text to Video)

text-to-video-pixverse-v5
Video500–1.600—

Runway Gen-4.5 (Image to Video)

image-to-video-runway-4-5
Video1.100–2.200—

Runway Gen-4.5 (Text to Video)

text-to-video-runway-4-5
Video1.100–2.200—

Runway Gen4 Turbo

image-to-video-runway-gen4-turbo
Video500–1.000—

Runway Act Two Character Performance

video-runway-act-two
Video1.000—

OmniHuman 1.5

video-omni-human-1-5
Video1.800—

VFX

video-vfx
Video300—

Video Upscaler Topaz

video-upscaler-topaz
Video150–750—

Video Upscaler

video-upscaler
Video100–500—

Video Upscaler Precision

video-upscaler-precision
Video100–500—

Latent Sync

lip-sync-latent-sync
Dudak senkronu1.400—

Veed Fabric 1.0 Fast

lip-sync-veed-fabric-1-0-fast
Dudak senkronu1.800–3.500—

Veed Fabric 1.0

lip-sync-veed-fabric-1-0
Dudak senkronu1.400–2.600—

Icon Generator

text-to-icon
İkon150—

Icon Preview

text-to-icon-preview
İkon150—

Flux Dev

flux-dev
Görsel20—

Flux Schnell

flux-schnell
Görsel10—

Real-ESRGAN

real-esrgan
Görsel düzenleme8—

P-Video Replace

p-video-replace
Videoda değiştir60—

Wan 2.2 Animate Replace

wan-animate-replace
Videoda değiştir100—

MiniMax H3 Max Recast

recast
Videoda değiştir3.000–27.000—

Pixverse Swap

pixverse-swap
Videoda değiştir300–800—