API dokumentatsioon

API dokumentatsioon

Kutsuge kõiki AI funktsioone API võtmega, makse kasutuse järgi, integratsioon mõnes koodireas.

Autentimine

Kõik API päringud peavad sisaldama päist Authorization.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

Saage API võti „API võtmed" lehel konsoolis. Üks võti konto kohta. Lähtestamine konsoolis; vana tühistatakse koheselt.

Ülesande loomine

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

Saadge AI ülesanne GPU klastrisse. Ülesanded on asünkroonsed, tagastavad ID. Tulemused API või Webhooki kaudu.

Päringu parameetrid
Parameeter Tüüp Kohustuslik Kirjeldus
tool_idintJahTööriista ID, tööriistade nimekirjast
paramsobjectJahÜlesande parameetrid, JSON objekt, väljad sõltuvad tööriistast
webhook_urlstringEiCallback URL lõpetamise teavituseks
priorityintEiÜlesande prioriteet 1-10, vaikimisi 5
idempotency_keystringEiIdempotency võti, vältib duplikaate
execution_optionsobjectEiTäitmise valikud, JSON objekt
Päringu näide
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"
  }'
Vastuse näide
{
  "code": 0,
  "message": "success",
  "data": {
    "task": {
      "id": 123,
      "status": 0,
      "consume_coins": 5
    },
    "message": "task_submitted"
  }
}

Saldot kontrollitakse enne kutset. Ebapiisav = viga insufficient_coins. Mündid maha arvatud eduka saatmise korral.

Ülesande päring

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

Päri detaile ja staatust ID järgi. Töötlemise ajal, staatus GPU klastrist. Korduvad päringud 10 sek jooksul tagastavad DB cache.

Päringu parameetrid
Parameeter Tüüp Kohustuslik Kirjeldus
idintJahÜlesande ID
Vastuse näide
{
  "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
    }
  }
}
Ülesande staatuse väärtused
status Tähendus
0Töötlemine
1Lõpetatud
-1Tühistatud
-2Nurjunud

Ülesannete nimekiri

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

Leheküljendatud konto ülesannete päring, filtritega tööriistale, staatusele ja perioodile.

Päringu parameetrid
Parameeter Tüüp Kohustuslik Kirjeldus
pageintEiLehe number, vaikimisi 1
page_sizeintEiLehe suurus, vaikimisi 20, max 50
tool_idintEiFiltreeri tööriista järgi
statusintEiFiltreeri staatuse järgi (0/1/-1/-2)
daysintEiPeriood päevades, vaikimisi 30
Vastuse näide
{
  "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 väljade kirjeldus
Väli Tüüp Kirjeldus
typestringTulemuse tüüp: image või video
urlstringCDN URL tulemuse failile
file_namestringFaili nimi
file_sizeintFaili suurus (baiti)
mime_typestringMIME tüüp, nt image/png, video/mp4
widthintLaius (pikslid)
heightintKõrgus (pikslid)

Konto saldo

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

Kontrollige mündi saldot, kogu laadimist ja kogu tarbimist.

Vastuse näide
{
  "code": 0,
  "message": "success",
  "data": {
    "remain_coins": 5000,
    "total_coins": 10000,
    "used_coins": 5000
  }
}

Webhook callback

Kui webhook_url on määratud, saadetakse POST lõpetamisel, nurjumisel või tühistamisel. Body JSON.

Callback päringu päised
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
Callback päringu 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
  }
}

Teie server peab tagastama HTTP 2xx. Non-2xx või timeout (10 sek) korral, süsteem proovib kuni 5 korda eksponentsiaalse backoff'iga.

Veakoodid

Kõik veavastused kasutavad formaati: {"code": kood, "message": "identifikaator", "data": {}}

Veakood message Kirjeldus
20001api_key_requiredAPI võti puudub
20001invalid_api_keyKehtetu API võti
20001ip_not_allowedIP pole whitelist'is
20001permission_deniedJuurdepääs keelatud
30001tool_not_foundTööriista ei leitud
30001task_not_foundÜlesannet ei leitud
30001insufficient_coinsEbapiisav mündi saldo
30001task_submit_failedÜlesande saatmine nurjus
30001task_query_failedÜlesande päring nurjus
30001task_already_existsÜlesanne juba olemas (idempotency)
40001tool_id_requiredParameeter tool_id puudub
40001param_errorParameetri viga
40001webhook_url_invalidKehtetu webhook_url formaat
40001params_must_be_json_object_or_arrayparams peab olema JSON objekt või massiiv
40001execution_options_must_be_json_object_or_arrayexecution_options peab olema JSON objekt või massiiv
Veakoodide vahemikud
Vahemik Kategooria
1xxxxSüsteemi viga
2xxxxAutentimise viga
3xxxxÄriloogika viga
4xxxxParameetri viga
5xxxxVälise sõltuvuse viga