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
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.
| Parametrs | Tips | Obligāts | Apraksts |
|---|---|---|---|
| tool_id | int | Jā | Rīka ID, no rīku saraksta |
| params | object | Jā | Uzdevuma parametri, JSON objekts, lauki atkarīgi no rīka |
| webhook_url | string | Nē | Callback URL pabeigšanas paziņojumam |
| priority | int | Nē | Uzdevuma prioritāte 1-10, noklusējuma 5 |
| idempotency_key | string | Nē | Idempotency atslēga, novērš dublikātus |
| execution_options | object | Nē | Izpildes opcijas, JSON objekts |
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"
}
}
Bilance tiek pārbaudīta pirms izsaukuma. Nepietiek = kļūda insufficient_coins. Monētas atņemas veiksmīgai nosūtīšanai.
Uzdevuma vaicājums
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.
| Parametrs | Tips | Obligāts | Apraksts |
|---|---|---|---|
| id | int | Jā | Uzdevuma 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 | Nozīme |
|---|---|
| 0 | Apstrāde |
| 1 | Pabeigts |
| -1 | Atcelts |
| -2 | Neizdevās |
Uzdevumu saraksts
https://nsfwrouter.xyz/api/v1/tasks
Lapināts konta uzdevumu vaicājums, ar filtriem rīkam, statusam un periodam.
| Parametrs | Tips | Obligāts | Apraksts |
|---|---|---|---|
| page | int | Nē | Lapas numurs, noklusējuma 1 |
| page_size | int | Nē | Lapas izmērs, noklusējuma 20, max 50 |
| tool_id | int | Nē | Filtrēt pēc rīka |
| status | int | Nē | Filtrēt pēc statusa (0/1/-1/-2) |
| days | int | Nē | Periods dienās, noklusējuma 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
}
}
| Lauks | Tips | Apraksts |
|---|---|---|
| type | string | Rezultāta tips: image vai video |
| url | string | CDN URL rezultāta failam |
| file_name | string | Faila nosaukums |
| file_size | int | Faila izmērs (baiti) |
| mime_type | string | MIME tips, piem. image/png, video/mp4 |
| width | int | Platums (pikseļi) |
| height | int | Augstums (pikseļi) |
Konta bilance
https://nsfwrouter.xyz/api/v1/account/balance
Pārbaudiet monētu bilanci, kopējo uzlabojumu un kopējo patēriņu.
{
"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.
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
}
}
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 |
|---|---|---|
| 20001 | api_key_required | API atslēga nav norādīta |
| 20001 | invalid_api_key | Nederīga API atslēga |
| 20001 | ip_not_allowed | IP nav whitelist |
| 20001 | permission_denied | Piekļuve liegta |
| 30001 | tool_not_found | Rīks nav atrasts |
| 30001 | task_not_found | Uzdevums nav atrasts |
| 30001 | insufficient_coins | Nepietiek monētu |
| 30001 | task_submit_failed | Uzdevuma nosūtīšana neizdevās |
| 30001 | task_query_failed | Uzdevuma vaicājums neizdevās |
| 30001 | task_already_exists | Uzdevums jau eksistē (idempotency) |
| 40001 | tool_id_required | Parametrs tool_id trūkst |
| 40001 | param_error | Parametru kļūda |
| 40001 | webhook_url_invalid | Nederīgs webhook_url formāts |
| 40001 | params_must_be_json_object_or_array | params jābūt JSON objektam vai masīvam |
| 40001 | execution_options_must_be_json_object_or_array | execution_options jābūt JSON objektam vai masīvam |
| Diapazons | Kategorija |
|---|---|
| 1xxxx | Sistēmas kļūda |
| 2xxxx | Autentifikācijas kļūda |
| 3xxxx | Biznesa loģikas kļūda |
| 4xxxx | Parametru kļūda |
| 5xxxx | Ārējās atkarības kļūda |