# Schedule ## Get a page test schedule `client.Speed.Schedule.Get(ctx, url, params) (*Schedule, error)` **get** `/zones/{zone_id}/speed_api/schedule/{url}` Retrieves the test schedule for a page in a specific region. ### Parameters - `url string` A URL. - `params ScheduleGetParams` - `ZoneID param.Field[string]` Path param: Identifier. - `Region param.Field[ScheduleGetParamsRegion]` Query param: A test region. - `const ScheduleGetParamsRegionAsiaEast1 ScheduleGetParamsRegion = "asia-east1"` - `const ScheduleGetParamsRegionAsiaNortheast1 ScheduleGetParamsRegion = "asia-northeast1"` - `const ScheduleGetParamsRegionAsiaNortheast2 ScheduleGetParamsRegion = "asia-northeast2"` - `const ScheduleGetParamsRegionAsiaSouth1 ScheduleGetParamsRegion = "asia-south1"` - `const ScheduleGetParamsRegionAsiaSoutheast1 ScheduleGetParamsRegion = "asia-southeast1"` - `const ScheduleGetParamsRegionAustraliaSoutheast1 ScheduleGetParamsRegion = "australia-southeast1"` - `const ScheduleGetParamsRegionEuropeNorth1 ScheduleGetParamsRegion = "europe-north1"` - `const ScheduleGetParamsRegionEuropeSouthwest1 ScheduleGetParamsRegion = "europe-southwest1"` - `const ScheduleGetParamsRegionEuropeWest1 ScheduleGetParamsRegion = "europe-west1"` - `const ScheduleGetParamsRegionEuropeWest2 ScheduleGetParamsRegion = "europe-west2"` - `const ScheduleGetParamsRegionEuropeWest3 ScheduleGetParamsRegion = "europe-west3"` - `const ScheduleGetParamsRegionEuropeWest4 ScheduleGetParamsRegion = "europe-west4"` - `const ScheduleGetParamsRegionEuropeWest8 ScheduleGetParamsRegion = "europe-west8"` - `const ScheduleGetParamsRegionEuropeWest9 ScheduleGetParamsRegion = "europe-west9"` - `const ScheduleGetParamsRegionMeWest1 ScheduleGetParamsRegion = "me-west1"` - `const ScheduleGetParamsRegionSouthamericaEast1 ScheduleGetParamsRegion = "southamerica-east1"` - `const ScheduleGetParamsRegionUsCentral1 ScheduleGetParamsRegion = "us-central1"` - `const ScheduleGetParamsRegionUsEast1 ScheduleGetParamsRegion = "us-east1"` - `const ScheduleGetParamsRegionUsEast4 ScheduleGetParamsRegion = "us-east4"` - `const ScheduleGetParamsRegionUsSouth1 ScheduleGetParamsRegion = "us-south1"` - `const ScheduleGetParamsRegionUsWest1 ScheduleGetParamsRegion = "us-west1"` ### Returns - `type Schedule struct{…}` The test schedule. - `Frequency ScheduleFrequency` The frequency of the test. - `const ScheduleFrequencyDaily ScheduleFrequency = "DAILY"` - `const ScheduleFrequencyWeekly ScheduleFrequency = "WEEKLY"` - `Region ScheduleRegion` A test region. - `const ScheduleRegionAsiaEast1 ScheduleRegion = "asia-east1"` - `const ScheduleRegionAsiaNortheast1 ScheduleRegion = "asia-northeast1"` - `const ScheduleRegionAsiaNortheast2 ScheduleRegion = "asia-northeast2"` - `const ScheduleRegionAsiaSouth1 ScheduleRegion = "asia-south1"` - `const ScheduleRegionAsiaSoutheast1 ScheduleRegion = "asia-southeast1"` - `const ScheduleRegionAustraliaSoutheast1 ScheduleRegion = "australia-southeast1"` - `const ScheduleRegionEuropeNorth1 ScheduleRegion = "europe-north1"` - `const ScheduleRegionEuropeSouthwest1 ScheduleRegion = "europe-southwest1"` - `const ScheduleRegionEuropeWest1 ScheduleRegion = "europe-west1"` - `const ScheduleRegionEuropeWest2 ScheduleRegion = "europe-west2"` - `const ScheduleRegionEuropeWest3 ScheduleRegion = "europe-west3"` - `const ScheduleRegionEuropeWest4 ScheduleRegion = "europe-west4"` - `const ScheduleRegionEuropeWest8 ScheduleRegion = "europe-west8"` - `const ScheduleRegionEuropeWest9 ScheduleRegion = "europe-west9"` - `const ScheduleRegionMeWest1 ScheduleRegion = "me-west1"` - `const ScheduleRegionSouthamericaEast1 ScheduleRegion = "southamerica-east1"` - `const ScheduleRegionUsCentral1 ScheduleRegion = "us-central1"` - `const ScheduleRegionUsEast1 ScheduleRegion = "us-east1"` - `const ScheduleRegionUsEast4 ScheduleRegion = "us-east4"` - `const ScheduleRegionUsSouth1 ScheduleRegion = "us-south1"` - `const ScheduleRegionUsWest1 ScheduleRegion = "us-west1"` - `URL string` A URL. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/speed" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) schedule, err := client.Speed.Schedule.Get( context.TODO(), "example.com", speed.ScheduleGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", schedule.Frequency) } ``` #### Response ```json { "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": { "frequency": "DAILY", "region": "us-central1", "url": "example.com" } } ``` ## Create scheduled page test `client.Speed.Schedule.New(ctx, url, params) (*ScheduleNewResponse, error)` **post** `/zones/{zone_id}/speed_api/schedule/{url}` Creates a scheduled test for a page. ### Parameters - `url string` A URL. - `params ScheduleNewParams` - `ZoneID param.Field[string]` Path param: Identifier. - `Frequency param.Field[ScheduleNewParamsFrequency]` Query param: The frequency of the scheduled test. Defaults to WEEKLY for free plans, DAILY for paid plans. - `const ScheduleNewParamsFrequencyDaily ScheduleNewParamsFrequency = "DAILY"` - `const ScheduleNewParamsFrequencyWeekly ScheduleNewParamsFrequency = "WEEKLY"` - `Region param.Field[ScheduleNewParamsRegion]` Query param: A test region. - `const ScheduleNewParamsRegionAsiaEast1 ScheduleNewParamsRegion = "asia-east1"` - `const ScheduleNewParamsRegionAsiaNortheast1 ScheduleNewParamsRegion = "asia-northeast1"` - `const ScheduleNewParamsRegionAsiaNortheast2 ScheduleNewParamsRegion = "asia-northeast2"` - `const ScheduleNewParamsRegionAsiaSouth1 ScheduleNewParamsRegion = "asia-south1"` - `const ScheduleNewParamsRegionAsiaSoutheast1 ScheduleNewParamsRegion = "asia-southeast1"` - `const ScheduleNewParamsRegionAustraliaSoutheast1 ScheduleNewParamsRegion = "australia-southeast1"` - `const ScheduleNewParamsRegionEuropeNorth1 ScheduleNewParamsRegion = "europe-north1"` - `const ScheduleNewParamsRegionEuropeSouthwest1 ScheduleNewParamsRegion = "europe-southwest1"` - `const ScheduleNewParamsRegionEuropeWest1 ScheduleNewParamsRegion = "europe-west1"` - `const ScheduleNewParamsRegionEuropeWest2 ScheduleNewParamsRegion = "europe-west2"` - `const ScheduleNewParamsRegionEuropeWest3 ScheduleNewParamsRegion = "europe-west3"` - `const ScheduleNewParamsRegionEuropeWest4 ScheduleNewParamsRegion = "europe-west4"` - `const ScheduleNewParamsRegionEuropeWest8 ScheduleNewParamsRegion = "europe-west8"` - `const ScheduleNewParamsRegionEuropeWest9 ScheduleNewParamsRegion = "europe-west9"` - `const ScheduleNewParamsRegionMeWest1 ScheduleNewParamsRegion = "me-west1"` - `const ScheduleNewParamsRegionSouthamericaEast1 ScheduleNewParamsRegion = "southamerica-east1"` - `const ScheduleNewParamsRegionUsCentral1 ScheduleNewParamsRegion = "us-central1"` - `const ScheduleNewParamsRegionUsEast1 ScheduleNewParamsRegion = "us-east1"` - `const ScheduleNewParamsRegionUsEast4 ScheduleNewParamsRegion = "us-east4"` - `const ScheduleNewParamsRegionUsSouth1 ScheduleNewParamsRegion = "us-south1"` - `const ScheduleNewParamsRegionUsWest1 ScheduleNewParamsRegion = "us-west1"` ### Returns - `type ScheduleNewResponse struct{…}` - `Schedule Schedule` The test schedule. - `Frequency ScheduleFrequency` The frequency of the test. - `const ScheduleFrequencyDaily ScheduleFrequency = "DAILY"` - `const ScheduleFrequencyWeekly ScheduleFrequency = "WEEKLY"` - `Region ScheduleRegion` A test region. - `const ScheduleRegionAsiaEast1 ScheduleRegion = "asia-east1"` - `const ScheduleRegionAsiaNortheast1 ScheduleRegion = "asia-northeast1"` - `const ScheduleRegionAsiaNortheast2 ScheduleRegion = "asia-northeast2"` - `const ScheduleRegionAsiaSouth1 ScheduleRegion = "asia-south1"` - `const ScheduleRegionAsiaSoutheast1 ScheduleRegion = "asia-southeast1"` - `const ScheduleRegionAustraliaSoutheast1 ScheduleRegion = "australia-southeast1"` - `const ScheduleRegionEuropeNorth1 ScheduleRegion = "europe-north1"` - `const ScheduleRegionEuropeSouthwest1 ScheduleRegion = "europe-southwest1"` - `const ScheduleRegionEuropeWest1 ScheduleRegion = "europe-west1"` - `const ScheduleRegionEuropeWest2 ScheduleRegion = "europe-west2"` - `const ScheduleRegionEuropeWest3 ScheduleRegion = "europe-west3"` - `const ScheduleRegionEuropeWest4 ScheduleRegion = "europe-west4"` - `const ScheduleRegionEuropeWest8 ScheduleRegion = "europe-west8"` - `const ScheduleRegionEuropeWest9 ScheduleRegion = "europe-west9"` - `const ScheduleRegionMeWest1 ScheduleRegion = "me-west1"` - `const ScheduleRegionSouthamericaEast1 ScheduleRegion = "southamerica-east1"` - `const ScheduleRegionUsCentral1 ScheduleRegion = "us-central1"` - `const ScheduleRegionUsEast1 ScheduleRegion = "us-east1"` - `const ScheduleRegionUsEast4 ScheduleRegion = "us-east4"` - `const ScheduleRegionUsSouth1 ScheduleRegion = "us-south1"` - `const ScheduleRegionUsWest1 ScheduleRegion = "us-west1"` - `URL string` A URL. - `Test Test` - `ID string` UUID. - `Date Time` - `DesktopReport LighthouseReport` The Lighthouse report. - `CLS float64` Cumulative Layout Shift. - `DeviceType LighthouseReportDeviceType` The type of device. - `const LighthouseReportDeviceTypeDesktop LighthouseReportDeviceType = "DESKTOP"` - `const LighthouseReportDeviceTypeMobile LighthouseReportDeviceType = "MOBILE"` - `Error LighthouseReportError` - `Code LighthouseReportErrorCode` The error code of the Lighthouse result. - `const LighthouseReportErrorCodeNotReachable LighthouseReportErrorCode = "NOT_REACHABLE"` - `const LighthouseReportErrorCodeDNSFailure LighthouseReportErrorCode = "DNS_FAILURE"` - `const LighthouseReportErrorCodeNotHTML LighthouseReportErrorCode = "NOT_HTML"` - `const LighthouseReportErrorCodeLighthouseTimeout LighthouseReportErrorCode = "LIGHTHOUSE_TIMEOUT"` - `const LighthouseReportErrorCodeUnknown LighthouseReportErrorCode = "UNKNOWN"` - `Detail string` Detailed error message. - `FinalDisplayedURL string` The final URL displayed to the user. - `FCP float64` First Contentful Paint. - `JsonReportURL string` The URL to the full Lighthouse JSON report. - `LCP float64` Largest Contentful Paint. - `PerformanceScore float64` The Lighthouse performance score. - `Si float64` Speed Index. - `State LighthouseReportState` The state of the Lighthouse report. - `const LighthouseReportStateRunning LighthouseReportState = "RUNNING"` - `const LighthouseReportStateComplete LighthouseReportState = "COMPLETE"` - `const LighthouseReportStateFailed LighthouseReportState = "FAILED"` - `TBT float64` Total Blocking Time. - `TTFB float64` Time To First Byte. - `TTI float64` Time To Interactive. - `MobileReport LighthouseReport` The Lighthouse report. - `Region LabeledRegion` A test region with a label. - `Label string` - `Value LabeledRegionValue` A test region. - `const LabeledRegionValueAsiaEast1 LabeledRegionValue = "asia-east1"` - `const LabeledRegionValueAsiaNortheast1 LabeledRegionValue = "asia-northeast1"` - `const LabeledRegionValueAsiaNortheast2 LabeledRegionValue = "asia-northeast2"` - `const LabeledRegionValueAsiaSouth1 LabeledRegionValue = "asia-south1"` - `const LabeledRegionValueAsiaSoutheast1 LabeledRegionValue = "asia-southeast1"` - `const LabeledRegionValueAustraliaSoutheast1 LabeledRegionValue = "australia-southeast1"` - `const LabeledRegionValueEuropeNorth1 LabeledRegionValue = "europe-north1"` - `const LabeledRegionValueEuropeSouthwest1 LabeledRegionValue = "europe-southwest1"` - `const LabeledRegionValueEuropeWest1 LabeledRegionValue = "europe-west1"` - `const LabeledRegionValueEuropeWest2 LabeledRegionValue = "europe-west2"` - `const LabeledRegionValueEuropeWest3 LabeledRegionValue = "europe-west3"` - `const LabeledRegionValueEuropeWest4 LabeledRegionValue = "europe-west4"` - `const LabeledRegionValueEuropeWest8 LabeledRegionValue = "europe-west8"` - `const LabeledRegionValueEuropeWest9 LabeledRegionValue = "europe-west9"` - `const LabeledRegionValueMeWest1 LabeledRegionValue = "me-west1"` - `const LabeledRegionValueSouthamericaEast1 LabeledRegionValue = "southamerica-east1"` - `const LabeledRegionValueUsCentral1 LabeledRegionValue = "us-central1"` - `const LabeledRegionValueUsEast1 LabeledRegionValue = "us-east1"` - `const LabeledRegionValueUsEast4 LabeledRegionValue = "us-east4"` - `const LabeledRegionValueUsSouth1 LabeledRegionValue = "us-south1"` - `const LabeledRegionValueUsWest1 LabeledRegionValue = "us-west1"` - `ScheduleFrequency TestScheduleFrequency` The frequency of the test. - `const TestScheduleFrequencyDaily TestScheduleFrequency = "DAILY"` - `const TestScheduleFrequencyWeekly TestScheduleFrequency = "WEEKLY"` - `URL string` A URL. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/speed" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) schedule, err := client.Speed.Schedule.New( context.TODO(), "example.com", speed.ScheduleNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", schedule.Schedule) } ``` #### Response ```json { "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" } } } ``` ## Delete scheduled page test `client.Speed.Schedule.Delete(ctx, url, params) (*ScheduleDeleteResponse, error)` **delete** `/zones/{zone_id}/speed_api/schedule/{url}` Deletes a scheduled test for a page. ### Parameters - `url string` A URL. - `params ScheduleDeleteParams` - `ZoneID param.Field[string]` Path param: Identifier. - `Region param.Field[ScheduleDeleteParamsRegion]` Query param: A test region. - `const ScheduleDeleteParamsRegionAsiaEast1 ScheduleDeleteParamsRegion = "asia-east1"` - `const ScheduleDeleteParamsRegionAsiaNortheast1 ScheduleDeleteParamsRegion = "asia-northeast1"` - `const ScheduleDeleteParamsRegionAsiaNortheast2 ScheduleDeleteParamsRegion = "asia-northeast2"` - `const ScheduleDeleteParamsRegionAsiaSouth1 ScheduleDeleteParamsRegion = "asia-south1"` - `const ScheduleDeleteParamsRegionAsiaSoutheast1 ScheduleDeleteParamsRegion = "asia-southeast1"` - `const ScheduleDeleteParamsRegionAustraliaSoutheast1 ScheduleDeleteParamsRegion = "australia-southeast1"` - `const ScheduleDeleteParamsRegionEuropeNorth1 ScheduleDeleteParamsRegion = "europe-north1"` - `const ScheduleDeleteParamsRegionEuropeSouthwest1 ScheduleDeleteParamsRegion = "europe-southwest1"` - `const ScheduleDeleteParamsRegionEuropeWest1 ScheduleDeleteParamsRegion = "europe-west1"` - `const ScheduleDeleteParamsRegionEuropeWest2 ScheduleDeleteParamsRegion = "europe-west2"` - `const ScheduleDeleteParamsRegionEuropeWest3 ScheduleDeleteParamsRegion = "europe-west3"` - `const ScheduleDeleteParamsRegionEuropeWest4 ScheduleDeleteParamsRegion = "europe-west4"` - `const ScheduleDeleteParamsRegionEuropeWest8 ScheduleDeleteParamsRegion = "europe-west8"` - `const ScheduleDeleteParamsRegionEuropeWest9 ScheduleDeleteParamsRegion = "europe-west9"` - `const ScheduleDeleteParamsRegionMeWest1 ScheduleDeleteParamsRegion = "me-west1"` - `const ScheduleDeleteParamsRegionSouthamericaEast1 ScheduleDeleteParamsRegion = "southamerica-east1"` - `const ScheduleDeleteParamsRegionUsCentral1 ScheduleDeleteParamsRegion = "us-central1"` - `const ScheduleDeleteParamsRegionUsEast1 ScheduleDeleteParamsRegion = "us-east1"` - `const ScheduleDeleteParamsRegionUsEast4 ScheduleDeleteParamsRegion = "us-east4"` - `const ScheduleDeleteParamsRegionUsSouth1 ScheduleDeleteParamsRegion = "us-south1"` - `const ScheduleDeleteParamsRegionUsWest1 ScheduleDeleteParamsRegion = "us-west1"` ### Returns - `type ScheduleDeleteResponse struct{…}` - `Count float64` Number of items affected. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/speed" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) schedule, err := client.Speed.Schedule.Delete( context.TODO(), "example.com", speed.ScheduleDeleteParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", schedule.Count) } ``` #### Response ```json { "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": { "count": 1 } } ``` ## Domain Types ### Schedule - `type Schedule struct{…}` The test schedule. - `Frequency ScheduleFrequency` The frequency of the test. - `const ScheduleFrequencyDaily ScheduleFrequency = "DAILY"` - `const ScheduleFrequencyWeekly ScheduleFrequency = "WEEKLY"` - `Region ScheduleRegion` A test region. - `const ScheduleRegionAsiaEast1 ScheduleRegion = "asia-east1"` - `const ScheduleRegionAsiaNortheast1 ScheduleRegion = "asia-northeast1"` - `const ScheduleRegionAsiaNortheast2 ScheduleRegion = "asia-northeast2"` - `const ScheduleRegionAsiaSouth1 ScheduleRegion = "asia-south1"` - `const ScheduleRegionAsiaSoutheast1 ScheduleRegion = "asia-southeast1"` - `const ScheduleRegionAustraliaSoutheast1 ScheduleRegion = "australia-southeast1"` - `const ScheduleRegionEuropeNorth1 ScheduleRegion = "europe-north1"` - `const ScheduleRegionEuropeSouthwest1 ScheduleRegion = "europe-southwest1"` - `const ScheduleRegionEuropeWest1 ScheduleRegion = "europe-west1"` - `const ScheduleRegionEuropeWest2 ScheduleRegion = "europe-west2"` - `const ScheduleRegionEuropeWest3 ScheduleRegion = "europe-west3"` - `const ScheduleRegionEuropeWest4 ScheduleRegion = "europe-west4"` - `const ScheduleRegionEuropeWest8 ScheduleRegion = "europe-west8"` - `const ScheduleRegionEuropeWest9 ScheduleRegion = "europe-west9"` - `const ScheduleRegionMeWest1 ScheduleRegion = "me-west1"` - `const ScheduleRegionSouthamericaEast1 ScheduleRegion = "southamerica-east1"` - `const ScheduleRegionUsCentral1 ScheduleRegion = "us-central1"` - `const ScheduleRegionUsEast1 ScheduleRegion = "us-east1"` - `const ScheduleRegionUsEast4 ScheduleRegion = "us-east4"` - `const ScheduleRegionUsSouth1 ScheduleRegion = "us-south1"` - `const ScheduleRegionUsWest1 ScheduleRegion = "us-west1"` - `URL string` A URL.