דילוג לתוכן
תיעוד ה־API

עוזרי AI

Claude, ChatGPT, Cursor וכל עוזר שמדבר MCP מתחברים ל־Reely בכתובת אחת ועובדים בשבילכם: מעלים סרטון, מתמחרים ומרנדרים ריל, רק במחיר שאישרתם.

כתובת השרת
https://app.reely.co.il/mcp
פרוטוקול
MCP ב־Streamable HTTP. כל בקשה עומדת בפני עצמה.
אימות
כניסה ואישור בדפדפן (OAuth 2.1), או מפתח API: Authorization: Bearer rly_…
כסף
אותם מחירים כמו באפליקציה וב־API, ושום חיוב בלי מחיר מאושר.

מחברים עוזר

  1. מוסיפים את Reely

    בהגדרות של העוזר מוסיפים שרת MCP, שלפעמים נקרא שם Connector או מחבר, עם הכתובת https://app.reely.co.il/mcp. לכל עוזר יש מדריך עם המסכים שלו:

  2. נכנסים ומאשרים

    העוזר פותח את Reely בדפדפן. נכנסים לחשבון ומחליטים מה מותר לו: לראות תמיד, ליצור ולרנדר רק אם הסימון נשאר. על כל עוזר שמתחבר נשלחת אליכם הודעה.

  3. מבקשים במילים

    מעכשיו העוזר משתמש ב־Reely כשמבקשים ממנו, למשל: «תכין ריל מהסרטון האחרון שהעליתי, עם כתוביות קריוקי, ותגיד לי כמה זה עולה». לפני כל חיוב הוא מראה את המחיר ומחכה לאישור.

מנתקים בחיבורים: ההרשאה נמחקת מיד, והקריאה הבאה של העוזר נדחית. יציאה מ־Reely בדפדפן לא מנתקת עוזרים.

עם מפתח API

לסוכן שרץ בשרת או ב־CI, או לכלי שלא נכנס דרך הדפדפן: שולחים מפתח API בכותרת Authorization. ב־MCP יש לו אותן הרשאות, אותו תקציב פרויקט ואותן מגבלות קצב כמו ב־API, ומפתח בדיקה חינמי גם כאן.

שמרו את המפתח במשתנה הסביבה REELY_API_KEY, ותנו לכל מכונה מפתח משלה: כך מבטלים אחד בלי לעצור את השאר. ליצירת מפתח

Claude Code

claude mcp add --transport http --scope user reely https://app.reely.co.il/mcp \
  --header "Authorization: Bearer $REELY_API_KEY"

Gemini CLI

gemini mcp add --transport http --scope user \
  --header "Authorization: Bearer $REELY_API_KEY" reely https://app.reely.co.il/mcp

Cursor, בקובץ ~/.cursor/mcp.json

{
  "mcpServers": {
    "reely": {
      "url": "https://app.reely.co.il/mcp",
      "headers": {
        "Authorization": "Bearer ${env:REELY_API_KEY}"
      }
    }
  }
}

VS Code, בקובץ .vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "reely-key",
      "description": "Reely API key",
      "password": true
    }
  ],
  "servers": {
    "reely": {
      "type": "http",
      "url": "https://app.reely.co.il/mcp",
      "headers": {
        "Authorization": "Bearer ${input:reely-key}"
      }
    }
  }
}

VS Code שואל את המפתח בפעם הראשונה ושומר אותו מוצפן, כך שהוא לא נכנס לקובץ.

בדיקה: אילו כלים המפתח מקבל

curl -sS https://app.reely.co.il/mcp \
  -H "Authorization: Bearer $REELY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

התשובה היא רשימת הכלים של המפתח. 401 אומר שהמפתח שגוי, פג או בוטל.

מחיר לפני כל חיוב

כלי שעולה כסף לא רץ במחיר שלא אושר. לכל אחד מהם יש כלי הערכה חינמי, והוא מקבל את הסכום מההערכה ב־expected_amount_agorot:

רינדור ריל
estimate_render ואז create_render
יצירת תמונת AI
estimate_image_generation ואז generate_image
ניתוח הקלטה ארוכה
estimate_clip_analysis ואז analyze_clip
  • הכלי שמחייב מסומן כפעולה שדורשת אישור (destructiveHint), ועוזרים שמכבדים את הסימון שואלים אתכם לפני שהם מריצים אותו.
  • אם המחיר השתנה מאז ההערכה, לא נגבה כלום: התשובה היא שגיאה עם המחיר החדש, והעוזר שואל שוב.
  • אותם פרטים בתוך 24 שעות מחזירים את התוצאה הראשונה במקום לחייב שוב. כדי לחזור על אותה עבודה בכוונה, העוזר שולח idempotency_key חדש.
  • הסכום נשמר כשהעבודה מתחילה, נגבה כשהיא מוכנה, ומשתחרר אם היא נכשלת.

קריאה ל־create_render

{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "create_render",
    "arguments": {
      "video_id": "vid_8f14e45f-ceea-4e7a-9b1c-2f7a0c3d9e61",
      "expected_amount_agorot": 1320,
      "style": "karaoke",
      "hook": "שלוש טעויות שעולות לכם כסף",
      "extras": {
        "broll": {
          "on": true
        }
      }
    }
  }
}

סרטון מהמחשב או מקישור

עוזר שרץ במחשב שלכם, כמו Claude Code, Cursor או Gemini CLI, מעלה קובץ בשלושה צעדים: start_upload מחזיר כתובת העלאה חתומה ופקודת curl מוכנה, העוזר מריץ אותה, ו־finish_upload יוצר את הסרטון. עד 500MB, ב־MP4, MOV או WebM, בתוך 15 דקות.

עוזר בצ׳אט, כמו Claude או ChatGPT, לא מגיע לקבצים שלכם. הוא מבקש קישור ומייבא אותו ב־import_from_link: קישור שיתוף פתוח של Google Drive,‏ Dropbox או OneDrive, או קישור ישיר לקובץ.

הכלים

כל כלי הוא קריאה אחת ל־API, עם אותן בדיקות ואותו חיוב, והיא נרשמת ביומן הקריאות. העוזר מקבל רק את הכלים של מה שפתוח בחשבון ושל ההרשאות שאישרתם: בלי «יצירה» הוא יכול רק לראות.

חשבון

  • whoamiקריאה

    החשבון והמפתח של הקריאה

    GET /api/v1/me

    מה העוזר קורא עליו

    Returns the Reely account this assistant is connected to (name, email, live or test). Use it to confirm the connection.

  • get_balanceקריאה

    יתרת קרדיטים

    GET /api/v1/balance

    מה העוזר קורא עליו

    The account's credit balance in shekels (available, and held for renders in progress).

  • get_pricesבלי מפתח

    מחירון

    GET /api/v1/prices

    מה העוזר קורא עליו

    Reely's price list in shekels: a reel is priced per finished second (music, captions and every format included), plus optional B-roll and narration.

  • list_brandsקריאה

    מותגים

    GET /api/v1/brands

    מה העוזר קורא עליו

    Lists the user's brands (name, colours, logo). When the user names a brand ("בסגנון של המותג X"), find its id here and pass it as brand_id.

העלאות

  • start_uploadיצירה

    התחלת העלאה

    POST /api/v1/uploads

    מה העוזר קורא עליו

    Starts uploading a video file from the user's computer (MP4, MOV or WebM, up to 500 MB). Only for an assistant that can run commands where the file is (Claude Code, Cursor, Gemini CLI, a terminal, an automation): a chat assistant can't reach the user's files, so it asks for a share link and uses import_from_link instead. Returns a signed upload_url; PUT the file's bytes to it with the exact command in the answer, within 15 minutes, then call finish_upload with the upload's id. Free.

  • get_importקריאה

    מצב ייבוא

    GET /api/v1/imports/{import_id}

    מה העוזר קורא עליו

    An import's progress: importing (with progress 0-100), checking, then ready or failed. Poll it every few seconds after import_from_link. When ready with a video_id, the video is in the studio: poll get_video until it is ready, then estimate_render and create_render. When ready with long_recording true, it is a clip: call estimate_clip_analysis with its clip_id and show the user the price. When failed, tell the user error.message (Hebrew): it says what went wrong and what to do. Nothing was charged.

סרטונים

  • finish_uploadיצירה

    יצירת סרטון מקובץ שהועלה

    POST /api/v1/videos

    מה העוזר קורא עליו

    Call it once the file's PUT to upload_url has succeeded: Reely checks the file, transcribes what is said in Hebrew and suggests opening titles. Free. Then call get_video every few seconds until its status is ready (usually under a minute), and price a reel with estimate_render. Pass brand_id (from list_brands) to make it in that brand.

  • list_videosקריאה

    רשימת סרטונים

    GET /api/v1/videos

    מה העוזר קורא עליו

    Lists the user's videos (newest first) with their status. Use it to find a video the user refers to by name ("הסרטון של המאפייה").

  • get_videoקריאה

    סרטון

    GET /api/v1/videos/{video_id}

    מה העוזר קורא עליו

    A video's processing status (ready means it can be rendered), its suggested opening titles and its reels.

  • get_transcriptionקריאה

    תמלול

    GET /api/v1/videos/{video_id}/transcription

    מה העוזר קורא עליו

    The Hebrew transcript of a video, with word timings. Use it to write a title or a post from what was said.

רינדורים

  • estimate_renderקריאה

    הצעת מחיר לרינדור

    POST /api/v1/renders/estimate

    חינם. מחזיר את המחיר ל־create_render.

    מה העוזר קורא עליו

    Prices a reel for a ready video, in shekels, without spending. ALWAYS call this first and show the user the price (formatted, e.g. ₪1.20) before calling create_render.

  • create_renderיצירה

    רינדור ריל

    POST /api/v1/renders

    עולה כסף, ורק במחיר מ־estimate_render.

    מה העוזר קורא עליו

    Renders the reel and SPENDS the user's credits. Only call it after estimate_render, after the user agreed to that exact price; pass the amount as expected_amount_agorot. If the price changed you get the new one and nothing is charged: ask again.

  • get_renderקריאה

    רינדור

    GET /api/v1/renders/{render_id}

    מה העוזר קורא עליו

    A reel's progress (queued, rendering, done, failed) and, once done, its download link. Poll every 5–10 seconds; a reel takes about a minute.

  • make_formatsיצירה

    כל הפורמטים

    POST /api/v1/renders/{render_id}/formats

    מה העוזר קורא עליו

    Makes the finished reel in 4:5, 1:1, 16:9 and 4:3 too, for free. The reel must be done.

  • get_captionsקריאה

    קובץ כתוביות

    GET /api/v1/renders/{render_id}/captions.srt

    מה העוזר קורא עליו

    The finished reel's captions as SRT text.

הקלטות ארוכות

  • list_clipsקריאה

    הקלטות ארוכות

    GET /api/v1/clips

    מה העוזר קורא עליו

    Lists the user's long recordings (lectures, podcasts, webinars), newest first, with their status. Use it to find the recording the user means ("ההרצאה מאתמול").

  • get_clipקריאה

    הקלטה ארוכה

    GET /api/v1/clips/{clip_id}

    מה העוזר קורא עליו

    A long recording's status. While analyzing, poll it every 10-20 seconds (a one-hour lecture takes a few minutes). Once analyzed it lists the moments for reels, strongest first: show the user each moment's title, hook, why and duration, and let them choose; then call create_clip_reels with the chosen moment ids. It also has the chapters and youtube_chapters, a ready chapter list for a YouTube description.

  • estimate_clip_analysisקריאה

    הצעת מחיר לניתוח

    POST /api/v1/clips/{clip_id}/analysis/estimate

    חינם. מחזיר את המחיר ל־analyze_clip.

    מה העוזר קורא עליו

    Prices the analysis of a long recording, in shekels, without spending: transcription, the moments for reels and chapters, priced per minute. ALWAYS call it first and show the user the price (formatted, e.g. ₪9.60) before calling analyze_clip. The recording's status must be ready.

  • analyze_clipיצירה

    ניתוח הקלטה ארוכה

    POST /api/v1/clips/{clip_id}/analysis

    עולה כסף, ורק במחיר מ־estimate_clip_analysis.

    מה העוזר קורא עליו

    Starts the analysis of a long recording and SPENDS the user's credits. Only call it after estimate_clip_analysis, after the user agreed to that exact price; pass the amount as expected_amount_agorot. If the price changed you get the new one and nothing is charged: ask again. Then poll get_clip until its status is analyzed. A failed analysis is never charged.

  • adjust_momentיצירה

    הזזת רגע

    POST /api/v1/clips/{clip_id}/moments/{moment_id}

    מה העוזר קורא עליו

    Moves a moment's start and end, in seconds on the recording's clock, when the user wants its reel to start earlier or end later. Both snap to word boundaries; the moment stays 15 to 90 seconds. Free. Only before create_clip_reels made its reel.

  • name_speakerיצירה

    שם לדובר

    POST /api/v1/clips/{clip_id}/speakers/{speaker_id}

    מה העוזר קורא עליו

    Names one of the voices in an analyzed long recording, so its reels show the name when that person first talks and the transcript uses it. Ask the user who each speaker is (a suggested_name is a guess from the recording) before calling it, and before create_clip_reels. Free.

  • create_clip_reelsיצירה

    רילים מרגעים

    POST /api/v1/clips/{clip_id}/reels

    מה העוזר קורא עליו

    Turns the moments the user chose into reels waiting in the studio, one studio video each. Free: nothing is rendered or charged yet. Then poll get_video for each video_id until it is ready, and render each with estimate_render and create_render once the user agrees to the price (each reel is priced by its length, like any reel).

  • get_clip_transcriptקריאה

    תמלול הקלטה ארוכה

    GET /api/v1/clips/{clip_id}/transcription

    מה העוזר קורא עליו

    The Hebrew transcript of an analyzed long recording, in paragraphs under its chapter titles. Use it to write a summary, a post or show notes from what was said. A two-hour recording's transcript is long.

יצירות

  • estimate_image_generationקריאה

    הצעת מחיר לתמונת AI

    POST /api/v1/generate/image/estimate

    חינם. מחזיר את המחיר ל־generate_image.

    מה העוזר קורא עליו

    Prices one AI image, in shekels, without spending. ALWAYS call it first and show the user the price (formatted, e.g. ₪0.35) before calling generate_image. Every shape costs the same.

  • generate_imageיצירה

    יצירת תמונת AI

    POST /api/v1/generate/image

    עולה כסף, ורק במחיר מ־estimate_image_generation.

    מה העוזר קורא עליו

    Makes an AI picture from a description and SPENDS the user's credits. Only call it after estimate_image_generation, after the user agreed to that exact price; pass the amount as expected_amount_agorot. Describe the subject, setting, light and style; the picture has no text in it. If the price changed you get the new one and nothing is charged: ask again. Then poll get_generation until it's ready. A failed picture is never charged.

  • get_generationקריאה

    יצירה

    GET /api/v1/generations/{generation_id}

    מה העוזר קורא עליו

    An AI image's or shot's status. While it's being made, poll it (every few seconds for a picture, every 10 seconds for a shot). Once ready, show the user the url, a link to the file that works for 24 hours. A failed one says why and was not charged.

פרסום

  • create_ad_packיצירה

    הכנת חבילת מודעה

    POST /api/v1/ad-packs

    מה העוזר קורא עליו

    Makes a free ad pack from one of the user's finished reels: the reel's versions in 9:16, 4:5 and 1:1, with three primary texts, three headlines and a call-to-action button written in the brand's voice, zipped for Meta's Ads Manager. Use it when the user wants to advertise a reel ("מודעה", "קמפיין", "לקדם"). It doesn't run an ad or spend anything. Then call get_ad_pack every few seconds until status is done and give the user zip.url.

  • get_ad_packקריאה

    חבילת מודעה

    GET /api/v1/ad-packs/{ad_pack_id}

    מה העוזר קורא עליו

    An ad pack's progress (queued, cutting, writing, zipping, done or failed) and, once done, zip.url: a link to the ZIP for Ads Manager, valid for an hour. Poll it every few seconds after create_ad_pack. When it failed, tell the user error.message (Hebrew).

  • list_ad_packsקריאה

    חבילות מודעה

    GET /api/v1/ad-packs

    מה העוזר קורא עליו

    Lists the user's ad packs, newest first, with their status. Use it to find the pack the user means; get_ad_pack has its ZIP.

קולות

  • list_voicesקריאה

    רשימת הקולות

    GET /api/v1/voices

    מה העוזר קורא עליו

    Lists the Hebrew voices a reel's narration can be read in: id, Hebrew name, gender, tone and a one-line Hebrew description, with a sample to listen to. When the user wants narration ("קריינות", "קול"), pick the voice that fits what they asked for, or the one they name, and pass its id as extras.voice.voice to both estimate_render and create_render. Hebrew is gendered: write a first-person script in the voice's gender.

ללקוחות OAuth

למי שבונה לקוח MCP. העוזרים המוכרים כבר עושים את כל זה בעצמם.

גילוי
/.well-known/oauth-protected-resource/mcp (RFC 9728) מוביל ל־/.well-known/oauth-authorization-server (RFC 8414), ושם כל הכתובות.
רישום
client_id שהוא כתובת https של מסמך מטא־דאטה (CIMD), או רישום דינמי ב־/api/auth/oauth2/register (RFC 7591).
הרשאה
authorization_code עם PKCE ב־S256 בלבד.
משאב
resource=https://app.reely.co.il/mcp (RFC 8707) בבקשת ההרשאה ובבקשת הטוקן. טוקן בלעדיו לא מתקבל ב־/mcp.
הרשאות
read, create ו־offline_access כדי להישאר מחובר. הרשאה שאף כלי עוד לא צריך לא ניתנת.
טוקנים
טוקן גישה תקף שעה. טוקן רענון תקף 30 יום ומתחלף בכל שימוש, ואת אותו רענון אפשר לשלוח שוב עד 30 שניות אחריו.
כתובות חזרה
https; ‏http רק למחשב עצמו (localhost, 127.0.0.1 או [::1]), בכל פורט; או scheme של אפליקציה בצורת דומיין הפוך, כמו com.example.app:/callback (RFC 8252). scheme של מילה אחת מתקבל רק מאפליקציות שאנחנו מכירים, Cursor, ‏VS Code ו־Windsurf, כי מילה אחת יכולה להיות של דפדפן שמעביר את האישור הלאה לאתר. כתובת אחרת נדחית ברישום עם invalid_redirect_uri.
ניתוק
401 עם WWW-Authenticate שמפנה ל־resource_metadata: מתחילים הרשאה מחדש.
דפדפן
CORS פתוח לכל מקור, עם הטוקן בכותרת בלבד ובלי עוגיות.