> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinakelai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List jurisdictions

> Every register with its state, size and freshness.

Every register the API serves, with its state, size and freshness, in one unpaged response of about 120 entries sorted by code. Responses can be cached for 60 seconds (`Cache-Control: private, max-age=60`).

Use it at the start of a sync run to skip registers that are `reloading`, to warn about `stale` ones, and to build `jurisdiction` filters from current codes. [Coverage & freshness](https://docs.pinakelai.com/data/coverage-and-freshness.md) explains each field and state.

```bash cURL theme={null}
curl "https://api.pinakelai.com/v1/jurisdictions" \
  -H "Authorization: Bearer $PINAKEL_API_KEY"
```

```python Python theme={null}
import os

import requests

resp = requests.get(
    "https://api.pinakelai.com/v1/jurisdictions",
    headers={"Authorization": f"Bearer {os.environ['PINAKEL_API_KEY']}"},
    timeout=30,
)
resp.raise_for_status()
reloading = [j["code"] for j in resp.json()["data"] if j["state"] == "reloading"]
```

```javascript JavaScript theme={null}
const res = await fetch("https://api.pinakelai.com/v1/jurisdictions", {
  headers: { Authorization: `Bearer ${process.env.PINAKEL_API_KEY}` },
});
const { data } = await res.json();
const reloading = data.filter((j) => j.state === "reloading").map((j) => j.code);
```

```json 200 theme={null}
{
  "object": "list",
  "data": [
    {
      "code": "AD",
      "name": "Andorra",
      "state": "available",
      "record_count": 49376,
      "live_record_count": 31204,
      "earliest_application_year": 1996,
      "latest_application_year": 2026,
      "last_checked_at": "2026-12-01T02:10:44.120000Z",
      "last_changed_at": "2026-12-01T02:31:09.004000Z",
      "feed_published_through": "2026-12-01T02:31:09.004000Z",
      "update_frequency": "daily"
    },
    {
      "code": "AL",
      "name": "Albania",
      "state": "available",
      "record_count": 28018,
      "live_record_count": 19877,
      "earliest_application_year": 1997,
      "latest_application_year": 2026,
      "last_checked_at": "2026-12-01T02:12:03.551000Z",
      "last_changed_at": "2026-11-28T02:19:41.270000Z",
      "feed_published_through": "2026-11-28T02:19:41.270000Z",
      "update_frequency": "daily"
    }
  ]
}
```


## OpenAPI

````yaml GET /v1/jurisdictions
openapi: 3.1.0
info:
  title: Pinakel Trademark Data API
  summary: 'Trademark records from 119 registers: search, retrieve, sync and coverage.'
  description: >
    Structured trademark records from national, regional and international
    registers, normalized into one object.


    - **Authentication:** every endpoint except `GET /v1/health` needs
    `Authorization: Bearer <key>` (`pk_live_...` or `pk_test_...`). Keys are
    never accepted in the URL.

    - **Errors** are RFC 9457 problem details (`application/problem+json`) whose
    `type` links to the error's documentation; every response carries
    `X-Request-Id`.

    - **Limits:** the `RateLimit` and `RateLimit-Policy` headers report the
    key's per-minute and monthly allowance; `429` responses say which one ran
    out and when to retry.

    - **Pagination** is by opaque cursor: send `next_cursor` back with the same
    filters.

    - **Stability:** v1 only gains additive changes. Enumerations in responses
    are open (`x-extensible-enum`): treat unknown values as `other`.


    Guides, concepts and coverage: https://docs.pinakelai.com
  termsOfService: https://www.pinakelai.com/terms-of-use
  contact:
    name: Pinakel API support
    url: https://docs.pinakelai.com/
  license:
    name: 'Proprietary: use under the Pinakel terms of use'
    url: https://www.pinakelai.com/terms-of-use
  version: 1.0.0
servers:
  - url: https://api.pinakelai.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Trademarks
    description: Search, retrieve and batch-retrieve records.
  - name: Changes
    description: Follow every record that changed, by cursor.
  - name: Jurisdictions
    description: Registers covered, their state and freshness.
  - name: Account
    description: Your usage, and the public health check.
paths:
  /v1/jurisdictions:
    get:
      tags:
        - Jurisdictions
      summary: List jurisdictions
      operationId: listJurisdictions
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JurisdictionList'
        '400':
          description: invalid-request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '401':
          description: unauthenticated, key-revoked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '403':
          description: product-not-enabled
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '429':
          description: rate-limited, quota-exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '500':
          description: internal-error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '503':
          description: unavailable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        default:
          description: Any other problem (RFC 9457).
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
components:
  schemas:
    JurisdictionList:
      properties:
        object:
          type: string
          const: list
          title: Object
        data:
          items:
            $ref: '#/components/schemas/Jurisdiction'
          type: array
          title: Data
      type: object
      required:
        - object
        - data
      title: JurisdictionList
    ProblemDocument:
      properties:
        type:
          type: string
          title: Type
        title:
          type: string
          title: Title
        status:
          type: integer
          title: Status
        detail:
          type: string
          title: Detail
        request_id:
          type: string
          title: Request Id
        errors:
          anyOf:
            - items:
                $ref: '#/components/schemas/FieldErrorDocument'
              type: array
            - type: 'null'
          title: Errors
        violated_policies:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Violated Policies
      additionalProperties: true
      type: object
      required:
        - type
        - title
        - status
        - detail
        - request_id
      title: ProblemDocument
      description: OpenAPI schema of every error response (RFC 9457).
    Jurisdiction:
      properties:
        code:
          type: string
          title: Code
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        state:
          type: string
          title: State
          x-extensible-enum:
            - available
            - stale
            - reloading
        record_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Record Count
        live_record_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Live Record Count
        earliest_application_year:
          anyOf:
            - type: integer
            - type: 'null'
          title: Earliest Application Year
        latest_application_year:
          anyOf:
            - type: integer
            - type: 'null'
          title: Latest Application Year
        last_checked_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Checked At
        last_changed_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Changed At
        feed_published_through:
          anyOf:
            - type: string
            - type: 'null'
          title: Feed Published Through
        update_frequency:
          anyOf:
            - type: string
            - type: 'null'
          title: Update Frequency
      type: object
      required:
        - code
        - name
        - state
        - record_count
        - live_record_count
        - earliest_application_year
        - latest_application_year
        - last_checked_at
        - last_changed_at
        - feed_published_through
        - update_frequency
      title: Jurisdiction
    FieldErrorDocument:
      properties:
        code:
          type: string
          title: Code
        detail:
          type: string
          title: Detail
        parameter:
          anyOf:
            - type: string
            - type: 'null'
          title: Parameter
        pointer:
          anyOf:
            - type: string
            - type: 'null'
          title: Pointer
      additionalProperties: false
      type: object
      required:
        - code
        - detail
      title: FieldErrorDocument
      description: OpenAPI schema of one `errors[]` item.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key: Authorization: Bearer pk_live_... (or pk_test_...).'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.