---
title: Custom Pages
---

[Skip to content](#_top)

[API Reference](https://developers.cloudflare.com/api/python)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# Custom Pages

##### [List custom pages](https://developers.cloudflare.com/api/python/resources/custom_pages/methods/list)

custom\_pages.list(CustomPageListParams\*\*kwargs) -> SyncSinglePage\[[CustomPageListResponse](<https://developers.cloudflare.com/api/python/resources/custom_pages#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)>)]

GET/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages

##### [Get a custom page](https://developers.cloudflare.com/api/python/resources/custom_pages/methods/get)

custom\_pages.get(Literal\["1000\_errors", "500\_errors", "basic\_challenge", 7 more]identifier, CustomPageGetParams\*\*kwargs) -> [CustomPageGetResponse](<https://developers.cloudflare.com/api/python/resources/custom_pages#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)>)

GET/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages/{identifier}

##### [Update a custom page](https://developers.cloudflare.com/api/python/resources/custom_pages/methods/update)

custom\_pages.update(Literal\["1000\_errors", "500\_errors", "basic\_challenge", 7 more]identifier, CustomPageUpdateParams\*\*kwargs) -> [CustomPageUpdateResponse](<https://developers.cloudflare.com/api/python/resources/custom_pages#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)>)

PUT/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages/{identifier}

##### ModelsExpand Collapse

<details>

<summary>

class CustomPageListResponse: …

</summary>

id: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20id">Link to this property</a>

created\_on: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20created_on">Link to this property</a>

description: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20description">Link to this property</a>

modified\_on: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20modified_on">Link to this property</a>

preview\_target: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20preview_target">Link to this property</a>

required\_tokens: Optional\[List\[str]]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20required_tokens">Link to this property</a>

<details>

<summary>

state: Optional\[Literal\["default", "customized"]]

The custom page state.

</summary>

One of the following:

"default"

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%200">Link to this property</a>

"customized"

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%201">Link to this property</a>

</details>

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20state">Link to this property</a>

url: Optional\[str]

The URL associated with the custom page.

formaturi

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)%20%3E%20(property)%20url">Link to this property</a>

</details>

[Link to this property](<#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)>)

<details>

<summary>

class CustomPageGetResponse: …

</summary>

id: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20id">Link to this property</a>

created\_on: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20created_on">Link to this property</a>

description: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20description">Link to this property</a>

modified\_on: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20modified_on">Link to this property</a>

preview\_target: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20preview_target">Link to this property</a>

required\_tokens: Optional\[List\[str]]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20required_tokens">Link to this property</a>

<details>

<summary>

state: Optional\[Literal\["default", "customized"]]

The custom page state.

</summary>

One of the following:

"default"

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%200">Link to this property</a>

"customized"

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%201">Link to this property</a>

</details>

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20state">Link to this property</a>

url: Optional\[str]

The URL associated with the custom page.

formaturi

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)%20%3E%20(property)%20url">Link to this property</a>

</details>

[Link to this property](<#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)>)

<details>

<summary>

class CustomPageUpdateResponse: …

</summary>

id: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20id">Link to this property</a>

created\_on: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20created_on">Link to this property</a>

description: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20description">Link to this property</a>

modified\_on: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20modified_on">Link to this property</a>

preview\_target: Optional\[str]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20preview_target">Link to this property</a>

required\_tokens: Optional\[List\[str]]

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20required_tokens">Link to this property</a>

<details>

<summary>

state: Optional\[Literal\["default", "customized"]]

The custom page state.

</summary>

One of the following:

"default"

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%200">Link to this property</a>

"customized"

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%201">Link to this property</a>

</details>

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20state">Link to this property</a>

url: Optional\[str]

The URL associated with the custom page.

formaturi

<a href="#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)%20%3E%20(property)%20url">Link to this property</a>

</details>

[Link to this property](<#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)>)

#### Custom PagesAssets

##### [List custom assets](https://developers.cloudflare.com/api/python/resources/custom_pages/subresources/assets/methods/list)

custom\_pages.assets.list(AssetListParams\*\*kwargs) -> SyncV4PagePaginationArray\[[AssetListResponse](<https://developers.cloudflare.com/api/python/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)>)]

GET/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages/assets

##### [Get a custom asset](https://developers.cloudflare.com/api/python/resources/custom_pages/subresources/assets/methods/get)

custom\_pages.assets.get(strasset\_name, AssetGetParams\*\*kwargs) -> [AssetGetResponse](<https://developers.cloudflare.com/api/python/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)>)

GET/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages/assets/{asset\_name}

##### [Create a custom asset](https://developers.cloudflare.com/api/python/resources/custom_pages/subresources/assets/methods/create)

custom\_pages.assets.create(AssetCreateParams\*\*kwargs) -> [AssetCreateResponse](<https://developers.cloudflare.com/api/python/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)>)

POST/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages/assets

##### [Update a custom asset](https://developers.cloudflare.com/api/python/resources/custom_pages/subresources/assets/methods/update)

custom\_pages.assets.update(strasset\_name, AssetUpdateParams\*\*kwargs) -> [AssetUpdateResponse](<https://developers.cloudflare.com/api/python/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)>)

PUT/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages/assets/{asset\_name}

##### [Delete a custom asset](https://developers.cloudflare.com/api/python/resources/custom_pages/subresources/assets/methods/delete)

custom\_pages.assets.delete(strasset\_name, AssetDeleteParams\*\*kwargs)

DELETE/{accounts\_or\_zones}/{account\_or\_zone\_id}/custom\_pages/assets/{asset\_name}

##### ModelsExpand Collapse

<details>

<summary>

class AssetListResponse: …

</summary>

description: Optional\[str]

A short description of the custom asset.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)%20%3E%20(property)%20description">Link to this property</a>

last\_updated: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)%20%3E%20(property)%20last_updated">Link to this property</a>

name: Optional\[str]

The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_).

minLength1

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)%20%3E%20(property)%20name">Link to this property</a>

size\_bytes: Optional\[int]

The size of the asset content in bytes.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)%20%3E%20(property)%20size_bytes">Link to this property</a>

url: Optional\[str]

The URL where the asset content is fetched from.

formaturi

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)%20%3E%20(property)%20url">Link to this property</a>

</details>

[Link to this property](<#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)>)

<details>

<summary>

class AssetGetResponse: …

</summary>

description: Optional\[str]

A short description of the custom asset.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)%20%3E%20(property)%20description">Link to this property</a>

last\_updated: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)%20%3E%20(property)%20last_updated">Link to this property</a>

name: Optional\[str]

The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_).

minLength1

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)%20%3E%20(property)%20name">Link to this property</a>

size\_bytes: Optional\[int]

The size of the asset content in bytes.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)%20%3E%20(property)%20size_bytes">Link to this property</a>

url: Optional\[str]

The URL where the asset content is fetched from.

formaturi

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)%20%3E%20(property)%20url">Link to this property</a>

</details>

[Link to this property](<#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)>)

<details>

<summary>

class AssetCreateResponse: …

</summary>

description: Optional\[str]

A short description of the custom asset.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)%20%3E%20(property)%20description">Link to this property</a>

last\_updated: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)%20%3E%20(property)%20last_updated">Link to this property</a>

name: Optional\[str]

The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_).

minLength1

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)%20%3E%20(property)%20name">Link to this property</a>

size\_bytes: Optional\[int]

The size of the asset content in bytes.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)%20%3E%20(property)%20size_bytes">Link to this property</a>

url: Optional\[str]

The URL where the asset content is fetched from.

formaturi

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)%20%3E%20(property)%20url">Link to this property</a>

</details>

[Link to this property](<#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)>)

<details>

<summary>

class AssetUpdateResponse: …

</summary>

description: Optional\[str]

A short description of the custom asset.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)%20%3E%20(property)%20description">Link to this property</a>

last\_updated: Optional\[datetime]

formatdate-time

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)%20%3E%20(property)%20last_updated">Link to this property</a>

name: Optional\[str]

The unique name of the custom asset. Can only contain letters (A-Z, a-z), numbers (0-9), and underscores (\_).

minLength1

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)%20%3E%20(property)%20name">Link to this property</a>

size\_bytes: Optional\[int]

The size of the asset content in bytes.

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)%20%3E%20(property)%20size_bytes">Link to this property</a>

url: Optional\[str]

The URL where the asset content is fetched from.

formaturi

<a href="#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)%20%3E%20(property)%20url">Link to this property</a>

</details>

[Link to this property](<#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)>)