List a WhatsApp number's templates
GET/v1/agents/:agentId/connections/:connectionId/whatsapp-templates
x-scope: "whatsapp:read"
x-rate-limit-per-minute: 10
Every template of one of the agent's WhatsApp numbers, read live from Meta, whatever its
status: one item per language version, sorted by name, then language. Only approved
templates can be sent. Each item says what POST /v1/whatsapp/templates must fill in:
the body and header parameter keys in order, the header's format, and each button's
index and the field that carries its value. It lists up to 100 templates.
Because it calls Meta every time, this endpoint allows 10 requests a minute per key,
counted apart from your other calls: keep the list, and read it again after your
templates change. A connection that isn't a WhatsApp number is 404 not_found; a
disconnected one is 409 connection_inactive, and one whose access Meta withdrew is
409 connection_needs_reconnection (reconnect it in the dashboard; retrying won't
help). When Meta doesn't return the templates (an outage, a timeout or its own rate
limit), the call is 503 meta_unavailable: retry with backoff.
Request
Responses
- 200
- 401
- 403
- 404
- 409
- 429
- 500
- 503
Every template of the number, up to the limit above.
Response Headers
Correlation id for this request — paste into support tickets.
Authentication failed. Single code (invalid_api_key) covers every
sub-case: missing header, wrong scheme, malformed, unknown, revoked or
expired key. The message field disambiguates for humans debugging.
One exception: when the key could not be checked because of a server-side
fault, the status is still 401 but type is internal_error and code
is internal_server_error; retry with backoff.
Response Headers
Correlation id for this request — paste into support tickets.
Authenticated, but not allowed: insufficient_scope (the key lacks the scope in this
operation's x-scope) or agent_not_authorized (the key is limited to other agents).
Response Headers
Correlation id for this request — paste into support tickets.
not_found when the connection isn't one of this agent's channels or isn't a WhatsApp
number; agent_not_found when the agent is not one of your company's agents. endpoint_not_found when an id in the path isn't a UUID.
Response Headers
Correlation id for this request — paste into support tickets.
Mojeeb can't read this WhatsApp number's templates from Meta until it
is reconnected in the dashboard, so retrying won't help.
connection_inactive: the connection is disconnected (active: false).
connection_needs_reconnection: Meta no longer accepts the number's
access (it was revoked or expired, or the number left its WhatsApp
Business Account).
Response Headers
Correlation id for this request — paste into support tickets.
Per-key rate limit hit. Default is 60/min/key; an endpoint with an
x-rate-limit-per-minute of its own counts in a budget of its own
(today listWhatsAppTemplates, which allows 10/min/key, and
sendConversationMessage, which allows 20/min/key), and its 429
reports that limit in X-RateLimit-Limit. Retry-After tells you when to retry;
X-RateLimit-Reset is the Unix timestamp of the next window.
Per-success-response
X-RateLimit-*headers are a known gap; on 2xx responses these headers are NOT currently emitted. Customers should rely on 429 +Retry-Afterfor backoff signals.
Response Headers
Correlation id for this request — paste into support tickets.
Seconds to wait before retrying.
The per-minute request limit of the endpoint called. Every key has the same limits today.
Remaining requests in the current window. 0 on rejection.
Unix timestamp at which the current window resets.
Unexpected server-side failure. Retry with exponential backoff. If
the failure persists, send us the correlation_id.
Response Headers
Correlation id for this request — paste into support tickets.
A temporary fault; nothing was changed, so retry with backoff.
meta_unavailable: Meta didn't return what was asked (an outage, a
timeout or Meta's own rate limit). access_unavailable: Mojeeb
couldn't check this key's access.
Response Headers
Correlation id for this request — paste into support tickets.