Try Zapped free Turn every tap into a lead, a booking or a payment.Turn taps into leads and bookings. See how
Developers

API documentation

Connect ZAPPED cards, analytics, teams, domains, pixels, and billing data to your own workflows.

Base URL 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.

Authorization: Bearer YOUR_API_KEY

Example request

curl --request GET \
--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

200 The request was successful.
400 The request was invalid or missing required data.
401 The API key is missing, invalid, expired or revoked.
403 The key lacks a required scope, the plan does not include the feature, the plan limit for that resource is reached, or access to the resource is refused. Check the error message.
404 The requested resource was not found.
422 The request data is missing a required field or a value is not valid.
429 Too many requests were sent too quickly. Each key can make up to 60 requests a minute. Burst, account-wide and concurrent-request limits also apply. Responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset when the minute quota was checked. A 429 response carries Retry-After in seconds.
500 The server could not complete the request.
Dates and times use the UTC timezone unless an endpoint says otherwise.

Endpoints

Jump into the API resources available for cards, analytics, teams, billing, and account activity.

Managed profiles and MCP Uses an API key
Lead webhooks Receiver reference
User account
Cards
Statistics
Projects
Pixels
Domains
Teams
Team members
Team access
Payments
Account logs