> For the complete documentation index see https://domscan.net/llms.txt. Markdown versions of every docs page are available by appending .md to the page URL.

Source: https://domscan.net/nl/docs/products/cookie-scan

# API voor cookie- en trackerscanner API-referentie

Toon cookies, trackers en consentmanager die vóór toestemming zichtbaar zijn. Gebruik deze referentie om een bewerking te kiezen en het gedocumenteerde responsecontract te integreren.

[Productpagina bekijken](https://domscan.net/nl/cookie-scanner-api)

## Bewerkingen

GET `/v1/cookie-scan` [API-referentie bekijken](https://domscan.net/nl/docs/products/cookie-scan#getCookieScan)

## GET `/v1/cookie-scan`

Bewerking: `getCookieScan`
Credits en authenticatie: 8
Authenticatie vereist

GET /v1/cookie-scan Tegoeden: 8

#### Queryparameters

| Parameter | Type | vereist |
| --- | --- | --- |
| url | string | vereist |

#### Antwoordvelden

| Veld | Type |
| --- | --- |
| `url` | string |
| `final_url` | string |
| `status` | string |
| `reason` | string \| null |
| `checked_at` | string |
| `http_status` | integer \| null |
| `redirect_count` | integer |
| `duration_ms` | integer |
| `resource_limit_reached` | boolean |
| `summary` | object |
| `summary.cookies` | integer |
| `summary.first_party_cookies` | integer |
| `summary.third_party_cookies` | integer |
| `summary.session_cookies` | integer |
| `summary.persistent_cookies` | integer |
| `summary.trackers` | integer |
| `summary.third_party_domains` | integer |
| `consent` | object |
| `consent.cmp` | string \| null |
| `consent.tcf_api` | boolean |
| `cookies[]` | object[] |
| `cookies[]` | object |
| `cookies[].name` | string |
| `cookies[].domain` | string |
| `cookies[].path` | string |
| `cookies[].party` | string |
| `cookies[].session` | boolean |
| `cookies[].lifetime_days` | integer \| null |
| `cookies[].secure` | boolean |
| `cookies[].http_only` | boolean |
| `cookies[].same_site` | string \| null |
| `cookies[].size` | integer |
| `cookies[].tracker` | object |
| `cookies[].tracker.name` | string |
| `cookies[].tracker.category` | string |
| `trackers[]` | object[] |
| `trackers[]` | object |
| `trackers[].name` | string |
| `trackers[].category` | string |
| `trackers[].requests` | integer |
| `trackers[].cookies` | integer |
| `third_party_domains[]` | object[] |
| `third_party_domains[]` | object |
| `third_party_domains[].domain` | string |
| `third_party_domains[].requests` | integer |
| `storage` | object |
| `storage.local_storage_keys` | integer |
| `storage.session_storage_keys` | integer |
| `findings[]` | string[] |

#### Voorbeeldverzoek

```bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/cookie-scan?url=https%3A%2F%2Fexample.com"
```

```javascript
const response = await fetch("https://domscan.net/v1/cookie-scan?url=https%3A%2F%2Fexample.com", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
```

```python
import os
import requests

response = requests.get(
    "https://domscan.net/v1/cookie-scan?url=https%3A%2F%2Fexample.com",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
```

```go
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/cookie-scan?url=https%3A%2F%2Fexample.com", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
```

```ruby
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/cookie-scan?url=https%3A%2F%2Fexample.com")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))
```

#### Voorbeeldantwoord

```json
{
  "url": "https://example.com/",
  "final_url": "https://example.com/",
  "status": "ok",
  "reason": null,
  "checked_at": "2026-10-13T12:00:00.000Z",
  "http_status": 200,
  "redirect_count": 0,
  "duration_ms": 4210,
  "resource_limit_reached": false,
  "summary": {
    "cookies": 2,
    "first_party_cookies": 1,
    "third_party_cookies": 1,
    "session_cookies": 1,
    "persistent_cookies": 1,
    "trackers": 1,
    "third_party_domains": 3
  },
  "consent": {
    "cmp": "onetrust",
    "tcf_api": true
  },
  "cookies": [
    {
      "name": "_ga",
      "domain": ".example.com",
      "path": "/",
      "party": "first",
      "session": false,
      "lifetime_days": 400,
      "secure": false,
      "http_only": false,
      "same_site": "Lax",
      "size": 30,
      "tracker": null
    },
    {
      "name": "IDE",
      "domain": ".doubleclick.net",
      "path": "/",
      "party": "third",
      "session": true,
      "lifetime_days": null,
      "secure": true,
      "http_only": true,
      "same_site": "None",
      "size": 60,
      "tracker": {
        "name": "Google Ads",
        "category": "advertising"
      }
    }
  ],
  "trackers": [
    {
      "name": "Google Analytics",
      "category": "analytics",
      "requests": 3
    }
  ],
  "third_party_domains": [
    {
      "domain": "google-analytics.com",
      "requests": 3
    }
  ],
  "storage": {
    "local_storage_keys": 4,
    "session_storage_keys": 1
  },
  "findings": [
    "trackers_load_before_consent",
    "third_party_cookies",
    "cookie_lifetime_over_13_months",
    "cookies_without_secure_flag"
  ]
}
```

#### HTTP-statuscodes

- `200` OK
- `400` Ongeldig verzoek
- `401` Niet geautoriseerd
- `402` Betaling vereist
- `429` Te veel verzoeken

## Referentiebronnen

[OpenAPI 3.0](https://domscan.net/v1/openapi.json)
[Postman](https://domscan.net/v1/postman.json)
[MCP](https://domscan.net/nl/mcp-domain-checker)
