CDPGuidesSupport

Web Scanners

Manage web scanners that crawl your sites for trackers, cookies, and third-party requests. Create a scanner against a root domain, edit its crawl scope, trigger a scan on demand, or delete it (which also removes its suppression rules).

Manage web scanners that crawl your sites for trackers, cookies, and third-party requests. Create a scanner against a root domain, edit its crawl scope, trigger a scan on demand, or delete it (which also removes its suppression rules).

GET/rest/v1/web-scanners

GET
/rest/v1/web-scanners
AuthorizationBearer <token>

Ours Privacy API key

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/web-scanners"
{  "entities": [    {      "id": "string",      "accountId": "string",      "name": "string",      "status": "Disabled",      "rootDomain": "string",      "excludedPatterns": [        "string"      ],      "includedUrls": [        "string"      ],      "urlLimit": 0,      "scanSchedule": "daily",      "nextScheduledScanAt": "string",      "scanStatus": "idle",      "lastScannedAt": "string",      "lastScanStartedAt": "string",      "lastRunCookieCount": 0,      "lastRunRequestCount": 0,      "lastRunSuccessUrlCount": 0,      "lastRunHighRiskRequestCount": 0,      "createdAt": "string",      "updatedAt": "string"    }  ]}

POST/rest/v1/web-scanners

POST
/rest/v1/web-scanners
*object
AuthorizationBearer <token>

Ours Privacy API key

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/rest/v1/web-scanners" \  -H "Content-Type: application/json" \  -d '{    "rootDomain": "string"  }'
{  "id": "string",  "accountId": "string",  "name": "string",  "status": "Disabled",  "rootDomain": "string",  "excludedPatterns": [    "string"  ],  "includedUrls": [    "string"  ],  "urlLimit": 0,  "scanSchedule": "daily",  "nextScheduledScanAt": "string",  "scanStatus": "idle",  "lastScannedAt": "string",  "lastScanStartedAt": "string",  "lastRunCookieCount": 0,  "lastRunRequestCount": 0,  "lastRunSuccessUrlCount": 0,  "lastRunHighRiskRequestCount": 0,  "createdAt": "string",  "updatedAt": "string"}

GET/rest/v1/web-scanners/{id}

GET
/rest/v1/web-scanners/{id}
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/web-scanners/string"
{  "id": "string",  "accountId": "string",  "name": "string",  "status": "Disabled",  "rootDomain": "string",  "excludedPatterns": [    "string"  ],  "includedUrls": [    "string"  ],  "urlLimit": 0,  "scanSchedule": "daily",  "nextScheduledScanAt": "string",  "scanStatus": "idle",  "lastScannedAt": "string",  "lastScanStartedAt": "string",  "lastRunCookieCount": 0,  "lastRunRequestCount": 0,  "lastRunSuccessUrlCount": 0,  "lastRunHighRiskRequestCount": 0,  "createdAt": "string",  "updatedAt": "string"}

PATCH/rest/v1/web-scanners/{id}

PATCH
/rest/v1/web-scanners/{id}
*object
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/rest/v1/web-scanners/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "accountId": "string",  "name": "string",  "status": "Disabled",  "rootDomain": "string",  "excludedPatterns": [    "string"  ],  "includedUrls": [    "string"  ],  "urlLimit": 0,  "scanSchedule": "daily",  "nextScheduledScanAt": "string",  "scanStatus": "idle",  "lastScannedAt": "string",  "lastScanStartedAt": "string",  "lastRunCookieCount": 0,  "lastRunRequestCount": 0,  "lastRunSuccessUrlCount": 0,  "lastRunHighRiskRequestCount": 0,  "createdAt": "string",  "updatedAt": "string"}

DELETE/rest/v1/web-scanners/{id}

DELETE
/rest/v1/web-scanners/{id}
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/rest/v1/web-scanners/string"
{  "id": "string",  "deleted": true}

POST/rest/v1/web-scanners/{id}/trigger

POST
/rest/v1/web-scanners/{id}/trigger
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/rest/v1/web-scanners/string/trigger"
{  "id": "string",  "accountId": "string",  "name": "string",  "status": "Disabled",  "rootDomain": "string",  "excludedPatterns": [    "string"  ],  "includedUrls": [    "string"  ],  "urlLimit": 0,  "scanSchedule": "daily",  "nextScheduledScanAt": "string",  "scanStatus": "idle",  "lastScannedAt": "string",  "lastScanStartedAt": "string",  "lastRunCookieCount": 0,  "lastRunRequestCount": 0,  "lastRunSuccessUrlCount": 0,  "lastRunHighRiskRequestCount": 0,  "createdAt": "string",  "updatedAt": "string"}

POST/rest/v1/web-scanners/{id}/authenticated-scan

POST
/rest/v1/web-scanners/{id}/authenticated-scan
*object
array<object>
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/rest/v1/web-scanners/string/authenticated-scan" \  -H "Content-Type: application/json" \  -d '{    "expiresInHours": 2,    "credentials": [      {        "location": "header",        "name": "Authorization",        "value": "Bearer YOUR_TOKEN"      }    ]  }'
{  "id": "string",  "accountId": "string",  "name": "string",  "status": "Disabled",  "rootDomain": "string",  "excludedPatterns": [    "string"  ],  "includedUrls": [    "string"  ],  "urlLimit": 0,  "scanSchedule": "daily",  "nextScheduledScanAt": "string",  "scanStatus": "idle",  "lastScannedAt": "string",  "lastScanStartedAt": "string",  "lastRunCookieCount": 0,  "lastRunRequestCount": 0,  "lastRunSuccessUrlCount": 0,  "lastRunHighRiskRequestCount": 0,  "createdAt": "string",  "updatedAt": "string"}

POST/rest/v1/web-scanners/{id}/targeted-scan

POST
/rest/v1/web-scanners/{id}/targeted-scan
*object
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/rest/v1/web-scanners/string/targeted-scan" \  -H "Content-Type: application/json" \  -d '{    "targetUrl": "https://example.com/privacy"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "scannerId": "4d4dc154-bef0-4571-8fa5-b883608b16c1",  "requestedUrl": "http://example.com",  "resolvedUrl": "string",  "status": "queued",  "cause": "string",  "createdAt": "string",  "completedAt": "string",  "run": {    "metadata": {      "success_urls": [        "string"      ],      "failed_urls": [        {          "url": "string",          "status_code": 0,          "details": "string"        }      ],      "excluded_urls": [        "string"      ],      "excluded_patterns": [        "string"      ]    },    "summary_generated_at": "string",    "cookieCount": 0,    "localStorageCount": 0,    "requestCount": 0,    "vendorCount": 0  }}

GET/rest/v1/web-scanners/{id}/verification-run

GET
/rest/v1/web-scanners/{id}/verification-run
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Query Parameters

runId*string

Verification run UUID returned by the targeted scan command.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/web-scanners/string/verification-run?runId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "scannerId": "4d4dc154-bef0-4571-8fa5-b883608b16c1",  "requestedUrl": "http://example.com",  "resolvedUrl": "string",  "status": "queued",  "cause": "string",  "createdAt": "string",  "completedAt": "string",  "run": {    "metadata": {      "success_urls": [        "string"      ],      "failed_urls": [        {          "url": "string",          "status_code": 0,          "details": "string"        }      ],      "excluded_urls": [        "string"      ],      "excluded_patterns": [        "string"      ]    },    "summary_generated_at": "string",    "cookieCount": 0,    "localStorageCount": 0,    "requestCount": 0,    "vendorCount": 0  }}

GET/rest/v1/web-scanners/{id}/verification-runs

GET
/rest/v1/web-scanners/{id}/verification-runs
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Query Parameters

limit?integer

How many runs to read, newest first. Defaults to 20, capped at 50.

Range1 <= value <= 50

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/web-scanners/string/verification-runs"
{  "items": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "scannerId": "4d4dc154-bef0-4571-8fa5-b883608b16c1",      "requestedUrl": "http://example.com",      "resolvedUrl": "string",      "status": "queued",      "cause": "string",      "createdAt": "string",      "completedAt": "string",      "run": {        "metadata": {          "success_urls": [            "string"          ],          "failed_urls": [            {              "url": "string",              "status_code": 0,              "details": "string"            }          ],          "excluded_urls": [            "string"          ],          "excluded_patterns": [            "string"          ]        },        "summary_generated_at": "string",        "cookieCount": 0,        "localStorageCount": 0,        "requestCount": 0,        "vendorCount": 0      }    }  ]}

GET/rest/v1/web-scanners/{id}/findings

GET
/rest/v1/web-scanners/{id}/findings
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Query Parameters

date?string

Which scan run to read, as an ISO-8601 timestamp. Only the UTC calendar day is used to select the run; the time component is ignored. Defaults to the most recent run when omitted.

Formatdate-time
limit?integer

Maximum number of findings to return. Defaults to 25; clamped to 1–100.

Range1 <= value <= 100
offset?|

Skip this many findings before returning. Use with limit for load-more paging.

Range0 <= value

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/web-scanners/string/findings"
{  "items": [    {      "hostname": "string",      "urls": [        "string"      ],      "types": [        "audio"      ],      "cookies": [        {          "name": "string",          "value": "string",          "domain": "string",          "path": "string"        }      ],      "seenOn": [        "string"      ],      "privacyKeywords": [        "string"      ],      "risk": "string",      "category": "string",      "displayName": "string",      "dataFlow": {        "recipient": {          "hostname": "string",          "displayName": "string",          "category": "string",          "risk": "string"        },        "categories": [          "credit_card"        ],        "signals": [          {            "category": "credit_card",            "source": "query_parameter",            "field": "string",            "encoding": "string"          }        ],        "requestCount": 0      },      "coveredByCmp": true,      "coveredByVendorLabel": "string"    }  ],  "total": 0,  "hasMore": true}

GET/rest/v1/web-scanners/{id}/cookies

GET
/rest/v1/web-scanners/{id}/cookies
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Query Parameters

date?string

Which scan run to read, as an ISO-8601 timestamp. Only the UTC calendar day is used to select the run; the time component is ignored. Defaults to the most recent run when omitted.

Formatdate-time
limit?integer

Maximum number of findings to return. Defaults to 25; clamped to 1–100.

Range1 <= value <= 100
offset?|

Skip this many findings before returning. Use with limit for load-more paging.

Range0 <= value

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/web-scanners/string/cookies"
{  "cookies": [    {      "name": "string",      "value": "string",      "domain": "string",      "path": "string"    }  ],  "localStorage": [    {      "name": "string",      "value": "string"    }  ],  "totalCookies": 0,  "totalLocalStorage": 0,  "hasMore": true}

GET/rest/v1/web-scanners/{id}/summary

GET
/rest/v1/web-scanners/{id}/summary
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Query Parameters

date?string

Which scan run to read, as an ISO-8601 timestamp. Only the UTC calendar day is used to select the run; the time component is ignored. Defaults to the most recent run when omitted.

Formatdate-time
runRevision?string
coverageRevision?string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/web-scanners/string/summary"
{  "scannerId": "string",  "rootDomain": "string",  "scanStatus": "idle",  "runDate": "string",  "runRevision": "string",  "coverageRevision": "string",  "hostCount": 0,  "vendorCount": 0,  "cookieCount": 0,  "localStorageCount": 0,  "privacyPolicyCount": 0,  "privacyPolicies": [    {      "url": "http://example.com",      "hostnames": [        "string"      ],      "text": "string"    }  ],  "privacyPolicyHosts": [    {      "hostname": "string",      "privacyPolicyUrl": "string"    }  ],  "countsByRisk": {    "high": 0,    "medium": 0,    "low": 0,    "unknown": 0  },  "byCategory": [    {      "category": "string",      "hostCount": 0    }  ],  "coverage": {    "totalHostCount": 0,    "coveredHostCount": 0,    "needsDecisionHostCount": 0,    "coveragePercent": 0  },  "delta": {    "newHostCount": 0,    "removedHostCount": 0  },  "topUncoveredHosts": [    {      "hostname": "string",      "urls": [        "string"      ],      "types": [        "audio"      ],      "cookies": [        {          "name": "string",          "value": "string",          "domain": "string",          "path": "string"        }      ],      "seenOn": [        "string"      ],      "privacyKeywords": [        "string"      ],      "risk": "string",      "category": "string",      "displayName": "string",      "dataFlow": {        "recipient": {          "hostname": "string",          "displayName": "string",          "category": "string",          "risk": "string"        },        "categories": [          "credit_card"        ],        "signals": [          {            "category": "credit_card",            "source": "query_parameter",            "field": "string",            "encoding": "string"          }        ],        "requestCount": 0      },      "coveredByCmp": true,      "coveredByVendorLabel": "string"    }  ],  "accessibility": {    "engine": "string",    "score": 0,    "pagesEvaluated": 0,    "totalViolations": 0,    "totalNodes": 0,    "countsByImpact": {      "critical": 0,      "serious": 0,      "moderate": 0,      "minor": 0    },    "topViolations": [      {        "id": "string",        "impact": "string",        "help": "string",        "helpUrl": "string",        "wcagTags": [          "string"        ],        "pageCount": 0,        "nodeCount": 0,        "pages": [          "string"        ],        "sampleNodes": [          {            "target": [              "string"            ],            "html": "string",            "failureSummary": "string"          }        ]      }    ]  }}

How is this guide?