URL Scanner

url_scanner

Domain types

URLScannerDomain = { id, name, super_category_id }
URLScannerTask = { effectiveUrl, errors, location, 7 more... }
URL Scanner

Responses

url_scanner.responses

Methods

Get Raw Response -> string
get/accounts/{account_id}/urlscanner/v2/responses/{response_id}

Returns the raw response of the network request. Find the response_id in the data.requests.response.hash.

url_scanner.scans

Methods

Bulk Create URL Scans -> Array<{ api, result, url, 3 more... }>
post/accounts/{account_id}/urlscanner/v2/bulk

Submit URLs to scan. Check limits at https://developers.cloudflare.com/security-center/investigate/scan-limits/ and take into account scans submitted in bulk have lower priority and may take longer to finish.

Create URL Scan -> { api, message, result, 4 more... }
post/accounts/{account_id}/urlscanner/v2/scan
Get URL Scan S DOM -> string
get/accounts/{account_id}/urlscanner/v2/dom/{scan_id}

Returns a plain text response, with the scan's DOM content as rendered by Chrome.

Get URL Scan -> { data, lists, meta, 5 more... }
get/accounts/{account_id}/urlscanner/v2/result/{scan_id}

Get URL scan by uuid

Security

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

Example: Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY

Accepted Permissions (at least one required)

URL Scanner Write URL Scanner Read

path Parameters
account_id: string

Account ID.

scan_id: string
(format: uuid)

Scan UUID.

Response fields
data: { console, cookies, globals, 3 more... }
lists: { asns, certificates, continents, 7 more... }
meta: { processors }
page: { apexDomain, asn, asnname, 14 more... }
scanner: { colo, country }
stats: { domainStats, ipStats, IPv6Percentage, 10 more... }
task: { apexDomain, domain, domURL, 10 more... }
verdicts: { overall }
Request example
200Example
Get URL Scan S HAR -> { log }
get/accounts/{account_id}/urlscanner/v2/har/{scan_id}

Get a URL scan's HAR file. See HAR spec at http://www.softwareishard.com/blog/har-12-spec/.

Search URL Scans -> { results }
get/accounts/{account_id}/urlscanner/v2/search

Use a subset of ElasticSearch Query syntax to filter scans. Some example queries:

- 'path:"/bundles/jquery.js"': Searches for scans who requested resources with the given path.
- 'page.asn:AS24940 AND hash:xxx': Websites hosted in AS24940 where a resource with the given hash was downloaded.
- 'page.domain:microsoft* AND verdicts.malicious:true AND NOT page.domain:microsoft.com': malicious scans whose hostname starts with "microsoft".
- 'apikey:me AND date:[2025-01 TO 2025-02]': my scans from 2025 January to 2025 February.

Get Screenshot -> unknown
get/accounts/{account_id}/urlscanner/v2/screenshots/{scan_id}.png

Get scan's screenshot by resolution (desktop/mobile/tablet).