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

# List Jurisdictions

> List all trademark jurisdictions with office coverage

## Overview

Returns every jurisdiction Signa tracks, whether or not it has a live office connection yet. Each entry reports the jurisdiction's scope, Madrid Protocol membership, and its office coverage status. Use this to build jurisdiction pickers and to tell customers which jurisdictions have live data today versus which are recognized but not yet covered.

## Query Parameters

<ParamField query="limit" type="integer" default="100">
  Max results per page (max 500).
</ParamField>

<ParamField query="cursor" type="string">
  Pagination cursor, the jurisdiction `code` of the last item on the previous page.
</ParamField>

<ParamField query="include_total" type="boolean" default="false">
  When `true`, includes `pagination.total_count` (exact, the full catalog is loaded server-side).
</ParamField>

## Response

This endpoint is publicly cacheable, so the response never includes `request_id`.

<ResponseField name="object" type="string">Always `list`.</ResponseField>

<ResponseField name="data" type="object[]">
  <Expandable title="Jurisdiction object">
    <ResponseField name="code" type="string">ISO 3166-1 alpha-2 jurisdiction code, or a WIPO/regional code such as `EU`.</ResponseField>
    <ResponseField name="object" type="string">Always `jurisdiction`.</ResponseField>
    <ResponseField name="name" type="string">Jurisdiction name.</ResponseField>
    <ResponseField name="office_code" type="string | null">Office code for this jurisdiction's trademark office, or `null` when `office_status` is not `live`.</ResponseField>
    <ResponseField name="office_status" type="string">`live` when the office connection is shipping data, `roadmap` when an office is planned but not yet live, `not_covered` when no office is associated with this jurisdiction.</ResponseField>
    <ResponseField name="scope_type" type="string">`national`, `regional`, or `international`.</ResponseField>
    <ResponseField name="madrid_member" type="boolean">Whether the jurisdiction is a Madrid Protocol member.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="has_more" type="boolean">Whether more pages are available.</ResponseField>

<ResponseField name="pagination" type="object">
  <Expandable title="Pagination">
    <ResponseField name="cursor" type="string | null">Cursor for the next page, or `null` on the last page.</ResponseField>
    <ResponseField name="total_count" type="integer">Exact jurisdiction count. Only present when `include_total=true`.</ResponseField>
    <ResponseField name="total_count_approximate" type="boolean">Always `false` when present, the count is exact.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json theme={null}
  {
    "object": "list",
    "data": [
      {
        "code": "EU",
        "object": "jurisdiction",
        "name": "European Union",
        "office_code": "EM",
        "office_status": "live",
        "scope_type": "regional",
        "madrid_member": true
      },
      {
        "code": "AE",
        "object": "jurisdiction",
        "name": "United Arab Emirates",
        "office_code": null,
        "office_status": "not_covered",
        "scope_type": "national",
        "madrid_member": true
      }
    ],
    "has_more": true,
    "pagination": { "cursor": "AE" }
  }
  ```
</ResponseExample>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.signa.so/v1/jurisdictions?limit=50&include_total=true" \
    -H "Authorization: Bearer sig_YOUR_KEY"
  ```

  ```typescript TypeScript theme={null}
  import { Signa } from "@signa-so/sdk";

  const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });

  const jurisdictions = await signa.references.jurisdictions();
  const live = jurisdictions.data.filter((j) => j.office_status === "live");
  ```
</CodeGroup>

## Errors

| Status | Type           | Description                                 |
| ------ | -------------- | ------------------------------------------- |
| 401    | `unauthorized` | Missing or invalid API key                  |
| 403    | `forbidden`    | API key missing the `trademarks:read` scope |
| 429    | `rate_limited` | Too many requests                           |

## Related Endpoints

* [Get Jurisdiction](/api-reference/reference/get-jurisdiction), single jurisdiction detail
* [List Offices](/api-reference/reference/list-offices), live office coverage
* [Madrid Protocol guide](/guides/madrid-protocol)
