Skip to main content

1. Overview

Zalo publishing goes through the generic POST /v1/posts endpoint, the same one used for every other platform: there are no Zalo-specific publishing endpoints. A target pointing at a connected Zalo account creates an article on that Official Account.

2. Create an article

Zalo builds the article body as a “normal” type article with status “show”. text becomes the article title if no separate title is set, and also becomes the article body content.

Asynchronous creation

Article creation on Zalo is asynchronous. After SocialAPI submits the article, Zalo returns a processing token rather than a finished article, and SocialAPI polls Zalo’s verification endpoint until the article is published and a final article ID is available. While the article is still processing, Zalo’s verification check returns its own in-progress code, and SocialAPI keeps polling. If the article is still processing once the poll budget is exhausted, the target lands in a failed state carrying platform.zalo.article_processing. The article may still finish publishing on Zalo’s side, so check the Official Account before retrying, otherwise you risk publishing a duplicate.

Draft validation

Before an article is created, SocialAPI validates the draft. Zalo requires a title: if both the title and text are empty, the draft is rejected with:
If a title isn’t set but text is, the title falls back to text, so a normal post with only text set passes validation.

3. Update an article

Unlike article creation, updating an existing article is synchronous: there is no verification poll on update.

4. Delete an article


5. List articles

Returns the posts SocialAPI.ai has stored for that account, not the articles that already exist on the Official Account. An article published outside SocialAPI.ai will not appear here. Results default to sort=scheduled_asc; pass sort to change the order. Each post includes a targets array with the per-platform status.