API dokumentācija

API dokumentācija

Izsauciet visas AI funkcijas caur API atslēgu, maksājums pēc lietošanas, integrācija dažās koda rindās.

Autentifikācija

Visiem API pieprasījumiem jāiekļauj virsraksts Authorization.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

Iegūstiet API atslēgu „API atslēgas" lapā konsolē. Viena atslēga uz kontu. Atiestatīšana konsolē; vecā uzreiz tiek anulēta.

Uzdevuma izveide

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

Sūtiet AI uzdevumu uz GPU klasteri. Uzdevumi ir asinhroni, atgriež ID. Rezultāti caur API vai Webhook.

Pieprasījuma parametri
Parametrs Tips Obligāts Apraksts
tool_idintRīka ID, no rīku saraksta
paramsobjectUzdevuma parametri, JSON objekts, lauki atkarīgi no rīka
webhook_urlstringCallback URL pabeigšanas paziņojumam
priorityintUzdevuma prioritāte 1-10, noklusējuma 5
idempotency_keystringIdempotency atslēga, novērš dublikātus
execution_optionsobjectIzpildes opcijas, JSON objekts
Pieprasījuma piemērs
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"
  }'
Atbildes piemērs
{
  "code": 0,
  "message": "success",
  "data": {
    "task": {
      "id": 123,
      "status": 0,
      "consume_coins": 5
    },
    "message": "task_submitted"
  }
}

Bilance tiek pārbaudīta pirms izsaukuma. Nepietiek = kļūda insufficient_coins. Monētas atņemas veiksmīgai nosūtīšanai.

Uzdevuma vaicājums

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

Vaicājiet detaļas un statusu pēc ID. Apstrādes laikā, statuss no GPU klastera. Atkārtoti vaicājumi 10 sek ietvaros atgriež DB cache.

Vaicājuma parametri
Parametrs Tips Obligāts Apraksts
idintUzdevuma ID
Atbildes piemērs
{
  "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
    }
  }
}
Uzdevuma statusa vērtības
status Nozīme
0Apstrāde
1Pabeigts
-1Atcelts
-2Neizdevās

Uzdevumu saraksts

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

Lapināts konta uzdevumu vaicājums, ar filtriem rīkam, statusam un periodam.

Vaicājuma parametri
Parametrs Tips Obligāts Apraksts
pageintLapas numurs, noklusējuma 1
page_sizeintLapas izmērs, noklusējuma 20, max 50
tool_idintFiltrēt pēc rīka
statusintFiltrēt pēc statusa (0/1/-1/-2)
daysintPeriods dienās, noklusējuma 30
Atbildes piemērs
{
  "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 lauku apraksts
Lauks Tips Apraksts
typestringRezultāta tips: image vai video
urlstringCDN URL rezultāta failam
file_namestringFaila nosaukums
file_sizeintFaila izmērs (baiti)
mime_typestringMIME tips, piem. image/png, video/mp4
widthintPlatums (pikseļi)
heightintAugstums (pikseļi)

Konta bilance

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

Pārbaudiet monētu bilanci, kopējo uzlabojumu un kopējo patēriņu.

Atbildes piemērs
{
  "code": 0,
  "message": "success",
  "data": {
    "remain_coins": 5000,
    "total_coins": 10000,
    "used_coins": 5000
  }
}

Webhook callback

Ja norādīts webhook_url, POST tiek sūtīts pabeigšanas, neveiksmes vai atcelšanas gadījumā. Body JSON.

Callback pieprasījuma virsraksti
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
Callback pieprasījuma 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
  }
}

Jūsu serverim jāatgriež HTTP 2xx. Pie non-2xx vai timeout (10 sek), sistēma mēģina līdz 5 reizēm ar eksponenciālu backoff.

Kļūdu kodi

Visas kļūdu atbildes izmanto formātu: {"code": kods, "message": "identifikators", "data": {}}

Kļūdas kods message Apraksts
20001api_key_requiredAPI atslēga nav norādīta
20001invalid_api_keyNederīga API atslēga
20001ip_not_allowedIP nav whitelist
20001permission_deniedPiekļuve liegta
30001tool_not_foundRīks nav atrasts
30001task_not_foundUzdevums nav atrasts
30001insufficient_coinsNepietiek monētu
30001task_submit_failedUzdevuma nosūtīšana neizdevās
30001task_query_failedUzdevuma vaicājums neizdevās
30001task_already_existsUzdevums jau eksistē (idempotency)
40001tool_id_requiredParametrs tool_id trūkst
40001param_errorParametru kļūda
40001webhook_url_invalidNederīgs webhook_url formāts
40001params_must_be_json_object_or_arrayparams jābūt JSON objektam vai masīvam
40001execution_options_must_be_json_object_or_arrayexecution_options jābūt JSON objektam vai masīvam
Kļūdu kodu diapazoni
Diapazons Kategorija
1xxxxSistēmas kļūda
2xxxxAutentifikācijas kļūda
3xxxxBiznesa loģikas kļūda
4xxxxParametru kļūda
5xxxxĀrējās atkarības kļūda