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

Update a Page

PATCH /api/v1/sites/{siteId}/pages/{contentId} — update draft MDX content or metadata.
Updated 26d ago
Reorder Pages
Site Media
Sponsored
Aveiro
aveiro.app
Sponsored
Aveiro
aveiro.app
TrademarkTrademark
AveiroBlogContact
© Aveiro. All rights reserved.
Built with Aveiro
In short
PATCH updates draft content and/or metadata for an existing page. Pass base_revision to avoid overwriting concurrent edits. Moving pages via API is not supported in v1.

Request

PATCH /api/v1/sites/{siteId}/pages/{contentId} Authorization: Bearer av_live_… Content-Type: application/json { "base_revision": "revision-uuid-from-last-read", "content": "# Updated title\n\nNew body.", "metadata": { "title": "Updated title", "summary": "New summary" } }
Required scope: content:write At least one of content or metadata must be provided.

Optimistic concurrency

When you last read a page, note the revision field. Send it back as:
  • Body field: "base_revision": "{revision}" — preferred, or
  • Header: If-Match: "{revision}"
Prefer the body field. If-Match is a real HTTP precondition header, so proxies and CDNs between you and the API may evaluate it themselves against the response's ETag and answer 412 Precondition Failed — potentially after the write has already committed. base_revision carries no HTTP semantics, so only this endpoint ever interprets it. If you do use the header, quote the value: If-Match takes an entity-tag, not a bare id. If someone else edited the page since your read, the API returns 409 REVISION_CONFLICT with the current revision in error.details. Re-fetch, merge, and retry — or omit the precondition entirely to force an overwrite.

Example

curl -s -X PATCH 'https://help.aveiro.app/api/v1/sites/SITE_ID/pages/CONTENT_ID' \ -H 'Authorization: Bearer av_live_…' \ -H 'Content-Type: application/json' \ -d '{"content": "# Hello\n\nUpdated copy."}'

Response

200 OK — same shape as Create a page ({ page: { … } }). When new content is valid but reads off-dialect (button rows, hand-rolled heroes, bare link lists where a Collection or OgCard belongs), the response also carries an advisory recommendations array — see Create a page for the format. The update has already succeeded; the entries describe suggested rewrites toward Aveiro's linear editorial dialect.

Limitations

  • Path moves are not supported — sending path returns 400 VALIDATION_ERROR
  • Updates are draft-only — publish in the editor
  • MDX must pass server-side validation (422 INVALID_MDX on failure)

Related

  • Create a page
  • Delete a page
  • List pages