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

Documentation MCP

Connect without authentication to search and retrieve public Contact Button documentation. This server is read-only.

Connect to the Documentation MCP

Product MCP

Use a scoped bearer key to manage Contact Button workspaces, buttons, pages, forms, leads, and agent-safe workflows.

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 authenticates server integrations with scoped bearer keys. Interactive MCP clients use registered OAuth applications with Authorization Code + PKCE, explicit workspace consent, and short-lived tokens.

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 for MCP: Register an AI client in API Keys, then use the published protected-resource and authorization-server metadata. OAuth clients are bound to the MCP audience and selected workspaces; unrestricted dynamic client registration is disabled.

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.