---
title: "Check Consent"
method: GET
path: "/v1/consent/check"
tags: ["consent-api"]
---

# Check Consent

`GET /v1/consent/check`

## Request

- Base URL: `https://api.openproof.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openproof.io/v1/consent/check`
- Auth: none declared. Required headers: `X-OpenProof-Api-Key`

Returns the CURRENT status of the most recent decision for this
principal + category, if any exists. `identifier` matches whatever
was used to record consent for this principal -- an email (hosted
consent page), a customer id (signed widget identity or the record
API) or a device_id (embedded widget), since all are stored in the
same principal_identifier field. `category` matches
by NAME, case-insensitive, not by internal UUID -- a business's own
backend code shouldn't need to hardcode OpenProof's category IDs.

allowed=False covers both an explicit rejection/withdrawal AND no
record existing at all -- callers that need to distinguish "never
asked" from "said no" should check `status` (null vs "rejected"/
"withdrawn"), not just `allowed`, since gating a real action on
consent should default to false whenever there's any doubt.

## Query parameters

- `identifier` string, required
- `category` string, required

## Headers

- `X-OpenProof-Api-Key` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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