תיעוד API

תיעוד API

קרא לכל תכונות ה-AI דרך מפתח API, תשלום לפי שימוש, אינטגרציה במספר שורות קוד.

אימות

כל בקשות ה-API חייבות לכלול כותרת Authorization.

Authorization: Bearer sk-xxxxxxxxxxxxxxxx

קבל מפתח API בדף „מפתחות API" בקונסול. מפתח אחד לחשבון. איפוס בקונסול; הישן מבוטל מיידית.

יצירת משימה

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

שלח משימת AI לקלאסטר GPU. משימות אסינכרוניות, מחזירות ID. תוצאות דרך API או Webhook.

פרמטרי בקשה
פרמטר סוג חובה תיאור
tool_idintכןמזהה כלי, מרשימת הכלים
paramsobjectכןפרמטרי משימה, JSON object, שדות תלויים בכלי
webhook_urlstringלאURL callback להודעה על השלמה
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. שאילתות חוזרות תוך 10 שנ' מחזירות DB cache.

פרמטרי שאילתה
פרמטר סוג חובה תיאור
idintכןמזהה משימה
דוגמת תגובה
{
  "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
urlstringURL CDN לקובץ התוצאה
file_namestringשם קובץ
file_sizeintגודל קובץ (בתים)
mime_typestringסוג MIME, לדוגמה 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
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
  }
}

השרת שלך חייב להחזיר HTTP 2xx. ב-non-2xx או timeout (10 שנ'), המערכת מנסה עד 5 פעמים עם backoff מעריכי.

קודי שגיאה

כל תגובות השגיאה משתמשות בפורמט: {"code": קוד, "message": "identifier", "data": {}}

קוד שגיאה message תיאור
20001api_key_requiredמפתח API לא סופק
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שגיאת תלות חיצונית