Skip to main content
Matters are the workspace primitive for legal work on Case.dev. A matter owns the operating context: metadata, its primary vault, work items, parties, audit logs, and sharing.
CreatePOST /matters/v1
TrackPOST /matters/v1//work-items
DecidePOST /matters/v1//work-items//decision

What a matter owns

  • Primary vault linkage
  • Work items and decision history
  • Reusable parties and matter-specific roles
  • Optional playbook (matter type) for agent instructions
  • Audit logs, exports, events, and shares

Core resources

How it works

The matters API is a task board and system of record for legal work.
  1. Create a work item to describe and track a unit of work.
  2. Perform intensive agent work in Linc and attach the results to your application workflow.
  3. Update the work item as its state changes.
  4. Record a decision to approve or block the work.
Work items can keep application-specific dependencies and result references in metadata.

Quickstart

Shell
Shell
Shell

Listing matters

GET /matters/v1 supports cursor pagination, newest update first. Pagination is opt-in: pass limit to receive a bounded page. A request with neither limit nor cursor still returns every matter. Every response carries a pagination object. Unpaginated requests report limit: null and has_more: false:
The unpaginated default is going away. A request without limit currently returns every matter. A future release will bound it to a default page size. Start passing limit and following next_cursor now and that change will be a no-op for you.
To read the whole list, keep requesting while has_more is true, passing the previous next_cursor as ?cursor=:
Shell

Cursor rules

Cursors are opaque: do not parse, construct, or persist them. They encode the sort position of the last row on a page (updated_at and id, so matters sharing a timestamp are never skipped or repeated) together with the filters they were issued under.
  • Replay a cursor with exactly the same status, matter_type, practice_area, and query values that produced it. Changing a filter mid-pagination returns 400 INVALID_CURSOR rather than silently blending two result sets.
  • Cursors are scoped to the organization and API key that minted them. Another tenant’s cursor returns 400 INVALID_CURSOR.
  • A limit outside 1–200, or a non-integer, returns 400 INVALID_LIMIT. Out-of-range values are rejected, not clamped.
  • Passing a cursor without a limit pages at the default size of 50.
Matters are ordered by updated_at descending. Because that column changes as matters are edited, a matter updated during a traversal can move between pages. Pin status or a narrow query when you need a more stable window. The full schema and every tagged operation live in the API Reference.