Skip to content
Start here

Create scheduled page test

POST/zones/{zone_id}/speed_api/schedule/{url}

Creates a scheduled test for a page.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Zone Settings Write
Path ParametersExpand Collapse
zone_id: string

Identifier.

maxLength32
url: string

A URL.

Query ParametersExpand Collapse
frequency: optional "DAILY" or "WEEKLY"

The frequency of the scheduled test. Defaults to WEEKLY for free plans, DAILY for paid plans.

One of the following:
"DAILY"
"WEEKLY"
region: optional "asia-east1" or "asia-northeast1" or "asia-northeast2" or 18 more

A test region.

One of the following:
"asia-east1"
"asia-northeast1"
"asia-northeast2"
"asia-south1"
"asia-southeast1"
"australia-southeast1"
"europe-north1"
"europe-southwest1"
"europe-west1"
"europe-west2"
"europe-west3"
"europe-west4"
"europe-west8"
"europe-west9"
"me-west1"
"southamerica-east1"
"us-central1"
"us-east1"
"us-east4"
"us-south1"
"us-west1"
ReturnsExpand Collapse
errors: array of ResponseInfo { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of ResponseInfo { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: boolean

Whether the API call was successful.

result: optional object { schedule, test }
schedule: optional Schedule { frequency, region, url }

The test schedule.

frequency: optional "DAILY" or "WEEKLY"

The frequency of the test.

One of the following:
"DAILY"
"WEEKLY"
region: optional "asia-east1" or "asia-northeast1" or "asia-northeast2" or 18 more

A test region.

One of the following:
"asia-east1"
"asia-northeast1"
"asia-northeast2"
"asia-south1"
"asia-southeast1"
"australia-southeast1"
"europe-north1"
"europe-southwest1"
"europe-west1"
"europe-west2"
"europe-west3"
"europe-west4"
"europe-west8"
"europe-west9"
"me-west1"
"southamerica-east1"
"us-central1"
"us-east1"
"us-east4"
"us-south1"
"us-west1"
url: optional string

A URL.

test: optional Test { id, date, desktopReport, 4 more }
id: optional string

UUID.

maxLength36
date: optional string
formatdate-time
desktopReport: optional LighthouseReport { cls, deviceType, error, 9 more }

The Lighthouse report.

cls: optional number

Cumulative Layout Shift.

deviceType: optional "DESKTOP" or "MOBILE"

The type of device.

One of the following:
"DESKTOP"
"MOBILE"
error: optional object { code, detail, finalDisplayedUrl }
code: optional "NOT_REACHABLE" or "DNS_FAILURE" or "NOT_HTML" or 2 more

The error code of the Lighthouse result.

One of the following:
"NOT_REACHABLE"
"DNS_FAILURE"
"NOT_HTML"
"LIGHTHOUSE_TIMEOUT"
"UNKNOWN"
detail: optional string

Detailed error message.

finalDisplayedUrl: optional string

The final URL displayed to the user.

fcp: optional number

First Contentful Paint.

jsonReportUrl: optional string

The URL to the full Lighthouse JSON report.

lcp: optional number

Largest Contentful Paint.

performanceScore: optional number

The Lighthouse performance score.

si: optional number

Speed Index.

state: optional "RUNNING" or "COMPLETE" or "FAILED"

The state of the Lighthouse report.

One of the following:
"RUNNING"
"COMPLETE"
"FAILED"
tbt: optional number

Total Blocking Time.

ttfb: optional number

Time To First Byte.

tti: optional number

Time To Interactive.

mobileReport: optional LighthouseReport { cls, deviceType, error, 9 more }

The Lighthouse report.

cls: optional number

Cumulative Layout Shift.

deviceType: optional "DESKTOP" or "MOBILE"

The type of device.

One of the following:
"DESKTOP"
"MOBILE"
error: optional object { code, detail, finalDisplayedUrl }
code: optional "NOT_REACHABLE" or "DNS_FAILURE" or "NOT_HTML" or 2 more

The error code of the Lighthouse result.

One of the following:
"NOT_REACHABLE"
"DNS_FAILURE"
"NOT_HTML"
"LIGHTHOUSE_TIMEOUT"
"UNKNOWN"
detail: optional string

Detailed error message.

finalDisplayedUrl: optional string

The final URL displayed to the user.

fcp: optional number

First Contentful Paint.

jsonReportUrl: optional string

The URL to the full Lighthouse JSON report.

lcp: optional number

Largest Contentful Paint.

performanceScore: optional number

The Lighthouse performance score.

si: optional number

Speed Index.

state: optional "RUNNING" or "COMPLETE" or "FAILED"

The state of the Lighthouse report.

One of the following:
"RUNNING"
"COMPLETE"
"FAILED"
tbt: optional number

Total Blocking Time.

ttfb: optional number

Time To First Byte.

tti: optional number

Time To Interactive.

region: optional LabeledRegion { label, value }

A test region with a label.

label: optional string
value: optional "asia-east1" or "asia-northeast1" or "asia-northeast2" or 18 more

A test region.

One of the following:
"asia-east1"
"asia-northeast1"
"asia-northeast2"
"asia-south1"
"asia-southeast1"
"australia-southeast1"
"europe-north1"
"europe-southwest1"
"europe-west1"
"europe-west2"
"europe-west3"
"europe-west4"
"europe-west8"
"europe-west9"
"me-west1"
"southamerica-east1"
"us-central1"
"us-east1"
"us-east4"
"us-south1"
"us-west1"
scheduleFrequency: optional "DAILY" or "WEEKLY"

The frequency of the test.

One of the following:
"DAILY"
"WEEKLY"
url: optional string

A URL.

Create scheduled page test

curl https://api.cloudflare.com/client/v4/zones/$ZONE_ID/speed_api/schedule/$URL \
    -X POST \
    -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "schedule": {
      "frequency": "DAILY",
      "region": "us-central1",
      "url": "example.com"
    },
    "test": {
      "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
      "date": "2014-01-01T05:20:00.12345Z",
      "desktopReport": {
        "cls": 100,
        "deviceType": "DESKTOP",
        "error": {
          "code": "NOT_REACHABLE",
          "detail": "Details: net::ERR_CONNECTION_CLOSED",
          "finalDisplayedUrl": "example.com"
        },
        "fcp": 100,
        "jsonReportUrl": "jsonReportUrl",
        "lcp": 100,
        "performanceScore": 90,
        "si": 100,
        "state": "COMPLETE",
        "tbt": 100,
        "ttfb": 100,
        "tti": 100
      },
      "mobileReport": {
        "cls": 100,
        "deviceType": "DESKTOP",
        "error": {
          "code": "NOT_REACHABLE",
          "detail": "Details: net::ERR_CONNECTION_CLOSED",
          "finalDisplayedUrl": "example.com"
        },
        "fcp": 100,
        "jsonReportUrl": "jsonReportUrl",
        "lcp": 100,
        "performanceScore": 90,
        "si": 100,
        "state": "COMPLETE",
        "tbt": 100,
        "ttfb": 100,
        "tti": 100
      },
      "region": {
        "label": "Iowa, USA",
        "value": "us-central1"
      },
      "scheduleFrequency": "DAILY",
      "url": "example.com"
    }
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "schedule": {
      "frequency": "DAILY",
      "region": "us-central1",
      "url": "example.com"
    },
    "test": {
      "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
      "date": "2014-01-01T05:20:00.12345Z",
      "desktopReport": {
        "cls": 100,
        "deviceType": "DESKTOP",
        "error": {
          "code": "NOT_REACHABLE",
          "detail": "Details: net::ERR_CONNECTION_CLOSED",
          "finalDisplayedUrl": "example.com"
        },
        "fcp": 100,
        "jsonReportUrl": "jsonReportUrl",
        "lcp": 100,
        "performanceScore": 90,
        "si": 100,
        "state": "COMPLETE",
        "tbt": 100,
        "ttfb": 100,
        "tti": 100
      },
      "mobileReport": {
        "cls": 100,
        "deviceType": "DESKTOP",
        "error": {
          "code": "NOT_REACHABLE",
          "detail": "Details: net::ERR_CONNECTION_CLOSED",
          "finalDisplayedUrl": "example.com"
        },
        "fcp": 100,
        "jsonReportUrl": "jsonReportUrl",
        "lcp": 100,
        "performanceScore": 90,
        "si": 100,
        "state": "COMPLETE",
        "tbt": 100,
        "ttfb": 100,
        "tti": 100
      },
      "region": {
        "label": "Iowa, USA",
        "value": "us-central1"
      },
      "scheduleFrequency": "DAILY",
      "url": "example.com"
    }
  }
}