Skip to content
Developers

API reference

The endpoints available today, grouped by resource. Each one states the scope it needs.

Paths relative to https://api.xatcrm.com/public/v1

ping

  • GET/ping

    Liveness/auth check

    Scope: Any valid key

me

  • GET/me

    Identity of the API key

    Scope: inboxes:read

inboxes

  • GET/inboxes

    List inboxes

    Scope: inboxes:read

  • GET/inboxes/{inboxId}/check-number

    Is this phone on WhatsApp?

    Scope: inboxes:read

contacts

  • GET/contacts

    List/search contacts

    Scope: contacts:read

  • POST/contacts

    Create (or find existing) contact

    Scope: contacts:write

  • GET/contacts/{id}

    Get contact

    Scope: contacts:read

  • PATCH/contacts/{id}

    Update contact

    Scope: contacts:write

  • POST/contacts/{id}/labels

    Attach label to contact

    Scope: labels:write

conversations

  • GET/conversations

    List conversations

    Scope: conversations:read

  • POST/conversations

    Create or reuse a conversation

    Scope: conversations:write

  • GET/conversations/{id}

    Get conversation

    Scope: conversations:read

  • PATCH/conversations/{id}

    Update status/priority/subject

    Scope: conversations:write

  • POST/conversations/{id}/snooze

    Snooze/unsnooze

    Scope: conversations:write

  • PATCH/conversations/{id}/assignment

    Assign agent/team

    Scope: assignments:write

  • POST/conversations/{id}/labels

    Attach label

    Scope: labels:write

  • POST/conversations/{id}/mark-read

    Mark conversation read for THIS integration (per API key; not the per-user unread)

    Scope: conversations:write

  • POST/conversations/{id}/mark-unread

    Mark conversation unread for THIS integration (per API key)

    Scope: conversations:write

messages

  • GET/conversations/{id}/messages

    List messages

    Scope: messages:read

  • POST/conversations/{id}/messages

    Send a text message

    Scope: messages:write

  • POST/conversations/{id}/messages/media

    Send a media message (image/audio/video/document/sticker)

    Scope: messages:write

  • GET/messages/{id}

    Get a message

    Scope: messages:read

notes

  • GET/conversations/{id}/notes

    List internal notes (read-only)

    Scope: notes:read

  • POST/conversations/{id}/notes

    Create a PRIVATE internal note (never sent to WhatsApp)

    Scope: notes:write

attachments

  • GET/attachments/{id}/download

    Download an attachment (bytes)

    Scope: attachments:read

labels

  • GET/labels

    List labels

    Scope: labels:read

assignees

  • GET/assignees

    List assignable agents/teams

    Scope: assignments:read

quickreplies

  • GET/quick-replies

    List canned replies (read-only)

    Scope: quickreplies:read

OpenAPI contract

The full specification is served by the API itself, so it always matches the version that is running. You can generate clients from it.