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
https://nsfwrouter.xyz/api/v1/tasks/create
Saadge AI ülesanne GPU klastrisse. Ülesanded on asünkroonsed, tagastavad ID. Tulemused API või Webhooki kaudu.
| Parameeter | Tüüp | Kohustuslik | Kirjeldus |
|---|---|---|---|
| tool_id | int | Jah | Tööriista ID, tööriistade nimekirjast |
| params | object | Jah | Ülesande parameetrid, JSON objekt, väljad sõltuvad tööriistast |
| webhook_url | string | Ei | Callback URL lõpetamise teavituseks |
| priority | int | Ei | Ülesande prioriteet 1-10, vaikimisi 5 |
| idempotency_key | string | Ei | Idempotency võti, vältib duplikaate |
| execution_options | object | Ei | Täitmise valikud, JSON objekt |
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"
}'
{
"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
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.
| Parameeter | Tüüp | Kohustuslik | Kirjeldus |
|---|---|---|---|
| id | int | Jah | Ülesande ID |
{
"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
}
}
}
| status | Tähendus |
|---|---|
| 0 | Töötlemine |
| 1 | Lõpetatud |
| -1 | Tühistatud |
| -2 | Nurjunud |
Ülesannete nimekiri
https://nsfwrouter.xyz/api/v1/tasks
Leheküljendatud konto ülesannete päring, filtritega tööriistale, staatusele ja perioodile.
| Parameeter | Tüüp | Kohustuslik | Kirjeldus |
|---|---|---|---|
| page | int | Ei | Lehe number, vaikimisi 1 |
| page_size | int | Ei | Lehe suurus, vaikimisi 20, max 50 |
| tool_id | int | Ei | Filtreeri tööriista järgi |
| status | int | Ei | Filtreeri staatuse järgi (0/1/-1/-2) |
| days | int | Ei | Periood päevades, vaikimisi 30 |
{
"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
}
}
| Väli | Tüüp | Kirjeldus |
|---|---|---|
| type | string | Tulemuse tüüp: image või video |
| url | string | CDN URL tulemuse failile |
| file_name | string | Faili nimi |
| file_size | int | Faili suurus (baiti) |
| mime_type | string | MIME tüüp, nt image/png, video/mp4 |
| width | int | Laius (pikslid) |
| height | int | Kõrgus (pikslid) |
Konto saldo
https://nsfwrouter.xyz/api/v1/account/balance
Kontrollige mündi saldot, kogu laadimist ja kogu tarbimist.
{
"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.
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
{
"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 |
|---|---|---|
| 20001 | api_key_required | API võti puudub |
| 20001 | invalid_api_key | Kehtetu API võti |
| 20001 | ip_not_allowed | IP pole whitelist'is |
| 20001 | permission_denied | Juurdepääs keelatud |
| 30001 | tool_not_found | Tööriista ei leitud |
| 30001 | task_not_found | Ülesannet ei leitud |
| 30001 | insufficient_coins | Ebapiisav mündi saldo |
| 30001 | task_submit_failed | Ülesande saatmine nurjus |
| 30001 | task_query_failed | Ülesande päring nurjus |
| 30001 | task_already_exists | Ülesanne juba olemas (idempotency) |
| 40001 | tool_id_required | Parameeter tool_id puudub |
| 40001 | param_error | Parameetri viga |
| 40001 | webhook_url_invalid | Kehtetu webhook_url formaat |
| 40001 | params_must_be_json_object_or_array | params peab olema JSON objekt või massiiv |
| 40001 | execution_options_must_be_json_object_or_array | execution_options peab olema JSON objekt või massiiv |
| Vahemik | Kategooria |
|---|---|
| 1xxxx | Süsteemi viga |
| 2xxxx | Autentimise viga |
| 3xxxx | Äriloogika viga |
| 4xxxx | Parameetri viga |
| 5xxxx | Välise sõltuvuse viga |