---
title: Custom Pages
---

[Skip to content](#_top)

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

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/typescript/resources/custom_pages/methods/list)

client.customPages.list(CustomPageListParams {account\_id, zone\_id } params?, RequestOptionsoptions?): SinglePage< [CustomPageListResponse](<https://developers.cloudflare.com/api/typescript/resources/custom_pages#(resource)%20custom_pages%20%3E%20(model)%20custom_page_list_response%20%3E%20(schema)>) {id, created\_on, description, 5 more } >

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

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

client.customPages.get("1000\_errors"| "500\_errors"| "basic\_challenge"| 7 moreidentifier, CustomPageGetParams {account\_id, zone\_id } params?, RequestOptionsoptions?): [CustomPageGetResponse](<https://developers.cloudflare.com/api/typescript/resources/custom_pages#(resource)%20custom_pages%20%3E%20(model)%20custom_page_get_response%20%3E%20(schema)>) {id, created\_on, description, 5 more }

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

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

client.customPages.update("1000\_errors"| "500\_errors"| "basic\_challenge"| 7 moreidentifier, CustomPageUpdateParams {state, url, account\_id, zone\_id } params, RequestOptionsoptions?): [CustomPageUpdateResponse](<https://developers.cloudflare.com/api/typescript/resources/custom_pages#(resource)%20custom_pages%20%3E%20(model)%20custom_page_update_response%20%3E%20(schema)>) {id, created\_on, description, 5 more }

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

##### ModelsExpand Collapse

<details>

<summary>

CustomPageListResponse {id, created\_on, description, 5 more }

</summary>

id?: string

<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?: string

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?: string

<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?: string

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?: string

<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?: Array&lt;string&gt;

<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?: "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?: string

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>

CustomPageGetResponse {id, created\_on, description, 5 more }

</summary>

id?: string

<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?: string

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?: string

<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?: string

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?: string

<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?: Array&lt;string&gt;

<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?: "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?: string

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>

CustomPageUpdateResponse {id, created\_on, description, 5 more }

</summary>

id?: string

<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?: string

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?: string

<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?: string

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?: string

<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?: Array&lt;string&gt;

<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?: "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?: string

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/typescript/resources/custom_pages/subresources/assets/methods/list)

client.customPages.assets.list(AssetListParams {account\_id, zone\_id, page, per\_page } params?, RequestOptionsoptions?): V4PagePaginationArray< [AssetListResponse](<https://developers.cloudflare.com/api/typescript/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_list_response%20%3E%20(schema)>) {description, last\_updated, name, 2 more } >

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

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

client.customPages.assets.get(stringassetName, AssetGetParams {account\_id, zone\_id } params?, RequestOptionsoptions?): [AssetGetResponse](<https://developers.cloudflare.com/api/typescript/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_get_response%20%3E%20(schema)>) {description, last\_updated, name, 2 more }

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

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

client.customPages.assets.create(AssetCreateParams {description, name, url, 2 more } params, RequestOptionsoptions?): [AssetCreateResponse](<https://developers.cloudflare.com/api/typescript/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_create_response%20%3E%20(schema)>) {description, last\_updated, name, 2 more }

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

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

client.customPages.assets.update(stringassetName, AssetUpdateParams {description, url, account\_id, zone\_id } params, RequestOptionsoptions?): [AssetUpdateResponse](<https://developers.cloudflare.com/api/typescript/resources/custom_pages#(resource)%20custom_pages.assets%20%3E%20(model)%20asset_update_response%20%3E%20(schema)>) {description, last\_updated, name, 2 more }

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

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

client.customPages.assets.delete(stringassetName, AssetDeleteParams {account\_id, zone\_id } params?, RequestOptionsoptions?): void

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

##### ModelsExpand Collapse

<details>

<summary>

AssetListResponse {description, last\_updated, name, 2 more }

</summary>

description?: string

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?: string

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?: string

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?: number

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?: string

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>

AssetGetResponse {description, last\_updated, name, 2 more }

</summary>

description?: string

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?: string

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?: string

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?: number

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?: string

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>

AssetCreateResponse {description, last\_updated, name, 2 more }

</summary>

description?: string

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?: string

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?: string

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?: number

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?: string

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>

AssetUpdateResponse {description, last\_updated, name, 2 more }

</summary>

description?: string

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?: string

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?: string

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?: number

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?: string

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)>)