# Pages ## List tested webpages `speed.pages.list(PageListParams**kwargs) -> SyncSinglePage[PageListResponse]` **get** `/zones/{zone_id}/speed_api/pages` Lists all webpages which have been tested. ### Parameters - `zone_id: str` Identifier. ### Returns - `class PageListResponse: …` - `region: Optional[LabeledRegion]` A test region with a label. - `label: Optional[str]` - `value: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `tests: Optional[List[Test]]` - `id: Optional[str]` UUID. - `date: Optional[datetime]` - `desktop_report: Optional[LighthouseReport]` The Lighthouse report. - `cls: Optional[float]` Cumulative Layout Shift. - `device_type: Optional[Literal["DESKTOP", "MOBILE"]]` The type of device. - `"DESKTOP"` - `"MOBILE"` - `error: Optional[Error]` - `code: Optional[Literal["NOT_REACHABLE", "DNS_FAILURE", "NOT_HTML", 2 more]]` The error code of the Lighthouse result. - `"NOT_REACHABLE"` - `"DNS_FAILURE"` - `"NOT_HTML"` - `"LIGHTHOUSE_TIMEOUT"` - `"UNKNOWN"` - `detail: Optional[str]` Detailed error message. - `final_displayed_url: Optional[str]` The final URL displayed to the user. - `fcp: Optional[float]` First Contentful Paint. - `json_report_url: Optional[str]` The URL to the full Lighthouse JSON report. - `lcp: Optional[float]` Largest Contentful Paint. - `performance_score: Optional[float]` The Lighthouse performance score. - `si: Optional[float]` Speed Index. - `state: Optional[Literal["RUNNING", "COMPLETE", "FAILED"]]` The state of the Lighthouse report. - `"RUNNING"` - `"COMPLETE"` - `"FAILED"` - `tbt: Optional[float]` Total Blocking Time. - `ttfb: Optional[float]` Time To First Byte. - `tti: Optional[float]` Time To Interactive. - `mobile_report: Optional[LighthouseReport]` The Lighthouse report. - `region: Optional[LabeledRegion]` A test region with a label. - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `url: Optional[str]` A URL. - `url: Optional[str]` A URL. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.speed.pages.list( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.region) ``` #### 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": [ { "region": { "label": "Iowa, USA", "value": "us-central1" }, "scheduleFrequency": "DAILY", "tests": [ { "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" } ], "url": "example.com" } ] } ``` ## List core web vital metrics trend `speed.pages.trend(strurl, PageTrendParams**kwargs) -> Trend` **get** `/zones/{zone_id}/speed_api/pages/{url}/trend` Lists the core web vital metrics trend over time for a specific page. ### Parameters - `zone_id: str` Identifier. - `url: str` A URL. - `device_type: Literal["DESKTOP", "MOBILE"]` The type of device. - `"DESKTOP"` - `"MOBILE"` - `metrics: str` A comma-separated list of metrics to include in the results. - `region: Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]` A test region. - `"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"` - `start: Union[str, datetime]` - `tz: str` The timezone of the start and end timestamps. - `end: Optional[Union[str, datetime]]` ### Returns - `class Trend: …` - `cls: Optional[List[Optional[float]]]` Cumulative Layout Shift trend. - `fcp: Optional[List[Optional[float]]]` First Contentful Paint trend. - `lcp: Optional[List[Optional[float]]]` Largest Contentful Paint trend. - `performance_score: Optional[List[Optional[float]]]` The Lighthouse score trend. - `si: Optional[List[Optional[float]]]` Speed Index trend. - `tbt: Optional[List[Optional[float]]]` Total Blocking Time trend. - `ttfb: Optional[List[Optional[float]]]` Time To First Byte trend. - `tti: Optional[List[Optional[float]]]` Time To Interactive trend. ### Example ```python import os from datetime import datetime from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) trend = client.speed.pages.trend( url="example.com", zone_id="023e105f4ecef8ad9ca31a8372d0c353", device_type="DESKTOP", metrics="performanceScore,ttfb,fcp,si,lcp,tti,tbt,cls", region="us-central1", start=datetime.fromisoformat("2014-01-01T05:20:00.12345"), tz="tz", ) print(trend.cls) ``` #### 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": { "cls": [ 0 ], "fcp": [ 0 ], "lcp": [ 0 ], "performanceScore": [ 0 ], "si": [ 0 ], "tbt": [ 0 ], "ttfb": [ 0 ], "tti": [ 0 ] } } ``` ## Domain Types ### Page List Response - `class PageListResponse: …` - `region: Optional[LabeledRegion]` A test region with a label. - `label: Optional[str]` - `value: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `tests: Optional[List[Test]]` - `id: Optional[str]` UUID. - `date: Optional[datetime]` - `desktop_report: Optional[LighthouseReport]` The Lighthouse report. - `cls: Optional[float]` Cumulative Layout Shift. - `device_type: Optional[Literal["DESKTOP", "MOBILE"]]` The type of device. - `"DESKTOP"` - `"MOBILE"` - `error: Optional[Error]` - `code: Optional[Literal["NOT_REACHABLE", "DNS_FAILURE", "NOT_HTML", 2 more]]` The error code of the Lighthouse result. - `"NOT_REACHABLE"` - `"DNS_FAILURE"` - `"NOT_HTML"` - `"LIGHTHOUSE_TIMEOUT"` - `"UNKNOWN"` - `detail: Optional[str]` Detailed error message. - `final_displayed_url: Optional[str]` The final URL displayed to the user. - `fcp: Optional[float]` First Contentful Paint. - `json_report_url: Optional[str]` The URL to the full Lighthouse JSON report. - `lcp: Optional[float]` Largest Contentful Paint. - `performance_score: Optional[float]` The Lighthouse performance score. - `si: Optional[float]` Speed Index. - `state: Optional[Literal["RUNNING", "COMPLETE", "FAILED"]]` The state of the Lighthouse report. - `"RUNNING"` - `"COMPLETE"` - `"FAILED"` - `tbt: Optional[float]` Total Blocking Time. - `ttfb: Optional[float]` Time To First Byte. - `tti: Optional[float]` Time To Interactive. - `mobile_report: Optional[LighthouseReport]` The Lighthouse report. - `region: Optional[LabeledRegion]` A test region with a label. - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `url: Optional[str]` A URL. - `url: Optional[str]` A URL. # Tests ## List page test history `speed.pages.tests.list(strurl, TestListParams**kwargs) -> SyncV4PagePaginationArray[Test]` **get** `/zones/{zone_id}/speed_api/pages/{url}/tests` Test history (list of tests) for a specific webpage. ### Parameters - `zone_id: str` Identifier. - `url: str` A URL. - `page: Optional[int]` - `per_page: Optional[int]` - `region: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` ### Returns - `class Test: …` - `id: Optional[str]` UUID. - `date: Optional[datetime]` - `desktop_report: Optional[LighthouseReport]` The Lighthouse report. - `cls: Optional[float]` Cumulative Layout Shift. - `device_type: Optional[Literal["DESKTOP", "MOBILE"]]` The type of device. - `"DESKTOP"` - `"MOBILE"` - `error: Optional[Error]` - `code: Optional[Literal["NOT_REACHABLE", "DNS_FAILURE", "NOT_HTML", 2 more]]` The error code of the Lighthouse result. - `"NOT_REACHABLE"` - `"DNS_FAILURE"` - `"NOT_HTML"` - `"LIGHTHOUSE_TIMEOUT"` - `"UNKNOWN"` - `detail: Optional[str]` Detailed error message. - `final_displayed_url: Optional[str]` The final URL displayed to the user. - `fcp: Optional[float]` First Contentful Paint. - `json_report_url: Optional[str]` The URL to the full Lighthouse JSON report. - `lcp: Optional[float]` Largest Contentful Paint. - `performance_score: Optional[float]` The Lighthouse performance score. - `si: Optional[float]` Speed Index. - `state: Optional[Literal["RUNNING", "COMPLETE", "FAILED"]]` The state of the Lighthouse report. - `"RUNNING"` - `"COMPLETE"` - `"FAILED"` - `tbt: Optional[float]` Total Blocking Time. - `ttfb: Optional[float]` Time To First Byte. - `tti: Optional[float]` Time To Interactive. - `mobile_report: Optional[LighthouseReport]` The Lighthouse report. - `region: Optional[LabeledRegion]` A test region with a label. - `label: Optional[str]` - `value: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `url: Optional[str]` A URL. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.speed.pages.tests.list( url="example.com", zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### 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": [ { "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" } ], "result_info": { "count": 5, "page": 1, "per_page": 5, "total_count": 3 } } ``` ## Get a page test result `speed.pages.tests.get(strtest_id, TestGetParams**kwargs) -> Test` **get** `/zones/{zone_id}/speed_api/pages/{url}/tests/{test_id}` Retrieves the result of a specific test. ### Parameters - `zone_id: str` Identifier. - `url: str` A URL. - `test_id: str` ### Returns - `class Test: …` - `id: Optional[str]` UUID. - `date: Optional[datetime]` - `desktop_report: Optional[LighthouseReport]` The Lighthouse report. - `cls: Optional[float]` Cumulative Layout Shift. - `device_type: Optional[Literal["DESKTOP", "MOBILE"]]` The type of device. - `"DESKTOP"` - `"MOBILE"` - `error: Optional[Error]` - `code: Optional[Literal["NOT_REACHABLE", "DNS_FAILURE", "NOT_HTML", 2 more]]` The error code of the Lighthouse result. - `"NOT_REACHABLE"` - `"DNS_FAILURE"` - `"NOT_HTML"` - `"LIGHTHOUSE_TIMEOUT"` - `"UNKNOWN"` - `detail: Optional[str]` Detailed error message. - `final_displayed_url: Optional[str]` The final URL displayed to the user. - `fcp: Optional[float]` First Contentful Paint. - `json_report_url: Optional[str]` The URL to the full Lighthouse JSON report. - `lcp: Optional[float]` Largest Contentful Paint. - `performance_score: Optional[float]` The Lighthouse performance score. - `si: Optional[float]` Speed Index. - `state: Optional[Literal["RUNNING", "COMPLETE", "FAILED"]]` The state of the Lighthouse report. - `"RUNNING"` - `"COMPLETE"` - `"FAILED"` - `tbt: Optional[float]` Total Blocking Time. - `ttfb: Optional[float]` Time To First Byte. - `tti: Optional[float]` Time To Interactive. - `mobile_report: Optional[LighthouseReport]` The Lighthouse report. - `region: Optional[LabeledRegion]` A test region with a label. - `label: Optional[str]` - `value: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `url: Optional[str]` A URL. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) test = client.speed.pages.tests.get( test_id="test_id", zone_id="023e105f4ecef8ad9ca31a8372d0c353", url="example.com", ) print(test.id) ``` #### 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": { "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" } } ``` ## Start page test `speed.pages.tests.create(strurl, TestCreateParams**kwargs) -> Test` **post** `/zones/{zone_id}/speed_api/pages/{url}/tests` Starts a test for a specific webpage, in a specific region. ### Parameters - `zone_id: str` Identifier. - `url: str` A URL. - `region: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` ### Returns - `class Test: …` - `id: Optional[str]` UUID. - `date: Optional[datetime]` - `desktop_report: Optional[LighthouseReport]` The Lighthouse report. - `cls: Optional[float]` Cumulative Layout Shift. - `device_type: Optional[Literal["DESKTOP", "MOBILE"]]` The type of device. - `"DESKTOP"` - `"MOBILE"` - `error: Optional[Error]` - `code: Optional[Literal["NOT_REACHABLE", "DNS_FAILURE", "NOT_HTML", 2 more]]` The error code of the Lighthouse result. - `"NOT_REACHABLE"` - `"DNS_FAILURE"` - `"NOT_HTML"` - `"LIGHTHOUSE_TIMEOUT"` - `"UNKNOWN"` - `detail: Optional[str]` Detailed error message. - `final_displayed_url: Optional[str]` The final URL displayed to the user. - `fcp: Optional[float]` First Contentful Paint. - `json_report_url: Optional[str]` The URL to the full Lighthouse JSON report. - `lcp: Optional[float]` Largest Contentful Paint. - `performance_score: Optional[float]` The Lighthouse performance score. - `si: Optional[float]` Speed Index. - `state: Optional[Literal["RUNNING", "COMPLETE", "FAILED"]]` The state of the Lighthouse report. - `"RUNNING"` - `"COMPLETE"` - `"FAILED"` - `tbt: Optional[float]` Total Blocking Time. - `ttfb: Optional[float]` Time To First Byte. - `tti: Optional[float]` Time To Interactive. - `mobile_report: Optional[LighthouseReport]` The Lighthouse report. - `region: Optional[LabeledRegion]` A test region with a label. - `label: Optional[str]` - `value: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `url: Optional[str]` A URL. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) test = client.speed.pages.tests.create( url="example.com", zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(test.id) ``` #### 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": { "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 all page tests `speed.pages.tests.delete(strurl, TestDeleteParams**kwargs) -> TestDeleteResponse` **delete** `/zones/{zone_id}/speed_api/pages/{url}/tests` Deletes all tests for a specific webpage from a specific region. Deleted tests are still counted as part of the quota. ### Parameters - `zone_id: str` Identifier. - `url: str` A URL. - `region: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` ### Returns - `class TestDeleteResponse: …` - `count: Optional[float]` Number of items affected. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) test = client.speed.pages.tests.delete( url="example.com", zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(test.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 ### Test - `class Test: …` - `id: Optional[str]` UUID. - `date: Optional[datetime]` - `desktop_report: Optional[LighthouseReport]` The Lighthouse report. - `cls: Optional[float]` Cumulative Layout Shift. - `device_type: Optional[Literal["DESKTOP", "MOBILE"]]` The type of device. - `"DESKTOP"` - `"MOBILE"` - `error: Optional[Error]` - `code: Optional[Literal["NOT_REACHABLE", "DNS_FAILURE", "NOT_HTML", 2 more]]` The error code of the Lighthouse result. - `"NOT_REACHABLE"` - `"DNS_FAILURE"` - `"NOT_HTML"` - `"LIGHTHOUSE_TIMEOUT"` - `"UNKNOWN"` - `detail: Optional[str]` Detailed error message. - `final_displayed_url: Optional[str]` The final URL displayed to the user. - `fcp: Optional[float]` First Contentful Paint. - `json_report_url: Optional[str]` The URL to the full Lighthouse JSON report. - `lcp: Optional[float]` Largest Contentful Paint. - `performance_score: Optional[float]` The Lighthouse performance score. - `si: Optional[float]` Speed Index. - `state: Optional[Literal["RUNNING", "COMPLETE", "FAILED"]]` The state of the Lighthouse report. - `"RUNNING"` - `"COMPLETE"` - `"FAILED"` - `tbt: Optional[float]` Total Blocking Time. - `ttfb: Optional[float]` Time To First Byte. - `tti: Optional[float]` Time To Interactive. - `mobile_report: Optional[LighthouseReport]` The Lighthouse report. - `region: Optional[LabeledRegion]` A test region with a label. - `label: Optional[str]` - `value: Optional[Literal["asia-east1", "asia-northeast1", "asia-northeast2", 18 more]]` A test region. - `"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"` - `schedule_frequency: Optional[Literal["DAILY", "WEEKLY"]]` The frequency of the test. - `"DAILY"` - `"WEEKLY"` - `url: Optional[str]` A URL. ### Test Delete Response - `class TestDeleteResponse: …` - `count: Optional[float]` Number of items affected.