List my updates (internal)

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 /dashboard/{orgId}/updates

Lists the caller's own update notifications in the organization, newest first, filterable by read state, case and type, with the total and the read and unread counts; skip/limit or page/perPage pagination, 10 by default. Comment notifications also carry the comment's position for deep linking. No organization role is checked; only the caller's notifications are returned.

Path parameters

  • orgId string Required

    id of the organization

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

  • isRead number

    0 false, 1 true

  • case array[string]
  • type array[string]

    Values are default, imported-new-conversation, added-conversation-to-existing-case, replied-to-comment, mentioned-in-comment, added-to-case, added-to-organization, new-comment, oc-suggestion-created-or-updated, oc-suggestion-approved, oc-suggestion-rejected, oc-suggestion-message, oc-data-approved, oc-member-added, or oc-member-removed.

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
        • user object Required
          Hide user attributes Show user attributes object
          • createdAt string(date-time) Required
          • updatedAt string(date-time) Required
          • id string Required
          • name string Required
          • email string Required
          • phone array[string] Required
          • isActive boolean Required
          • isEmailVerified boolean Required
          • lastActive string(date-time) Required
          • roles array[string] Required
          • avatar object Required

            The full record on routes that load it; null (or an empty list) on routes that do not.

            Hide avatar attributes Show avatar attributes object
            • createdAt string(date-time) Required
            • updatedAt string(date-time) Required
            • id string Required
            • name string Required
            • providerId string Required
            • convertedName string | null Required
            • convertedProviderId string Required
            • provider string Required
            • size number Required

              Size in bytes

            • transferState number | null Required
          • onboardingStatus string | null Required
          • userType string | null Required
          • firstName string Required
          • lastName string Required
          • initials string Required
          • userOrganizations array[object]
            Hide userOrganizations attributes Show userOrganizations attributes object
            • organization object Required
              Hide organization attributes Show organization attributes object
              • createdAt string(date-time) Required
              • updatedAt string(date-time) Required
              • id string Required
              • name string Required
              • slug string Required
              • email string Required
              • contact string Required
              • city string Required
              • state string Required
              • country string Required
              • description string Required
              • phone array[string] Required
              • isActive boolean Required
              • isPriority boolean
              • activePlan object Required

                The full record on routes that load it; null (or an empty list) on routes that do not.

                Hide activePlan attributes Show activePlan attributes object
                • createdAt string(date-time) Required
                • updatedAt string(date-time) Required
                • id string Required
                • subscription object | null Required

                  Not loaded on public routes, so always null there. Only the internal admin organization report loads it.

                • relatedSubscription array[object] | null Required

                  Not loaded by any route, so always null or an empty list.

                • organization object | null Required

                  Not loaded by any route, so always null.

                • seats number Required
                • seatsUsed number Required
                • devices number Required
                • deviceUsed number Required
                • storage number Required

                  Storage in bytes

                • storageUsed number Required

                  Storage used in bytes

                • payments array[object] | null Required

                  Not loaded by any route, so always null or an empty list.

                • type string Required

                  Values are admin, free, limited-access, trial, tier1, tier2, tier3, tier4, tier5, tier6, or tier7.

                • isActive boolean Required
                • isBetweenPlanChanges boolean Required
                • storageInKb number Required
                • storageUsedInKb number Required
                • storageInMb number Required
                • storageUsedInMb number Required
                • storageInGb number Required
                • storageUsedInGb number Required
                • storageInTb number Required
                • storageUsedInTb number Required
                • isFreePlan boolean Required
                • remainingSeats number Required
                • remainingDevices number Required
                • remainingStorage number Required

                  Storage left in bytes (storage minus storageUsed).

              • metadata object Required
              • type string Required
              • version string Required

                Values are v1, v2, eu, or ca.

            • permission object Required
              Hide permission attributes Show permission attributes object
              • createdAt string(date-time) Required
              • updatedAt string(date-time) Required
              • id string Required
              • user object Required

                The full record on routes that load it; null (or an empty list) on routes that do not.

                Hide user attributes Show user attributes object
                • createdAt string(date-time) Required
                • updatedAt string(date-time) Required
                • id string Required
                • name string Required
                • email string Required
                • phone array[string] Required
                • isActive boolean Required
                • isEmailVerified boolean Required
                • lastActive string(date-time) Required
                • roles array[string] Required
                • avatar object Required

                  The full record on routes that load it; null (or an empty list) on routes that do not.

                  Hide avatar attributes Show avatar attributes object
                  • createdAt string(date-time) Required
                  • updatedAt string(date-time) Required
                  • id string Required
                  • name string Required
                  • providerId string Required
                  • convertedName string | null Required
                  • convertedProviderId string Required
                  • provider string Required
                  • size number Required

                    Size in bytes

                  • transferState number | null Required
                • onboardingStatus string | null Required
                • userType string | null Required
                • firstName string Required
                • lastName string Required
                • initials string Required
                • userOrganizations array[object]

                  Only filled on the signed-in user's own profile; absent or empty on a user nested in another record.

              • role string Required

                Values are user, client, employee, billing, full_access, admin, owner, or member.

              • organization object | null Required

                Not loaded by any route, so always null.

              • lastActiveAt string(date-time) | null Required
            • billing object Required

              The org's plan, limits and resolved prices. null when the org is billed by the legacy model — either it has not been migrated to case billing or the feature is off.

              Hide billing attributes Show billing attributes object
              • tier string Required

                Values are public, solo, firm, or firm-plus.

              • tierName string Required
              • billingMode string Required

                Values are payg, per-source, or flat-case.

              • cadence string Required

                Values are monthly or annual.

              • baseFeeCents number Required

                Platform fee for one period at this cadence, in cents

              • paymentMethodOnFile boolean Required
              • supportTier string Required
              • limits object Required
                Hide limits attributes Show limits attributes object
                • seatCap number | null Required

                  null = unlimited

                • storageGB number Required
                • perCaseSourceCap number | null Required

                  Provisioned, not enforced — display only

              • features array[string] Required

                Feature keys enabled for this tier

              • prices array[object] Required
                Hide prices attributes Show prices attributes object
                • skuKey string Required

                  Values are collection.phone, collection.social, collection.email, collection.ai-chat, collection.financial, collection.discord, collection.reddit, collection.linkedin, collection.legal, collection.file, collection.other, case.flat, case.pro-upgrade, addon.kit-rental, addon.laptop-rental, addon.laptop-rental-setup, addon.managed-service, addon.shipping, addon.live-bank, plan.base, source.per, ai.tokens-overage, adjustment.manual, or adjustment.discount.

                • name string Required
                • unitAmountCents number Required

                  What this org is charged per unit, in cents

                • included boolean Required

                  Bundled by the plan — charged at 0, not billed

                • listAmountCents number | null Required

                  What an included item would otherwise have cost

                • overridden boolean Required

                  Set by this org's negotiated price rather than the plan's catalog rate

                • recurrence string | null Required

                  null for a one-time charge; otherwise how often it repeats

                  Values are monthly or semiannual.

                • freeFirstPeriod boolean Required

                  First period of a recurring item costs 0

              • overrides object Required

                This org's negotiated exceptions, as stored. An absent SKU means the plan's catalog rate applies — read prices for what is actually charged.

        • createdBy object Required
          Hide createdBy attributes Show createdBy attributes object
          • createdAt string(date-time) Required
          • updatedAt string(date-time) Required
          • id string Required
          • name string Required
          • email string Required
          • phone array[string] Required
          • isActive boolean Required
          • isEmailVerified boolean Required
          • lastActive string(date-time) Required
          • roles array[string] Required
          • avatar object Required

            The full record on routes that load it; null (or an empty list) on routes that do not.

            Hide avatar attributes Show avatar attributes object
            • createdAt string(date-time) Required
            • updatedAt string(date-time) Required
            • id string Required
            • name string Required
            • providerId string Required
            • convertedName string | null Required
            • convertedProviderId string Required
            • provider string Required
            • size number Required

              Size in bytes

            • transferState number | null Required
          • onboardingStatus string | null Required
          • userType string | null Required
          • firstName string Required
          • lastName string Required
          • initials string Required
          • userOrganizations array[object]
            Hide userOrganizations attributes Show userOrganizations attributes object
            • organization object Required
              Hide organization attributes Show organization attributes object
              • createdAt string(date-time) Required
              • updatedAt string(date-time) Required
              • id string Required
              • name string Required
              • slug string Required
              • email string Required
              • contact string Required
              • city string Required
              • state string Required
              • country string Required
              • description string Required
              • phone array[string] Required
              • isActive boolean Required
              • isPriority boolean
              • activePlan object Required

                The full record on routes that load it; null (or an empty list) on routes that do not.

                Hide activePlan attributes Show activePlan attributes object
                • createdAt string(date-time) Required
                • updatedAt string(date-time) Required
                • id string Required
                • subscription object | null Required

                  Not loaded on public routes, so always null there. Only the internal admin organization report loads it.

                • relatedSubscription array[object] | null Required

                  Not loaded by any route, so always null or an empty list.

                • organization object | null Required

                  Not loaded by any route, so always null.

                • seats number Required
                • seatsUsed number Required
                • devices number Required
                • deviceUsed number Required
                • storage number Required

                  Storage in bytes

                • storageUsed number Required

                  Storage used in bytes

                • payments array[object] | null Required

                  Not loaded by any route, so always null or an empty list.

                • type string Required

                  Values are admin, free, limited-access, trial, tier1, tier2, tier3, tier4, tier5, tier6, or tier7.

                • isActive boolean Required
                • isBetweenPlanChanges boolean Required
                • storageInKb number Required
                • storageUsedInKb number Required
                • storageInMb number Required
                • storageUsedInMb number Required
                • storageInGb number Required
                • storageUsedInGb number Required
                • storageInTb number Required
                • storageUsedInTb number Required
                • isFreePlan boolean Required
                • remainingSeats number Required
                • remainingDevices number Required
                • remainingStorage number Required

                  Storage left in bytes (storage minus storageUsed).

              • metadata object Required
              • type string Required
              • version string Required

                Values are v1, v2, eu, or ca.

            • permission object Required
              Hide permission attributes Show permission attributes object
              • createdAt string(date-time) Required
              • updatedAt string(date-time) Required
              • id string Required
              • user object Required

                The full record on routes that load it; null (or an empty list) on routes that do not.

                Hide user attributes Show user attributes object
                • createdAt string(date-time) Required
                • updatedAt string(date-time) Required
                • id string Required
                • name string Required
                • email string Required
                • phone array[string] Required
                • isActive boolean Required
                • isEmailVerified boolean Required
                • lastActive string(date-time) Required
                • roles array[string] Required
                • avatar object Required

                  The full record on routes that load it; null (or an empty list) on routes that do not.

                  Hide avatar attributes Show avatar attributes object
                  • createdAt string(date-time) Required
                  • updatedAt string(date-time) Required
                  • id string Required
                  • name string Required
                  • providerId string Required
                  • convertedName string | null Required
                  • convertedProviderId string Required
                  • provider string Required
                  • size number Required

                    Size in bytes

                  • transferState number | null Required
                • onboardingStatus string | null Required
                • userType string | null Required
                • firstName string Required
                • lastName string Required
                • initials string Required
                • userOrganizations array[object]

                  Only filled on the signed-in user's own profile; absent or empty on a user nested in another record.

              • role string Required

                Values are user, client, employee, billing, full_access, admin, owner, or member.

              • organization object | null Required

                Not loaded by any route, so always null.

              • lastActiveAt string(date-time) | null Required
            • billing object Required

              The org's plan, limits and resolved prices. null when the org is billed by the legacy model — either it has not been migrated to case billing or the feature is off.

              Hide billing attributes Show billing attributes object
              • tier string Required

                Values are public, solo, firm, or firm-plus.

              • tierName string Required
              • billingMode string Required

                Values are payg, per-source, or flat-case.

              • cadence string Required

                Values are monthly or annual.

              • baseFeeCents number Required

                Platform fee for one period at this cadence, in cents

              • paymentMethodOnFile boolean Required
              • supportTier string Required
              • limits object Required
                Hide limits attributes Show limits attributes object
                • seatCap number | null Required

                  null = unlimited

                • storageGB number Required
                • perCaseSourceCap number | null Required

                  Provisioned, not enforced — display only

              • features array[string] Required

                Feature keys enabled for this tier

              • prices array[object] Required
                Hide prices attributes Show prices attributes object
                • skuKey string Required

                  Values are collection.phone, collection.social, collection.email, collection.ai-chat, collection.financial, collection.discord, collection.reddit, collection.linkedin, collection.legal, collection.file, collection.other, case.flat, case.pro-upgrade, addon.kit-rental, addon.laptop-rental, addon.laptop-rental-setup, addon.managed-service, addon.shipping, addon.live-bank, plan.base, source.per, ai.tokens-overage, adjustment.manual, or adjustment.discount.

                • name string Required
                • unitAmountCents number Required

                  What this org is charged per unit, in cents

                • included boolean Required

                  Bundled by the plan — charged at 0, not billed

                • listAmountCents number | null Required

                  What an included item would otherwise have cost

                • overridden boolean Required

                  Set by this org's negotiated price rather than the plan's catalog rate

                • recurrence string | null Required

                  null for a one-time charge; otherwise how often it repeats

                  Values are monthly or semiannual.

                • freeFirstPeriod boolean Required

                  First period of a recurring item costs 0

              • overrides object Required

                This org's negotiated exceptions, as stored. An absent SKU means the plan's catalog rate applies — read prices for what is actually charged.

        • conversation object Required
          Hide conversation attributes Show conversation attributes object
          • createdAt string(date-time) Required
          • updatedAt string(date-time) Required
          • id string Required
          • messageSharing object Required
          • selectionCoverage object
          • name string Required
          • displayName string Required

            'Conversation with ' unless the name was edited, in which case the edited name as typed.

          • chatName string Required
          • originalDisplayName string Required
          • source string Required

            Values are message, whatsapp, voicemail, call_log, facebook_dump, instagram_dump, threads_dump, or email.

          • linkedContacts array[object] | null Required

            Not loaded by any route, so always null or an empty list.

          • device object Required

            The full record on routes that load it; null (or an empty list) on routes that do not.

            Hide device attributes Show device attributes object
            • createdAt string(date-time) Required
            • updatedAt string(date-time) Required
            • id string Required
            • deviceId string Required
            • serialNumber string Required
            • name string Required
            • type string Required
            • nonDeviceType string | null Required
            • model string Required
            • timeZone string Required
            • osVersion string Required
            • owner object | null Required

              Not loaded by any route, so always null.

            • devicePhoneNumber string Required
            • organizations array[string] Required

              Organization ids

            • extractionCodes array[string] Required

              Extraction code ids

            • availableData object

              Which data types exist for this device (optionally scoped by query filters).

          • avatar object Required

            The full record on routes that load it; null (or an empty list) on routes that do not.

            Hide avatar attributes Show avatar attributes object
            • createdAt string(date-time) Required
            • updatedAt string(date-time) Required
            • id string Required
            • name string Required
            • providerId string Required
            • convertedName string | null Required
            • convertedProviderId string Required
            • provider string Required
            • size number Required

              Size in bytes

            • transferState number | null Required
          • service string Required
          • lastMessageText string Required
          • firstMessageDate string(date-time) | null Required
          • lastMessageDate string(date-time) Required
          • displayNameEditedAt string(date-time) | null Required
          • lastMessageExternalId string Required
          • isGroup boolean Required

            Default value is false.

          • owner object | null Required

            Not loaded by any route, so always null.

          • isReadonly boolean Required
          • lastExportedAt string(date-time) | null Required
          • messagesCount number Required
          • archivedBy object | null Required

            Not loaded by any route, so always null.

          • archivedAt string(date-time) | null Required
          • starredAt string(date-time) | null Required
          • tags array[object] | null Required

            The full record on routes that load it; null (or an empty list) on routes that do not.

            Hide tags attributes Show tags attributes object
            • createdAt string(date-time) Required
            • updatedAt string(date-time) Required
            • id string Required
            • name string Required
            • nameLowercase string Required
            • backgroundColor string Required
            • textColor string Required
            • type string Required

              Values are system, organization, case, or user.

            • severity string Required

              Values are info, warning, or danger.

            • origin string Required

              Values are manual or auto-import.

            • creatorAccessType string | null

              Values are org or opposing_council.

            • isActive boolean Required
          • attachedTags array[object]
            Hide attachedTags attributes Show attachedTags attributes object
            • tagId string Required

              Tag id (Tag._id)

            • tag string Required

              Tag display name (Tag.name)

            • addedBy string Required

              Values are user, ai, auto, auto-import, system, or default.

            • addedById string | null
            • removedAt string(date-time) | null
            • removedBy string | null

              Values are user, ai, auto, auto-import, system, or default.

            • removedById string | null
          • isPlaceholder boolean Required
          • isArchived boolean Required
          • isStarred boolean Required
          • hasAllAttachmentProcessed boolean Required
          • processedAttachmentCount number Required
          • conversationName string Required
          • isNameEdited boolean Required
          • participantCount number Required
        • invitedUserName string Required
        • invitedUserEmail string Required
        • isRead boolean Required
        • readAt string(date-time) Required
        • type string Required

          Values are default, imported-new-conversation, added-conversation-to-existing-case, replied-to-comment, mentioned-in-comment, added-to-case, added-to-organization, new-comment, oc-suggestion-created-or-updated, oc-suggestion-approved, oc-suggestion-rejected, oc-suggestion-message, oc-data-approved, oc-member-added, or oc-member-removed.

        • text string Required
        • caseId string Required
        • caseName string Required
        • conversationId string Required
        • importedConversationId string Required
        • importedConversationName string Required
        • caseSlug string Required
        • messageId string Required
        • commentId string Required
        • replyCommentId string Required
        • commentText string Required
        • replyText string Required
        • messageIndex number Required
        • commentIndex number Required
        • replyCommentIndex number Required
      • noOfReadItems number
      • noOfUnreadItems number
    • statusCode number Required
    • timestamp string(date-time) Required
GET /dashboard/{orgId}/updates
curl \
 --request GET 'http://api.example.com/dashboard/{orgId}/updates' \
 --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",
        "user": {
          "createdAt": "2026-01-15T14:30:00.000Z",
          "updatedAt": "2026-01-15T14:30:00.000Z",
          "id": "507f1f77bcf86cd799439011",
          "name": "Jane Doe",
          "email": "jane.doe@example.com",
          "phone": [
            "+15555550100"
          ],
          "isActive": true,
          "isEmailVerified": true,
          "lastActive": "2026-01-15T14:30:00.000Z",
          "roles": [
            "user"
          ],
          "avatar": {
            "createdAt": "2026-01-15T14:30:00.000Z",
            "updatedAt": "2026-01-15T14:30:00.000Z",
            "id": "507f1f77bcf86cd799439011",
            "name": "photo.heic",
            "providerId": "uploads/507f1f77bcf86cd799439011/photo.heic",
            "convertedName": "photo.jpg",
            "convertedProviderId": "uploads/507f1f77bcf86cd799439011/photo.jpg",
            "provider": "s3",
            "size": 204800,
            "transferState": 42.0
          },
          "onboardingStatus": "completed",
          "userType": "attorney",
          "firstName": "Jane",
          "lastName": "Doe",
          "initials": "JD",
          "userOrganizations": [
            {
              "organization": {
                "createdAt": "2026-01-15T14:30:00.000Z",
                "updatedAt": "2026-01-15T14:30:00.000Z",
                "id": "507f1f77bcf86cd799439011",
                "name": "Example Law LLP",
                "slug": "example-law-llp",
                "email": "office@example.com",
                "contact": "Jane Doe",
                "city": "New York",
                "state": "NY",
                "country": "US",
                "description": "Litigation practice",
                "phone": [
                  "+15555550100"
                ],
                "logo": "https://files.example.com/logo.png",
                "isActive": true,
                "isPriority": false,
                "activePlan": {
                  "createdAt": "2026-01-15T14:30:00.000Z",
                  "updatedAt": "2026-01-15T14:30:00.000Z",
                  "id": "507f1f77bcf86cd799439011",
                  "subscription": {},
                  "relatedSubscription": [
                    {}
                  ],
                  "organization": {},
                  "seats": 5,
                  "seatsUsed": 3,
                  "devices": 10,
                  "deviceUsed": 4,
                  "storage": 100000000000,
                  "storageUsed": 12000000000,
                  "payments": [
                    {}
                  ],
                  "type": "admin",
                  "isActive": true,
                  "isBetweenPlanChanges": false,
                  "storageInKb": 100000000,
                  "storageUsedInKb": 12000000,
                  "storageInMb": 100000,
                  "storageUsedInMb": 12000,
                  "storageInGb": 100,
                  "storageUsedInGb": 12,
                  "storageInTb": 0.1,
                  "storageUsedInTb": 0.012,
                  "isFreePlan": false,
                  "remainingSeats": 2,
                  "remainingDevices": 6,
                  "remainingStorage": 88000000000
                },
                "metadata": {},
                "type": "law_firm",
                "version": "v1"
              },
              "permission": {
                "createdAt": "2026-01-15T14:30:00.000Z",
                "updatedAt": "2026-01-15T14:30:00.000Z",
                "id": "507f1f77bcf86cd799439011",
                "user": {
                  "createdAt": "2026-01-15T14:30:00.000Z",
                  "updatedAt": "2026-01-15T14:30:00.000Z",
                  "id": "507f1f77bcf86cd799439011",
                  "name": "Jane Doe",
                  "email": "jane.doe@example.com",
                  "phone": [
                    "+15555550100"
                  ],
                  "isActive": true,
                  "isEmailVerified": true,
                  "lastActive": "2026-01-15T14:30:00.000Z",
                  "roles": [
                    "user"
                  ],
                  "avatar": {
                    "createdAt": "2026-01-15T14:30:00.000Z",
                    "updatedAt": "2026-01-15T14:30:00.000Z",
                    "id": "507f1f77bcf86cd799439011",
                    "name": "photo.heic",
                    "providerId": "uploads/507f1f77bcf86cd799439011/photo.heic",
                    "convertedName": "photo.jpg",
                    "convertedProviderId": "uploads/507f1f77bcf86cd799439011/photo.jpg",
                    "provider": "s3",
                    "size": 204800,
                    "transferState": 42.0
                  },
                  "onboardingStatus": "completed",
                  "userType": "attorney",
                  "firstName": "Jane",
                  "lastName": "Doe",
                  "initials": "JD",
                  "userOrganizations": [
                    {}
                  ]
                },
                "role": "member",
                "organization": {},
                "lastActiveAt": "2026-01-15T14:30:00.000Z"
              },
              "billing": {
                "tier": "firm",
                "tierName": "Firm",
                "billingMode": "per-source",
                "cadence": "monthly",
                "baseFeeCents": 24900,
                "paymentMethodOnFile": true,
                "supportTier": "next-day",
                "limits": {
                  "seatCap": 10,
                  "storageGB": 5000,
                  "perCaseSourceCap": 42.0
                },
                "features": [
                  "rsmf",
                  "ai",
                  "mcp",
                  "whiteLabel"
                ],
                "prices": [
                  {
                    "skuKey": "collection.phone",
                    "name": "Phone collection",
                    "unitAmountCents": 17900,
                    "included": false,
                    "listAmountCents": 42.0,
                    "overridden": false,
                    "recurrence": "monthly",
                    "freeFirstPeriod": false
                  }
                ],
                "overrides": {
                  "skuUnitAmountCents": {
                    "collection.phone": 9900
                  }
                }
              }
            }
          ]
        },
        "createdBy": {
          "createdAt": "2026-01-15T14:30:00.000Z",
          "updatedAt": "2026-01-15T14:30:00.000Z",
          "id": "507f1f77bcf86cd799439011",
          "name": "Jane Doe",
          "email": "jane.doe@example.com",
          "phone": [
            "+15555550100"
          ],
          "isActive": true,
          "isEmailVerified": true,
          "lastActive": "2026-01-15T14:30:00.000Z",
          "roles": [
            "user"
          ],
          "avatar": {
            "createdAt": "2026-01-15T14:30:00.000Z",
            "updatedAt": "2026-01-15T14:30:00.000Z",
            "id": "507f1f77bcf86cd799439011",
            "name": "photo.heic",
            "providerId": "uploads/507f1f77bcf86cd799439011/photo.heic",
            "convertedName": "photo.jpg",
            "convertedProviderId": "uploads/507f1f77bcf86cd799439011/photo.jpg",
            "provider": "s3",
            "size": 204800,
            "transferState": 42.0
          },
          "onboardingStatus": "completed",
          "userType": "attorney",
          "firstName": "Jane",
          "lastName": "Doe",
          "initials": "JD",
          "userOrganizations": [
            {
              "organization": {
                "createdAt": "2026-01-15T14:30:00.000Z",
                "updatedAt": "2026-01-15T14:30:00.000Z",
                "id": "507f1f77bcf86cd799439011",
                "name": "Example Law LLP",
                "slug": "example-law-llp",
                "email": "office@example.com",
                "contact": "Jane Doe",
                "city": "New York",
                "state": "NY",
                "country": "US",
                "description": "Litigation practice",
                "phone": [
                  "+15555550100"
                ],
                "logo": "https://files.example.com/logo.png",
                "isActive": true,
                "isPriority": false,
                "activePlan": {
                  "createdAt": "2026-01-15T14:30:00.000Z",
                  "updatedAt": "2026-01-15T14:30:00.000Z",
                  "id": "507f1f77bcf86cd799439011",
                  "subscription": {},
                  "relatedSubscription": [
                    {}
                  ],
                  "organization": {},
                  "seats": 5,
                  "seatsUsed": 3,
                  "devices": 10,
                  "deviceUsed": 4,
                  "storage": 100000000000,
                  "storageUsed": 12000000000,
                  "payments": [
                    {}
                  ],
                  "type": "admin",
                  "isActive": true,
                  "isBetweenPlanChanges": false,
                  "storageInKb": 100000000,
                  "storageUsedInKb": 12000000,
                  "storageInMb": 100000,
                  "storageUsedInMb": 12000,
                  "storageInGb": 100,
                  "storageUsedInGb": 12,
                  "storageInTb": 0.1,
                  "storageUsedInTb": 0.012,
                  "isFreePlan": false,
                  "remainingSeats": 2,
                  "remainingDevices": 6,
                  "remainingStorage": 88000000000
                },
                "metadata": {},
                "type": "law_firm",
                "version": "v1"
              },
              "permission": {
                "createdAt": "2026-01-15T14:30:00.000Z",
                "updatedAt": "2026-01-15T14:30:00.000Z",
                "id": "507f1f77bcf86cd799439011",
                "user": {
                  "createdAt": "2026-01-15T14:30:00.000Z",
                  "updatedAt": "2026-01-15T14:30:00.000Z",
                  "id": "507f1f77bcf86cd799439011",
                  "name": "Jane Doe",
                  "email": "jane.doe@example.com",
                  "phone": [
                    "+15555550100"
                  ],
                  "isActive": true,
                  "isEmailVerified": true,
                  "lastActive": "2026-01-15T14:30:00.000Z",
                  "roles": [
                    "user"
                  ],
                  "avatar": {
                    "createdAt": "2026-01-15T14:30:00.000Z",
                    "updatedAt": "2026-01-15T14:30:00.000Z",
                    "id": "507f1f77bcf86cd799439011",
                    "name": "photo.heic",
                    "providerId": "uploads/507f1f77bcf86cd799439011/photo.heic",
                    "convertedName": "photo.jpg",
                    "convertedProviderId": "uploads/507f1f77bcf86cd799439011/photo.jpg",
                    "provider": "s3",
                    "size": 204800,
                    "transferState": 42.0
                  },
                  "onboardingStatus": "completed",
                  "userType": "attorney",
                  "firstName": "Jane",
                  "lastName": "Doe",
                  "initials": "JD",
                  "userOrganizations": [
                    {}
                  ]
                },
                "role": "member",
                "organization": {},
                "lastActiveAt": "2026-01-15T14:30:00.000Z"
              },
              "billing": {
                "tier": "firm",
                "tierName": "Firm",
                "billingMode": "per-source",
                "cadence": "monthly",
                "baseFeeCents": 24900,
                "paymentMethodOnFile": true,
                "supportTier": "next-day",
                "limits": {
                  "seatCap": 10,
                  "storageGB": 5000,
                  "perCaseSourceCap": 42.0
                },
                "features": [
                  "rsmf",
                  "ai",
                  "mcp",
                  "whiteLabel"
                ],
                "prices": [
                  {
                    "skuKey": "collection.phone",
                    "name": "Phone collection",
                    "unitAmountCents": 17900,
                    "included": false,
                    "listAmountCents": 42.0,
                    "overridden": false,
                    "recurrence": "monthly",
                    "freeFirstPeriod": false
                  }
                ],
                "overrides": {
                  "skuUnitAmountCents": {
                    "collection.phone": 9900
                  }
                }
              }
            }
          ]
        },
        "conversation": {
          "createdAt": "2026-01-15T14:30:00.000Z",
          "updatedAt": "2026-01-15T14:30:00.000Z",
          "id": "507f1f77bcf86cd799439011",
          "messageSharing": {
            "sharedMessageCount": 320,
            "totalMessageCount": 1200,
            "totalReportedAt": "2026-01-15T14:30:00.000Z"
          },
          "selectionCoverage": {
            "app": "message",
            "conversationId": 42,
            "mode": "selected_messages",
            "selectedMessageCount": 320,
            "eligibleMessageCount": 1200,
            "includedMessageCount": 320,
            "omittedEligibleMessageCount": 880,
            "selectedNotIncludedCount": 0,
            "totalMessageCount": 1200,
            "deviceConversation": "507f1f77bcf86cd799439011",
            "ingestionStatus": "completed",
            "ingestedMessageCount": 320,
            "verifiedAt": "2026-01-15T14:30:00.000Z",
            "completedAt": "2026-01-15T14:30:00.000Z",
            "failedAt": null,
            "isPartial": true,
            "coverage": "selected_messages",
            "eligibleScope": "after_date_and_incremental_filters",
            "uploadAttemptId": "a3e6a3ab-2c6e-469c-a3ae-ab1e926c93c2",
            "deviceBackupId": "65a1b2c3d4e5f6a7b8c9d0e2",
            "reportOrder": "2026-01-15T14:30:00.000Z:65a1b2c3d4e5f6a7b8c9d0e2"
          },
          "name": "Jane Doe",
          "displayName": "Conversation with Jane Doe",
          "chatName": "+15555550100",
          "originalDisplayName": "Jane Doe",
          "source": "message",
          "linkedContacts": [
            {}
          ],
          "device": {
            "createdAt": "2026-01-15T14:30:00.000Z",
            "updatedAt": "2026-01-15T14:30:00.000Z",
            "id": "507f1f77bcf86cd799439011",
            "deviceId": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
            "serialNumber": "F2LXK0QJHG7F",
            "name": "Jane's iPhone",
            "type": "ios",
            "nonDeviceType": "string",
            "model": "iPhone 15",
            "timeZone": "America/New_York",
            "osVersion": "18.0",
            "owner": {},
            "devicePhoneNumber": "+15555550100",
            "organizations": [
              "507f1f77bcf86cd799439011"
            ],
            "extractionCodes": [
              "507f1f77bcf86cd799439013"
            ],
            "availableData": {
              "messages": true,
              "calls": false
            }
          },
          "avatar": {
            "createdAt": "2026-01-15T14:30:00.000Z",
            "updatedAt": "2026-01-15T14:30:00.000Z",
            "id": "507f1f77bcf86cd799439011",
            "name": "photo.heic",
            "providerId": "uploads/507f1f77bcf86cd799439011/photo.heic",
            "convertedName": "photo.jpg",
            "convertedProviderId": "uploads/507f1f77bcf86cd799439011/photo.jpg",
            "provider": "s3",
            "size": 204800,
            "transferState": 42.0
          },
          "service": "iMessage",
          "lastMessageText": "See you at 6",
          "firstMessageDate": "2025-03-01T09:00:00.000Z",
          "lastMessageDate": "2026-01-15T14:30:00.000Z",
          "displayNameEditedAt": "2026-05-04T09:42:00Z",
          "lastMessageExternalId": "58231",
          "isGroup": false,
          "owner": {},
          "isReadonly": false,
          "lastExportedAt": "2026-05-04T09:42:00Z",
          "messagesCount": 320,
          "archivedBy": {},
          "archivedAt": "2026-05-04T09:42:00Z",
          "starredAt": "2026-05-04T09:42:00Z",
          "tags": [
            {
              "createdAt": "2026-01-15T14:30:00.000Z",
              "updatedAt": "2026-01-15T14:30:00.000Z",
              "id": "507f1f77bcf86cd799439011",
              "name": "Important",
              "nameLowercase": "important",
              "backgroundColor": "#FDE68A",
              "textColor": "#92400E",
              "type": "system",
              "severity": "info",
              "origin": "manual",
              "creatorAccessType": "org",
              "isActive": true
            }
          ],
          "attachedTags": [
            {
              "tagId": "507f1f77bcf86cd799439011",
              "tag": "Important",
              "addedBy": "user",
              "addedById": "507f1f77bcf86cd799439012",
              "removedAt": "2026-05-04T09:42:00Z",
              "removedBy": "user",
              "removedById": "string"
            }
          ],
          "isPlaceholder": false,
          "isArchived": false,
          "isStarred": false,
          "hasAllAttachmentProcessed": true,
          "processedAttachmentCount": 12,
          "conversationName": "Conversation with Jane Doe",
          "isNameEdited": false,
          "participantCount": 2
        },
        "invitedUserName": "string",
        "invitedUserEmail": "string",
        "isRead": true,
        "readAt": "2026-05-04T09:42:00Z",
        "type": "default",
        "text": "string",
        "caseId": "string",
        "caseName": "string",
        "conversationId": "string",
        "importedConversationId": "string",
        "importedConversationName": "string",
        "caseSlug": "string",
        "messageId": "string",
        "commentId": "string",
        "replyCommentId": "string",
        "commentText": "string",
        "replyText": "string",
        "messageIndex": 42.0,
        "commentIndex": 42.0,
        "replyCommentIndex": 42.0
      }
    ],
    "noOfReadItems": 12,
    "noOfUnreadItems": 3
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}