Developers

Connect your own code and AI assistants to Sirv AI Studio with an API key, the REST API, the MCP server and webhooks.

Use the REST API, the MCP server and webhooks to read and change your Studio workspace from your own code or from an AI assistant. This page covers what every integration needs: plan access, API keys, authentication, limits, errors and pagination.

Who can use this

Free Core Growth Enterprise
Read through the API and MCP No No Yes Yes
Change data and run AI tools through the API and MCP No No No Yes
API and MCP requests per month None None 25,000 Custom
Webhook deliveries per month None None 100,000 Custom

On Growth, the API and MCP can read your workspace: list, get and search assets, products and workflows, and check usage. Requests that change data, run an AI tool or spend credits need full access, which comes with Enterprise. A request your plan does not include returns 402.

To open Settings > API keys, you need permission to view workspace settings. To generate, regenerate or revoke a key, you need permission to edit workspace settings. Owners and Admins have both by default.

Create an API key

  1. In Studio, open Settings > API keys.
  2. Click Generate API key.
  3. Copy the key with the copy button next to it. Studio shows the key once, under Save this key now.
  4. Store the key in your secrets manager or environment variables. Never put it in client-side code or a public repository.
  5. Click Hide key.

The API keys settings page with an active keyThe API keys settings page with an active key
Settings > API keys shows whether you have a key, and the buttons to regenerate or revoke it.

How API keys work:

  • The key is yours. It acts as you, with your role's permissions, in the workspace where you created it. If you leave that workspace or lose a permission, the key loses that access too.
  • You have one key. Generating a new key replaces your old one, even if you created the old one in another workspace.
  • Studio stores only a hash. Nobody at Sirv can show you the key again. If you lose it, regenerate it.
  • You can generate a key 3 times an hour.

Rotate or revoke a key

To rotate a key, click Regenerate and confirm. The old key stops working at once, so update your integrations with the new key straight away.

To revoke a key, click Revoke and confirm. Every integration that uses the key stops working, and you cannot undo this. Revoke a key from the workspace it belongs to.

Authenticate requests

The API base URL is https://www.sirv.studio. Send the key as a bearer token in the Authorization header of every request:

curl "https://www.sirv.studio/api/assets?limit=20" \
  -H "Authorization: Bearer $SIRV_STUDIO_API_KEY"

API keys start with sk_live_. A key always works in the workspace where you created it. If you also send an X-Org-Id header, it must name that same workspace, or Studio refuses the request with 401.

Request and response bodies are JSON. The API reference lists every endpoint, its fields and its responses, and you can download the specification as /openapi.json or /openapi.yaml.

AI tool endpoints spend your workspace's credits, at the same price as in the app. See Credits.

Request limits

Monthly limit. Every API request and every MCP tool call counts towards your workspace's monthly limit: 25,000 on Growth, custom on Enterprise. The count resets at 00:00 UTC on the first day of each month. When you reach it, requests return 402 with the code API_MCP_REQUEST_LIMIT_REACHED.

Rate limits. Studio also limits how many requests one person can send in a sliding one-hour window. The limit depends on the kind of request:

Kind of request Growth Enterprise
Reads 120,000 an hour 240,000 an hour
Changes and AI tools 10,000 an hour 30,000 an hour
Uploads 25,000 an hour 60,000 an hour

Some endpoints have their own, lower limits. Rate-limited responses carry these headers:

Header Meaning
X-RateLimit-Limit Requests allowed in the current window.
X-RateLimit-Remaining Requests left in the current window.
X-RateLimit-Reset Unix time, in seconds, when the window resets.
Retry-After Seconds to wait. Only sent with a 429.

When you get a 429, wait for Retry-After seconds before you try again. Do not retry at once in a loop.

Errors

Errors return a JSON body with an error message. Most also include a stable code that your code can check:

{
  "error": "API and MCP monthly request limit reached for this workspace.",
  "code": "API_MCP_REQUEST_LIMIT_REACHED"
}

Some errors add details, retryable, retryAfterMs or, for server errors, an eventId to quote to support.

Status Common codes What to do
400 Fix the request body or query parameters. The error message names the problem.
401 Check that the key is correct and has not been revoked.
402 API_MCP_ENTITLEMENT_REQUIRED, API_MCP_FULL_ENTITLEMENT_REQUIRED, API_MCP_REQUEST_LIMIT_REACHED, INSUFFICIENT_CREDITS Your plan does not include this request, the monthly limit is reached or the workspace is out of credits.
403 PERMISSION_DENIED Your role does not allow this action. Ask an Owner or Admin.
404 The item does not exist in this workspace.
429 RATE_LIMIT Wait for Retry-After seconds.
503 API_MCP_REQUEST_METER_UNAVAILABLE Studio cannot count requests right now. Wait for Retry-After seconds.
500 Try again later. If it keeps happening, contact support with the eventId.

Pagination

List endpoints page with limit and offset, and return a total:

curl "https://www.sirv.studio/api/assets?limit=100&offset=100" \
  -H "Authorization: Bearer $SIRV_STUDIO_API_KEY"
Endpoint Default limit Largest limit
GET /api/assets 50 100
GET /api/assets/search 50 100
GET /api/products 50 200
GET /api/products/search 10 50

GET /api/products also returns hasMore. When you filter products by readiness, page with cursor instead of offset: pass the nextCursor from each response until hasMore is false. A page can hold fewer products than limit, or none, while hasMore is still true.

Pages in this section

  • API reference: every REST endpoint, with its fields and responses.
  • MCP server: connect Claude or ChatGPT to your workspace.
  • Webhooks: get a request on your server when Studio creates an asset.