סקירה כללית של ה-REST API
ה-REST API של Nodaro מריץ תהליכים ורכיבים בודדים, מדווח על הסטטוס של משימות, מעלה מדיה ומנהל נכסים דרך HTTPS, עם JSON ואסימון Bearer.
ה-REST API של Nodaro הוא ממשק ה-HTTP של Nodaro: הוא מריץ תהליכים ורכיבים בודדים, מדווח על הסטטוס של המשימות שלהם, שומר את המדיה שלכם ומנהל דמויות, ערכות וסביבות עבודה. הבקשות והתגובות הן JSON על גבי HTTPS, וכל בקשה כוללת אסימון Bearer. אותו API משרת את Nodaro Cloud ואת ההתקנות באירוח עצמי, וה-SDK ל-TypeScript וה-CLI הם לקוחות דקים שלו.
כתובת הבסיס
| איפה Nodaro רץ | כתובת הבסיס |
|---|---|
| Nodaro Cloud | https://app.nodaro.ai |
| התקנה באירוח עצמי | הכתובת של ההתקנה עצמה, למשל http://localhost:3000 בהתקנה של מהדורת Community עם הגדרות ברירת המחדל |
כל נתיב מתחיל ב-/v1/, למשל https://app.nodaro.ai/v1/nodes. חלק מנקודות הקצה קיימות רק ב-Nodaro Cloud, כגון קרדיטים וארגונים, ובמהדורות אחרות הן מחזירות 404. בכל דף מצוין מתי נקודת קצה מוגבלת.
אימות
שלחו Authorization: Bearer <token> בכל בקשה. לחשבון שלכם, השתמשו באסימון API אישי (ndr_…) מהדף הגדרות › מפתחות API. כשהמוצר שלכם פועל בשם משתמשי Nodaro אחרים, השתמשו באסימון גישה של OAuth (ndr_app_…), ובהתקנה של מהדורת Community, ב-JWT של הסשן שלכם. כמה נקודות קצה של גילוי, כגון GET /v1/nodes ו-GET /v1/models, לא צריכות אסימון בכלל. כדי ליצור אסימון, ראו את דף ה-API אימות.
הקריאה הראשונה שלכם
הדוגמה הזו יוצרת תמונה עם רכיב אחד וקוראת את התוצאה. היצירה אסינכרונית: הקריאה הראשונה מחזירה מזהה משימה, ואז בודקים את הסטטוס של המשימה מדי כמה שניות עד שהיא מסתיימת.
export NODARO_API_KEY="ndr_..."
# 1. Start the job
curl -s -X POST https://app.nodaro.ai/v1/generate-image \
-H "Authorization: Bearer $NODARO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a snow leopard on a mountain ridge at dawn",
"provider": "nano-banana-pro",
"aspectRatio": "16:9"
}'
# {"jobId":"0f1a9c2e-5b7d-4e8a-9c31-6d2f8b4a7e10"}
# 2. Poll the job until its status is "completed"
curl -s https://app.nodaro.ai/v1/jobs/0f1a9c2e-5b7d-4e8a-9c31-6d2f8b4a7e10/status \
-H "Authorization: Bearer $NODARO_API_KEY"{
"data": {
"id": "0f1a9c2e-5b7d-4e8a-9c31-6d2f8b4a7e10",
"status": "completed",
"progress": 100,
"output_data": { "imageUrl": "https://…/0f1a9c2e.png" },
"error_message": null
}
}import { createClient, StaticTokenAuth } from '@nodaro/sdk'
const client = createClient({
baseUrl: 'https://app.nodaro.ai',
auth: new StaticTokenAuth(process.env.NODARO_API_KEY!),
})
// Starts the job and polls it until it finishes.
const output = await client.nodes.runAndWait('generate-image', {
prompt: 'a snow leopard on a mountain ridge at dawn',
provider: 'nano-banana-pro',
aspectRatio: '16:9',
})
console.log(output.imageUrl)nodaro nodes run generate-image \
--param prompt="a snow leopard on a mountain ridge at dawn" \
--param provider=nano-banana-pro \
--param aspectRatio=16:9 \
--watch --json | jq -r '.output_data.imageUrl'אותו דפוס עובד בכל רכיב יצירה: קריאה לנתיב POST /v1/<node-type> עם ההגדרות של הרכיב, ואז תשאול של המשימה. ראו את דף ה-API הרצת רכיב יחיד.
מוסכמות של בקשות ותגובות
- שולחים JSON ומקבלים JSON. שלחו את גוף הבקשה כ-JSON עם
Content-Type: application/json. העלאות של קבצים הן החריג: הן משתמשות ב-multipart/form-data. - המזהים הם UUID. בקשה עם מזהה פגום נדחית עם
400 validation_error. - רוב התגובות עטופות ב-
data. קריאה מחזירה{ "data": … }, ומחיקה או ביטול מחזירים{ "success": true }. נקודות הקצה של התהליכים מדור קודם, תחת/v1/api/, מחזירות את המטען שלהן ישירות. - יצירות מחזירות מזהה משימה. הנתיב
POST /v1/<node-type>מחזיר{ "jobId": "…" }, ולפעמים גםadjustmentsאוwarningsלצדו. - רשימות משתמשות ב-cursor. רשימה מחזירה cursor, בדרך כלל
nextCursor(אוnextב-GET /v1/jobs). כדי לקבל את העמוד הבא, שלחו אותו בחזרה כ-?cursor=. כשה-cursor הואnull, אין עוד שורות. ה-cursor הוא ערך אטום: אף פעם אל תפענחו אותו ואל תבנו אחד בעצמכם. - שני סגנונות של שמות שדות. אובייקטים של משימות משתמשים ב-snake_case, כגון
output_dataו-created_at. תהליכים, רשומות הרצה ורוב המשאבים האחרים משתמשים ב-camelCase. - התגובות מתרחבות. שדות חדשים נוספים עם הזמן. התעלמו משדות שאתם לא מכירים, במקום להיכשל בגללם.
- לכל השגיאות יש אותו מבנה. קריאה שנכשלת מחזירה סטטוס HTTP ו-
{ "error": { "code": "…", "message": "…" } }. פעלו לפיcode. ראו את דף ה-API שגיאות.
שתי כותרות אופציונליות משנות את האופן שבו בקשה מטופלת:
| כותרת | מה היא עושה |
|---|---|
X-Nodaro-Workspace | פעולה בסביבת עבודה אחת של ארגון: מאיזו סביבת עבודה רשימה נקראת, ולאן נכנס משאב שנוצר. ראו את דף ה-API סביבות עבודה וארגונים. |
X-Nodaro-Client | רישום הלקוח שיצר משימה: sdk/<version>, cli/<version> או extension/<name>. ראו בדף ה-API זיהוי הלקוח שלכם. |
סינכרוני או אסינכרוני
רוב העבודה ב-Nodaro נמשכת בין כמה שניות לכמה דקות, ולכן ה-API אסינכרוני. נתיב של יצירה עונה מיד עם jobId, והרצת תהליך עונה 202 Accepted עם executionId. אחר כך בודקים את הסטטוס של המשימה או של רשומת ההרצה כל 2–5 שניות, עד שהיא מגיעה לסטטוס סופי. בתהליך שאתם מצפים שיסתיים בפחות מדקה, הנתיב POST /v1/api/run?wait=true משאיר את החיבור פתוח עד 600 שניות ומחזיר את התוצאה. כמה נתיבים עונים באופן סינכרוני, כגון רכיבי טקסט שרצים מיד, עיבוד מדיה חינמי והקריאה ל-LLM עם פלט מובנה. ראו בדף ה-API סינכרוני או אסינכרוני לפרטים. כדי לוותר על תשאול של משימות, רשמו נקודת קצה של Webhook: Nodaro שולח אז לשרת שלכם אירוע חתום בכל פעם שאחת מהמשימות שלכם מסתיימת או נכשלת.
נקודות קצה לפי תחום
הרצה
| דף | במה הוא עוסק | נקודות הקצה העיקריות |
|---|---|---|
| תהליכים | הרצה של תהליך שמור, עם קלטים או בלי, וניהול תהליכים | POST /v1/workflows/:id/run, POST /v1/api/run, GET /v1/api/schema |
| רכיבים | הרצה של רכיב אחד בלי תהליך, סשני יצירה, פלטות ומודבורדים, וגילוי של רכיבים, מודלים ובוררים | POST /v1/<node-type>, /v1/sessions, GET /v1/models |
| משימות | סטטוס ותוצאות של משימות, דירוגים ומועדפים, תשאול באצווה, ביטול ושליטה בהרצות של Video Pro | GET /v1/jobs/:id/status, POST /v1/jobs/batch-status |
| הרצות | הסטטוס וההיסטוריה של הרצות תהליכים | GET /v1/workflow-executions/:id, GET /v1/workflows/:id/executions |
| העלאות | העלאה של תמונות, וידאו ואודיו, העתקה לאחסון של קובץ מכתובת URL וחיפוש בספריית המדיה שלכם | POST /v1/upload, GET /v1/library |
| ה-API של Webhooks | קבלה של אירועי משימה חתומים בשרת שלכם, הרצה של תהליך מקריאת HTTP או מתזמון, ושליחה של תוצאות החוצה | /v1/webhook-endpoints, POST /v1/webhooks/:token |
משאבים
| דף | במה הוא עוסק | נקודות הקצה העיקריות |
|---|---|---|
| דמויות | דמויות, מועמדים לפורטרט, הבעות, תנוחות ותנועה | /v1/characters, POST /v1/generate-character |
| אובייקטים | אביזרים, מוצרים וכלי רכב, עם התמונה הראשית והווריאנטים שלהם | /v1/objects, POST /v1/generate-object |
| מיקומים | מקומות, עם התמונה הראשית והווריאנטים שלהם | /v1/locations, POST /v1/generate-location |
| יצורים | יצורים, עם התמונה הראשית והווריאנטים שלהם | /v1/creatures |
| ערכות | קריאה וכתיבה של הערכות השמורות שלכם, וקריאה של הקטלוג הציבורי של הערכות המובנות | /v1/node-presets, GET /v1/node-presets/factory |
| ספריית הקהילה | עיון ושכפול של דמויות, מיקומים ואובייקטים משותפים | GET /v1/community/browse |
| פייפליינים | פייפליינים של סיפור ← וידאו | POST /v1/pipelines/:id/branch |
| אשף הפרומפטים | שיפור פרומפט לרכיב יצירה | POST /v1/prompt-helper/wizard |
| ה-API של Recast | יצירה מחדש של סרטון שנותח, עם הליהוק שלכם | POST /v1/recast |
| ה-API של Nodaro Motion | החלפה של האנשים, חיות המחמד, המוצרים או המקום בסרטון קצר בתמונות שלכם | POST /v1/cast-swap |
| טרנדים | הרצה של מתכון מוכן של Nodaro Motion עם התמונות שלכם | POST /v1/trends/:slug/runs |
| הפקות Studio | הפקות שנבנות שוט אחר שוט | /v1/studio/productions |
| קול ומדיה | קולות, שינוי קול, דיבוב, ייבוא מדיה וכלי אודיו | /v1/voices, /v1/download-video, /v1/transcribe |
| זכויות תוכן | ההצהרה שאדם מאשר לפני שקישור מיובא | /v1/content-rights |
| אימון דמויות | אימון מודל על דמות אחת | POST /v1/characters/:id/train |
| סצנות תלת־ממד | סצנות תלת־ממד שאפשר לערוך, ורינדור תלת־ממד Pro | POST /v1/3d-scene/generate, POST /v1/pro-3d-render |
חשבון
| דף | במה הוא עוסק | נקודות הקצה העיקריות |
|---|---|---|
| סביבות עבודה וארגונים | פעולה בתוך סביבת עבודה, ארגונים, חברים, הזמנות ושימוש | /v1/orgs, /v1/workspaces |
| קרדיטים | יתרה, תוכניות ומחירים, תנועות ובדיקות עלות | GET /v1/credits/balance, GET /v1/credits/transactions |
מדריך
| דף | במה הוא עוסק |
|---|---|
| שגיאות | מעטפת השגיאה, כל קודי השגיאה והרמזים לכשלים של משימות |
| מגבלות קצב | מגבלות לכל אסימון, מגבלות לכל נתיב, ואיך לטפל ב-429 |
| מפרט OpenAPI | המפרט הקריא למכונה ב-GET /v1/openapi.json, ולקוחות בשפות אחרות |
מגבלות ושגיאות
אסימון API אישי מאפשר כברירת מחדל 30 בקשות לדקה, ועד 120, בנקודות הקצה של הרצת תהליכים ושל רשימת תהליכים, ולכמה נתיבים יש מגבלות משלהם. בדיקות סטטוס לא נספרות במגבלה של האסימון. תגובת 429 פירושה שצריך להאט ולנסות שוב, ולהאריך את ההמתנה אקספוננציאלית לפני כל ניסיון; תגובת 4xx פירושה שצריך לתקן את הבקשה לפני ניסיון חוזר; תגובת 5xx היא בדרך כלל זמנית. ראו את דפי ה-API מגבלות קצב ושגיאות.
לקוחות לשפה שלכם
- TypeScript ו-JavaScript:
npm install @nodaro/sdk. ה-SDK עוטף את נקודות הקצה האלה בטיפוסים, בשגיאות עם טיפוס ובפונקציות עזר לתשאול. - הטרמינל ו-CI:
npm install -g @nodaro/cli. ה-CLI מריץ תהליכים, אפליקציות ורכיבים בודדים, עם--watchו---json. - כל שפה אחרת: צרו לקוח ממפרט OpenAPI, או שלחו בקשות HTTPS רגילות.
- עוזרי AI: חברו את שרת ה-MCP במקום לכתוב קוד.
שאלות נפוצות
מהי כתובת הבסיס של ה-API של Nodaro?
ב-Nodaro Cloud כתובת הבסיס של ה-API היא https://app.nodaro.ai, וכל נתיב מתחיל ב-/v1/, למשל https://app.nodaro.ai/v1/nodes. בהתקנה באירוח עצמי, השתמשו בכתובת של ההתקנה שלכם.
האם ה-API של Nodaro סינכרוני או אסינכרוני?
ה-API של Nodaro אסינכרוני ברובו. יצירה מחזירה מזהה משימה והרצת תהליך מחזירה מזהה הרצה, ואז בודקים את הסטטוס שלהם מדי כמה שניות עד שהם מסתיימים. בתהליכים שמסתיימים בפחות מדקה, הנתיב POST /v1/api/run?wait=true יכול במקום זאת להשאיר את החיבור פתוח.
באילו שפות תכנות אפשר להשתמש עם ה-API של Nodaro?
עם ה-API של Nodaro אפשר להשתמש בכל שפה שיכולה לשלוח בקשות HTTPS עם JSON. ל-TypeScript ול-JavaScript קיימת החבילה @nodaro/sdk, וממפרט OpenAPI 3.1 אפשר לייצר לקוחות עם טיפוסים ל-Go, ל-Rust, ל-Python ועוד.
האם ה-API של Nodaro עולה קרדיטים?
יצירות דרך ה-API של Nodaro עולות קרדיטים. ב-Nodaro Cloud, כל יצירה מוציאה קרדיטים לפי המחיר של המודל, כמו בעורך. בהתקנה של מהדורת Community באירוח עצמי אין מערכת קרדיטים, ואתם משלמים ישירות לספקי המודלים.
האם צריך מנוי כדי להשתמש ב-API?
לא צריך מנוי כדי להשתמש ב-API של Nodaro. ב-Nodaro Cloud, קנייה של חבילת קרדיטים כלשהי מפעילה תשלום לפי שימוש, וקרדיטי תשלום לפי שימוש עובדים ב-API, ב-SDK, ב-CLI וב-MCP. השימוש בעורך בדפדפן דורש מנוי.
דפים קשורים
אימות
תהליכים
רכיבים
משימות
שגיאות
עודכן לאחרונה