Contact Button / Developers

Official developer resources

Build with the Contact Button API.

Create and publish Pages, buttons, forms, booking types, callback flows, knowledge, and agent-ready contact experiences from code or a coding-agent conversation.

Contact Button developer resources

These are the canonical, predictable entry points. Agents should follow the live OpenAPI contract instead of relying on remembered endpoint shapes.

OpenAPI specification

The complete REST contract, request schemas, response schemas, operation IDs, and security definition.

Download openapi.yaml

Authentication and API keys

Create a least-privilege bearer key, store it outside model context, and send it in the Authorization header.

Read Contact Button authentication

Contact Button MCP server

Connect an MCP-capable client to the shared server and discover tools through the live protocol.

Read the MCP setup guide

Contact Button webhooks

Receive signed form.submission.created events with stable event and delivery identifiers.

Read the webhook guide

Scoped authentication

Contact Button currently authenticates the REST API with scoped bearer keys. Every protected route checks the required token ability, and tenant access is still limited to workspaces the represented user may access.

workspaces:read

Read workspaces, teams, domains, settings, and connections.

workspaces:write

Create and manage workspaces, teams, domains, settings, and connections.

content:read

Read buttons, forms, lists, pages, booking types, and knowledge.

content:write

Create, update, publish, and remove content.

engagements:read

Read submissions, subscribers, bookings, callbacks, calls, reviews, and conversations.

engagements:manage

Reply to and manage engagement records.

actions:request

Request protected actions that can still require human confirmation.

OAuth status: OAuth 2.0 authorization-code flows are not available yet. Do not treat an API key as an OAuth token and do not infer an authorization endpoint. Use a scoped key until Contact Button publishes standards-compliant authorization-server metadata.

Make the first authenticated request

Put the secret in CONTACTBUTTON_TOKEN on the agent host. Never paste it into a prompt, transcript, public file, or repository.

curl https://api.contactbutton.com/v1/workspaces \
  --header "Authorization: Bearer $CONTACTBUTTON_TOKEN" \
  --header "Accept: application/json"

Testing and sandbox workflow

Contact Button does not yet offer a separate public sandbox host. Use read endpoints first, create draft resources, preview before publishing, use a unique Idempotency-Key for mutations, and delete test drafts when verification is complete. Publishing, DNS changes, phone-number purchases, payments, and outbound contact require explicit human approval.