API दस्तावेज़
API कुंजी के माध्यम से सभी AI सुविधाएँ कॉल करें, उपयोग के अनुसार भुगतान, कुछ पंक्तियों के कोड में एकीकरण।
प्रमाणीकरण
सभी API अनुरोधों में Authorization हेडर होना चाहिए।
Authorization: Bearer sk-xxxxxxxxxxxxxxxx
कंसोल में „API कुंजी" पेज से API कुंजी प्राप्त करें। प्रति खाता एक कुंजी। कंसोल में रीसेट; पुरानी तुरंत रद्ध।
कार्य बनाएँ
https://nsfwrouter.xyz/api/v1/tasks/create
GPU क्लस्टर को AI कार्य भेजें। कार्य अतुल्यकालिक, ID लौटाते हैं। API या Webhook से परिणाम।
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
| tool_id | int | हाँ | उपकरण ID, उपकरण सूची से |
| params | object | हाँ | कार्य पैरामीटर, JSON object, फ़ील्ड उपकरण पर निर्भर |
| webhook_url | string | नहीं | पूर्ण होने की सूचना के लिए callback URL |
| priority | int | नहीं | कार्य प्राथमिकता 1-10, डिफ़ॉल्ट 5 |
| idempotency_key | string | नहीं | Idempotency कुंजी, डुप्लिकेट रोकती है |
| execution_options | object | नहीं | निष्पादन विकल्प, JSON object |
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 | फ़ाइल आकार (बाइट्स) |
| mime_type | string | MIME प्रकार, उदा. image/png, video/mp4 |
| width | int | चौड़ाई (पिक्सेल) |
| height | int | ऊँचाई (पिक्सेल) |
खाता शेष
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
}
}
आपका सर्वर HTTP 2xx लौटाना चाहिए। Non-2xx या timeout (10 सेकंड) पर, सिस्टम 5 बार पुनः प्रयास करता है घातीय backoff के साथ।
त्रुटि कोड
सभी त्रुटि प्रतिक्रियाएँ प्रारूप: {"code": कोड, "message": "identifier", "data": {}}
| त्रुटि कोड | message | विवरण |
|---|---|---|
| 20001 | api_key_required | API कुंजी प्रदान नहीं |
| 20001 | invalid_api_key | अमान्य API कुंजी |
| 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 object या array होना चाहिए |
| 40001 | execution_options_must_be_json_object_or_array | execution_options JSON object या array होना चाहिए |
| श्रेणी | श्रेणी |
|---|---|
| 1xxxx | सिस्टम त्रुटि |
| 2xxxx | प्रमाणीकरण त्रुटि |
| 3xxxx | व्यावसायिक तर्क त्रुटि |
| 4xxxx | पैरामीटर त्रुटि |
| 5xxxx | बाहरी निर्भरता त्रुटि |