Skip to main content
API reference

M Studio API documentation

Build integrations with M Studio's public API. Create projects, generate AI images and videos, manage audio, and export — all from your own code.

Authentication

Authenticate by passing your API key in the X-API-Key header with every request.

Quick start

  1. Go to Settings → Developer and create an API key.
  2. Copy the key (it is only shown once).
  3. Add X-API-Key: sk_live_... to your requests.
cURL
curl -H "X-API-Key: sk_live_your_key_here" \
  -H "Accept: application/json" \
  https://mstudio.ai/api/v1/projects
JavaScript
const response = await fetch("https://mstudio.ai/api/v1/projects", {
  headers: {
    "X-API-Key": "sk_live_your_key_here",
    "Accept": "application/json",
  },
});

const { data } = await response.json();
console.log(data); // your projects

Scopes

Each API key can be restricted to specific scopes. Use * for full access.

ScopeAccess
projectsProjects CRUD, script generation, sharing
framesFrames CRUD, versions, comments, reviews, generation job polling
image_generationAI image generation, editing, multi-shot
video_generationAI video generation, extend, lip-sync
audioAudio tracks CRUD, voice / SFX generation
jobsGeneration job polling, cancellation, and retry
exportProject exports and video rendering
teamsTeam CRUD, invites, members
assetsAsset uploads, library management
voicesVoice library management

Rate limits

Requests are rate-limited per API key or per user (for Bearer token auth).

API key

60 requests / minute per key

Bearer token

120 requests / minute per user

When rate limited you'll receive a 429 response. Wait and retry with exponential backoff.

Projects

Create and manage storyboard projects.

Frames

Manage frames (shots) within a project. Each frame has a script, image, and optional video.

Image Generation

Generate AI images for frames. Requires an active subscription or wallet balance.

Video Generation

Generate AI videos from frame images. Videos are generated asynchronously — poll the generation job for status.

Generation Jobs

Poll the status of async AI generation jobs (image, video, voice, SFX).

Audio

Manage audio tracks (voiceover, music, SFX) on a project timeline. AI voice and SFX generation require paid access.

Assets

Upload and manage project assets (images, audio, video files).

Export

Export storyboard projects as video files. Requires paid access.

Teams

Create teams and manage members for collaboration.

Voices

Manage your voice library for AI voiceover generation.

Error codes

All responses use standard HTTP status codes. Error responses include a JSON body with success: false and a human-readable message.

CodeStatusDescription
200OKRequest succeeded.
201CreatedResource created successfully.
401UnauthorizedMissing or invalid API key / token.
402Payment RequiredSubscription or wallet balance needed.
403ForbiddenMissing required scope or endpoint not available via API key. error_code api_not_in_plan: the Unlimited plan has no REST API access (MCP works). error_code not_in_plan: a model or feature the Unlimited plan does not include.
404Not FoundResource does not exist.
422Validation ErrorRequest body failed validation. On a generation, error prompt_not_ready means the prompt cannot be sent as saved, and prompt_refused means Studio's input check refused it (sexual or undressed content with a child, a teen or a school student, or explicit sexual content): change the prompt.
429Rate LimitedToo many requests: wait and retry. With error_code quota_exceeded it is a plan limit instead, and waiting does not help. With error_code mcp_rate_limited, an Unlimited account has made its 30 create or generate calls this minute over MCP: wait a minute.

Error response format

json
{
  "success": false,
  "message": "API key missing required scope: video_generation"
}