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

# Attorney Trademarks

> List an attorney's trademarks with the standard trademark filters

## Overview

Returns a paginated list of trademarks an attorney has prosecuted, scoped automatically to the parent attorney. Use this for attorney portfolio views, client roster auditing, or competitive intelligence on prosecution counsel.

When neither `sort` nor `q` is supplied, results default to most-recent-first (`-filing_date`); a `q` text query instead ranks by relevance. Arrays are comma-separated, date ranges use flat `_gte`, `_gt`, `_lte`, and `_lt` operators, and booleans must be the literal strings `true` or `false`.

## Path Parameters

<ParamField path="id" type="string" required>
  Attorney ID (`att_...`).
</ParamField>

## Query Parameters

The full [List Trademarks](/api-reference/trademarks/list-trademarks) filter set applies (status, mark classification, identifiers, geography, Nice/Vienna codes, date ranges, public-company filters, and boolean flags), plus:

<ParamField query="q" type="string">Search query text within this attorney's trademarks.</ParamField>
<ParamField query="sort" type="string" default="-filing_date">Sort field(s), comma-separated, `-` prefix for descending.</ParamField>
<ParamField query="owner_id" type="string">Filter to marks owned by a specific owner (`own_...`).</ParamField>
<ParamField query="firm_id" type="string">Filter to marks handled through a specific firm (`firm_...`).</ParamField>
<ParamField query="include" type="string">Comma-separated optional row projections. `full_goods_services` returns full `classifications[].goods_services_text` instead of the truncated summary text.</ParamField>
<ParamField query="fields" type="string">Sparse top-level field projection, comma-separated. `id` and `object` are always retained. Unknown names return `400`.</ParamField>
<ParamField query="limit" type="integer" default="20">Items per page (1-100).</ParamField>
<ParamField query="cursor" type="string">Pagination cursor from a previous response.</ParamField>

## Response

Returns a `list` envelope of trademark summary objects belonging to this attorney.

<ResponseExample>
  ```json theme={null}
  {
    "object": "list",
    "data": [
      {
        "id": "tm_8kLm2nPq",
        "object": "trademark",
        "mark_text": "AURORA",
        "status": { "primary": "active", "stage": "registered" },
        "office_code": "uspto",
        "jurisdiction_code": "US",
        "filing_date": "2023-04-12",
        "registration_date": "2024-09-18",
        "classifications": [
          { "nice_class": 9, "goods_services_text": "Downloadable software for digital image processing" },
          { "nice_class": 35, "goods_services_text": "Online retail store services featuring digital media" },
          { "nice_class": 42, "goods_services_text": "Software as a service (SaaS) featuring media management tools" }
        ],
        "owners": [
          {
            "id": "own_7nQp3xYz",
            "name": "Aurora Digital Inc.",
            "country_code": "US",
            "entity_id": "ent_7nQp3xYz",
            "entity_id_type": "derived"
          }
        ]
      }
    ],
    "has_more": true,
    "pagination": { "cursor": "eyJpZCI6..." },
    "request_id": "req_xyz"
  }
  ```
</ResponseExample>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.signa.so/v1/attorneys/att_3kPq9X/trademarks?status_stage=registered&offices=uspto,euipo&nice_classes=9,42&limit=20" \
    -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 page = await signa.attorneys.trademarks("att_3kPq9X", {
    status_stage: ["registered"],
    offices: ["uspto", "euipo"],
    nice_classes: [9, 42],
    limit: 20,
  });
  ```
</CodeGroup>

## Errors

| Status | Type               | Description                               |
| ------ | ------------------ | ----------------------------------------- |
| 400    | `validation_error` | Invalid query parameter or date range     |
| 401    | `unauthorized`     | Missing or invalid API key                |
| 403    | `forbidden`        | API key lacks the `trademarks:read` scope |
| 404    | `not_found`        | Attorney ID does not exist                |
| 429    | `rate_limited`     | Too many requests                         |

## Related Endpoints

* [Get Attorney](/api-reference/parties/get-attorney): attorney profile and stats
* [Attorney Clients](/api-reference/parties/attorney-clients): owners represented by this attorney
* [Owner Trademarks](/api-reference/parties/owner-trademarks): same view scoped to an owner
* [List Trademarks](/api-reference/trademarks/list-trademarks): search across all attorneys
