<a id="api-v3-reference"></a>

# 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/pages/

**List pages**

* **Query Parameters:**
  * **limit** (*integer*)
  * **offset** (*integer*)

**Example request:**

```http
GET /api/v3/pages/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    HTTP/1.1 200 OK
    Content-Type: application/json

    {
        "count": 1,
        "items": [
            {
                "id": 1,
                "meta": {
                    "detail_url": "string",
                    "first_published_at": "2026-07-08T17:56:10.428959",
                    "html_url": "string",
                    "slug": "string",
                    "type": "string"
                },
                "title": "string"
            }
        ]
    }
    ```

### GET /api/v3/pages/{page_id}/

**Page detail**

* **Parameters:**
  * **page_id** (*integer*)

**Example request:**

```http
GET /api/v3/pages/{page_id}/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    HTTP/1.1 200 OK
    Content-Type: application/json

    {
        "id": 1,
        "meta": {
            "detail_url": "string",
            "first_published_at": "2026-07-08T17:56:10.428959",
            "html_url": "string",
            "slug": "string",
            "type": "string"
        },
        "title": "string"
    }
    ```

### GET /api/v3/redirects/

**List redirects**

* **Query Parameters:**
  * **limit** (*integer*)
  * **offset** (*integer*)

**Example request:**

```http
GET /api/v3/redirects/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    HTTP/1.1 200 OK
    Content-Type: application/json

    {
        "count": 1,
        "items": [
            {
                "automatically_created": true,
                "created_at": "2026-07-08T17:56:10.428959",
                "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:**

```http
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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – 

    Created

    **Example response:**
    ```http
    HTTP/1.1 201 Created
    Content-Type: application/json

    {
        "automatically_created": true,
        "created_at": "2026-07-08T17:56:10.428959",
        "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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/204) – No Content

### GET /api/v3/redirects/{redirect_id}/

**Redirect detail**

* **Parameters:**
  * **redirect_id** (*integer*)

**Example request:**

```http
GET /api/v3/redirects/{redirect_id}/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    HTTP/1.1 200 OK
    Content-Type: application/json

    {
        "automatically_created": true,
        "created_at": "2026-07-08T17:56:10.428959",
        "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:**

```http
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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    HTTP/1.1 200 OK
    Content-Type: application/json

    {
        "automatically_created": true,
        "created_at": "2026-07-08T17:56:10.428959",
        "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:**

```http
GET /api/v3/schema/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    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:**

```http
GET /api/v3/schema/{type_name}/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    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:**

```http
GET /api/v3/sites/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    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:**

```http
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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – 

    Created

    **Example response:**
    ```http
    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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/204) – No Content

### GET /api/v3/sites/{site_id}/

**Site detail**

* **Parameters:**
  * **site_id** (*integer*)

**Example request:**

```http
GET /api/v3/sites/{site_id}/ HTTP/1.1
Host: example.com
```

* **Status Codes:**
  * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    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:**

```http
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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – 

    OK

    **Example response:**
    ```http
    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"
    }
    ```
