Skip to main content
v1.1
  • One customer id: every /v1/contacts/{customer} route and every send takes a phone number or a WhatsApp username id. Contacts carry customer too.
  • Messages and message.* webhooks: campaign_id, campaign_reference, text and media (Inbox replies included).
  • GET /v1/campaigns/{id}/messages: up to 1,000 a page, and cursor to read them all in order.
  • POST /v1/messages/test: a template test, priced and charged like a test in the app.
  • GET /v1/contacts/{customer}/messages: one chat, both directions, newest first.
  • New events: plan.ended, key.disabled, daily_limit.reached, webhook.disabled; campaign.paused says why.
  • POST /v1/webhooks/{id}/enable: switches a webhook on after a test event gets a 2xx.
  • The Inbox: assign, close and reopen chats; GET /v1/team; notes; saved replies.
  • POST /v1/media: upload a file once and send it by media_id.
  • GET and PATCH /v1/profile, POST /v1/audiences, POST /v1/contacts/bulk, GET /v1/wallet/transactions.
  • Location and link button messages, quoting a message (reply_to) and marking a message as read (POST /v1/messages/{id}/read).
  • Contact cards, stickers, reactions, the typing indicator and blocking are in the API but not available yet (not_available until they are).
  • New errors: webhook_test_failed, not_available, not_in_last_24h, media_type_not_allowed.
v1
The first version of the GetReply API: templates, OTPs, replies, files and buttons; message status and webhooks with signatures; account, number, usage and prices; templates, contacts and campaigns; the Developer tab in the app. Customers with a WhatsApp username: message objects, message.* webhooks and message.received include customer (phone, user_id — WhatsApp’s business-scoped user ID — and username); phone can be null for a customer who shared no number, and then to / from are null too, as is a contact’s phone. Existing phone-based endpoints are unchanged; an OTP needs a phone number (invalid_number otherwise).