> ## Documentation Index
> Fetch the complete documentation index at: https://docs.messagedesk.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MessageDesk Developer API

> What the MessageDesk Developer API is, which integration providers can use it today, and the conventions every endpoint follows.

# MessageDesk Developer API

The Developer API is how integrations read and write a MessageDesk workspace on a user's behalf. It's a JSON-over-HTTPS API secured with OAuth 2.0.

<Note>
  **Zapier is the only supported provider today.** The endpoints in this reference are live and documented so you can see exactly what an integration does on your behalf, debug it, or plan one of your own. Registering your own application against the API isn't self-service yet. If you'd like general API access, [email us](mailto:support@messagedesk.com) and tell us what you're building. Setting up Zaps? Start with the [Zapier integration guide](/integrations/zapier) instead.
</Note>

***

## How the API is organized

MessageDesk is **provider agnostic**. Every integration talks to the same API, and each one gets its own namespace under the base path:

```
https://api.messagedesk.com/integrations/developer/{provider}/...
```

| Provider               | Namespace                        | Status    |
| ---------------------- | -------------------------------- | --------- |
| **Zapier**             | `/integrations/developer/zapier` | Available |
| **General API access** | To be announced                  | Planned   |

Requests also name the calling provider in a `developerProvider` field so MessageDesk can shape responses and webhook payloads for it. The value is `zapier` for everything documented here.

Endpoints fall into three groups:

| Group               | What it's for                                                                                                                                 |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Context lookups** | Read-only lookups an integration uses while you configure it: your workspaces, and the users, phone numbers and custom fields in a workspace. |
| **Actions**         | Writes performed on your behalf, like sending a message or creating a contact.                                                                |
| **Triggers**        | Subscribing a URL to workspace events, and fetching recent records in the same shape those events arrive in.                                  |

***

## Conventions

* **Authentication** is an OAuth 2.0 bearer token on every request. See [Authentication](/developer/authentication).
* **Every request starts with your workspace.** Action bodies carry the workspace ID in a field named `id`; lookups take it as the `workspaceId` query parameter. You can only act on workspaces you're a member of.
* **Phone numbers** are accepted in any common US format and normalized to E.164 (`+15551234567`). Responses always return E.164.
* **Timestamps** are RFC 3339 strings in UTC.
* **Content type** is `application/json` for requests and responses.

***

## Where to go next

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/developer/authentication">
    How OAuth 2.0 tokens are issued and sent.
  </Card>

  <Card title="Webhooks" icon="bolt" href="/developer/webhooks">
    Subscribe a URL to messages, calls, comments, contact changes and opt-outs.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/developer/errors">
    Status codes, error bodies and how validation failures are reported.
  </Card>

  <Card title="API reference" icon="code" href="/developer/api-reference/introduction">
    Every endpoint, with request and response schemas generated from the API itself.
  </Card>
</CardGroup>
