Τεκμηρίωση API
Καλέστε όλες τις λειτουργίες AI μέσω του κλειδιού API, πληρωμή ανά χρήση, ενσωμάτωση σε λίγες γραμμές κώδικα.
Πιστοποίηση
Όλα τα API αιτήματα πρέπει να περιέχουν την κεφαλίδα Authorization.
Authorization: Bearer sk-xxxxxxxxxxxxxxxx
Λάβετε το API key στη σελίδα «Κλειδιά API» στην κονσόλα. Ένα κλειδί ανά λογαριασμό. Επαναφορά στην κονσόλα; το παλιό ακυρώνεται άμεσα.
Δημιουργία εργασίας
https://nsfwrouter.xyz/api/v1/tasks/create
Στείλτε μια AI εργασία στο σύμπλεγμα GPU. Οι εργασίες είναι ασύγχρονες, επιστρέφουν ID. Αποτελέσματα μέσω API ή Webhook.
| Παράμετρος | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
| tool_id | int | Ναι | ID εργαλείου, από τη λίστα εργαλείων |
| params | object | Ναι | Παράμετροι εργασίας, JSON αντικείμενο, πεδία εξαρτώνται από το εργαλείο |
| webhook_url | string | Όχι | URL callback για ειδοποίηση ολοκλήρωσης |
| priority | int | Όχι | Προτεραιότητα εργασίας 1-10, προεπιλογή 5 |
| idempotency_key | string | Όχι | Κλειδί idempotency, αποτρέπει διπλότυπα |
| execution_options | object | Όχι | Επιλογές εκτέλεσης, 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. Τα νομίσματα αφαιρούνται στην επιτυχή αποστολή.
Ερωτήμα εργασίας
https://nsfwrouter.xyz/api/v1/tasks/query
Ερωτήστε λεπτομέρειες και κατάσταση ανά ID. Κατά την επεξεργασία, η κατάσταση λαμβάνεται από το σύμπλεγμα GPU. Επαναλαμβανόμενα ερωτήματα εντός 10 δευτ. επιστρέφουν DB cache.
| Παράμετρος | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
| id | int | Ναι | 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 | Απέτυχε |
Λίστα εργασιών
https://nsfwrouter.xyz/api/v1/tasks
Σελιδοποιημένο ερωτήμα εργασιών λογαριασμού, με φίλτρα σε εργαλείο, κατάσταση και περίοδο.
| Παράμετρος | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
| page | int | Όχι | Αριθμός σελίδας, προεπιλογή 1 |
| page_size | int | Όχι | Μέγεθος σελίδας, προεπιλογή 20, μέγιστο 50 |
| tool_id | int | Όχι | Φιλτράρισμα ανά εργαλείο |
| status | int | Όχι | Φιλτράρισμα ανά κατάσταση (0/1/-1/-2) |
| days | int | Όχι | Περίοδος σε ημέρες, προεπιλογή 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
}
}
| Πεδίο | Τύπος | Περιγραφή |
|---|---|---|
| type | string | Τύπος αποτελέσματος: image ή video |
| url | string | CDN URL για αρχείο αποτελέσματος |
| file_name | string | Όνομα αρχείου |
| file_size | int | Μέγεθος αρχείου (bytes) |
| mime_type | string | Τύπος MIME, π.χ. image/png, video/mp4 |
| width | int | Πλάτος (pixels) |
| height | int | Ύψος (pixels) |
Υπόλοιπο λογαριασμού
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.
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
}
}
Ο server σας πρέπει να επιστρέψει HTTP 2xx. Σε non-2xx ή timeout (10 δευτ.), το σύστημα δοκιμάζει ξανά έως 5 φορές με εκθετικό backoff.
Κωδικοί σφαλμάτων
Όλες οι απαντήσεις σφάλματος χρησιμοποιούν ενιαία μορφή: {"code": κωδικός, "message": "αναγνωριστικό", "data": {}}
| Κωδικός σφάλματος | message | Περιγραφή |
|---|---|---|
| 20001 | api_key_required | Δεν δόθηκε API key |
| 20001 | invalid_api_key | Μη έγκυρο API key |
| 20001 | ip_not_allowed | IP όχι σε whitelist |
| 20001 | permission_denied | Αρνήθηκε πρόσβαση |
| 30001 | tool_not_found | Εργαλείο δεν βρέθηκε |
| 30001 | task_not_found | Εργασία δεν βρέθηκε |
| 30001 | insufficient_coins | Ανεπαρκή νομίσματα |
| 30001 | task_submit_failed | Αποτυχία αποστολής εργασίας |
| 30001 | task_query_failed | Αποτυχία ερωτήματος εργασίας |
| 30001 | task_already_exists | Εργασία υπάρχει ήδη (idempotency) |
| 40001 | tool_id_required | Παράμετρος tool_id λείπει |
| 40001 | param_error | Σφάλμα παραμέτρων |
| 40001 | webhook_url_invalid | Μη έγκυρη μορφή webhook_url |
| 40001 | params_must_be_json_object_or_array | params πρέπει να είναι JSON αντικείμενο ή πίνακας |
| 40001 | execution_options_must_be_json_object_or_array | execution_options πρέπει να είναι JSON αντικείμενο ή πίνακας |
| Εύρος | Κατηγορία |
|---|---|
| 1xxxx | Σφάλμα συστήματος |
| 2xxxx | Σφάλμα πιστοποίησης |
| 3xxxx | Σφάλμα επιχειρησιακής λογικής |
| 4xxxx | Σφάλμα παραμέτρων |
| 5xxxx | Σφάλμα εξωτερικής εξάρτησης |