---
title: "List consents in a date window"
method: GET
path: "/{contact_type}/consents"
tags: ["consents"]
---

# List consents in a date window

`GET /{contact_type}/consents`

## Request

- Base URL: `https://api.fullpath.com/consent-management`
- URL: `https://api.fullpath.com/consent-management/{contact_type}/consents`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/fullpath/apis/fullpath-api-v1-openapi-3-0/docs/:contact_type/consents/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns paginated consent statuses for the target dealer whose
`source_date` falls in `[from, to]`.

Only contacts the authenticated vendor has previously written are
included (active preferences with `source=vendor` and matching
`source_id`).

Limits:
- `from` ≤ `to`
- Maximum window is 14 days (422 if exceeded)
- Date-only values (`Y-m-d`) are accepted; `from` is start of day and
  `to` is end of day
- Default `per_page` is 100; maximum is 500

Empty result: `200` with `data: []`.

Requires `client_key` (query string) to identify the target dealer.

## Path parameters

- `contact_type` 'email' | 'phone_sms' | 'phone_call', required

## Query parameters

- `client_key` string, required
- `from` string, date, required
- `to` string, date, required
- `page` integer
- `per_page` integer

## Response `200`

Paginated consent list for the date window.

- CmListConsentsResponse
  - `data` CmConsentListItem[], required
    - `contact_value` string, required: Normalized contact value as stored on the status row.
    - `opt_in` boolean, nullable, required: Current opt-in status for the contact.
    - `consent_timestamp` string, date-time, required: ISO 8601 timestamp of the consent event (`source_date` on the status row). Same meaning as single GET.
  - `meta` CmPaginationMeta, required
    - `current_page` integer, required
    - `per_page` integer, required
    - `total` integer, required
    - `last_page` integer, required

## Other responses

- `400`: Request failed business-rule validation outside Laravel form validation.
- `401`: Missing, invalid, or expired Bearer token.
- `422`: Laravel validation failure (422 Unprocessable Entity).
- `429`: Rate limit exceeded (100 requests per minute per API key).

## Changes

- **2026-11-06** `4b73e1835a7e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fullpath/apis/fullpath-api-v1-openapi-3-0/changes/:contact_type/consents/get.md)

---

[API](https://skmtc.dev/fullpath/apis/fullpath-api-v1-openapi-3-0.md) - [All operations](https://skmtc.dev/fullpath/apis/fullpath-api-v1-openapi-3-0/llms.txt) - [OpenAPI document](https://skmtc.dev/fullpath/apis/fullpath-api-v1-openapi-3-0/revisions/4b73e1835a7e?raw)
