Integration API · Content
Create or update a draft
PUThttps://{store}/api/v1/integrations/content/pages/{external_id}
Writes a page or blog post by your id. Saving never publishes: publish it with the publish call. HTML in body is sanitized; the slug comes from slug or the title.
Integration key with the
content:write ability: Authorization: Bearer {key}.
Path parameters
external_idstringrequiredYour page id.
Request body application/json
titlestringrequiredTitle.
typestringpage or blog. Default page.
pageblog
slugstringAddress part; made from the title when left out.
bodystringHTML of the page.
Example
{
"type": "blog",
"title": "Як обрати навушники",
"slug": "yak-obraty-navushnyky",
"body": "<p>Три речі, на які варто зважати…</p>"
}
Responses
200The draft.
{
"external_id": "cms-post-118",
"data": {
"id": 58,
"type": "blog",
"title": "Як обрати навушники",
"slug": "yak-obraty-navushnyky",
"published_at": null,
"updated_at": "2026-10-12 08:55:00"
}
} 401Missing, unknown or revoked key.
{
"code": "unauthenticated",
"message": "Integration key is inactive.",
"field": null
} 403The key lacks content:write, or the store’s plan has no API access.
{
"code": "forbidden",
"message": "Integration key cannot content:write.",
"field": null
} 422A field is invalid; field names it.
{
"code": "validation_error",
"message": "name is required.",
"field": "name"
} 429More than 60 requests a minute for this key. Wait Retry-After seconds.
{
"code": "rate_limited",
"message": "Too many integration requests.",
"field": null
}