דילוג לתוכן
תיעוד Nodaro
תיעודמדריך הרכיביםמודליםתבניותסוכני AI (MCP)מפתחיםאירוח עצמימחקרהשוואות
REST API

מגבלות קצב

אסימון API של Nodaro מאפשר 30 בקשות הרצה לדקה כברירת מחדל, ועד 120. ראו את המגבלות לכל נתיב, שני קודי 429, גודלי אצווה ואיך לנסות שוב.

מגבלות קצב מגינות על ה-API של Nodaro מפני עומס פתאומי של בקשות. לכל אסימון API אישי יש תקציב משלו של הרצות תהליכים לדקה, לכמה נתיבים יש מגבלות משלהם, ובקשה שחורגת ממגבלה נדחית עם 429 Too Many Requests. תשאול של משימה או של הרצה אף פעם לא נספר בתקציב של האסימון, כך שאפשר לבדוק את הסטטוס מדי כמה שניות בלי שהתקציב ייגמר.

המגבלה לכל אסימון

לכל אסימון API אישי יש תקציב של בקשות לדקה:

  • 30 בקשות לדקה כברירת מחדל. קובעים את המגבלה כשיוצרים את האסימון, בשדה מגבלת קצב (בקשות לדקה), בין 1 ל-120. אפשר לשנות אותה אחר כך עם השדה rateLimit ב-PATCH /v1/api-tokens/:id.
  • רק שני נתיבים נספרים: POST /v1/api/run ו-GET /v1/api/workflows.
  • בקשות קריאה לא נספרות. הנתיבים GET /v1/api/status/:execId, GET /v1/api/result/:execId ו-GET /v1/api/schema לא נספרים בתקציב.
  • התקציב מתאפס כל דקה.

בקשה שחורגת מהתקציב מקבלת את התגובה הזו:

{ "error": { "code": "rate_limited", "message": "Too many requests. Max 30 per minute." } }

כדי לעבוד מהר יותר, העלו את המגבלה של האסימון ל-120. מעבר לזה, צרו עוד אסימונים, עד 10 לחשבון, ופזרו ביניהם את הבקשות. ראו את דף ה-API אימות.

מגבלות אחרות

נתיבמגבלההתגובה בחריגה
POST /v1/webhooks/:token (רכיב טריגר Webhook)10 בקשות לדקה לכל טריגר429
הרצות של אפליקציה שפורסמהמגבלת ההרצות היומית של האפליקציה, לכל משתמש429 rate_limit_exceeded
POST /v1/download-video4 ייבואים של סרטונים במקביל לכל חשבון429 too_many_downloads
POST /v1/video-overlay30 בקשות לדקה לכל משתמש429 rate_limit_exceeded
POST /v1/freecut-export10 בקשות לדקה429 rate_limit_exceeded
POST /v1/characters/:id/train3 בקשות לדקה לכל אסימון429 rate_limit_exceeded
POST /v1/oauth/register10 בקשות לדקה לכל כתובת IP429 rate_limit_exceeded
POST /v1/orgsכמה ארגונים חדשים בשעה לכל משתמש429 rate_limit_exceeded
POST /v1/workspaces/join10 ניסיונות לדקה לכל חשבון ו-30 לכל כתובת IP429 rate_limit_exceeded
POST /v1/workflows/:id/collaborators20 הוספות לדקה לכל חשבון429 rate_limit_exceeded
ייצוא נתוני שימוש כקובץ CSV10 לדקה לכל משתמש429 rate_limit_exceeded
POST /v1/orgs/:id/invitations500 הזמנות ביום לכל ארגון429 bulk_invite_cap_exceeded
GET /v1/invitations/by-token/:token, GET /v1/shots/:id, שלב ההחלפה בהתחברות SSOמגבלה לכל כתובת IP429 rate_limit_exceeded

שני קודי 429 שונים

  • rate_limited מגיע רק מהתקציב לכל אסימון של הנתיבים /v1/api/.
  • rate_limit_exceeded מגיע מכל שאר המגבלות: המגבלות לכל כתובת IP בכמה נתיבים שלא דורשים אסימון, המגבלות על כל מי שקורא לנתיבים מסוימים ומגבלת ההרצות היומית של אפליקציה שפורסמה.

נתיבים עם מגבלה לכל מי שקורא להם שולחים כותרת Retry-After. בנתיב שמוציא קרדיטים, כשהשרת לא יכול לבדוק את המגבלה, הוא מחזיר 503 rate_limit_unavailable.

בססו את הלוגיקה של הניסיונות החוזרים על הסטטוס 429. השתמשו בקוד רק כדי להבחין בין התקציב לכל אסימון לבין שאר המגבלות.

טיפול נכון במגבלות

  • בדקו את הסטטוס כל 2–5 שניות. הרצה משנה מצב בתוך שניות, ותשאול מהיר יותר לא נותן שום יתרון.
  • בדקו הרבה משימות בקריאה אחת. הנתיבים GET /v1/jobs/status ו-POST /v1/jobs/batch-status מחזירים כל אחד עד 100 משימות. ראו בדף ה-API משימות.
  • אחרי 429, האריכו את ההמתנה אקספוננציאלית: המתינו 5 שניות, אחר כך 10 ואחר כך 20, לפני כל ניסיון חוזר. כשיש כותרת Retry-After, המתינו לפחות את הזמן שהיא מציינת.
  • התייחסו לשאר שגיאות ה-4xx כסופיות. תקנו את הבקשה במקום לנסות אותה שוב. ראו את דף ה-API שגיאות.
import { RateLimitedError } from '@nodaro/sdk'

async function withBackoff<T>(call: () => Promise<T>): Promise<T> {
  for (const seconds of [5, 10, 20]) {
    try {
      return await call()
    } catch (err) {
      if (!(err instanceof RateLimitedError)) throw err
      await new Promise((r) => setTimeout(r, seconds * 1_000))
    }
  }
  return call()
}

const { executionId } = await withBackoff(() => client.workflows.run(workflowId))

גודלי אצווה ועמוד

נקודת קצהמגבלה
GET /v1/jobs/status?ids=…עד 100 מזהים
POST /v1/jobs/batch-statusעד 100 מזהים
GET /v1/jobslimit עד 100
GET /v1/characterslimit עד 500, 100 כברירת מחדל
GET /v1/objects, /v1/creatures, /v1/locations, /v1/faceslimit עד 500
GET /v1/credits/transactionslimit בין 1 ל-50, 20 כברירת מחדל
POST /v1/credits/model-costsעד 50 מזהי מודלים
GET /v1/community/browselimit עד 50, 20 כברירת מחדל
GET /v1/orgs/:id/memberslimit עד 200, 50 כברירת מחדל
POST /v1/orgs/:id/invitationsעד 200 כתובות בקריאה אחת
אסימוני API10 לכל חשבון
יישומי מפתחים של OAuth5 שנרשמו ידנית לכל משתמש

שאלות נפוצות

מה מגבלת הקצב של אסימון API ב-Nodaro?

מגבלת הקצב של אסימון API ב-Nodaro היא 30 בקשות לדקה כברירת מחדל, ואפשר להעלות אותה עד 120 לכל אסימון. המגבלה סופרת רק הרצות של תהליכים ובקשות לרשימת התהליכים, כלומר POST /v1/api/run ו-GET /v1/api/workflows.

האם תשאול נספר במגבלת הקצב?

לא. קריאה של הסטטוס של הרצה, של התוצאה שלה או של הסכמה של תהליך לא נספרת בתקציב של האסימון, וגם לא קריאה של הסטטוס של משימות. בדקו את הסטטוס כל 2–5 שניות.

מה עושים כשמקבלים שגיאת 429?

כשה-API של Nodaro מחזיר 429, המתינו ונסו שוב, והאריכו את ההמתנה אקספוננציאלית, למשל אחרי 5, 10 ו-20 שניות. כשבתגובה יש כותרת Retry-After, המתינו לפחות את הזמן שהיא מציינת. בססו את הלוגיקה של הניסיונות החוזרים על הסטטוס 429, לא על קוד השגיאה.

איך מקבלים מגבלת קצב גבוהה יותר?

העלו את מגבלת הקצב של האסימון עד 120 בקשות לדקה. מעבר לזה, צרו עוד אסימונים, עד 10 לחשבון, ופזרו ביניהם את הבקשות.

האם יש מגבלת קצב לטריגרים של Webhook?

כן, בנפרד מאסימוני ה-API. כל רכיב טריגר Webhook מקבל עד 10 בקשות לדקה בכתובת ה-URL שלו.

עודכן לאחרונה

בדף הזה