v3 API reference¶
For the best results, we recommend existing projects generate reference documentation from their own API exports, or use the interactive explorer at /api/v3/docs. The reference below is generated as part of Wagtail’s build pipelines, and will not contain project-specific changes.
- GET /api/v3/documents/¶
List documents
- Query Parameters:
order ({'array', 'string'})
search ({'null', 'string'})
search_operator ({'null', 'string'})
limit (integer)
offset (integer)
Example request:
GET /api/v3/documents/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "collection": { "id": 1, "meta": { "type": "string" } }, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string" } ] }
- POST /api/v3/documents/¶
Create document
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "collection": { "id": 1, "meta": { "type": "string" } }, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string" }
- DELETE /api/v3/documents/{document_id}/¶
Delete document
- Parameters:
document_id (integer)
- Status Codes:
204 No Content – No Content
- GET /api/v3/documents/{document_id}/¶
Document detail
- Parameters:
document_id (integer)
Example request:
GET /api/v3/documents/{document_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "collection": { "id": 1, "meta": { "type": "string" } }, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string" }
- PATCH /api/v3/documents/{document_id}/¶
Update document
- Parameters:
document_id (integer)
Example request:
PATCH /api/v3/documents/{document_id}/ HTTP/1.1 Host: example.com Content-Type: application/json { "collection_id": 1, "title": "string" }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "collection": { "id": 1, "meta": { "type": "string" } }, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string" }
- GET /api/v3/images/¶
List images
- Query Parameters:
order ({'array', 'string'})
search ({'null', 'string'})
search_operator ({'null', 'string'})
limit (integer)
offset (integer)
Example request:
GET /api/v3/images/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "collection": { "id": 1, "meta": { "type": "string" } }, "description": "string", "focal_point_height": 1, "focal_point_width": 1, "focal_point_x": 1, "focal_point_y": 1, "height": 1, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string", "width": 1 } ] }
- POST /api/v3/images/¶
Create image
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "collection": { "id": 1, "meta": { "type": "string" } }, "description": "string", "focal_point_height": 1, "focal_point_width": 1, "focal_point_x": 1, "focal_point_y": 1, "height": 1, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string", "width": 1 }
- DELETE /api/v3/images/{image_id}/¶
Delete image
- Parameters:
image_id (integer)
- Status Codes:
204 No Content – No Content
- GET /api/v3/images/{image_id}/¶
Image detail
- Parameters:
image_id (integer)
Example request:
GET /api/v3/images/{image_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "collection": { "id": 1, "meta": { "type": "string" } }, "description": "string", "focal_point_height": 1, "focal_point_width": 1, "focal_point_x": 1, "focal_point_y": 1, "height": 1, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string", "width": 1 }
- PATCH /api/v3/images/{image_id}/¶
Update image
- Parameters:
image_id (integer)
Example request:
PATCH /api/v3/images/{image_id}/ HTTP/1.1 Host: example.com Content-Type: application/json { "collection_id": 1, "description": "string", "focal_point_height": 1, "focal_point_width": 1, "focal_point_x": 1, "focal_point_y": 1, "title": "string" }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "collection": { "id": 1, "meta": { "type": "string" } }, "description": "string", "focal_point_height": 1, "focal_point_width": 1, "focal_point_x": 1, "focal_point_y": 1, "height": 1, "id": 1, "meta": { "detail_url": "string", "download_url": "string", "tags": [ "string" ], "type": "string" }, "title": "string", "width": 1 }
- GET /api/v3/locales/¶
List locales
- Query Parameters:
limit (integer)
offset (integer)
Example request:
GET /api/v3/locales/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "display_name": "string", "id": 1, "is_bidi": true, "is_default": true, "language_code": "string", "meta": { "type": "string" } } ] }
- POST /api/v3/locales/¶
Create locale
Example request:
POST /api/v3/locales/ HTTP/1.1 Host: example.com Content-Type: application/json { "language_code": "string" }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "display_name": "string", "id": 1, "is_bidi": true, "is_default": true, "language_code": "string", "meta": { "type": "string" } }
- DELETE /api/v3/locales/{locale_id}/¶
Delete locale
- Parameters:
locale_id (integer)
- Status Codes:
204 No Content – No Content
- GET /api/v3/locales/{locale_id}/¶
Locale detail
- Parameters:
locale_id (integer)
Example request:
GET /api/v3/locales/{locale_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "display_name": "string", "id": 1, "is_bidi": true, "is_default": true, "language_code": "string", "meta": { "type": "string" } }
- PUT /api/v3/locales/{locale_id}/¶
Update locale
- Parameters:
locale_id (integer)
Example request:
PUT /api/v3/locales/{locale_id}/ HTTP/1.1 Host: example.com Content-Type: application/json { "language_code": "string" }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "display_name": "string", "id": 1, "is_bidi": true, "is_default": true, "language_code": "string", "meta": { "type": "string" } }
- GET /api/v3/pages/¶
List pages
- Query Parameters:
type (array)
ancestor_of ({'integer', 'null'})
child_of ({'integer', 'null', 'string'})
descendant_of ({'integer', 'null', 'string'})
translation_of ({'integer', 'null', 'string'})
locale ({'null', 'string'})
site ({'null', 'string'})
order ({'array', 'string'})
search ({'null', 'string'})
search_operator ({'null', 'string'})
limit (integer)
offset (integer)
Example request:
GET /api/v3/pages/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "id": 1, "meta": { "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "slug": "string", "type": "string" }, "title": "string" } ] }
- POST /api/v3/pages/¶
Create page
- Query Parameters:
rich_text_format ({'null', 'string'})
Example request:
POST /api/v3/pages/ HTTP/1.1 Host: example.com Content-Type: application/json { "meta": { "action": "string", "parent_id": 1, "type": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "title": "string" }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- GET /api/v3/pages/find/¶
Find page
- Query Parameters:
id ({'integer', 'null'})
html_path ({'null', 'string'})
site ({'null', 'string'})
version ({'null', 'string'})
Example request:
GET /api/v3/pages/find/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- DELETE /api/v3/pages/{page_id}/¶
Delete page
- Parameters:
page_id (integer)
- Status Codes:
204 No Content – No Content
- GET /api/v3/pages/{page_id}/¶
Page detail
- Parameters:
page_id (integer)
- Query Parameters:
version ({'null', 'string'})
rich_text_format ({'null', 'string'})
Example request:
GET /api/v3/pages/{page_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- PATCH /api/v3/pages/{page_id}/¶
Update page
- Parameters:
page_id (integer)
- Query Parameters:
rich_text_format ({'null', 'string'})
Example request:
PATCH /api/v3/pages/{page_id}/ HTTP/1.1 Host: example.com Content-Type: application/json { "meta": { "action": "string", "type": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "title": "string" }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- POST /api/v3/pages/{page_id}/actions/convert_alias/¶
Convert alias page to a regular page
- Parameters:
page_id (integer)
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- POST /api/v3/pages/{page_id}/actions/copy/¶
Copy page
- Parameters:
page_id (integer)
Example request:
POST /api/v3/pages/{page_id}/actions/copy/ HTTP/1.1 Host: example.com Content-Type: application/json { "destination_id": 1, "keep_live": true, "recursive": true, "slug": "string", "title": "string" }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- POST /api/v3/pages/{page_id}/actions/copy_for_translation/¶
Copy page for translation
- Parameters:
page_id (integer)
Example request:
POST /api/v3/pages/{page_id}/actions/copy_for_translation/ HTTP/1.1 Host: example.com Content-Type: application/json { "alias": true, "copy_parents": true, "locale": "string", "recursive": true }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- POST /api/v3/pages/{page_id}/actions/create_alias/¶
Create an alias of a page
- Parameters:
page_id (integer)
Example request:
POST /api/v3/pages/{page_id}/actions/create_alias/ HTTP/1.1 Host: example.com Content-Type: application/json { "destination_id": 1, "recursive": true, "slug": "string" }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- DELETE /api/v3/pages/{page_id}/actions/delete/¶
Delete page
- Parameters:
page_id (integer)
- Status Codes:
204 No Content – No Content
- POST /api/v3/pages/{page_id}/actions/move/¶
Move page
- Parameters:
page_id (integer)
Example request:
POST /api/v3/pages/{page_id}/actions/move/ HTTP/1.1 Host: example.com Content-Type: application/json { "destination_id": 1, "position": "first-child" }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- POST /api/v3/pages/{page_id}/actions/publish/¶
Publish page
- Parameters:
page_id (integer)
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- POST /api/v3/pages/{page_id}/actions/revert/¶
Revert page to a previous revision
- Parameters:
page_id (integer)
Example request:
POST /api/v3/pages/{page_id}/actions/revert/ HTTP/1.1 Host: example.com Content-Type: application/json { "revision_id": 1 }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- POST /api/v3/pages/{page_id}/actions/unpublish/¶
Unpublish page
- Parameters:
page_id (integer)
Example request:
POST /api/v3/pages/{page_id}/actions/unpublish/ HTTP/1.1 Host: example.com Content-Type: application/json { "recursive": true }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }
- GET /api/v3/pages/{page_id}/revisions/¶
List page revisions
- Parameters:
page_id (integer)
- Query Parameters:
created_at_from ({'null', 'date-time'})
created_at_to ({'null', 'date-time'})
user_id ({'integer', 'null', 'string'})
approved_go_live_at_from ({'null', 'date-time'})
approved_go_live_at_to ({'null', 'date-time'})
object_str ({'null', 'string'})
limit (integer)
offset (integer)
Example request:
GET /api/v3/pages/{page_id}/revisions/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "approved_go_live_at": "2026-08-14T17:23:38.327252", "created_at": "2026-08-14T17:23:38.327252", "id": 1, "meta": { "type": "string" }, "object_id": "string", "object_str": "string", "user_id": 1 } ] }
- GET /api/v3/pages/{page_id}/revisions/{revision_id}/¶
Page revision detail
- Parameters:
page_id (integer)
revision_id (integer)
Example request:
GET /api/v3/pages/{page_id}/revisions/{revision_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "approved_go_live_at": "2026-08-14T17:23:38.327252", "base_content_type": { "id": 1, "label": "string", "meta": { "type": "string" }, "name": "string" }, "content_object": { "id": 1, "meta": { "alias_of": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "detail_url": "string", "first_published_at": "2026-08-14T17:23:38.327252", "html_url": "string", "locale": "string", "parent": { "id": 1, "meta": { "detail_url": "string", "html_url": "string", "type": "string" }, "title": "string" }, "search_description": "string", "seo_title": "string", "show_in_menus": true, "slug": "string", "type": "string" }, "title": "string" }, "content_type": { "id": 1, "label": "string", "meta": { "type": "string" }, "name": "string" }, "created_at": "2026-08-14T17:23:38.327252", "id": 1, "meta": { "type": "string" }, "object_id": "string", "object_str": "string", "user_id": 1 }
- GET /api/v3/redirects/¶
List redirects
- Query Parameters:
order ({'array', 'string'})
limit (integer)
offset (integer)
Example request:
GET /api/v3/redirects/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "automatically_created": true, "created_at": "2026-08-14T17:23:38.327252", "id": 1, "is_permanent": true, "old_path": "string", "redirect_link": "string", "redirect_page_id": 1, "redirect_page_route_path": "string", "site_id": 1 } ] }
- POST /api/v3/redirects/¶
Create redirect
Example request:
POST /api/v3/redirects/ HTTP/1.1 Host: example.com Content-Type: application/json { "is_permanent": true, "old_path": "string", "redirect_link": "string", "redirect_page_id": 1, "redirect_page_route_path": "string", "site": 1 }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "automatically_created": true, "created_at": "2026-08-14T17:23:38.327252", "id": 1, "is_permanent": true, "old_path": "string", "redirect_link": "string", "redirect_page_id": 1, "redirect_page_route_path": "string", "site_id": 1 }
- GET /api/v3/redirects/find/¶
Find redirect
- Query Parameters:
id ({'integer', 'null'})
html_path ({'null', 'string'})
Example request:
GET /api/v3/redirects/find/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "automatically_created": true, "created_at": "2026-08-14T17:23:38.327252", "id": 1, "is_permanent": true, "old_path": "string", "redirect_link": "string", "redirect_page_id": 1, "redirect_page_route_path": "string", "site_id": 1 }
- DELETE /api/v3/redirects/{redirect_id}/¶
Delete redirect
- Parameters:
redirect_id (integer)
- Status Codes:
204 No Content – No Content
- GET /api/v3/redirects/{redirect_id}/¶
Redirect detail
- Parameters:
redirect_id (integer)
Example request:
GET /api/v3/redirects/{redirect_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "automatically_created": true, "created_at": "2026-08-14T17:23:38.327252", "id": 1, "is_permanent": true, "old_path": "string", "redirect_link": "string", "redirect_page_id": 1, "redirect_page_route_path": "string", "site_id": 1 }
- PUT /api/v3/redirects/{redirect_id}/¶
Update redirect
- Parameters:
redirect_id (integer)
Example request:
PUT /api/v3/redirects/{redirect_id}/ HTTP/1.1 Host: example.com Content-Type: application/json { "is_permanent": true, "old_path": "string", "redirect_link": "string", "redirect_page_id": 1, "redirect_page_route_path": "string", "site": 1 }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "automatically_created": true, "created_at": "2026-08-14T17:23:38.327252", "id": 1, "is_permanent": true, "old_path": "string", "redirect_link": "string", "redirect_page_id": 1, "redirect_page_route_path": "string", "site_id": 1 }
- GET /api/v3/schema/¶
List registered content types
Example request:
GET /api/v3/schema/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "types": [ { "label": "string", "name": "string" } ] }
- GET /api/v3/schema/{type_name}/¶
Schemas for a content type
- Parameters:
type_name (string)
Example request:
GET /api/v3/schema/{type_name}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "create": {}, "patch": {}, "read": {} }
- GET /api/v3/sites/¶
List sites
- Query Parameters:
limit (integer)
offset (integer)
Example request:
GET /api/v3/sites/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "hostname": "string", "id": 1, "is_default_site": true, "port": 1, "root_page_id": 1, "site_name": "string" } ] }
- POST /api/v3/sites/¶
Create site
Example request:
POST /api/v3/sites/ HTTP/1.1 Host: example.com Content-Type: application/json { "hostname": "string", "is_default_site": true, "port": 1, "root_page_id": 1, "site_name": "string" }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "hostname": "string", "id": 1, "is_default_site": true, "port": 1, "root_page_id": 1, "site_name": "string" }
- DELETE /api/v3/sites/{site_id}/¶
Delete site
- Parameters:
site_id (integer)
- Status Codes:
204 No Content – No Content
- GET /api/v3/sites/{site_id}/¶
Site detail
- Parameters:
site_id (integer)
Example request:
GET /api/v3/sites/{site_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "hostname": "string", "id": 1, "is_default_site": true, "port": 1, "root_page_id": 1, "site_name": "string" }
- PUT /api/v3/sites/{site_id}/¶
Update site
- Parameters:
site_id (integer)
Example request:
PUT /api/v3/sites/{site_id}/ HTTP/1.1 Host: example.com Content-Type: application/json { "hostname": "string", "is_default_site": true, "port": 1, "root_page_id": 1, "site_name": "string" }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "hostname": "string", "id": 1, "is_default_site": true, "port": 1, "root_page_id": 1, "site_name": "string" }
- GET /api/v3/snippets/{type}/¶
List snippets
- Parameters:
type (string)
- Query Parameters:
locale ({'null', 'string'})
translation_of ({'null', 'string'})
order ({'array', 'string'})
search ({'null', 'string'})
search_operator ({'null', 'string'})
limit (integer)
offset (integer)
Example request:
GET /api/v3/snippets/{type}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "id": 1, "meta": { "detail_url": "string", "type": "string" }, "tags": [ "string" ], "text": "string", "url": "string" }, { "country_code": "string", "id": 1, "meta": { "detail_url": "string", "type": "string" }, "some_number": 1, "text": "string" }, { "body": [ {} ], "display_text": {}, "feed_image": { "id": 1, "meta": { "type": "string" } }, "meta": { "detail_url": "string", "type": "string" }, "rich_body": "string", "sections": [ { "caption": "string", "id": 1, "internal_note": "string", "link_document": { "id": 1, "meta": { "type": "string" } }, "link_external": "string", "meta": { "type": "string" } } ], "subtitle": "string", "text": "string", "uuid": "string" } ] }
- POST /api/v3/snippets/{type}/¶
Create snippet
- Parameters:
type (string)
Example request:
POST /api/v3/snippets/{type}/ HTTP/1.1 Host: example.com Content-Type: application/json { "meta": { "type": "string" }, "tags": [ "string" ], "text": "string", "url": "string" }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "id": 1, "meta": { "detail_url": "string", "type": "string" }, "tags": [ "string" ], "text": "string", "url": "string" }
- DELETE /api/v3/snippets/{type}/{pk}/¶
Delete snippet
- Parameters:
type (string)
pk (string)
- Status Codes:
204 No Content – No Content
- GET /api/v3/snippets/{type}/{pk}/¶
Snippet detail
- Parameters:
type (string)
pk (string)
- Query Parameters:
version (string)
Example request:
GET /api/v3/snippets/{type}/{pk}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "detail_url": "string", "type": "string" }, "tags": [ "string" ], "text": "string", "url": "string" }
- PATCH /api/v3/snippets/{type}/{pk}/¶
Update snippet
- Parameters:
type (string)
pk (string)
Example request:
PATCH /api/v3/snippets/{type}/{pk}/ HTTP/1.1 Host: example.com Content-Type: application/json { "meta": { "type": "string" }, "tags": [ "string" ], "text": "string", "url": "string" }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "id": 1, "meta": { "detail_url": "string", "type": "string" }, "tags": [ "string" ], "text": "string", "url": "string" }
- POST /api/v3/snippets/{type}/{pk}/actions/copy_for_translation/¶
Copy snippet for translation
- Parameters:
type (string)
pk (string)
Example request:
POST /api/v3/snippets/{type}/{pk}/actions/copy_for_translation/ HTTP/1.1 Host: example.com Content-Type: application/json { "locale": "string" }
- Status Codes:
Created
Example response:
HTTP/1.1 201 Created Content-Type: application/json { "country_code": "string", "id": 1, "meta": { "detail_url": "string", "type": "string" }, "some_number": 1, "text": "string" }
- DELETE /api/v3/snippets/{type}/{pk}/actions/delete/¶
Delete snippet
- Parameters:
type (string)
pk (string)
- Status Codes:
204 No Content – No Content
- POST /api/v3/snippets/{type}/{pk}/actions/publish/¶
Publish snippet
- Parameters:
type (string)
pk (string)
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "country_code": "string", "id": 1, "meta": { "detail_url": "string", "type": "string" }, "some_number": 1, "text": "string" }
- POST /api/v3/snippets/{type}/{pk}/actions/revert/¶
Revert snippet to a previous revision
- Parameters:
type (string)
pk (string)
Example request:
POST /api/v3/snippets/{type}/{pk}/actions/revert/ HTTP/1.1 Host: example.com Content-Type: application/json { "revision_id": 1 }
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "country_code": "string", "id": 1, "meta": { "detail_url": "string", "type": "string" }, "some_number": 1, "text": "string" }
- POST /api/v3/snippets/{type}/{pk}/actions/unpublish/¶
Unpublish snippet
- Parameters:
type (string)
pk (string)
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "country_code": "string", "id": 1, "meta": { "detail_url": "string", "type": "string" }, "some_number": 1, "text": "string" }
- GET /api/v3/snippets/{type}/{pk}/revisions/¶
List snippet revisions
- Parameters:
type (string)
pk (string)
- Query Parameters:
created_at_from ({'null', 'date-time'})
created_at_to ({'null', 'date-time'})
user_id ({'integer', 'null', 'string'})
approved_go_live_at_from ({'null', 'date-time'})
approved_go_live_at_to ({'null', 'date-time'})
object_str ({'null', 'string'})
limit (integer)
offset (integer)
Example request:
GET /api/v3/snippets/{type}/{pk}/revisions/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "count": 1, "items": [ { "approved_go_live_at": "2026-08-14T17:23:38.327252", "created_at": "2026-08-14T17:23:38.327252", "id": 1, "meta": { "type": "string" }, "object_id": "string", "object_str": "string", "user_id": 1 } ] }
- GET /api/v3/snippets/{type}/{pk}/revisions/{revision_id}/¶
Snippet revision detail
- Parameters:
type (string)
pk (string)
revision_id (integer)
Example request:
GET /api/v3/snippets/{type}/{pk}/revisions/{revision_id}/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "approved_go_live_at": "2026-08-14T17:23:38.327252", "base_content_type": { "id": 1, "label": "string", "meta": { "type": "string" }, "name": "string" }, "content_object": { "country_code": "string", "id": 1, "meta": { "detail_url": "string", "type": "string" }, "some_number": 1, "text": "string" }, "content_type": { "id": 1, "label": "string", "meta": { "type": "string" }, "name": "string" }, "created_at": "2026-08-14T17:23:38.327252", "id": 1, "meta": { "type": "string" }, "object_id": "string", "object_str": "string", "user_id": 1 }
- GET /api/v3/whoami/¶
Current API user
Example request:
GET /api/v3/whoami/ HTTP/1.1 Host: example.com
- Status Codes:
200 OK –
OK
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "groups": [ "string" ], "profile": { "avatar_url": "string" }, "user": { "email": "string", "first_name": "string", "id": "string", "is_superuser": true, "last_name": "string", "username": "string" } }