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

> Retrieve a composed analytics report for an attorney

## When to use this

Use this endpoint when evaluating counsel for a new filing or comparing an opponent's representation history. It summarizes the attorney's live trademark portfolio footprint.

Reports are invalidated on party updates, with a 24-hour TTL backstop; `Server-Timing` reports `cache;desc="hit"` or `cache;desc="miss"`.

## Path Parameters

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

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.signa.so/v1/attorneys/att_K8mN2R3j/analytics \
    -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 report = await signa.attorneys.analytics("att_K8mN2R3j");
  console.log(report.portfolio.mark_count, report.portfolio.active_count);
  ```
</CodeGroup>

<ResponseExample>
  ```json Response theme={null}
  {
    "object": "analytics_report",
    "subject": {
      "id": "att_K8mN2R3j",
      "object": "attorney",
      "name": "JANE DOE"
    },
    "portfolio": {
      "mark_count": 318,
      "active_count": 260,
      "dead_count": 58,
      "status_distribution": {
        "registered": 260,
        "abandoned": 58
      },
      "class_distribution": {
        "35": 90
      },
      "jurisdiction_spread": {
        "US": 318
      },
      "filing_trend": {
        "2025": 31
      }
    },
    "litigation": null,
    "transactions": null,
    "generated_at": "2026-07-11T08:00:00.000Z"
  }
  ```
</ResponseExample>

`litigation` and `transactions` are always `null` because the data model has no attorney litigation or transaction grain. Owner/entity transaction reports expose conveyance-type buckets, assignee-side `acquired_count`, assignor-side `divested_count`, first/last recording dates, and lien counts. A security interest is unreleased until a non-purged release points back to its reel/frame; `marks_with_liens` deduplicates marks on those unreleased recordings.

Acquirers use owner/entity transaction blocks to gauge brand-transaction history, and lenders use them to check for unreleased liens before extending credit. See [list assignments](/api-reference/records/transactions/list-assignments), [get an assignment](/api-reference/records/transactions/get-assignment), and the [chain-of-title and lien diligence guide](/guides/chain-of-title-lien-diligence) for recording-level detail.
