# Probably developer docs

> Build on Probably's AI UGC video production from your own agents and code: a remote MCP server for AI apps, an HTTP API with API keys for servers, and signed webhooks for events.

The MCP server is https://studio.probably.co/api/mcp; the HTTP API is under https://studio.probably.co/api/v1, described by https://studio.probably.co/api/v1/openapi.json.

## Get started

- [Probably developer docs](https://studio.probably.co/docs): Build on Probably's AI UGC video production from your own agents and code: the MCP server, the HTTP API with API keys, and signed webhooks.
- [Quickstart: Claude Code](https://studio.probably.co/docs/quickstart/claude-code): Connect Claude Code to Probably's MCP server with OAuth or an API key, and make your first video from the terminal.
- [Quickstart: Codex](https://studio.probably.co/docs/quickstart/codex): Add Probably to Codex as a remote MCP server, signed in with OAuth or an API key from an environment variable.
- [Quickstart: opencode](https://studio.probably.co/docs/quickstart/opencode): Add Probably to opencode as a remote MCP server, signed in with OAuth or an API key in its headers.
- [Quickstart: curl](https://studio.probably.co/docs/quickstart/curl): Call Probably's HTTP API from the shell with an API key: list your Spaces, read events and talk to the MCP endpoint.
- [Quickstart: TypeScript](https://studio.probably.co/docs/quickstart/typescript): Prepare and confirm a video from TypeScript with the Probably SDK, or with fetch against Probably's HTTP API.
- [Claude Code and Codex plugin](https://studio.probably.co/docs/plugin): Install Probably's plugin for Claude Code, or its skills for Codex: recipes for testing hooks, turning an ad into a brief, research and scripts, and checking on videos.

## Guides

- [Authentication](https://studio.probably.co/docs/authentication): How Probably's MCP server and HTTP API authenticate: OAuth connections for AI apps and API keys for your own code, each scoped to one organization and optionally one Space.
- [Sandbox keys](https://studio.probably.co/docs/sandbox): Build and test an integration for nothing: a sandbox key works with every tool in your organization's sandbox, answered from recordings, with nothing charged.
- [Connect an AI app with MCP](https://studio.probably.co/docs/mcp): Connect Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or opencode to Probably's remote MCP server.
- [Events and webhooks](https://studio.probably.co/docs/events): Probably's event types and payload, reading events by cursor, and signed webhooks with retries, pausing and replay.
- [Spend confirmations](https://studio.probably.co/docs/spend-confirmations): How paid work is prepared, shown to a person and confirmed, so an agent can never spend credits by retrying.
- [Stage primitives](https://studio.probably.co/docs/stages): Chain research, a brainstorm, a script and a review on one video, review a video you made, and read hook history and a stage that needs review.
- [Idempotency](https://studio.probably.co/docs/idempotency): Request keys make Probably's write tools safe to retry: the same key answers with the first result.

## Reference

- [HTTP API reference](https://studio.probably.co/docs/api): Every endpoint of Probably's HTTP API, generated from its OpenAPI document: the permission each needs, its input fields and its answer.
- [MCP tool reference](https://studio.probably.co/docs/mcp/tools): Every tool Probably's MCP server offers, generated from its tool catalog: kind, hints, description and inputs.
- [Errors](https://studio.probably.co/docs/errors): Every refusal Probably's API answers with: its outcome, HTTP status and what to do about it.
- [Rate limits](https://studio.probably.co/docs/rate-limits): The rate limits on connections and API keys, and the other limits an integration meets.
- [Versioning and deprecation](https://studio.probably.co/docs/versioning): How Probably's API is versioned, which changes ship without notice and how breaking changes are announced.
- [API pricing](https://studio.probably.co/docs/pricing): What API and MCP calls cost: the same credits as the studio, capped prices for the stage primitives, and the media primitives' prices to come.

## HTTP API operations

- [get_connection](https://studio.probably.co/docs/api/get_connection): This connection, `POST /api/v1/tools/get_connection`
- [list_spaces](https://studio.probably.co/docs/api/list_spaces): List Spaces, `POST /api/v1/tools/list_spaces`
- [list_videos](https://studio.probably.co/docs/api/list_videos): List videos, `POST /api/v1/tools/list_videos`
- [get_media](https://studio.probably.co/docs/api/get_media): Get a delivered video's links, `POST /api/v1/tools/get_media`
- [get_credits](https://studio.probably.co/docs/api/get_credits): Credit balance, `POST /api/v1/tools/get_credits`
- [get_video](https://studio.probably.co/docs/api/get_video): Get a video, `POST /api/v1/tools/get_video`
- [wait_for_video](https://studio.probably.co/docs/api/wait_for_video): Wait for a video to change, `POST /api/v1/tools/wait_for_video`
- [list_formats](https://studio.probably.co/docs/api/list_formats): List formats, `POST /api/v1/tools/list_formats`
- [list_personas](https://studio.probably.co/docs/api/list_personas): List personas, `POST /api/v1/tools/list_personas`
- [list_products](https://studio.probably.co/docs/api/list_products): List products, `POST /api/v1/tools/list_products`
- [create_space](https://studio.probably.co/docs/api/create_space): Create a Space, `POST /api/v1/tools/create_space`
- [save_persona](https://studio.probably.co/docs/api/save_persona): Save a persona, `POST /api/v1/tools/save_persona`
- [save_product](https://studio.probably.co/docs/api/save_product): Save a product, `POST /api/v1/tools/save_product`
- [prepare_audience_research](https://studio.probably.co/docs/api/prepare_audience_research): Prepare audience research, `POST /api/v1/tools/prepare_audience_research`
- [get_audience_research](https://studio.probably.co/docs/api/get_audience_research): Get audience research, `POST /api/v1/tools/get_audience_research`
- [save_segments](https://studio.probably.co/docs/api/save_segments): Save segments, `POST /api/v1/tools/save_segments`
- [list_segments](https://studio.probably.co/docs/api/list_segments): List segments, `POST /api/v1/tools/list_segments`
- [list_campaigns](https://studio.probably.co/docs/api/list_campaigns): List campaigns, `POST /api/v1/tools/list_campaigns`
- [get_campaign](https://studio.probably.co/docs/api/get_campaign): Get a campaign, `POST /api/v1/tools/get_campaign`
- [plan_campaign](https://studio.probably.co/docs/api/plan_campaign): Plan a campaign, `POST /api/v1/tools/plan_campaign`
- [change_campaign_ad](https://studio.probably.co/docs/api/change_campaign_ad): Change a campaign ad, `POST /api/v1/tools/change_campaign_ad`
- [set_body_format](https://studio.probably.co/docs/api/set_body_format): Set a body's format, `POST /api/v1/tools/set_body_format`
- [prepare_campaign_batch](https://studio.probably.co/docs/api/prepare_campaign_batch): Prepare a campaign batch, `POST /api/v1/tools/prepare_campaign_batch`
- [prepare_campaign_openings](https://studio.probably.co/docs/api/prepare_campaign_openings): Prepare a segment's openings, `POST /api/v1/tools/prepare_campaign_openings`
- [begin_results_upload](https://studio.probably.co/docs/api/begin_results_upload): Begin a results upload, `POST /api/v1/tools/begin_results_upload`
- [import_ad_results](https://studio.probably.co/docs/api/import_ad_results): Import ad results, `POST /api/v1/tools/import_ad_results`
- [decide_learning](https://studio.probably.co/docs/api/decide_learning): Save or discard a learning, `POST /api/v1/tools/decide_learning`
- [plan_next_batch](https://studio.probably.co/docs/api/plan_next_batch): Plan the next batch, `POST /api/v1/tools/plan_next_batch`
- [list_assets](https://studio.probably.co/docs/api/list_assets): List library media, `POST /api/v1/tools/list_assets`
- [read_link](https://studio.probably.co/docs/api/read_link): Read a pasted post, `POST /api/v1/tools/read_link`
- [begin_upload](https://studio.probably.co/docs/api/begin_upload): Begin an upload, `POST /api/v1/tools/begin_upload`
- [complete_upload](https://studio.probably.co/docs/api/complete_upload): Complete an upload, `POST /api/v1/tools/complete_upload`
- [withdraw_instruction](https://studio.probably.co/docs/api/withdraw_instruction): Withdraw a queued instruction, `POST /api/v1/tools/withdraw_instruction`
- [send_instruction_now](https://studio.probably.co/docs/api/send_instruction_now): Send a queued instruction now, `POST /api/v1/tools/send_instruction_now`
- [stop_video](https://studio.probably.co/docs/api/stop_video): Stop a video, `POST /api/v1/tools/stop_video`
- [approve_delivery](https://studio.probably.co/docs/api/approve_delivery): Approve a delivery, `POST /api/v1/tools/approve_delivery`
- [discard_change](https://studio.probably.co/docs/api/discard_change): Discard a proposed change, `POST /api/v1/tools/discard_change`
- [approve_listen](https://studio.probably.co/docs/api/approve_listen): Approve a video's voice, `POST /api/v1/tools/approve_listen`
- [skip_listen](https://studio.probably.co/docs/api/skip_listen): Skip listening to a video's voice, `POST /api/v1/tools/skip_listen`
- [keep_word](https://studio.probably.co/docs/api/keep_word): Keep a flagged word as it sounds, `POST /api/v1/tools/keep_word`
- [fix_word](https://studio.probably.co/docs/api/fix_word): Fix how a word is said, `POST /api/v1/tools/fix_word`
- [approve_storyboard](https://studio.probably.co/docs/api/approve_storyboard): Approve a video's storyboard, `POST /api/v1/tools/approve_storyboard`
- [skip_storyboard](https://studio.probably.co/docs/api/skip_storyboard): Skip a video's storyboard, `POST /api/v1/tools/skip_storyboard`
- [share_video](https://studio.probably.co/docs/api/share_video): Share a delivered video, `POST /api/v1/tools/share_video`
- [revoke_share](https://studio.probably.co/docs/api/revoke_share): Revoke a share link, `POST /api/v1/tools/revoke_share`
- [send_message](https://studio.probably.co/docs/api/send_message): Message Looky, `POST /api/v1/tools/send_message`
- [prepare_video](https://studio.probably.co/docs/api/prepare_video): Prepare a new video, `POST /api/v1/tools/prepare_video`
- [prepare_regenerate](https://studio.probably.co/docs/api/prepare_regenerate): Prepare a new version, `POST /api/v1/tools/prepare_regenerate`
- [prepare_variants](https://studio.probably.co/docs/api/prepare_variants): Prepare variants, `POST /api/v1/tools/prepare_variants`
- [prepare_apply_change](https://studio.probably.co/docs/api/prepare_apply_change): Prepare to apply a change, `POST /api/v1/tools/prepare_apply_change`
- [confirm_spend](https://studio.probably.co/docs/api/confirm_spend): Confirm a spend, `POST /api/v1/tools/confirm_spend`
- [research](https://studio.probably.co/docs/api/research): Prepare research, `POST /api/v1/tools/research`
- [brainstorm](https://studio.probably.co/docs/api/brainstorm): Prepare a brainstorm, `POST /api/v1/tools/brainstorm`
- [write_script](https://studio.probably.co/docs/api/write_script): Prepare a script, `POST /api/v1/tools/write_script`
- [review](https://studio.probably.co/docs/api/review): Prepare a review, `POST /api/v1/tools/review`
- [generate_clip](https://studio.probably.co/docs/api/generate_clip): Prepare a clip, `POST /api/v1/tools/generate_clip`
- [voice](https://studio.probably.co/docs/api/voice): Prepare recordings, `POST /api/v1/tools/voice`
- [storyboard](https://studio.probably.co/docs/api/storyboard): Prepare a storyboard, `POST /api/v1/tools/storyboard`
- [get_stage](https://studio.probably.co/docs/api/get_stage): Read a stage, `POST /api/v1/tools/get_stage`
- [list_events](https://studio.probably.co/docs/api/list_events): List events, `GET /api/v1/events`

## Optional

- [Every docs page in full](https://studio.probably.co/docs/llms-full.txt): the words of every page above, as Markdown

- [OpenAPI document](https://studio.probably.co/api/v1/openapi.json): the HTTP API's contract
