> ## 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 Offices

> List all supported trademark offices

## Response

Returns the trademark offices that are currently shipping data on the Signa platform. Offices whose connectors are still in development are omitted from this response.

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

<ResponseField name="data" type="object[]">
  <Expandable title="Office object">
    <ResponseField name="code" type="string">Office code (e.g., `uspto`, `euipo`)</ResponseField>
    <ResponseField name="object" type="string">Always `"office"`</ResponseField>
    <ResponseField name="name" type="string">Full office name</ResponseField>
    <ResponseField name="jurisdiction_code" type="string">ISO 2-letter jurisdiction code (e.g., `US`, `EU`)</ResponseField>
    <ResponseField name="website_url" type="string | null">Office website URL</ResponseField>
    <ResponseField name="source_format" type="string | null">Data format used by the connector (e.g., `st96_xml`, `dtd_v2`)</ResponseField>
    <ResponseField name="status" type="string">Availability status. `live` means the connector is shipping data normally; `paused` means it is temporarily offline (for example while upstream is unreachable)</ResponseField>
    <ResponseField name="update_cadence" type="string | null">How often this office's data is refreshed. One of `daily`, `weekly`, `monthly`, `on_demand`, or `null` when the cadence is not yet defined</ResponseField>
    <ResponseField name="total_marks" type="integer">Total number of trademark records ingested from this office</ResponseField>
    <ResponseField name="last_synced_at" type="string | null">ISO timestamp of last successful sync</ResponseField>
    <ResponseField name="last_sync_status" type="string | null">Status of the last sync run (e.g., `completed`, `failed`)</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="has_more" type="boolean">Always `false` (offices are not paginated)</ResponseField>
<ResponseField name="request_id" type="string">Unique request identifier</ResponseField>

<ResponseExample>
  ```json theme={null}
  {
    "object": "list",
    "data": [
      {
        "code": "uspto",
        "object": "office",
        "name": "United States Patent and Trademark Office",
        "jurisdiction_code": "US",
        "website_url": "https://www.uspto.gov",
        "source_format": "dtd_v2",
        "status": "live",
        "update_cadence": "daily",
        "total_marks": 1547832,
        "last_synced_at": "2026-03-24T06:00:00.000Z",
        "last_sync_status": "completed"
      },
      {
        "code": "euipo",
        "object": "office",
        "name": "European Union Intellectual Property Office",
        "jurisdiction_code": "EU",
        "website_url": "https://euipo.europa.eu",
        "source_format": "json",
        "status": "live",
        "update_cadence": "daily",
        "total_marks": 892451,
        "last_synced_at": "2026-03-24T06:00:00.000Z",
        "last_sync_status": "completed"
      }
    ],
    "has_more": false,
    "request_id": "req_xyz789"
  }
  ```
</ResponseExample>
