Developers
Build on Marketing Studio.
Everything your team does in the studio is available to your code and your AI agents — with scoped tokens, clear limits and an open specification.
REST API
Versioned JSON endpoints for content, publishing, generation, analytics, attribution, leads and compliance.
MCP server
Connect your own AI agent: it can draft content, schedule posts, generate images and read your numbers.
Tracking & webhooks
A first-party pixel, server-side conversions and signed WooCommerce and Shopify order webhooks.
Quickstart
Three steps from zero to your first request.
- 01
Create a token
Settings → API tokens. Pick the scopes the integration needs and, ideally, bind it to one brand.
- 02
Send it as a Bearer header
Every request carries Authorization: Bearer <token>. Unbound tokens also send X-Workspace-Id.
- 03
Call the API
All responses are JSON. Lists are paginated; long jobs return an id you can poll.
curl https://api.studio.pro.plus/api/v1/content?status=review \
-H "Authorization: Bearer $MS_TOKEN" \
-H "Accept: application/json"
curl -X POST https://api.studio.pro.plus/api/v1/content \
-H "Authorization: Bearer $MS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"social_post","title":"Autumn launch","body":"New single-origin beans are here.","language":"en"}'Authentication & scopes
Tokens are personal access tokens. Each one carries scopes; a request outside its scopes returns 403 with code insufficient_scope.
| Scope | Allows |
|---|---|
content:read | List and read content, the calendar, channels and the publishing queue. |
content:write | Create drafts, edit them, comment and submit for review. Includes content:read. |
publish | Schedule or publish posts to connected channels (approval rules still apply). |
generate | Start image and media generations, ask Marketing Copilot, run compliance checks. Uses credits. |
analytics:read | Dashboard metrics, executive reports and revenue attribution. |
seo:read | Tracked keywords, SEO overview and AI-answer visibility. |
leads:read | Scored leads with explanations, and contacts. |
leads:write | Record conversions and create contacts. Includes leads:read. |
Rate limits & errors
Each token can make 120 requests per minute. Every response carries X-RateLimit-Limit and X-RateLimit-Remaining; a 429 tells you how long to wait in Retry-After.
Missing, expired or revoked token.
Scope missing (insufficient_scope), endpoint not public (not_public_api) or token bound to another brand (workspace_mismatch).
Validation failed — errors lists every field.
An integration key (for example an AI provider) is not configured for the account.
Too many requests — retry after the given seconds.
Endpoints
The full description, with every field, is in the OpenAPI 3.1 document.
Content
/contentList content with filterscontent:read/contentCreate a draftcontent:write/content/{id}Get one item with body and scorescontent:read/content/{id}/submitSend a draft to reviewcontent:writePublishing
/social/channelsConnected channelscontent:read/social/publishPublish now, at a time or at the best timepublishGeneration
/generationsStart an image generationgenerate/generations/{id}Poll a generationgenerate/copilot/askAsk Marketing CopilotgenerateAnalytics & attribution
/dashboardRevenue, traffic, AI share, cost per leadanalytics:read/platform/attributionMulti-touch revenue attributionanalytics:read/platform/conversionsRecord a lead or an orderleads:writeSEO
/seo/keywordsTracked keywordsseo:read/seo/visibilityAI-answer visibilityseo:readLeads
/platform/leadsScored leadsleads:read/platform/leads/{contact_id}Score breakdown and timelineleads:readCompliance
/platform/compliance/checkCheck a text or a content itemgenerateMCP
MCP server for your AI agents
Marketing Studio speaks the Model Context Protocol over Streamable HTTP. Any MCP-capable agent can discover the tools, then act within the token’s scopes — drafts stay drafts until a person approves them.
- Endpoint
POST https://api.studio.pro.plus/api/mcp- Authentication
- Bearer personal access token (scopes decide which tools appear)
- Protocol versions
2026-07-28 · 2025-11-25 · 2025-06-18 · 2025-03-26
Client configuration
{
"mcpServers": {
"marketing-studio": {
"type": "http",
"url": "https://api.studio.pro.plus/api/mcp",
"headers": { "Authorization": "Bearer <your token>" }
}
}
}POST /api/mcp
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: create_content_draft
{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{
"name":"create_content_draft",
"arguments":{"type":"article","title":"How to brew for a team of 40","submit_for_review":true},
"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28"}}}Tools
list_contentcontent:readList the brand’s content with status and scores
get_contentcontent:readRead one item in full
create_content_draftcontent:writeCreate a draft or send it to review
list_channelscontent:readConnected channels and their ids
schedule_postpublishSchedule a post, or let the studio pick the best time
generate_imagegenerateGenerate an on-brand image
get_generationgenerateCheck a generation and get the image
get_dashboard_metricsanalytics:readRevenue, traffic and growth rings
get_attributionanalytics:readRevenue by channel, campaign and content
ask_copilotgenerateAsk the brand’s analyst a question
list_keywordsseo:readTracked keywords and positions
list_hot_leadsleads:readScored leads with the signals behind them
check_compliancegenerateCheck copy against policy packs
Tracking & attribution
One script on your site records campaign visits with UTM parameters and click ids in a first-party cookie. Pair it with order webhooks and every sale is credited to the channels, campaigns and content that earned it.

<script async src="https://api.studio.pro.plus/t.js" data-key="ms_your_site_key"></script>Identify visitors and record conversions
mstudio("identify", { email: "sara@example.com", name: "Sara Ahmadi" });
mstudio("track", "lead", { email: "sara@example.com" });
mstudio("track", "purchase", { value: 49, currency: "USD", order_id: "1042" });Signed shop webhooks
WooCommerce and Shopify sign every order with HMAC-SHA256. Use the URL and secret from Attribution → Set up tracking. Retries are safe: orders are de-duplicated and refunds are subtracted.
// Every order webhook is signed:
// X-WC-Webhook-Signature / X-Shopify-Hmac-Sha256 = base64(HMAC-SHA256(raw body, secret))
https://api.studio.pro.plus/api/v1/webhooks/platform/shop/woocommerce/<site key>
https://api.studio.pro.plus/api/v1/webhooks/platform/shop/shopify/<site key>Server-side conversions
curl -X POST https://api.studio.pro.plus/api/v1/platform/conversions \
-H "Authorization: Bearer $MS_TOKEN" -H "Content-Type: application/json" \
-d '{"type":"purchase","value":120,"currency":"USD","external_id":"order-1042","email":"sara@example.com"}'Developers
Ready when your team is.
Create a token in a minute — or talk to us about a custom integration.