API dokumentáció

API dokumentáció

Hívd az összes AI funkciót az API kulccsal, használatalapú fizetés, integráció néhány sornyi kódból.

Hitelesítés

Minden API kérésnek tartalmaznia kell a Authorization headert.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

Vedd át az API kulcsot a „API kulcsok" oldalon a konzolon. Egy kulcs per fiók. Visszaállítás a konzolon; a régi azonnal érvénytelenítve.

Feladat létrehozása

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

Küldj AI feladatot a GPU klaszternek. A feladatok aszinkronok, ID-t adnak vissza. Eredmények API-n vagy Webhookon.

Kérés paraméterek
Paraméter Típus Kötelező Leírás
tool_idintIgenEszköz ID, az eszközlistából
paramsobjectIgenFeladat paraméterek, JSON objektum, mezők eszközfüggőek
webhook_urlstringNemCallback URL befejezési értesítéshez
priorityintNemFeladat prioritás 1-10, alapértelmezett 5
idempotency_keystringNemIdempotencia kulcs, ismétlődést megelőzi
execution_optionsobjectNemVégrehajtási opciók, JSON objektum
Kérés példa
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"
  }'
Válasz példa
{
  "code": 0,
  "message": "success",
  "data": {
    "task": {
      "id": 123,
      "status": 0,
      "consume_coins": 5
    },
    "message": "task_submitted"
  }
}

Egyenleg ellenőrizve hívás előtt. Insufficient = hiba insufficient_coins. Érmék levonva sikeres küldéskor.

Feladat lekérdezése

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

Részletek és státusz ID alapján. Feldolgozás alatt a státusz a GPU klaszterből jön. 10 sec-en belüli ismételt lekérdezések DB cache-t adnak.

Lekérdezés paraméterek
Paraméter Típus Kötelező Leírás
idintIgenFeladat ID
Válasz példa
{
  "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
    }
  }
}
Feladat státusz értékek
status Jelentés
0Feldolgozás
1Befejezve
-1Megszakítva
-2Sikertelen

Feladat lista

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

Lapozott lekérdezés a fiók feladatairól, szűrőkkel eszköz, státusz és időszak alapján.

Lekérdezés paraméterek
Paraméter Típus Kötelező Leírás
pageintNemOldalszám, alapértelmezett 1
page_sizeintNemOldalméret, alapértelmezett 20, max 50
tool_idintNemEszköz szűrő
statusintNemStátusz szűrő (0/1/-1/-2)
daysintNemIdőszak napokban, alapértelmezett 30
Válasz példa
{
  "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 mezők leírása
Mező Típus Leírás
typestringEredmény típus: image vagy video
urlstringCDN URL az eredményfájlhoz
file_namestringFájlnév
file_sizeintFájlméret (byte)
mime_typestringMIME típus, pl. image/png, video/mp4
widthintSzélesség (pixel)
heightintMagasság (pixel)

Fiók egyenleg

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

Ellenőrizd az érme egyenleget, teljes feltöltést és teljes fogyasztást.

Válasz példa
{
  "code": 0,
  "message": "success",
  "data": {
    "remain_coins": 5000,
    "total_coins": 10000,
    "used_coins": 5000
  }
}

Webhook callback

Ha webhook_url meg van adva, befejezéskor, hibánál vagy megszakításkor POST küldésre kerül. Body JSON.

Callback kérés headerök
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
Callback kérés 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
  }
}

A szerverednek HTTP 2xx-t kell visszaadnia. Non-2xx vagy timeout (10 sec) esetén a rendszer 5-ször újrapróbál exponenciális backoffal.

Hibakódok

Minden hiba egységes formátumot használ: {"code": kód, "message": "azonosító", "data": {}}

Hibakód message Leírás
20001api_key_requiredAPI kulcs hiányzik
20001invalid_api_keyÉrvénytelen API kulcs
20001ip_not_allowedIP nincs a whitelisten
20001permission_deniedHozzáférés megtagadva
30001tool_not_foundEszköz nem található
30001task_not_foundFeladat nem található
30001insufficient_coinsInsufficient érme egyenleg
30001task_submit_failedFeladat küldése sikertelen
30001task_query_failedFeladat lekérdezése sikertelen
30001task_already_existsFeladat már létezik (idempotencia)
40001tool_id_requiredtool_id paraméter hiányzik
40001param_errorParaméter hiba
40001webhook_url_invalidÉrvénytelen webhook_url formátum
40001params_must_be_json_object_or_arrayparams JSON objektum vagy tömb kell legyen
40001execution_options_must_be_json_object_or_arrayexecution_options JSON objektum vagy tömb kell legyen
Hibakód tartományok
Tartomány Kategória
1xxxxRendszerhiba
2xxxxHitelesítési hiba
3xxxxÜzleti logikai hiba
4xxxxParaméter hiba
5xxxxKülső függőség hiba