List AI chat profiles

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://docs.usehearsay.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "integrations MCP server": {
    "url": "https://docs.usehearsay.com/mcp"
  }
}

Close
GET /ai-chat/{caseId}

Returns one page of AI chat profiles (ChatGPT, Claude or Gemini accounts) linked to the case, excluding archived ones; search by display name, email or account id, or filter by extraction code. On a case shared with opposing counsel, profiles the caller may not see are excluded; ocSharedStatus (the profile's sharing status) is filled in for opposing counsel, who can also filter by it, and is null for everyone else.

Path parameters

  • caseId string Required

Query parameters

  • page number

    Default value is 1.

  • perPage number

    Default value is 10.

  • skip number

    If skip/limit not provided, page/perPage will take precedence

  • limit number

    If skip/limit not provided, page/perPage will take precedence

  • sortOrder string

    Values are asc or desc. Default value is asc.

  • extractionCode string

    Filter by extraction code

  • searchText string

    Search displayName, email

  • sharedStatus string

    Opposing-council only. Narrows to providers in one sharing state; ignored for OL/OG callers.

    Values are shared, pending, or not_gated.

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • data object Required
      Hide data attributes Show data attributes object
      • total number Required
      • page number
      • perPage number
      • skip number
      • limit number
      • totalPages number Required
      • nextPage number | null Required
      • previousPage number | null Required
      • data array[object]
        Hide data attributes Show data attributes object
        • createdAt string(date-time) Required
        • updatedAt string(date-time) Required
        • id string Required
        • platform string Required

          Values are claude, chatgpt, or gemini.

        • externalUserId string Required
        • email string | null Required
        • displayName string | null Required
        • accountPlan string | null Required
        • accountData object | null Required
        • metadata object | null Required

          Not filled by any importer today, so always null.

        • deletedAt string(date-time) | null Required
        • deletedBy string | null Required
        • ocSharedStatus string | null

          Opposing-council only: whether this provider has been shared with the OL. null for OL/OG callers — same convention as every other item listing. Provider-level: every item under it shares this status, since approval here is all-or-nothing.

          Values are shared, pending, or not_gated.

    • statusCode number Required
    • timestamp string(date-time) Required
GET /ai-chat/{caseId}
curl \
 --request GET 'http://api.example.com/ai-chat/{caseId}' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "data": {
    "total": 42,
    "page": 1,
    "perPage": 20,
    "skip": 0,
    "limit": 20,
    "totalPages": 3,
    "nextPage": 2,
    "previousPage": 42.0,
    "data": [
      {
        "createdAt": "2026-01-15T14:30:00.000Z",
        "updatedAt": "2026-01-15T14:30:00.000Z",
        "id": "507f1f77bcf86cd799439011",
        "platform": "chatgpt",
        "externalUserId": "user-a1B2c3D4e5F6g7H8i9J0k1L2",
        "email": "jane.doe@example.com",
        "displayName": "Jane Doe",
        "accountPlan": "plus",
        "accountData": {
          "id": "user-a1B2c3D4e5F6g7H8i9J0k1L2",
          "email": "jane.doe@example.com",
          "name": "Jane Doe",
          "chatgpt_plus_user": true
        },
        "metadata": {},
        "deletedAt": "2026-05-04T09:42:00Z",
        "deletedBy": "string",
        "ocSharedStatus": "shared"
      }
    ]
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}