API dokümantasyonu

API dokümantasyonu

Tüm AI özelliklerini API anahtarıyla çağırın, kullanım başına ödeme, birkaç satır kodla entegrasyon.

Kimlik doğrulama

Tüm API istekleri Authorization başlığı içermelidir.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

API anahtarınızı konsolda „API Anahtarları" sayfasından alın. Hesap başına bir anahtar. Sıfırlama konsolda; eski anında geçersiz olur.

Görev oluştur

POST https://nsfwrouter.xyz/api/v1/tasks/create

GPU kümesine AI görevi gönderin. Görevler asenkron, ID döndürür. Sonuçlar API veya Webhook ile.

İstek parametreleri
Parametre Tip Zorunlu Açıklama
tool_idintEvetAraç ID, araç listesinden
paramsobjectEvetGörev parametreleri, JSON nesne, alanlar araca bağlı
webhook_urlstringHayırTamamlanma bildirimi için callback URL
priorityintHayırGörev önceliği 1-10, varsayılan 5
idempotency_keystringHayırIdempotency anahtarı, tekrarları önler
execution_optionsobjectHayırYürütme seçenekleri, JSON nesne
İstek örneği
curl -X POST https://nsfwrouter.xyz/api/v1/tasks/create \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_id": 1,
    "params": {
      "image": "https://example.com/photo.jpg",
      "prompt": "a beautiful landscape"
    },
    "webhook_url": "https://your-server.com/webhook"
  }'
Yanıt örneği
{
  "code": 0,
  "message": "success",
  "data": {
    "task": {
      "id": 123,
      "status": 0,
      "consume_coins": 5
    },
    "message": "task_submitted"
  }
}

Bakiye çağrıdan önce kontrol edilir. Yetersiz = hata insufficient_coins. Jetonlar başarılı gönderimde düşülür.

Görev sorgula

GET https://nsfwrouter.xyz/api/v1/tasks/query

ID'ye göre detay ve durum sorgula. İşlem sırasında durum GPU kümesinden alınır. 10 sn içinde tekrar sorgular DB cache döndürür.

Sorgu parametreleri
Parametre Tip Zorunlu Açıklama
idintEvetGörev ID
Yanıt örneği
{
  "code": 0,
  "message": "success",
  "data": {
    "task": {
      "id": 123,
      "status": 1,
      "task_output_json": [
        {
          "type": "image",
          "url": "https://cdn.example.com/outputs/abc123.png",
          "file_name": "abc123.png",
          "file_size": 1024000,
          "mime_type": "image/png",
          "width": 1024,
          "height": 1024
        }
      ],
      "consume_coins": 5,
      "created_at": 1718200000,
      "completed_at": 1718200015
    }
  }
}
Görev durum değerleri
status Anlam
0İşleniyor
1Tamamlandı
-1İptal edildi
-2Başarısız

Görev listesi

GET https://nsfwrouter.xyz/api/v1/tasks

Hesap görevlerinin sayfalı sorgusu, araç, durum ve dönem filtreleriyle.

Sorgu parametreleri
Parametre Tip Zorunlu Açıklama
pageintHayırSayfa numarası, varsayılan 1
page_sizeintHayırSayfa boyutu, varsayılan 20, max 50
tool_idintHayırAraca göre filtre
statusintHayırDuruma göre filtre (0/1/-1/-2)
daysintHayırGün olarak dönem, varsayılan 30
Yanıt örneği
{
  "code": 0,
  "message": "success",
  "data": {
    "list": [
      {
        "id": 123,
        "tool_id": 1,
        "status": 1,
        "task_output_json": [
          {
            "type": "image",
            "url": "https://cdn.example.com/outputs/abc123.png",
            "file_name": "abc123.png",
            "file_size": 1024000,
            "mime_type": "image/png",
            "width": 1024,
            "height": 1024
          }
        ],
        "error": null,
        "consume_coins": 5,
        "created_at": 1718200000,
        "completed_at": 1718200015
      },
      {
        "id": 122,
        "tool_id": 3,
        "status": 0,
        "task_output_json": [],
        "error": null,
        "consume_coins": 10,
        "created_at": 1718199000,
        "completed_at": 0
      }
    ],
    "page": 1,
    "page_size": 20
  }
}
task_output_json alan açıklamaları
Alan Tip Açıklama
typestringSonuç tipi: image veya video
urlstringSonuç dosyası için CDN URL
file_namestringDosya adı
file_sizeintDosya boyutu (byte)
mime_typestringMIME tipi, örn. image/png, video/mp4
widthintGenişlik (piksel)
heightintYükseklik (piksel)

Hesap bakiyesi

GET https://nsfwrouter.xyz/api/v1/account/balance

Jeton bakiyesini, toplam yükleme ve toplam tüketimi kontrol edin.

Yanıt örneği
{
  "code": 0,
  "message": "success",
  "data": {
    "remain_coins": 5000,
    "total_coins": 10000,
    "used_coins": 5000
  }
}

Webhook callback

webhook_url belirtilirse, tamamlandığında, başarısız olduğunda veya iptal edildiğinde POST gönderilir. Body JSON.

Callback istek başlıkları
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
Callback istek body
{
  "event": "task.finished",
  "task": {
    "id": 123,
    "status": 1,
    "task_output_json": [
      {
        "type": "image",
        "url": "https://cdn.example.com/outputs/abc123.png",
        "file_name": "abc123.png",
        "file_size": 1024000,
        "mime_type": "image/png",
        "width": 1024,
        "height": 1024
      }
    ],
    "consume_coins": 5,
    "created_at": 1718200000,
    "completed_at": 1718200015
  }
}

Sunucunuz HTTP 2xx döndürmeli. Non-2xx veya timeout (10 sn) durumunda sistem 5 kez exponansiyel backoff ile yeniden dener.

Hata kodları

Tüm hata yanıtları birleşik format kullanır: {"code": kod, "message": "tanımlayıcı", "data": {}}

Hata kodu message Açıklama
20001api_key_requiredAPI anahtarı belirtilmedi
20001invalid_api_keyGeçersiz API anahtarı
20001ip_not_allowedIP whitelist'te değil
20001permission_deniedErişim reddedildi
30001tool_not_foundAraç bulunamadı
30001task_not_foundGörev bulunamadı
30001insufficient_coinsYetersiz jeton bakiyesi
30001task_submit_failedGörev gönderimi başarısız
30001task_query_failedGörev sorgusu başarısız
30001task_already_existsGörev zaten mevcut (idempotency)
40001tool_id_requiredtool_id parametresi eksik
40001param_errorParametre hatası
40001webhook_url_invalidGeçersiz webhook_url formatı
40001params_must_be_json_object_or_arrayparams JSON nesne veya dizi olmalı
40001execution_options_must_be_json_object_or_arrayexecution_options JSON nesne veya dizi olmalı
Hata kodu aralıkları
Aralık Kategori
1xxxxSistem hatası
2xxxxKimlik doğrulama hatası
3xxxxİş mantığı hatası
4xxxxParametre hatası
5xxxxHarici bağımlılık hatası