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"          }        ]      }    ]  }}

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

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

Ours Privacy API key

In: header

Path Parameters

id*string

Query Parameters

limit?|

Maximum number of items to return. Defaults to 25; values below 1 are clamped to 1 and values above 100 are clamped to 100.

cursor?string

Opaque pagination cursor from pagination.nextCursor in the previous response. Do not decode or modify it. Malformed cursors return 400 Bad Request.

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/decision-queue"
{  "scannerId": "string",  "runDate": "string",  "runRevision": "string",  "coverageRevision": "string",  "total": 0,  "entities": [    {      "hostname": "string",      "displayName": "string",      "risk": "string",      "category": "string",      "seenOn": [        "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      }    }  ],  "pagination": {    "nextCursor": "string",    "hasMore": true  }}

POST/rest/v1/web-scanners/{id}/resolve-coverage-gap

POST
/rest/v1/web-scanners/{id}/resolve-coverage-gap
*object
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/resolve-coverage-gap" \  -H "Content-Type: application/json" \  -d '{    "runDate": "2019-08-24T14:15:22Z",    "runRevision": "string",    "coverageRevision": "string",    "hostname": "string",    "idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1",    "suppression": {      "reason": "ignore"    }  }'
{  "status": "already_resolved",  "hostname": "string",  "effectState": "preexisting_coverage",  "coverageSource": "cmp",  "suppressionRuleId": "string",  "coveredByVendorLabel": "string",  "committedCoverageRevision": "string"}

How is this guide?