API ডকুমেন্টেশন

API ডকুমেন্টেশন

API কী দিয়ে সব AI ফিচার কল করুন, ব্যবহার অনুযায়ী পেমেন্ট, কয়েক লাইন কোডে ইন্টিগ্রেশন।

প্রমাণীকরণ

সব API অনুরোধে Authorization হেডার থাকতে হবে।

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

কনসোলে „API কী" পেজ থেকে API কী পান। প্রতি অ্যাকাউন্ট এক কী। কনসোলে রিসেট; পুরনো তৎক্ষণাৎ বাতিল।

কাজ তৈরি

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

GPU ক্লাস্টারে AI কাজ পাঠান। কাজ অ্যাসিঙ্ক্রোনাস, ID ফেরত দেয়। API বা Webhook থেকে ফলাফল।

অনুরোধ প্যারামিটার
প্যারামিটার ধরন আবশ্যক বিবরণ
tool_idintহ্যাঁটুল ID, টুল তালিকা থেকে
paramsobjectহ্যাঁকাজের প্যারামিটার, JSON object, ফিল্ড টুলের উপর নির্ভর
webhook_urlstringনাসম্পন্ন হওয়ার বিজ্ঞপ্তির জন্য callback URL
priorityintনাকাজের অগ্রাধিকার 1-10, ডিফল্ট 5
idempotency_keystringনাIdempotency কী, ডুপ্লিকেট রোধ করে
execution_optionsobjectনাকার্যকর বিকল্প, 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। সফল প্রেরণে কয়েন কাটা হয়।

কাজ ক্যোয়ারি

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

ID দ্বারা বিস্তারিত ও স্ট্যাটাস ক্যোয়ারি। প্রসেসিং চলাকালীন, স্ট্যাটাস GPU ক্লাস্টার থেকে। ১০ সেকেন্ডের মধ্যে পুনরাবৃত্ত ক্যোয়ারি 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
urlstringফলাফল ফাইলের জন্য CDN URL
file_namestringফাইলের নাম
file_sizeintফাইলের আকার (বাইট)
mime_typestringMIME ধরন, যেমন image/png, video/mp4
widthintপ্রস্থ (পিক্সেল)
heightintউচ্চতা (পিক্সেল)

অ্যাকাউন্ট ব্যালেন্স

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
callback অনুরোধ body
{
  "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 বার পুনঃচেষ্টা করে exponential backoff সহ।

ত্রুটি কোড

সব ত্রুটি প্রতিক্রিয়া ফরম্যাট: {"code": কোড, "message": "identifier", "data": {}}

ত্রুটি কোড message বিবরণ
20001api_key_requiredAPI কী প্রদান করা হয়নি
20001invalid_api_keyঅবৈধ API কী
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 object বা array হতে হবে
40001execution_options_must_be_json_object_or_arrayexecution_options JSON object বা array হতে হবে
ত্রুটি কোড পরিসর
পরিসর বিভাগ
1xxxxসিস্টেম ত্রুটি
2xxxxপ্রমাণীকরণ ত্রুটি
3xxxxব্যবসায়িক যুক্তি ত্রুটি
4xxxxপ্যারামিটার ত্রুটি
5xxxxবাহ্যিক নির্ভরতা ত্রুটি