---
title: "Read the public cookie declaration"
method: GET
path: "/cookie-declarations/{publishableKey}"
tags: ["CookieDeclaration"]
---

# Read the public cookie declaration

`GET /cookie-declarations/{publishableKey}`

## Request

- Base URL: `https://plainrouter.com/api/v1`
- URL: `https://plainrouter.com/api/v1/cookie-declarations/{publishableKey}`
- Auth: none required

Public on every plan. Returns latest completed scan metadata, never values. Invalid keys return 404 before the 300/minute per-key limiter.

## Path parameters

- `publishableKey` string, required

## Response `200`

Latest completed scan metadata, or empty groups if none has completed.

- CookieDeclaration
  - `scan_date` string, date-time, nullable, required: Date of the latest completed scan; null when no scan has completed. Blocked and failed scans do not replace it.
  - `categories` object, required
    - `necessary` object, required
      - `cookies` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
      - `storage_keys` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
    - `functional` object, required
      - `cookies` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
      - `storage_keys` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
    - `analytics` object, required
      - `cookies` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
      - `storage_keys` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
    - `marketing` object, required
      - `cookies` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
      - `storage_keys` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
    - `unclassified` object, required
      - `cookies` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.
      - `storage_keys` CookieDeclarationItem[], required
        - `name` string, required
        - `provider_domain` string, required
        - `party` 'first' | 'third', required
        - `expiry` string, required: Observed UTC expiry date, Session, or Until removed.
        - `purpose` string, nullable, required: Purpose from the Open Cookie Database, where available.

## Other responses

- `404`: Unknown well-formed key returns an empty array. Invalid-format keys return the API route-not-found response before any limiter bucket is created.
- `429`: The 300-per-minute allowance for this key is exhausted.

---

[API](https://skmtc.dev/plainrouter/apis/plainrouter-conversion-api.md) · [All operations](https://skmtc.dev/plainrouter/apis/plainrouter-conversion-api/llms.txt) · [OpenAPI document](https://skmtc.dev/plainrouter/apis/plainrouter-conversion-api/revisions/d071d4f4f05c?raw)
