https://inkbox.ai/api/v1/whatsapp and your normal API key. Use the agent_identity_id query parameter to select the agent for an organization-wide credential. An identity-scoped credential remains restricted to its own identity; an explicit different identity does not switch its authority.
Resources
Read channel status
whatsapp object:
Send only when access is enabled and status is
ready. Availability can change after a status read; the send endpoint checks it again. A ready channel can still reject a quoted reply, reaction, group send, or gif_playback send with 409 whatsapp_capability_not_ready when that operation is unavailable. That rejection admits nothing; ordinary direct messages can remain available. Do not replace a rejected quote with an unquoted send. Reading status never enables access. Identity responses also expose read-only whatsapp_enabled, whatsapp_configured, and nullable whatsapp_number; these are not fields you can set when creating or updating an identity. whatsapp_configured remains true after access is disabled so past conversations stay discoverable; it does not grant sending access.
Common conventions
- Requests use
text; stored messages and webhooks usecontent. - Send returns
201with{ "message": ... }. Message, conversation, and media single reads return flat objects. Reaction POST, GET, and DELETE return{ "reaction": ... }. - Message and conversation lists return bare arrays with
offsetandlimit. Thread reads use an opaque cursor envelope. - Message and conversation participants contain remote numbers only. The local number is a separate field.
- Use owned
media_ids, not arbitrary URLs, filesystem paths, or identifiers from another channel. - Preserve the same idempotency key for retries of one intended send.

