canonical: https://jentic.com/apis/gupshup.io/gupshup

# Gupshup WhatsApp API

Jentic publishes the only available OpenAPI specification for Gupshup WhatsApp API, keeping it validated and agent-ready. The Gupshup WhatsApp Business API lets businesses send session and template messages to WhatsApp users, manage approved message templates, configure inbound and event subscriptions, and update the WhatsApp Business profile. Sixteen endpoints span message send and read-receipt acknowledgement, subscription CRUD per app, template listing, business-profile management, and user management. Authentication is via API key in the apikey header.

## For AI agents

Send WhatsApp business messages, manage approved templates, configure subscriptions, and update business profile data through Gupshup.

## Scope

Does not handle SMS, voice calls, or email - use for WhatsApp Business messaging via Gupshup only.

## Capabilities

- Send session and template-based WhatsApp messages from a registered Gupshup app
- Acknowledge inbound messages by marking them as read for the WhatsApp delivery receipts
- Register, update, and delete webhook subscriptions per app for inbound events
- List approved message templates and look up template details by template ID
- Read and update the WhatsApp Business profile attached to an app
- Manage app-level user records under the Gupshup account

## Use cases

### Transactional WhatsApp notifications

Send order updates, OTPs, and shipping notifications to customers via WhatsApp using approved templates. The send-message endpoint accepts the destination, template name, and template parameters and returns a message ID for delivery tracking. This is the recommended channel for high-engagement transactional messaging in markets where WhatsApp dominates.

Example prompt: POST /wa/api/v1/msg with destination phone, template name 'order_shipped', and parameters [order_id, tracking_url].

### Inbound conversation handling

Build a two-way WhatsApp service that registers a webhook subscription per Gupshup app, receives inbound messages and delivery events, and marks them as read. The mark-as-read endpoint keeps the WhatsApp delivery indicators accurate while a downstream service handles the conversation logic.

Example prompt: POST /wa/app/{appId}/subscription to register a webhook URL, then on receipt PUT /wa/api/v1/msg/mark-as-read with the inbound message IDs.

### Template catalogue audit

Audit the approved-template catalogue across Gupshup apps before launching a campaign. Listing templates per app and inspecting template payload structure ensures the campaign code uses only approved variants and avoids policy rejections at send time.

Example prompt: GET /wa/app/{appId}/template/list and produce a CSV of template name, category, and language for review.

### AI agent customer messaging via Jentic

An AI assistant in a customer-support workflow sends a WhatsApp template message to a customer when an order ships and processes the read receipt. Through Jentic the agent loads the right Gupshup operations on demand without managing the SDK directly.

Example prompt: Search Jentic for 'send a whatsapp message via gupshup', load POST /wa/api/v1/msg, and execute with the destination, template, and parameters.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /wa/api/v1/msg | Send a WhatsApp message |
| PUT | /wa/api/v1/msg/mark-as-read | Mark inbound messages as read |
| POST | /wa/app/{appId}/subscription | Add a subscription for an app |
| GET | /wa/app/{appId}/subscription | Get subscriptions for an app |
| GET | /wa/app/{appId}/template/list | List templates for an app |
| GET | /wa/app/{appId}/business/profile | Get business profile |

## Key resources

- **Messages** — Send WhatsApp messages and acknowledge inbound deliveries
- **Subscriptions** — Manage webhook subscriptions per Gupshup app for inbound events
- **Templates** — List and inspect approved WhatsApp message templates
- **Business Profile** — Read and update the WhatsApp Business profile attached to an app
- **Users** — Manage user records under the Gupshup account

## Why Jentic

- **Setup:** Wiring the Gupshup WhatsApp API by hand means setting the apikey header on every call to api.gupshup.io and managing message, template, and subscription flows plus retries yourself. Through Jentic you install once, import Gupshup from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Gupshup carries the message recipient in the request body rather than the URL path, so scope it by operations: limit the agent to the operations it needs, such as sending a message or listing templates, and leave subscription changes out of the allowed set. The agent can then only run the calls you selected.
- **Credential handling:** Your Gupshup apikey is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a WhatsApp message via Gupshup' or 'list message templates', and Jentic returns the matching Gupshup operation with its input schema, including the template-name and parameters fields, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Twilio Messaging** — Multi-channel messaging including SMS, MMS, and WhatsApp
- **MessageBird SMS** — Multi-channel messaging API including WhatsApp Business
- **Plivo** — SMS and voice platform with WhatsApp Business support
- **Sendbird** — In-app chat platform that complements WhatsApp for in-product conversations

## FAQ

### Why is there no official OpenAPI spec for Gupshup WhatsApp API?

Gupshup does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Gupshup WhatsApp API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Gupshup WhatsApp API use?

Gupshup uses an API key passed in the apikey HTTP header. The key is generated from the Gupshup dashboard for the WhatsApp app. Through Jentic, the key is stored encrypted in the vault and only scoped tokens reach the agent.

### Can I send a template message with the Gupshup WhatsApp API?

Yes. POST /wa/api/v1/msg accepts a template name and parameters along with the destination phone number. Use only templates that appear in GET /wa/app/{appId}/template/list to avoid policy rejections.

### How do I receive inbound WhatsApp messages with the Gupshup WhatsApp API?

Register a webhook URL via POST /wa/app/{appId}/subscription with the appropriate event types. Inbound message events will then be POSTed to the URL. Use PUT /wa/api/v1/msg/mark-as-read to acknowledge them so the customer sees the read indicators.

### What are the rate limits for the Gupshup WhatsApp API?

Rate limits depend on the WhatsApp Business tier and the messaging quality rating of the registered phone number, set by Meta rather than Gupshup. Tiers commonly start at 1,000 unique recipients per day and scale up based on quality. Back off on 429 responses.

### How do I send a WhatsApp message with the Gupshup WhatsApp API through Jentic?

Search Jentic for 'send a whatsapp message via gupshup', load the POST /wa/api/v1/msg operation, then execute with the destination phone, template name, and parameters. Install with pip install jentic.

### Can I limit what my agent is allowed to do with the Gupshup WhatsApp API?

Yes. Because Jentic One is self-hosted and you set the rules, you decide which Gupshup operations your agent may call and which stored credentials it may use. Gupshup carries the message recipient in the request body rather than the URL path, so you scope access by operation: allow only what the agent needs, such as sending a message with POST /wa/api/v1/msg or listing approved templates with GET /wa/app/{appId}/template/list, while leaving subscription changes and business-profile updates out of the allowed set. The agent can then run only the calls you selected.
