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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
  • 201 Created

    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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
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:
  • 201 Created

    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:
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"
        }
    }