Search users (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 /admin/user

Lists the members of the organizations matched by organizationId or organizationName (one of the two is required; without either, no users are returned), optionally narrowed by email and name (partial, case-insensitive), with each user's full profile, one page at a time (10 users by default). Returns 404 when no user matches. Super admin only.

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.

  • email string Required
  • name string Required
  • organizationName string Required
  • organizationId string Required
  • sortBy string

    Values are createdAt, updatedAt, name, or email. Default value is createdAt.

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
        • 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.

    • statusCode number Required
    • timestamp string(date-time) Required
GET /admin/user
curl \
 --request GET 'http://api.example.com/admin/user?email=string&name=string&organizationName=string&organizationId=string' \
 --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",
        "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
                }
              }
            }
          }
        ]
      }
    ]
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}