Get the signed-in user's profile

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 /extraction/user/profile

Returns the user profile of the caller's extraction code, including its organization.

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • data object Required
      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 /extraction/user/profile
curl \
 --request GET 'http://api.example.com/extraction/user/profile' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "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"
}