Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions public/__redirects
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,9 @@
/rules/page-rules/how-to/rewrite-host-headers/ /rules/origin-rules/examples/change-uri-path-and-host-header/ 301
/rules/page-rules/how-to/override-url-or-ip-address/ /rules/origin-rules/features/ 301
/rules/origin-rules/examples/change-uri-path-and-host-header/ /rules/origin-rules/tutorials/change-uri-path-and-host-header/ 301
/rules/custom-errors/create-api/ /rules/custom-errors/create-rules/ 301
/rules/custom-errors/error-tokens/ /rules/custom-errors/reference/error-tokens/ 301
/rules/custom-errors/parameters/ /rules/custom-errors/reference/parameters/ 301

# ruleset engine
/ruleset-engine/rules-language/fields/standard-fields/ /ruleset-engine/rules-language/fields/reference/ 301
Expand Down Expand Up @@ -1233,6 +1236,9 @@
/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-10xxx-errors/ /support/troubleshooting/http-status-codes/cloudflare-10xxx-errors/ 301
/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/ /support/troubleshooting/http-status-codes/cloudflare-1xxx-errors/ 301
/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-5xx-errors/ /support/troubleshooting/http-status-codes/cloudflare-5xx-errors/ 301
/support/more-dashboard-apps/cloudflare-custom-pages/configuring-custom-pages-error-and-challenge/ /rules/custom-errors/ 301
/support/more-dashboard-apps/cloudflare-custom-pages/ /rules/custom-errors/ 301
/support/more-dashboard-apps/ /support/ 301

# r2
/r2/platform/s3-compatibility/api/ /r2/api/s3/api/ 301
Expand Down
169 changes: 169 additions & 0 deletions src/content/docs/rules/custom-errors/api-calls.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
---
title: Common API calls
pcx_content_type: configuration
sidebar:
order: 5
head:
- tag: title
content: Common API calls | Custom Error Assets
---

The following sections provide examples of common API calls for managing custom error assets at the zone level.

To perform the same operations at the account level, use the corresponding account-level API endpoints.

### Create a custom error asset

The following `POST` request creates new a custom error asset in a zone based on the provided URL:

```bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_pages/assets" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "500_error_template",
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_template.html"
}'
```

```json output
{
"result": {
"name": "500_error_template",
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_template.html",
"last_updated": "2025-02-10T11:36:07.810215Z",
"size_bytes": 2048
},
"success": true
}
```

To create an asset at the account level, use the account-level endpoint:

```txt
https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/custom_pages/assets
```

### List custom error assets

The following `GET` request retrieves a list of custom error assets configured in the zone:

```bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_pages/assets" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
```

```json output
{
"result": [
{
"name": "500_error_template",
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_template.html",
"last_updated": "2025-02-10T11:36:07.810215Z",
"size_bytes": 2048
}
// ...
],
"success": true,
"errors": [],
"messages": [],
"result_info": {
"count": 2,
"page": 1,
"per_page": 20,
"total_count": 2,
"total_pages": 1
}
}
```

To retrieve a list of assets at the account level, use the account-level endpoint:

```txt
https://api.cloudflare.com/client/v4/accounts/$ZONE_ID/custom_pages/assets
```

### Update a custom error asset

The following `PUT` request updates the URL of an existing custom error asset at the zone level named `500_error_template`:

```bash
curl --request PUT \
"https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_pages/assets/500_error_template" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_new_template.html"
}'
```

```json output
{
"result": {
"name": "500_error_template",
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_new_template.html",
"last_updated": "2025-02-10T13:13:07.810215Z",
"size_bytes": 3145
},
"success": true
}
```

You can update the asset description and URL. You cannot update the asset name after creation.

If you provide the same URL when updating an asset, Cloudflare will fetch the URL again, along with its resources.

To update an asset at the account level, use the account-level endpoint:

```txt
https://api.cloudflare.com/client/v4/accounts/{account_id}/custom_pages/assets/{asset_name}
```

### Get a custom error asset

The following `GET` request retrieves the details of an existing custom error asset at the zone level named `500_error_template`:

```bash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_pages/assets/500_error_template" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
```

```json output
{
"result": {
"name": "500_error_template",
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_new_template.html",
"last_updated": "2025-02-10T13:13:07.810215Z",
"size_bytes": 3145
},
"success": true
}
```

To retrieve an asset at the account level, use the account-level endpoint:

```txt
https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/custom_pages/assets/$ASSET_NAME
```

### Delete a custom error asset

The following `DELETE` request deletes an existing custom error asset at the zone level named `500_error_template`:

```bash
curl --request DELETE \
"https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_pages/assets/500_error_template" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
```

If the request is successful, the response will have a `204` HTTP status code.

To delete an asset at the account level, use the account-level endpoint:

```txt
https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/custom_pages/assets/$ASSET_NAME
```
Loading
Loading