API documentation
Connect ZAPPED cards, analytics, teams, domains, pixels, and billing data to your own workflows.
https://zapped.to/api
Use bearer authentication for every request.
Customer keys are managed on one API keys page. The account API uses /api, managed-profile REST uses /api/managed-profiles, and MCP uses /mcp. Each surface still requires its own plan access and enabled site controls. Business plans include the developer API, the managed profile API and MCP connections for AI assistants. Team and Business plans include dashboard CSV profile import and lead webhooks. Solo includes none of these. Accounts on earlier plans keep the access shown on their Plan page. Profile publication requires owner review; permitted account API changes to other resources can take effect directly. Webhook signing secrets are separate from API keys.
Authentication
Send an API key as a bearer token with each request. Create keys on the API keys page of your account. Each key has only the permissions you choose, and each endpoint lists the scope it needs, for example projects:read to read projects or projects:write to change them. The same key works with the Managed profiles and MCP API when it has those permissions.
Account API writes take form fields, sent as multipart/form-data or application/x-www-form-urlencoded, as the examples show. A JSON body is read as empty and answers 422. Lists return data, meta with page, total_pages, results_per_page and total_results, and links. links.next is null on the last page. The managed profile API is different: it takes JSON and answers in its own envelope.
Example request
--url 'https://zapped.to/api/{endpoint}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
Errors
API errors return a status code and readable message so your integration can react predictably. Authentication and limit errors also carry a stable code, such as account_key_retired, insufficient_scope, plan_unavailable, rate_limited or too_many_concurrent_requests. Read the code, because messages may change.
Error response example
{
"errors": [
{
"title": "You do not have access to the API.",
"status": 401
}
]
}
Status codes
RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset when the minute quota was checked. A 429 response carries Retry-After in seconds.
Endpoints
Jump into the API resources available for cards, analytics, teams, billing, and account activity.