Aveiro API
Authentication
Sites
List Sites
List Templates
Create Site
Pages
Create a Page
Delete a Page
List Pages
Reorder Pages
Update a Page
Site Media
Publish Site
Audience
Newsletter API Overview
Newsletter Campaigns
Social
Social API Overview
Social Accounts
Social Media
Social Posts
Social Performance
Website Mockup Video
TrademarkTrademark
Ctrl k
Search…
Sign up
Aveiro API
Authentication
Sites
List Sites
List Templates
Create Site
Pages
Create a Page
Delete a Page
List Pages
Reorder Pages
Update a Page
Site Media
Publish Site
Audience
Newsletter API Overview
Newsletter Campaigns
Social
Social API Overview
Social Accounts
Social Media
Social Posts
Social Performance
Website Mockup Video
Sponsored
Aveiro
aveiro.app
Sponsored
Aveiro
aveiro.app
TrademarkTrademark
AveiroBlogContact
© Aveiro. All rights reserved.
Built with Aveiro

Publish Site

test
Updated 1d ago
Site Media
In short
POST /api/v1/sites/{siteId}/publish pushes dirty draft pages live. By default only the site's default locale is published — translation variants are excluded unless you pass locale_scope or an explicit content_ids list. Requires publish:write.

Request

POST /api/v1/sites/{siteId}/publish Authorization: Bearer av_live_… Content-Type: application/json { "content_ids": ["optional-content-uuid"], "locale_scope": "default" }
Required scope: publish:write Both body fields are optional. When omitted, Aveiro publishes every dirty page in the site's default locale only.

Locale scope

locale_scope controls which locales are included when you do not pass content_ids:
Value
Behavior
default (or omit)Publish only default-locale pages — the same scope as the editor main Publish menu
allPublish dirty pages in every locale
locale list, e.g. de and frPublish dirty pages in those locales only — send a JSON array of locale codes
An explicit content_ids array always wins: publish exactly those rows regardless of locale_scope. Use that when a script knows the variant ids it touched. Unrecognized locale_scope values fall back to "default" — a typo cannot widen a publish into translation variants.

Example

Publish default-locale changes only:
curl -s -X POST 'https://www.aveiro.app/api/v1/sites/SITE_ID/publish' \\ -H 'Authorization: Bearer av_live_…' \\ -H 'Content-Type: application/json' \\ -d '{}'
Publish German variants only (locale_scope is a JSON array):
curl -s -X POST 'https://www.aveiro.app/api/v1/sites/SITE_ID/publish' \\ -H 'Authorization: Bearer av_live_…' \\ -H 'Content-Type: application/json' \\ -d '{"locale_scope": ["de"]}'

Response

200 OK Pages with broken blocks are skipped and reported in the error payload. See List pages to find dirty drafts before publishing.

Related

  • Authentication — publish:write scope and site restrictions
  • List pages — dirty flag and review workflow
  • Translations overview — per-locale publish in the editor
{
  "published": 3,
  "published_version_ids": ["…"],
  "public_content_live": true,
  "first_publish": false
}