Call your CRM from your own code

The Builder API is plain HTTPS and JSON at mcp.workspace369.com/v1, authenticated with a personal access token. POST /v1/tools/{name} runs any MCP tool your token's scopes allow, and REST shortcuts cover clients, proposals, invoices, contracts, projects, tasks, requests and calendar events. Its OpenAPI spec is public at /v1/openapi.json. Webhooks push 27 events to your endpoint, signed with HMAC-SHA256. Both come with every plan from Cadet; a trial gets access once a card is saved.

Start free trial

14-day free trial. Card required. After the trial: from $29/month. Renews automatically every month until you cancel. Cancel anytime in Settings → Billing.

Request a demo

Every plan from Cadet; a trial gets access once a card is saved.

01
8 resources with 32 operations, plus POST /v1/tools/{name} for any MCP tool your token's scopes allow.
02
Sending an invoice, proposal, contract or message returns 202 and waits for approval in the app.
03
27 signed webhook events, with up to 6 delivery attempts.

What is a CRM API?

A CRM API lets your own code read and update CRM records over the internet instead of through the app. Workspace369's Builder API is plain HTTPS and JSON at mcp.workspace369.com/v1, authenticated with a personal access token. POST /v1/tools/{name} runs any MCP tool your token's scopes allow, and REST shortcuts cover clients, proposals, invoices, contracts, projects, tasks, requests and calendar events. Sending an invoice, proposal, contract or message returns a 202 and waits for approval in the Workspace369 app, unless the token's Send without asking is on. Signed webhooks push 27 events to your endpoint when work changes.

Product reference

Reviewed November 4, 2026 by the Workspace369 Product Team. Availability can vary by plan, region, and workspace configuration.

Read the Builder API documentation

Plain HTTP, real answers, clear refusals.

Every tool is an HTTP call: POST /v1/tools/{name} runs any MCP tool your token's scopes allow, and REST shortcuts cover clients, proposals, invoices, contracts, projects, tasks, requests and calendar events. Pick a call to see what comes back.

  • Authenticate with a personal access token: Authorization: Bearer mcp_pat_…
  • 8 resources with 32 operations, plus POST /v1/tools/{name} for any MCP tool your token's scopes allow
  • One error shape for every refusal, with a code your code can branch on

Request

GET /v1/clients?query=acme&limit=5

Authorization: Bearer mcp_pat_••••

Response

200 OK

{
  "clients": [
    { "id": "cl_93Fa", "name": "Acme Co",
      "email": "billing@acme.test", "lifecycle_stage": "client" }
  ]
}

Reads come straight back. Results page with a cursor.

One error shape, codes you can branch on.

Every refusal returns { "error": { "code", "message", "details" } } with a status your code can act on.

Builder API error codes
CodeStatusWhat it means
unauthorized401The personal access token is missing or invalid.
usage_exhausted402The workspace has used its monthly AI usage. Top up and retry.
plan_required403The workspace has no plan yet. The response carries an upgrade link.
insufficient_scope403The token lacks a scope. details.required_scope names it.
payload_too_large413The request body is over 1 MB.
rate_limited429Over the limit. Wait for the Retry-After header, then retry.

Pick the events. Verify every delivery.

In Settings, under Data, choose Webhooks and New webhook, pick from 27 events, and copy the signing secret once. Every delivery is a signed JSON POST.

Signed
X-Webhook-Signature is an HMAC-SHA256 of the raw body plus X-Webhook-Timestamp, made with your signing secret. Rotate the secret any time.
Retried
Answer with a 2xx within 10 seconds. Otherwise the delivery is retried up to 5 more times, 6 attempts in all, with the same X-Webhook-Id. Deliveries are logged for 30 days.
Safe to repeat
Deliveries can arrive out of order or more than once, so skip any X-Webhook-Id you have already handled. Webhook deliveries use no AI usage.
Read the webhooks reference

What your endpoint receives

Pick the events you need.

27 events come in 8 families. Subscribe to the ones you need, up to 50 webhooks per workspace. Managing webhooks takes the Manage webhooks permission.

Webhook events by family
FamilyEvents
Time entriestime_entry.created, time_entry.updated, time_entry.deleted
Timesheetstimesheet.submitted, timesheet.approved, timesheet.rejected
Invoicesinvoice.created, invoice.paid, invoice.status_changed
Proposalsproposal.sent, proposal.accepted, proposal.declined
Contractscontract.sent, contract.recipient_completed, contract.completed, contract.declined, contract.voided, contract.expired
Bookingsbooking.created, booking.rescheduled, booking.cancelled, booking.no_show
Requestslead.created, lead.converted, lead.archived
Clientsclient.created, client.stage_changed

Tokens with limits you choose, and nothing hidden.

Once an admin turns on AI connections, you can create a personal access token in Settings, under AI. It carries only the scopes and the expiry they pick, and the workspace can see and stop it.

Never more than its creator
Every call is checked live against the member's role, so a token can't do what its creator can't.
Every call is logged
The call log records the app, member, tool, scope, outcome and AI usage. It keeps field names, never the values.
Admins can revoke any token
Workspace admins see every member's tokens. A revoked token stops working immediately.
A steady pace
Up to 120 calls a minute per token and 600 per workspace, shared with MCP, with a 1 MB request body. Over the limit you get a 429 with Retry-After.

The API and webhooks on every plan, from Cadet.

The Builder API at mcp.workspace369.com/v1 and signed webhooks come with every plan from Cadet. A trial gets access once a card is saved. Each successful call uses the same AI usage as the matching MCP call.

Compare plans
tools on the server
127
webhook events
27
calls a minute per token
120
PlansCadet$29/moVoyager$74/moSpecialist$149/moCommander$299/moEnterprise$699/mo
Builder APIEvery planIncludedIncludedIncludedIncludedIncluded
WebhooksEvery planIncludedIncludedIncludedIncludedIncluded
AI connections (MCP)Every planIncludedIncludedIncludedIncludedIncluded

Failed or refused calls use no AI usage.

Builder API and Webhooks questions

Which plans include the Builder API?

Every plan from Cadet, and a free trial gets access once a card is saved in Billing. An owner or admin must have switched on Allow AI connections in Settings, under AI. Webhooks come with every plan from Cadet too.#

Does the free trial include the API?

Yes, once a card is saved. The 14-day trial then has the Builder API and webhooks like any plan.#

How do I authenticate?

Create a personal access token in Settings, under AI, with Create token. Choose its permissions and expiry (30 days, 90 days, 1 year or none), copy it once, and send it as Authorization: Bearer mcp_pat_... on every request. Each call is checked against the creating member's live permissions as well as the token's scopes.#

Where is the OpenAPI spec?

It is public, with no token needed, at /v1/openapi.json on the same host. It is built from the live tool registry, so it matches what the server accepts.#

How do I verify a webhook?

Each delivery carries X-Webhook-Signature, X-Webhook-Timestamp and X-Webhook-Id. The signature is a hex HMAC-SHA256 of the raw request body followed by the timestamp, made with your signing secret. Answer with a 2xx within 10 seconds; failed deliveries are retried up to 5 more times, and X-Webhook-Id stays the same on every retry.#

Do API calls use AI usage?

Yes. Each successful call uses the same AI usage as the matching MCP call, from the plan's monthly allowance. Failed or refused calls use none, and webhook deliveries use none.#

Should I use the API or MCP?

Use the Builder API when your own code or a script makes the calls. Use the MCP server when an AI app such as Claude or ChatGPT makes them. Both run the same tools with the same permissions, approvals, rate limits and audit log.#

Point your code at a workspace where sends wait for a yes by default.

Start a trial, save a card, create a personal access token in Settings, and make your first call.

14-day free trial. Card required. After the trial: from $29/month. Renews automatically every month until you cancel. Cancel anytime in Settings → Billing.

See pricing
Start free trial Request a demo

14 days free · card required · then $29/mo · cancel anytime