The AdLiftr API & MCP server, built for developers.
Launch and manage Meta, TikTok, Google, and Snapchat campaigns from your own stack. A documented REST API and MCP server, same engine and accounts as the dashboard — for teams that want to build on AdLiftr.
Included in every plan · From $79/month · Flat per account, not per API call
One launch engine. Three ways to drive it.
The dashboard, the REST API, and the MCP server all hit the same engine — so what you launch from code or an agent is identical to what you’d build by hand, on the same connected accounts.
Drive the launch workflow from your own code
A versioned REST API for the whole pipeline: list connections and ad accounts, import creatives from a URL, create campaigns, manage lifecycle, pull performance, and sync platform data. Every response uses a predictable success / data / error envelope.
- Create campaigns on Meta, TikTok, Google & Snapchat
- Import image & video creatives straight from URLs
- Pull performance and dashboard metrics
- Sync accounts, assets, pixels, campaigns & rules
Let an AI agent run the campaigns
A remote Model Context Protocol server exposes the same capabilities as tools an agent can call. Point Claude, Cursor, ChatGPT, or any MCP client at AdLiftr and describe what you want shipped — it searches your entities, then launches and manages campaigns for you.
- Works with any MCP-compatible client
- Create & manage campaigns by prompt
- search_entities before mutations — no guessing UUIDs
- Same API key as the REST API
Launch a campaign with one request
Authenticate with a Bearer key, post a launch payload, and AdLiftr imports your media and creates the campaign on the platform you choose. Set startPaused for a safe dry run that never spends.
curl -X POST https://api.adliftr.com/api/public/v1/campaigns \
-H "Authorization: Bearer $ADLIFTR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "6ac68cc8-bc2e-4102-92e6-92c12ff7ba9e",
"platform": "meta",
"campaign": { "objective": "OUTCOME_SALES" },
"creatives": [
{ "imageUrl": "https://cdn.example.com/ugc-01.jpg" }
],
"launch": { "startPaused": true }
}'
# → { "success": true, "data": { "campaignId": "..." }, "error": null }Predictable envelope
Every response is { success, data, error } — easy to handle in any language.
Media from URLs
Pass image or video URLs and AdLiftr imports them to the platform before launch. No separate upload step required.
Safe dry runs
startPaused: true creates everything in a non-spending state for review.
Everything the dashboard does, as an API
A focused v1 surface that covers the real lifecycle: discover your accounts, launch and manage campaigns, then measure and sync. Full schemas live in the interactive OpenAPI docs.
Discover
- GET /workspaces
- GET /connections
- GET /ad-accounts
- GET /ad-profiles
- POST /search
Launch & manage
- POST /campaigns
- PATCH /campaigns/:id
- PATCH /ad-sets/:id
- PATCH /ads/:id
- POST /assets/import
Measure & sync
- POST /performance
- POST /dashboard
- GET /creative-issues
- POST /automated-rules
- POST /sync
Agentic media buying, over a standard protocol
AdLiftr’s remote MCP endpoint speaks JSON-RPC 2.0 and plugs into any MCP client. Your agent lists the tools, searches your campaigns and assets, then launches and manages them — with the same key, the same accounts, and the same safety rails as the API.
POST https://api.adliftr.com/mcp
Authorization: Bearer $ADLIFTR_API_KEY
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_campaign",
"arguments": {
"platform": "tiktok",
"campaign": { "objective": "TRAFFIC" },
"launch": { "startPaused": true }
}
}
}Tools your agent can call
Agents are guided to call search_entities before any mutation and to default test launches to paused — so an assistant can act confidently without spending by accident.
What teams actually build on the AdLiftr API and MCP
The most common reason teams reach for the API is the same one that drives any move from a UI to a programmable surface: the work they are doing is too repetitive to do by hand and too irregular to template in the dashboard. A typical first integration is a nightly job that pulls performance from every connected ad account on Meta, TikTok, Google Ads, and Snapchat, normalises the metrics into a single schema, and writes them into a Postgres table or BigQuery dataset that the rest of the analytics stack already knows how to query. The whole job is usually under one hundred lines of code and replaces a manual reporting exercise that used to take a media buyer half a day every Monday.
The second common build is a launch automation. The pattern looks like a small service or scheduled Worker that watches a folder of new creative (S3, a Notion database, Linear tickets — whatever your team already uses), validates the assets against the relevant ad spec, generates ad names and UTMs from a deterministic convention, and publishes a paused batch to the right ad account through the AdLiftr API. A human still flips the batch live, which is the part you want to keep in a person's hands; everything before that is now boring and consistent. Teams running this kind of pipeline tend to launch four to ten times more variants per week with the same headcount.
The third — and the most common for non-engineering media buyers — is the MCP-driven workflow: connect AdLiftr as a tool inside an AI assistant like Claude, Cursor, Perplexity, Codex, OpenClaw, or Hermes, and then run launches in plain language. The assistant calls the same MCP tools (list_campaigns, search_entities, create_campaign, get_performance) that you would call yourself, but the prompts are written conversationally. This is the path most people now take when they want programmatic leverage without writing or maintaining code, and it is the reason the API and MCP are included on every plan rather than gated behind an enterprise tier.
Across all three patterns, the practical guidance is the same: treat the AdLiftr v1 API as your contract. The underlying ad-network APIs change on their own schedule; the AdLiftr surface stays stable and we absorb the platform updates. That stability is what makes it safe to put a launch pipeline or an AI assistant in front of real ad accounts in the first place.
The boring parts, handled
API-key auth
Generate a key in the dashboard, send it as Authorization: Bearer (or x-adliftr-api-key). Keys are shown once, stored as hashes, and revocable anytime.
Generous rate limits
600 requests per minute by default, raisable per customer. No metered per-call billing inside your plan.
OpenAPI + Scalar docs
A published OpenAPI spec and interactive docs you can try requests against, plus a machine-readable JSON spec for codegen.
Four platforms, one contract
Meta, TikTok, Google, and Snapchat share a single launch shape. Money is entered in normal currency; micro-currency conversion happens server-side.
What the AdLiftr API actually enables for engineering teams
When engineering teams build against the AdLiftr REST API
In our customer base, the engineering teams that integrate against the REST API directly are usually at one of three triggers: spend above $50,000/month per brand (UI workflows break down), more than 200 ad launches per week (manual launch becomes a full-time role), or a need for programmatic campaign creation triggered by external events (inventory changes, price changes, performance data from internal attribution). All three benefit from the same API surface: campaign and ad creation, asset management, rule binding, and reporting. The endpoints mirror the same operations the UI exposes; everything you can do in the dashboard you can do over HTTPS.
The MCP server is the same capability, different audience
The MCP server exposes the same operations the REST API does, but the audience is different. The REST API is for your backend code. The MCP server is for AI agents — Claude, Cursor, Perplexity, Codex, OpenClaw, Hermes — that non-technical operators use day-to-day. Both paths hit the same authentication, the same rate limits, the same audit log. The choice between them is interface, not capability. The AI agent surface is covered on the AI autopilot pillar.
Authentication, rate limits, and idempotency: the boring guarantees that matter
The API uses bearer-token authentication scoped per workspace. Rate limits are 1,000 requests per minute per token with burst tolerance for batched launches. Every mutating endpoint accepts an idempotency key, so retrying a failed launch never creates duplicate campaigns. These are the boring guarantees that make the API safe to use from automated systems — and they apply equally whether you hit the API from your backend or from an MCP-driven AI agent.
API & MCP FAQ
Does AdLiftr have a public API?
+
Yes. A public REST API (v1) lets you inspect, launch, sync, report on, and manage Meta, TikTok, Google Ads, and Snapchat campaigns. Authenticate with an API key as a Bearer token. Interactive OpenAPI docs are at api.adliftr.com/developers.
What is the AdLiftr MCP server?
+
A remote Model Context Protocol server so an AI agent — in Claude, Cursor, ChatGPT, or any MCP client — can launch and manage your campaigns in plain language. It exposes tools like create_campaign, list_campaigns, search_entities, and get_performance, using the same API key as the REST API.
Which platforms can I launch through the API and MCP?
+
All four AdLiftr platforms — Meta, TikTok, Google Ads, and Snapchat. One create-campaign call can target any of them, and you can start campaigns paused for safe dry runs.
How do I authenticate?
+
Generate an API key in the dashboard under Developer, then send it as Authorization: Bearer (or x-adliftr-api-key). Keys are shown once, stored as hashes, and revocable. Default rate limit is 600 requests/minute.
Is the API metered or does it cost extra?
+
No extra metered charge. The API and MCP server are part of your plan, which is flat per ad account ($79/$199/$499 per month) — not a percentage of ad spend.
Can an agent spend my money by accident?
+
The design minimizes that risk: agents are guided to search before mutating and to default test launches to startPaused, which creates campaigns in a non-spending state until you flip them live.
How do API rate limits work in practice?
+
The default limit is 600 requests per minute per API key, which is well above what a single human user generates and comfortable for typical agent workflows. Limits are returned as standard RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset response headers so any well-behaved client can back off automatically. If you have a use case that genuinely needs more throughput — for example a bulk-historical sync job or a fleet of agents running in parallel across many ad accounts — open the in-app chat and we can raise the ceiling per workspace rather than charging a separate enterprise tier.
Where can I read the actual schema?
+
The full OpenAPI 3.1 specification is published at api.adliftr.com/developers and rendered with an interactive try-it console so you can authenticate with a test key and call real endpoints from the browser. The spec is the source of truth: it lists every endpoint, every request body field, every response shape, and the rate-limit headers. Most teams also point their AI assistant at the spec URL so it can generate idiomatic client code on the fly in whichever language they work in.
Does the API or MCP have access to my creative files?
+
Only the ones you explicitly upload through AdLiftr — either through the dashboard or by calling the upload endpoints directly. We do not pull from third-party file stores, customer data warehouses, or cloud drives unless you connect them by hand. The MCP tools expose the same upload surface, so an agent can be told to push a creative file from a known local path or URL, but it cannot enumerate files on your machine.
What happens if Meta, TikTok, Google, or Snapchat changes its API?
+
The major ad networks ship API changes on roughly quarterly cycles. We track the official release notes, run our integration suite against the new versions in advance, and roll the AdLiftr-side translation forward without breaking the public REST API or MCP surface that you call. From your side, the contract you write code against is the AdLiftr v1 API — not the underlying platform APIs — so a Meta v22 to v23 migration does not require any change on your end.
Can I run the same code against staging or a sandbox?
+
Yes. The same API key surface works against a sandbox workspace where you can connect test ad accounts, launch real (paused) campaigns to verify behaviour, and exercise the MCP tools without spending real budget. This is the recommended path for any team building an automated launch pipeline — wire it end to end in sandbox first, then flip the workspace value to your production credentials.
Related pages
Media buying platform
How the dashboard, API, and MCP fit together across four platforms.
Meta ads bulk upload
The same launch engine, driven from the UI for Meta.
Google Ads bulk upload
Bulk launch RSAs, PMax, and Demand Gen — also available via API.
Snapchat ads bulk upload
Launch Snapchat campaigns by hand or programmatically.
Ship your first programmatic launch today.
Generate a key, read the docs, and launch a paused test campaign in minutes. The API and MCP server are included in every plan.