Dokumentasi API

Dokumentasi API

Panggil semua ciri AI melalui kunci API, bayar mengikut penggunaan, integrasi dalam beberapa baris kod.

Pengesahan

Semua permintaan API mesti mengandungi pengepala Authorization.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

Dapatkan kunci API di halaman „Kunci API" di konsol. Satu kunci setiap akaun. Reset di konsol; yang lama terbatal serta-merta.

Cipta tugas

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

Hantar tugas AI ke kluster GPU. Tugas adalah tak segerak, memulangkan ID. Keputusan melalui API atau Webhook.

Parameter permintaan
Parameter Jenis Wajib Penerangan
tool_idintYaID alat, dari senarai alat
paramsobjectYaParameter tugas, JSON objek, medan bergantung pada alat
webhook_urlstringTidakURL callback untuk pemberitahuan selesai
priorityintTidakKeutamaan tugas 1-10, lalai 5
idempotency_keystringTidakKunci idempotency, halang pendua
execution_optionsobjectTidakPilihan pelaksanaan, JSON objek
Contoh permintaan
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"
  }'
Contoh respons
{
  "code": 0,
  "message": "success",
  "data": {
    "task": {
      "id": 123,
      "status": 0,
      "consume_coins": 5
    },
    "message": "task_submitted"
  }
}

Baki disemak sebelum panggilan. Tidak mencukupi = ralat insufficient_coins. Syiling ditolak semasa penghantaran berjaya.

Pertanyaan tugas

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

Pertanyaan butiran dan status mengikut ID. Semasa pemprosesan, status dari kluster GPU. Pertanyaan berulang dalam 10 saat memulangkan cache DB.

Parameter pertanyaan
Parameter Jenis Wajib Penerangan
idintYaID tugas
Contoh respons
{
  "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
    }
  }
}
Nilai status tugas
status Maksud
0Memproses
1Selesai
-1Dibatalkan
-2Gagal

Senarai tugas

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

Pertanyaan berhalaman tugas akaun, dengan penapis pada alat, status dan tempoh.

Parameter pertanyaan
Parameter Jenis Wajib Penerangan
pageintTidakNombor halaman, lalai 1
page_sizeintTidakSaiz halaman, lalai 20, maks 50
tool_idintTidakTapis mengikut alat
statusintTidakTapis mengikut status (0/1/-1/-2)
daysintTidakTempoh dalam hari, lalai 30
Contoh respons
{
  "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
  }
}
Penerangan medan task_output_json
Medan Jenis Penerangan
typestringJenis keputusan: image atau video
urlstringURL CDN untuk fail keputusan
file_namestringNama fail
file_sizeintSaiz fail (bait)
mime_typestringJenis MIME, cth. image/png, video/mp4
widthintLebar (piksel)
heightintTinggi (piksel)

Baki akaun

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

Semak baki syiling, jumlah tambah nilai dan jumlah penggunaan.

Contoh respons
{
  "code": 0,
  "message": "success",
  "data": {
    "remain_coins": 5000,
    "total_coins": 10000,
    "used_coins": 5000
  }
}

Webhook callback

Jika webhook_url dinyatakan, POST dihantar semasa selesai, gagal atau dibatalkan. Body JSON.

Pengepala permintaan callback
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
Body permintaan callback
{
  "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
  }
}

Pelayan anda mesti memulangkan HTTP 2xx. Pada non-2xx atau tamat masa (10 saat), sistem mencuba hingga 5 kali dengan backoff eksponen.

Kod ralat

Semua respons ralat menggunakan format: {"code": kod, "message": "identifier", "data": {}}

Kod ralat message Penerangan
20001api_key_requiredKunci API tidak diberikan
20001invalid_api_keyKunci API tidak sah
20001ip_not_allowedIP tidak dalam whitelist
20001permission_deniedAkses dinafikan
30001tool_not_foundAlat tidak dijumpai
30001task_not_foundTugas tidak dijumpai
30001insufficient_coinsBaki syiling tidak mencukupi
30001task_submit_failedPenghantaran tugas gagal
30001task_query_failedPertanyaan tugas gagal
30001task_already_existsTugas sudah wujud (idempotency)
40001tool_id_requiredParameter tool_id hilang
40001param_errorRalat parameter
40001webhook_url_invalidFormat webhook_url tidak sah
40001params_must_be_json_object_or_arrayparams mesti JSON objek atau tatasusunan
40001execution_options_must_be_json_object_or_arrayexecution_options mesti JSON objek atau tatasusunan
Julat kod ralat
Julat Kategori
1xxxxRalat sistem
2xxxxRalat pengesahan
3xxxxRalat logik perniagaan
4xxxxRalat parameter
5xxxxRalat kebergantungan luaran