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

# List cases

> List all cases with cursor-based pagination



## OpenAPI

````yaml GET /v2/cases
openapi: 3.0.1
info:
  title: Tavrn Platform API
  version: 1.0.0
  description: >-
    Enterprise API for medical record retrieval: cases, retrieval requests,
    retrieved records and provider invoices, case documents, and webhook
    notifications.
  contact:
    name: Tavrn Support
    email: contact@tavrn.ai
servers:
  - url: https://enterprise.tavrn.ai
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Cases
    description: Case management operations
  - name: Documents
    description: Document upload and management
  - name: Retrieval Requests
    description: Medical record retrieval requests submitted to healthcare facilities
  - name: Requestors
    description: Multiple retrieval profiles within one organization
  - name: Webhooks
    description: Webhook registration and event notifications
paths:
  /v2/cases:
    get:
      tags:
        - Cases
      summary: List cases
      description: List all cases with cursor-based pagination
      operationId: listCases
      parameters:
        - name: limit
          in: query
          description: Maximum number of results (default 20, max 100)
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: cursor
          in: query
          description: Pagination cursor (opaque)
          schema:
            type: string
        - name: external_id
          in: query
          description: Filter by external ID
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCases'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PaginatedCases:
      type: object
      required:
        - results
        - next
        - previous
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Case'
          description: Array of case objects
        next:
          type: string
          nullable: true
          format: uri
          description: URL to next page (null if no more pages)
          example: https://enterprise.tavrn.ai/v2/cases?limit=20&cursor=next_cursor
        previous:
          type: string
          nullable: true
          format: uri
          description: URL to previous page (null if first page)
          example: https://enterprise.tavrn.ai/v2/cases?limit=20&cursor=prev_cursor
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error code
              example: validation_error
            message:
              type: string
              description: Human-readable error message
              example: The patient.date_of_birth field is required
    Case:
      type: object
      required:
        - id
        - case_number
        - title
        - client_name
        - status
        - case_category
        - created_at
        - updated_at
      properties:
        id:
          type: string
          description: Unique case identifier
          example: case_abc123
        case_number:
          type: string
          description: Auto-generated case number
          example: EI-2025-0001
        title:
          type: string
          description: Case title
          example: Jane Doe v. ACME Corp
        client_name:
          type: string
          description: Client's name
          example: Jane Doe
        description:
          type: string
          nullable: true
          description: Case description
          example: Rear-end MVA with cervical injury
        client_date_of_birth:
          type: string
          format: date
          nullable: true
          description: Client's date of birth (YYYY-MM-DD)
          example: '1989-04-12'
        client_address:
          type: string
          nullable: true
          description: Client's address
          example: 123 Main St, Austin, TX 78701
        client_phone:
          type: string
          nullable: true
          description: Client's phone number
          example: +1-512-555-0101
        client_email:
          type: string
          format: email
          nullable: true
          description: Client's email address
          example: jane@example.com
        date_of_injury:
          type: string
          format: date
          nullable: true
          description: Date of injury (YYYY-MM-DD)
          example: '2025-01-10'
        deposition_date:
          type: string
          format: date
          nullable: true
          description: Deposition date (YYYY-MM-DD)
          example: '2025-06-15'
        case_category:
          type: string
          enum:
            - personal_injury
            - motor_vehicle_accident
            - medical_malpractice
            - workers_compensation
            - product_liability
            - premises_liability
            - wrongful_death
            - other
          description: Case category
          example: personal_injury
        status:
          type: string
          enum:
            - active
            - pending
            - closed
            - archived
          description: Case status
          example: active
        external_id:
          type: string
          nullable: true
          description: External identifier for client mapping
          example: expert-institute-12345
        created_at:
          type: string
          format: date-time
          description: Creation timestamp (ISO 8601)
          example: '2025-02-01T12:34:56Z'
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp (ISO 8601)
          example: '2025-02-01T12:34:56Z'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        API key authentication. Use format: `Authorization: Bearer
        tavrn_sk_live_...`

````