API-dokumentasjon

API-dokumentasjon

Kall alle AI-funksjoner via din API-nøkkel, betal per bruk, integrer med få linjer kode.

Autentisering

Alle API-forespørsler må inneholde headeren Authorization.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

Hent din API-nøkkel på siden "API-nøkler" i konsollen. Én nøkkel per konto. Tilbakestill i konsollen; den gamle ugyldiggjøres umiddelbart.

Opprett oppgave

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

Send en AI-oppgave til GPU-klyngen. Oppgaver er asynkrone og returnerer en ID. Få resultater via spørrings-API eller Webhook.

Forespørselsparametere
Parameter Type Obligatorisk Beskrivelse
tool_idintJaVerktøy-ID, fra verktøylisten
paramsobjectJaOppgaveparametere, JSON-objekt, felt avhenger av verktøy
webhook_urlstringNeiCallback-URL for fullføringsmelding
priorityintNeiOppgaveprioritet 1-10, standard 5
idempotency_keystringNeiIdempotency-nøkkel, forhindrer duplikater
execution_optionsobjectNeiUtførelsesalternativer, JSON-objekt
Forespørselseksempel
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"
  }'
Svareksempel
{
  "code": 0,
  "message": "success",
  "data": {
    "task": {
      "id": 123,
      "status": 0,
      "consume_coins": 5
    },
    "message": "task_submitted"
  }
}

Saldo kontrolleres før kall. Utilstrekkelig saldo = feil insufficient_coins. Mynter trekkes ved vellykket innsending.

Spør oppgavedetaljer

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

Spør detaljer og status per ID. Under behandling hentes siste status fra GPU-klyngen. Gjentatte spørringer innen 10 sekunder returnerer DB-cache uten eksterne forespørsler.

Spørringsparametere
Parameter Type Obligatorisk Beskrivelse
idintJaOppgave-ID
Svareksempel
{
  "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
    }
  }
}
Oppgavestatusverdier
status Betydning
0Behandler
1Fullført
-1Avbrutt
-2Mislyktes

Oppgaveliste

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

Paginert spørring av gjeldende kontos oppgaver, med filtre på verktøy, status og periode.

Spørringsparametere
Parameter Type Obligatorisk Beskrivelse
pageintNeiSidenummer, standard 1
page_sizeintNeiSidestørrelse, standard 20, maks 50
tool_idintNeiFiltrer på verktøy
statusintNeiFiltrer på status (0/1/-1/-2)
daysintNeiPeriode i dager, standard 30
Svareksempel
{
  "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
  }
}
Beskrivelse av task_output_json felt
Felt Type Beskrivelse
typestringResultattype: image eller video
urlstringCDN-URL for resultatfil
file_namestringFilnavn
file_sizeintFilstørrelse (bytes)
mime_typestringMIME-type, f.eks. image/png, video/mp4
widthintBredde (piksler)
heightintHøyde (piksler)

Kontosaldo

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

Sjekk mynt-saldo, total påfylling og total forbruk for gjeldende konto.

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

Webhook-callback

Hvis webhook_url angis, sendes en POST til den URL-en når oppgaven fullføres, mislykkes eller avbrytes. Body er JSON.

Callback-forespørselsheadere
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
Callback-forespørselsbody
{
  "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
  }
}

Serveren din må returnere HTTP 2xx. Ved non-2xx eller timeout (10 sek) prøver systemet igjen opptil 5 ganger med eksponentiell backoff (60s → 120s → 240s → 480s → 960s).

Feilkoder

Alle feilsvar bruker et enhetlig format: {"code": feilkode, "message": "identifikator", "data": {}}

Feilkode message Beskrivelse
20001api_key_requiredAPI-nøkkel ikke angitt
20001invalid_api_keyUgyldig API-nøkkel
20001ip_not_allowedIP ikke på whitelist
20001permission_deniedTilgang nektet
30001tool_not_foundVerktøy ikke funnet
30001task_not_foundOppgave ikke funnet
30001insufficient_coinsUtilstrekkelig mynt-saldo
30001task_submit_failedOppgaveinnsending mislyktes
30001task_query_failedOppgavespørring mislyktes
30001task_already_existsOppgave eksisterer allerede (idempotens)
40001tool_id_requiredParameter tool_id mangler
40001param_errorParameterfeil
40001webhook_url_invalidUgyldig webhook_url-format
40001params_must_be_json_object_or_arrayparams må være et JSON-objekt eller array
40001execution_options_must_be_json_object_or_arrayexecution_options må være et JSON-objekt eller array
Feilkodeområder
Område Kategori
1xxxxSystemfeil
2xxxxAutentiseringsfeil
3xxxxForretningslogikkfeil
4xxxxParameterfeil
5xxxxEkstern avhengighetsfeil