---
title: "List"
method: GET
path: "/terms"
tags: ["terms"]
---

# List

`GET /terms`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/terms`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

Every terms document row the caller may read (tenant admin: their tenant's + global; platform admin: global + their own tenant's by default, tenant_id for another, all_tenants=true for every tenant), including inactive and expired versions — this is the admin history view, not the "what applies right now" view (that's getMyTerms). Filters only narrow that scope; total counts the rows matching every filter. status is derived at request time from is_active and the effective/expiry window (in_force = active, effective and unexpired; scheduled = active, effective_at in the future; expired = active, expires_at passed; inactive = retired). from/to bound effective_at: YYYY-MM-DD is an inclusive whole UTC day, RFC3339 an exact instant (from inclusive, to exclusive); malformed is 400 invalid_from / invalid_to. Unknown status/type values match nothing; an unknown sort falls back to effective.

## Query parameters

- `q` string
- `status` 'in_force' | 'scheduled' | 'expired' | 'inactive'
- `type` 'platform' | 'privacy' | 'cookies' | 'aml' | 'custom'
- `from` string
- `to` string
- `sort` 'effective' | 'created' | 'updated' | 'title' | 'type' | 'version'
- `sort_dir` 'asc' | 'desc'
- `limit` integer
- `offset` integer
- `tenant_id` string, uuid
- `all_tenants` boolean

## Response `200`

OK

- InternalDeliveryHttpHandlerTermsListResponse
  - `data` EnforcerV3InternalDomainTermsTerms[]
    - `content` string
    - `content_hash` string
    - `created_at` string
    - `effective_at` string
    - `expires_at` string
    - `id` string
    - `is_active` boolean
    - `is_mandatory` boolean
    - `summary` string
    - `tenant_id` string: nil = global
    - `title` string
    - `type` string
    - `updated_at` string
    - `version` string
  - `limit` integer
  - `offset` integer
  - `success` boolean
  - `total` integer

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: forbidden: tenant_id/all_tenants beyond your own tenant without the cross_tenant grant

---

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