The Zalo Official Account API for your unified inbox
The Zalo Official Account API, unified with every other inbox.
- Free tier, no credit card
- Instant API key
- MCP server included
Linh T.
Active now

Do you sell gift cards?18:42
Yes, from 200,000₫.18:45

❤️Do you ship to Da Nang?09:12


Yes, 2 to 3 days, free over 1,000,000₫.09:14
Order now
Ask more
/v1/inbox/conversations/{id}/messages200 OKCapabilities: What you can build on Zalo
Every capability is one endpoint, the same one you call on every other platform.The screens show where each call lands.
Article & Video Posts
Create, update, and delete Zalo Official Account articles and video posts through the unified publishing API.
- POST
/v1/posts
White lows, back in every size
White lows, back in every size
Ledge Skate & Shoe
06/10/2026

- POST
Direct Messages
Receive customer messages in real time and reply through the same unified inbox endpoint used for every other platform.
- GET
/v1/inbox/conversations - POST
/v1/inbox/conversations/{id}/messages
- receive
- reply
- GET
Webhooks
Inbound messages and events arrive as real-time webhook events, signature-verified on arrival.
Webhook events
dm.received
- signature-verified
On every platform
Agent-ready
Every Zalo capability is a typed tool on the SocialAPI.ai MCP server.
- social_api_send_dm
- social_api_validate_post
One API key
The key that calls Zalo calls all 13 platforms.
Authorization: Bearer sapi_key_…Predictable errors
The same status codes everywhere, whatever the platform behind them.
- 401expired token
- 429rate limited
- 501not on this platform
Call the Zalo API
Reply to a Zalo conversation
Inbound messages stream into the unified inbox via webhooks; replying is one POST. The same endpoint and the same payload shape you already use for Instagram, WhatsApp, and Telegram deliver a Zalo Official Account reply.
curl -X POST https://api.social-api.ai/v1/inbox/conversations/<conversation-id>/messages \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"account_id": "<zalo-account-id>",
"text": "Cam on ban! Your order shipped today."
}' | jq
# Response (HTTP 200)
{
"success": true,
"message_id": "<message-id>",
"message_ids": ["<message-id>"]
}import requests
resp = requests.post(
"https://api.social-api.ai/v1/inbox/conversations/<conversation-id>/messages",
headers={"Authorization": "Bearer <your-api-key>"},
json={
"account_id": "<zalo-account-id>",
"text": "Cam on ban! Your order shipped today.",
},
)
print(resp.json()["message_id"])const res = await fetch(
"https://api.social-api.ai/v1/inbox/conversations/<conversation-id>/messages",
{
method: "POST",
headers: {
Authorization: "Bearer <your-api-key>",
"Content-Type": "application/json",
},
body: JSON.stringify({
account_id: "<zalo-account-id>",
text: "Cam on ban! Your order shipped today.",
}),
}
);
const message = await res.json();
console.log(message.message_id);Comparison: The official API vs one API key
| Aspect | The official Zalo Official Account Open API | With SocialAPI.ai |
|---|---|---|
| Getting access | The official Zalo Official Account Open APIRegister a Zalo app, wire the PKCE authorization flow by hand, and domain-verify your callback before the first token exchange succeeds. | With SocialAPI.aiClick connect in the dashboard. PKCE, the callback, and the domain-verified redirect are handled on our side. |
| Keeping the connection alive | The official Zalo Official Account Open APIAccess tokens last about 25 hours and the refresh token is single-use, so it rotates on every refresh. Lose the rotation and the account is disconnected. | With SocialAPI.aiTokens refresh ahead of expiry and the rotated pair is stored for you. You never handle a Zalo token. |
| Publishing articles | The official Zalo Official Account Open APIArticle creation is asynchronous. You submit a token, then poll a verify endpoint that keeps returning a processing code until the article lands. | With SocialAPI.aiOne call to the publishing API. The polling happens inside the connector and you get the finished post back. |
| Multi-platform | The official Zalo Official Account Open APIA Vietnam-only integration you maintain separately from every other messaging API. | With SocialAPI.aiThe same /v1/inbox endpoints cover Zalo and the other 12 platforms, as far as each one allows, with one schema for conversations and messages. |
In depth: How the Zalo API works on SocialAPI.ai
Zalo is the dominant messaging app in Vietnam, and your Official Account is how customers reach you there. Connect one through OAuth and read and reply to conversations with the same direct message API you use for Instagram, WhatsApp, and Telegram. Inbound messages arrive in real time via webhooks.
Real-time inbound messages
When you connect an Official Account, SocialAPI.ai registers the Zalo webhook and verifies the signature on every event before it is accepted. Customer messages are ingested as they arrive and surfaced in the unified inbox with the same conversation and message schema used across all platforms, so one direct message API covers Zalo alongside Instagram, WhatsApp, and Telegram.
Rich replies in one call
Reply with text, an image or file attachment, a quoted reply to a specific message, or call-to-action buttons. SocialAPI.ai maps each reply to the right Zalo consultation message payload for you, through the same send-message endpoint you already use on every other messaging platform.
Articles and video posts through the publishing API
Create, update, and delete Official Account articles and video posts with the same publishing endpoints that drive Instagram, LinkedIn, and Facebook. Zalo publishes articles asynchronously, so the connector polls Zalo until the article is live and returns the finished post rather than a pending token you have to chase yourself.
OAuth and token rotation handled for you
Zalo uses PKCE authorization with a short-lived access token and a single-use refresh token that rotates on every refresh. SocialAPI.ai runs the PKCE exchange, refreshes ahead of expiry, and persists the rotated pair, so a connected account stays connected without any token code in your application.
Simple, honest pricing.
Reading comments, DMs, and mentions is free and unlimited on every plan. Paid plans start at $29/mo with unlimited posts and interactions. The free tier needs no credit card.
Frequently asked questions
What developers ask before they ship Zalo.
Can I manage Zalo comments, reviews, or mentions?
No. Zalo does not expose a public API for comments, reviews, or mentions, so SocialAPI.ai cannot offer them on Zalo. You get direct messages and post publishing. Every other capability in the unified API works on the platforms that do support it.
Why does my Zalo connection fail with an invalid redirect URI?
Zalo requires the redirect domain to be both registered as your app's callback URL and domain-verified in the Zalo portal (via DNS TXT record, HTML file, or meta tag). Setting the callback URL alone is not enough. Verify the domain and the connection will complete.
Does Zalo have an API?
Yes. Zalo Official Account is the business side of Zalo, Vietnam's dominant messaging app, and its Open API covers messaging and article publishing. Using it raw means running PKCE authorization, domain verification, rotating single-use refresh tokens, and asynchronous article polling yourself. SocialAPI.ai wraps that behind one REST API: connect an Official Account and read and reply to messages from the same unified inbox as every other platform.
What is a Zalo Official Account?
A Zalo Official Account (OA) is the business profile a company runs on Zalo, the messaging app used by most of Vietnam. Customers message the OA the way they would message a WhatsApp Business number, and the OA can also publish articles and video posts. The Zalo Open API acts on behalf of one Official Account per connected token.
How long do I have to reply to a Zalo message?
Zalo lets you send a consultation message only if the customer has interacted with your Official Account within the last 7 days, and replies within the first 48 hours are free. If the window has closed, Zalo rejects the send and SocialAPI.ai returns a 422 with the reason, so you can surface it in your own UI instead of guessing.
How much does the Zalo API cost?
Zalo does not charge for consultation replies inside the free window, and SocialAPI.ai starts at $0: the Free plan includes 2 social profiles and 50 interactions per month, and paid plans have unlimited interactions. You keep ownership of your Official Account and your Zalo app.
Every other platform, one API: Every other platform, one API
Same key, same shapes, same webhook.
Ready to unify your social interactions?
Free tier available. No credit card required. Ships with the MCP server.