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

Update a Page

PATCH /api/v1/sites/{siteId}/pages/{contentId} — update draft MDX content or metadata.
Updated 1mo ago
Reorder Pages
Site Media
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