Τεκμηρίωση API

Τεκμηρίωση API

Καλέστε όλες τις λειτουργίες AI μέσω του κλειδιού API, πληρωμή ανά χρήση, ενσωμάτωση σε λίγες γραμμές κώδικα.

Πιστοποίηση

Όλα τα API αιτήματα πρέπει να περιέχουν την κεφαλίδα Authorization.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

Λάβετε το API key στη σελίδα «Κλειδιά API» στην κονσόλα. Ένα κλειδί ανά λογαριασμό. Επαναφορά στην κονσόλα; το παλιό ακυρώνεται άμεσα.

Δημιουργία εργασίας

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

Στείλτε μια AI εργασία στο σύμπλεγμα GPU. Οι εργασίες είναι ασύγχρονες, επιστρέφουν ID. Αποτελέσματα μέσω API ή Webhook.

Παράμετροι αιτήματος
Παράμετρος Τύπος Υποχρεωτικό Περιγραφή
tool_idintΝαιID εργαλείου, από τη λίστα εργαλείων
paramsobjectΝαιΠαράμετροι εργασίας, JSON αντικείμενο, πεδία εξαρτώνται από το εργαλείο
webhook_urlstringΌχιURL callback για ειδοποίηση ολοκλήρωσης
priorityintΌχιΠροτεραιότητα εργασίας 1-10, προεπιλογή 5
idempotency_keystringΌχιΚλειδί idempotency, αποτρέπει διπλότυπα
execution_optionsobjectΌχιΕπιλογές εκτέλεσης, JSON αντικείμενο
Παράδειγμα αιτήματος
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"
  }
}

Το υπόλοιπο ελέγχεται πριν την κλήση. Ανεπαρκές = σφάλμα insufficient_coins. Τα νομίσματα αφαιρούνται στην επιτυχή αποστολή.

Ερωτήμα εργασίας

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

Ερωτήστε λεπτομέρειες και κατάσταση ανά ID. Κατά την επεξεργασία, η κατάσταση λαμβάνεται από το σύμπλεγμα GPU. Επαναλαμβανόμενα ερωτήματα εντός 10 δευτ. επιστρέφουν DB cache.

Παράμετροι ερωτήματος
Παράμετρος Τύπος Υποχρεωτικό Περιγραφή
idintΝαι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 Σημασία
0Επεξεργασία
1Ολοκληρώθηκε
-1Ακυρώθηκε
-2Απέτυχε

Λίστα εργασιών

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

Σελιδοποιημένο ερωτήμα εργασιών λογαριασμού, με φίλτρα σε εργαλείο, κατάσταση και περίοδο.

Παράμετροι ερωτήματος
Παράμετρος Τύπος Υποχρεωτικό Περιγραφή
pageintΌχιΑριθμός σελίδας, προεπιλογή 1
page_sizeintΌχιΜέγεθος σελίδας, προεπιλογή 20, μέγιστο 50
tool_idintΌχιΦιλτράρισμα ανά εργαλείο
statusintΌχιΦιλτράρισμα ανά κατάσταση (0/1/-1/-2)
daysintΌχιΠερίοδος σε ημέρες, προεπιλογή 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
  }
}
Περιγραφή πεδίων task_output_json
Πεδίο Τύπος Περιγραφή
typestringΤύπος αποτελέσματος: image ή video
urlstringCDN URL για αρχείο αποτελέσματος
file_namestringΌνομα αρχείου
file_sizeintΜέγεθος αρχείου (bytes)
mime_typestringΤύπος MIME, π.χ. image/png, video/mp4
widthintΠλάτος (pixels)
heightintΎψος (pixels)

Υπόλοιπο λογαριασμού

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

Ελέγξτε το υπόλοιπο νομισμάτων, συνολικό ανέβασμα και συνολική κατανάλωση.

Παράδειγμα απάντησης
{
  "code": 0,
  "message": "success",
  "data": {
    "remain_coins": 5000,
    "total_coins": 10000,
    "used_coins": 5000
  }
}

Webhook callback

Αν οριστεί webhook_url, στέλνεται POST στην ολοκλήρωση, αποτυχία ή ακύρωση. Το body είναι JSON.

Κεφαλίδες callback αιτήματος
Content-Type: application/json
Accept: application/json
User-Agent: OpenAPI-Webhook/1.0
Body 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
  }
}

Ο server σας πρέπει να επιστρέψει HTTP 2xx. Σε non-2xx ή timeout (10 δευτ.), το σύστημα δοκιμάζει ξανά έως 5 φορές με εκθετικό backoff.

Κωδικοί σφαλμάτων

Όλες οι απαντήσεις σφάλματος χρησιμοποιούν ενιαία μορφή: {"code": κωδικός, "message": "αναγνωριστικό", "data": {}}

Κωδικός σφάλματος message Περιγραφή
20001api_key_requiredΔεν δόθηκε API key
20001invalid_api_keyΜη έγκυρο API key
20001ip_not_allowedIP όχι σε whitelist
20001permission_deniedΑρνήθηκε πρόσβαση
30001tool_not_foundΕργαλείο δεν βρέθηκε
30001task_not_foundΕργασία δεν βρέθηκε
30001insufficient_coinsΑνεπαρκή νομίσματα
30001task_submit_failedΑποτυχία αποστολής εργασίας
30001task_query_failedΑποτυχία ερωτήματος εργασίας
30001task_already_existsΕργασία υπάρχει ήδη (idempotency)
40001tool_id_requiredΠαράμετρος tool_id λείπει
40001param_errorΣφάλμα παραμέτρων
40001webhook_url_invalidΜη έγκυρη μορφή webhook_url
40001params_must_be_json_object_or_arrayparams πρέπει να είναι JSON αντικείμενο ή πίνακας
40001execution_options_must_be_json_object_or_arrayexecution_options πρέπει να είναι JSON αντικείμενο ή πίνακας
Εύρη κωδικών σφαλμάτων
Εύρος Κατηγορία
1xxxxΣφάλμα συστήματος
2xxxxΣφάλμα πιστοποίησης
3xxxxΣφάλμα επιχειρησιακής λογικής
4xxxxΣφάλμα παραμέτρων
5xxxxΣφάλμα εξωτερικής εξάρτησης