Update an extraction code (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
POST /admin/case/update-extraction-codes

Updates the extraction code on caseId found by extractionCodeId or code, with the same fields as the member route (label, due date, configuration or custodian), and returns the code. Configuration cannot change once the code is locked. Returns 404 when the case has no such code. Super admin only.

application/json

Body Required

  • custodianEmail string

    Minimum length is 3, maximum length is 100.

  • custodianName string

    Minimum length is 3, maximum length is 100.

  • custodianPhone string

    Minimum length is 3, maximum length is 50.

  • sendEmail boolean
  • label string

    Minimum length is 3, maximum length is 100.

  • allowShareAll boolean Deprecated

    Use config instead

  • config object
    Hide config attributes Show config attributes object
    • type string Required

      Values are allow_client, share_all, or auto_share. Default value is allow_client.

    • ignoreMediaPermissionAndroid boolean

      Default value is false.

    • origin string
    • enableFileUpload boolean

      Default value is false.

    • enableLocalExport object
      Hide enableLocalExport attributes Show enableLocalExport attributes object
      • formats array[string]

        Default value is [] (empty).

      • defaultConfig object
        Hide defaultConfig attributes Show defaultConfig attributes object
        • chunkType string Required

          Values are year, month, week, day, or none. Default value is none.

        • includeAttachments boolean

          Default value is true.

    • allowClient object
      Hide allowClient attributes Show allowClient attributes object
      • allowSocialApps array[string]

        Default value is [] (empty).

      • allowShareAll boolean

        Default value is false.

    • autoShare object
      Hide autoShare attributes Show autoShare attributes object
      • allowClientApproval boolean
      • allowAdditionalShare boolean
      • searches array[object]
        Hide searches attributes Show searches attributes object
        • type string Required

          Values are name, phone, keywords, or email. Default value is name.

        • values array[string] Required
        • apps array[string]

          Default value is [] (empty).

        • dateRange object
          Hide dateRange attributes Show dateRange attributes object
          • start string Required
          • end string Required
        • exactMatch boolean

          Default value is false.

        • include boolean

          Default value is true.

        • conversationType string Required

          Values are all, dm, or group. Default value is all.

    • shareAll object
      Hide shareAll attributes Show shareAll attributes object
      • apps array[string]
      • includeAttachments boolean

        Default value is true.

      • dateRange object
        Hide dateRange attributes Show dateRange attributes object
        • start string Required
        • end string Required
      • searchesExclude array[object]
        Hide searchesExclude attributes Show searchesExclude attributes object
        • type string Required

          Values are name, phone, keywords, or email. Default value is name.

        • values array[string] Required
        • apps array[string]
        • exactMatch boolean
        • conversationType string Required

          Values are all, dm, or group. Default value is all.

    • dateRange object
      Hide dateRange attributes Show dateRange attributes object
      • start string Required
      • end string Required
    • appConfig object
      Hide appConfig attributes Show appConfig attributes object
      • conversionConcurrency object
        Hide conversionConcurrency attributes Show conversionConcurrency attributes object
        • mediaType string Required

          Values are images, video, audio, or documents.

        • concurrency array[number]
      • compressionConcurrency object
        Hide compressionConcurrency attributes Show compressionConcurrency attributes object
        • mediaType string Required

          Values are images, video, audio, or documents.

        • concurrency array[number]
      • enableLocalMediaConversion boolean

        Default value is false.

      • enableLocalMediaCompression boolean

        Default value is false.

      • enableIosEncryptedBackupExtraction boolean

        Default value is false.

      • allowOnlyEncryptedIosBackup boolean

        Default value is false.

      • autoIncludeSafariData boolean

        Default value is false.

      • autoIncludeNotesData boolean

        Default value is false.

      • autoIncludeContacts boolean

        Default value is false.

      • shareAction string

        Values are share, export, or share_and_export. Default value is share.

  • requestedSources array[string]
  • dueDate string Required
  • sendReminders object
    Hide sendReminders attributes Show sendReminders attributes object
    • dueIn2Weeks boolean

      Default value is false.

    • dueIn1Week boolean

      Default value is false.

    • dueIn3Days boolean

      Default value is false.

    • dueIn1Day boolean

      Default value is false.

    • after1Week boolean

      Default value is false.

    • after2Weeks boolean

      Default value is false.

    • after1Month boolean

      Default value is false.

  • metadata object
  • watchlist boolean

    Default value is false.

  • ocRequired boolean

    OC cases only: when false, the OL creates/keeps this code without the opposing-council approval gate (code stays na, immediately usable, and the custodian email is sent). Ignored on non-OC cases. Defaults to true (gate on).

    Default value is true.

  • paymentRequired boolean

    Whether payment is required for this extraction code

  • paymentAmount number

    Payment amount in cents

  • paymentCurrency string

    Payment currency (defaults to usd)

    Default value is usd.

  • paymentSuccessRedirectUrl string

    Payment success redirect URL

  • productName string

    Product name

  • prepaidItems array[object]

    Prepaid basket. Each entry becomes its own Stripe line item and grants units on payment. Prices are negotiable — unitAmountCents is what the customer is charged, and is never validated against the catalog default.

    Hide prepaidItems attributes Show prepaidItems attributes object
    • productKey string Required

      Values are prepaid.device, prepaid.email, prepaid.device-email, or prepaid.support.

    • quantity number Required

      Default value is 1.

    • unitAmountCents number Required

      Negotiated unit price in cents

  • caseId string Required
  • extractionCodeId string

    required if code is not provided

  • code string

    required if extractionCodeId is not provided

Responses

  • 201 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
      • code string Required
      • email string Required
      • name string | null Required
      • phone string | null Required
      • isActive boolean Required
      • label string | null Required
      • config object Required
        Hide config attributes Show config attributes object
        • type string Required

          Values are allow_client, share_all, or auto_share. Default value is allow_client.

        • origin string | null Required
        • ignoreMediaPermissionAndroid boolean
        • dateRange object
          Hide dateRange attributes Show dateRange attributes object
          • start string(date-time) | null Required
          • end string(date-time) | null Required
        • appConfig object
          Hide appConfig attributes Show appConfig attributes object
          • conversionConcurrency array[object] Required
            Hide conversionConcurrency attributes Show conversionConcurrency attributes object
            • mediaType string Required

              Values are images, video, audio, or documents.

            • concurrency array[number] Required
          • compressionConcurrency array[object] Required
            Hide compressionConcurrency attributes Show compressionConcurrency attributes object
            • mediaType string Required

              Values are images, video, audio, or documents.

            • concurrency array[number] Required
          • enableLocalMediaConversion boolean
          • enableLocalMediaCompression boolean
          • enableIosEncryptedBackupExtraction boolean
          • allowOnlyEncryptedIosBackup boolean
          • autoIncludeSafariData boolean
          • autoIncludeNotesData boolean
          • autoIncludeContacts boolean

            Default value is false.

          • shareAction string

            Values are share, export, or share_and_export. Default value is share.

        • enableLocalExport object
          Hide enableLocalExport attributes Show enableLocalExport attributes object
          • formats array[string]
          • defaultConfig object
            Hide defaultConfig attributes Show defaultConfig attributes object
            • chunkType string Required

              Values are year, month, week, day, or none.

            • includeAttachments boolean Required
        • allowClient object
          Hide allowClient attributes Show allowClient attributes object
          • allowSocialApps array[string] Required
          • allowShareAll boolean Required
        • autoShare object
          Hide autoShare attributes Show autoShare attributes object
          • allowClientApproval boolean Required
          • allowAdditionalShare boolean Required
          • searches array[object] Required
            Hide searches attributes Show searches attributes object
            • type string Required

              Values are name, phone, keywords, or email. Default value is name.

            • values array[string] Required
            • apps array[string] Required
            • dateRange object Required
              Hide dateRange attributes Show dateRange attributes object
              • start string(date-time) | null Required
              • end string(date-time) | null Required
            • exactMatch boolean Required
            • include boolean Required
            • conversationType string Required

              Values are all, dm, or group. Default value is all.

        • shareAll object
          Hide shareAll attributes Show shareAll attributes object
          • apps array[string] Required
          • includeAttachments boolean Required
          • dateRange object
            Hide dateRange attributes Show dateRange attributes object
            • start string(date-time) | null Required
            • end string(date-time) | null Required
          • searchesExclude array[object]
            Hide searchesExclude attributes Show searchesExclude attributes object
            • type string Required

              Values are name, phone, keywords, or email. Default value is name.

            • values array[string] Required
            • apps array[string] Required
            • exactMatch boolean Required
            • conversationType string Required

              Values are all, dm, or group. Default value is all.

      • devices array[object] | null Required

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

      • totalDevicesCount number Required
      • dueDate string(date-time) | null
      • sendEmail boolean

        Default value is false.

      • lockedAt string(date-time) | null
      • hasDueDateCrossed boolean Required
      • status string Required
      • reviewStatus string | null Required

        Values are approved, rejected, not_reviewed, or na.

      • reviewMessage string | null Required
      • lastApprovedBy object Required

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

        Hide lastApprovedBy attributes Show lastApprovedBy 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.

      • ocReviewedByOrg object Required

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

        Hide ocReviewedByOrg attributes Show ocReviewedByOrg 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.

      • ocReviewedAt string(date-time) | null Required
      • ocRequired boolean Required

        Default value is true.

      • allowShareAll boolean Required Deprecated
      • metadata object Required
      • logsConfig object Required
      • sources array[object]
        Hide sources attributes Show sources attributes object
        • createdAt string(date-time) Required
        • updatedAt string(date-time) Required
        • id string Required
        • case object | null Required

          Not loaded by any route, so always null.

        • extractionCode object | null Required

          Not loaded by any route, so always null.

        • dataSource object Required

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

          Hide dataSource attributes Show dataSource attributes object
          • createdAt string(date-time) Required
          • updatedAt string(date-time) Required
          • id string Required
          • name string Required
          • displayName string Required
          • category string Required
          • config object | null Required

            Collection options for this source. The keys below are the ones the code reads, for device sources (ios, android).

            Additional properties are allowed.

            Hide config attributes Show config attributes object | null
            • iosEnableEncryptedBackup boolean
            • iosAllowOnlyEncryptedBackup boolean
            • iosAutoIncludeSafariData boolean
            • iosAutoIncludeNotesData boolean
            • androidIgnoreMediaPermission boolean
            • iosAllApps array[string]
            • iosAllowedApps array[string]
            • androidAllApps array[string]
            • androidAllowedApps array[string]
        • caseDataSource object Required

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

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

            Not loaded by any route, so always null.

          • dataSource object Required

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

            Hide dataSource attributes Show dataSource attributes object
            • createdAt string(date-time) Required
            • updatedAt string(date-time) Required
            • id string Required
            • name string Required
            • displayName string Required
            • category string Required
            • config object | null Required

              Collection options for this source. The keys below are the ones the code reads, for device sources (ios, android).

              Additional properties are allowed.

              Hide config attributes Show config attributes object | null
              • iosEnableEncryptedBackup boolean
              • iosAllowOnlyEncryptedBackup boolean
              • iosAutoIncludeSafariData boolean
              • iosAutoIncludeNotesData boolean
              • androidIgnoreMediaPermission boolean
              • iosAllApps array[string]
              • iosAllowedApps array[string]
              • androidAllApps array[string]
              • androidAllowedApps array[string]
          • config object | null Required
        • config object | null Required
      • payment object | null Required
    • statusCode number Required
    • timestamp string(date-time) Required
POST /admin/case/update-extraction-codes
curl \
 --request POST 'http://api.example.com/admin/case/update-extraction-codes' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "custodianEmail": "string",
  "custodianName": "string",
  "custodianPhone": "string",
  "sendEmail": true,
  "label": "string",
  "allowShareAll": true,
  "config": {
    "type": "allow_client",
    "ignoreMediaPermissionAndroid": false,
    "origin": "string",
    "enableFileUpload": false,
    "enableLocalExport": {
      "formats": [],
      "defaultConfig": {
        "chunkType": "none",
        "includeAttachments": true
      }
    },
    "allowClient": {
      "allowSocialApps": [],
      "allowShareAll": false
    },
    "autoShare": {
      "allowClientApproval": true,
      "allowAdditionalShare": true,
      "searches": [
        {
          "type": "name",
          "values": [
            "string"
          ],
          "apps": [],
          "dateRange": {
            "start": "string",
            "end": "string"
          },
          "exactMatch": false,
          "include": true,
          "conversationType": "all"
        }
      ]
    },
    "shareAll": {
      "apps": [
        "string"
      ],
      "includeAttachments": true,
      "dateRange": {
        "start": "string",
        "end": "string"
      },
      "searchesExclude": [
        {
          "type": "name",
          "values": [
            "string"
          ],
          "apps": [
            "string"
          ],
          "exactMatch": true,
          "conversationType": "all"
        }
      ]
    },
    "dateRange": {
      "start": "string",
      "end": "string"
    },
    "appConfig": {
      "conversionConcurrency": {
        "mediaType": "images",
        "concurrency": [
          42.0
        ]
      },
      "compressionConcurrency": {
        "mediaType": "images",
        "concurrency": [
          42.0
        ]
      },
      "enableLocalMediaConversion": false,
      "enableLocalMediaCompression": false,
      "enableIosEncryptedBackupExtraction": false,
      "allowOnlyEncryptedIosBackup": false,
      "autoIncludeSafariData": false,
      "autoIncludeNotesData": false,
      "autoIncludeContacts": false,
      "shareAction": "share"
    }
  },
  "requestedSources": [
    "string"
  ],
  "dueDate": "string",
  "sendReminders": {
    "dueIn2Weeks": false,
    "dueIn1Week": false,
    "dueIn3Days": false,
    "dueIn1Day": false,
    "after1Week": false,
    "after2Weeks": false,
    "after1Month": false
  },
  "metadata": {},
  "watchlist": false,
  "ocRequired": true,
  "paymentRequired": true,
  "paymentAmount": 42.0,
  "paymentCurrency": "usd",
  "paymentSuccessRedirectUrl": "string",
  "productName": "string",
  "prepaidItems": [
    {
      "productKey": "prepaid.device",
      "quantity": 1,
      "unitAmountCents": 42.0
    }
  ],
  "caseId": "string",
  "extractionCodeId": "string",
  "code": "string"
}'
Request examples
{
  "custodianEmail": "string",
  "custodianName": "string",
  "custodianPhone": "string",
  "sendEmail": true,
  "label": "string",
  "allowShareAll": true,
  "config": {
    "type": "allow_client",
    "ignoreMediaPermissionAndroid": false,
    "origin": "string",
    "enableFileUpload": false,
    "enableLocalExport": {
      "formats": [],
      "defaultConfig": {
        "chunkType": "none",
        "includeAttachments": true
      }
    },
    "allowClient": {
      "allowSocialApps": [],
      "allowShareAll": false
    },
    "autoShare": {
      "allowClientApproval": true,
      "allowAdditionalShare": true,
      "searches": [
        {
          "type": "name",
          "values": [
            "string"
          ],
          "apps": [],
          "dateRange": {
            "start": "string",
            "end": "string"
          },
          "exactMatch": false,
          "include": true,
          "conversationType": "all"
        }
      ]
    },
    "shareAll": {
      "apps": [
        "string"
      ],
      "includeAttachments": true,
      "dateRange": {
        "start": "string",
        "end": "string"
      },
      "searchesExclude": [
        {
          "type": "name",
          "values": [
            "string"
          ],
          "apps": [
            "string"
          ],
          "exactMatch": true,
          "conversationType": "all"
        }
      ]
    },
    "dateRange": {
      "start": "string",
      "end": "string"
    },
    "appConfig": {
      "conversionConcurrency": {
        "mediaType": "images",
        "concurrency": [
          42.0
        ]
      },
      "compressionConcurrency": {
        "mediaType": "images",
        "concurrency": [
          42.0
        ]
      },
      "enableLocalMediaConversion": false,
      "enableLocalMediaCompression": false,
      "enableIosEncryptedBackupExtraction": false,
      "allowOnlyEncryptedIosBackup": false,
      "autoIncludeSafariData": false,
      "autoIncludeNotesData": false,
      "autoIncludeContacts": false,
      "shareAction": "share"
    }
  },
  "requestedSources": [
    "string"
  ],
  "dueDate": "string",
  "sendReminders": {
    "dueIn2Weeks": false,
    "dueIn1Week": false,
    "dueIn3Days": false,
    "dueIn1Day": false,
    "after1Week": false,
    "after2Weeks": false,
    "after1Month": false
  },
  "metadata": {},
  "watchlist": false,
  "ocRequired": true,
  "paymentRequired": true,
  "paymentAmount": 42.0,
  "paymentCurrency": "usd",
  "paymentSuccessRedirectUrl": "string",
  "productName": "string",
  "prepaidItems": [
    {
      "productKey": "prepaid.device",
      "quantity": 1,
      "unitAmountCents": 42.0
    }
  ],
  "caseId": "string",
  "extractionCodeId": "string",
  "code": "string"
}
Response examples (201)
{
  "data": {
    "createdAt": "2026-01-15T14:30:00.000Z",
    "updatedAt": "2026-01-15T14:30:00.000Z",
    "id": "507f1f77bcf86cd799439011",
    "code": "K7Q2-9XPL",
    "email": "jane.doe@example.com",
    "name": "Jane Doe",
    "phone": "+15555550100",
    "isActive": true,
    "label": "Primary phone",
    "config": {
      "type": "allow_client",
      "origin": "Website",
      "ignoreMediaPermissionAndroid": false,
      "dateRange": {
        "start": "2026-05-04T09:42:00Z",
        "end": "2026-05-04T09:42:00Z"
      },
      "appConfig": {
        "conversionConcurrency": [
          {
            "mediaType": "images",
            "concurrency": [
              4,
              6,
              12,
              16
            ]
          }
        ],
        "compressionConcurrency": [
          {
            "mediaType": "images",
            "concurrency": [
              4,
              6,
              12,
              16
            ]
          }
        ],
        "enableLocalMediaConversion": true,
        "enableLocalMediaCompression": true,
        "enableIosEncryptedBackupExtraction": false,
        "allowOnlyEncryptedIosBackup": false,
        "autoIncludeSafariData": false,
        "autoIncludeNotesData": false,
        "autoIncludeContacts": false,
        "shareAction": "share"
      },
      "enableLocalExport": {
        "formats": [
          "pdf"
        ],
        "defaultConfig": {
          "chunkType": "year",
          "includeAttachments": true
        }
      },
      "allowClient": {
        "allowSocialApps": [
          "whatsapp"
        ],
        "allowShareAll": false
      },
      "autoShare": {
        "allowClientApproval": false,
        "allowAdditionalShare": false,
        "searches": [
          {
            "type": "name",
            "values": [
              "Jane Doe"
            ],
            "apps": [
              "whatsapp"
            ],
            "dateRange": {
              "start": "2026-05-04T09:42:00Z",
              "end": "2026-05-04T09:42:00Z"
            },
            "exactMatch": false,
            "include": true,
            "conversationType": "all"
          }
        ]
      },
      "shareAll": {
        "apps": [
          "whatsapp"
        ],
        "includeAttachments": true,
        "dateRange": {
          "start": "2026-05-04T09:42:00Z",
          "end": "2026-05-04T09:42:00Z"
        },
        "searchesExclude": [
          {
            "type": "name",
            "values": [
              "Jane Doe"
            ],
            "apps": [
              "whatsapp"
            ],
            "exactMatch": false,
            "conversationType": "all"
          }
        ]
      }
    },
    "devices": [
      {}
    ],
    "totalDevicesCount": 1,
    "dueDate": "2026-01-15T14:30:00.000Z",
    "sendEmail": true,
    "lockedAt": "2026-05-04T09:42:00Z",
    "hasDueDateCrossed": false,
    "status": "pending",
    "reviewStatus": "approved",
    "reviewMessage": "string",
    "lastApprovedBy": {
      "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": [
        {}
      ]
    },
    "ocReviewedByOrg": {
      "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"
    },
    "ocReviewedAt": "2026-05-04T09:42:00Z",
    "ocRequired": true,
    "allowShareAll": false,
    "metadata": {},
    "logsConfig": {},
    "sources": [
      {
        "createdAt": "2026-01-15T14:30:00.000Z",
        "updatedAt": "2026-01-15T14:30:00.000Z",
        "id": "507f1f77bcf86cd799439011",
        "case": {},
        "extractionCode": {},
        "dataSource": {
          "createdAt": "2026-01-15T14:30:00.000Z",
          "updatedAt": "2026-01-15T14:30:00.000Z",
          "id": "507f1f77bcf86cd799439011",
          "name": "gmail",
          "displayName": "Gmail",
          "category": "email",
          "config": {
            "iosEnableEncryptedBackup": true,
            "iosAllowOnlyEncryptedBackup": false,
            "iosAllApps": [
              "messages",
              "call_log",
              "whatsapp",
              "photos"
            ],
            "iosAllowedApps": [
              "messages",
              "call_log"
            ]
          }
        },
        "caseDataSource": {
          "createdAt": "2026-01-15T14:30:00.000Z",
          "updatedAt": "2026-01-15T14:30:00.000Z",
          "id": "507f1f77bcf86cd799439011",
          "case": {},
          "dataSource": {
            "createdAt": "2026-01-15T14:30:00.000Z",
            "updatedAt": "2026-01-15T14:30:00.000Z",
            "id": "507f1f77bcf86cd799439011",
            "name": "gmail",
            "displayName": "Gmail",
            "category": "email",
            "config": {
              "iosEnableEncryptedBackup": true,
              "iosAllowOnlyEncryptedBackup": false,
              "iosAllApps": [
                "messages",
                "call_log",
                "whatsapp",
                "photos"
              ],
              "iosAllowedApps": [
                "messages",
                "call_log"
              ]
            }
          },
          "config": {
            "iosEnableEncryptedBackup": true,
            "iosAllowOnlyEncryptedBackup": false,
            "iosAutoIncludeSafariData": true,
            "iosAutoIncludeNotesData": false,
            "iosAllowedApps": [
              "messages",
              "call_log",
              "whatsapp"
            ]
          }
        },
        "config": {
          "iosEnableEncryptedBackup": true,
          "iosAllowOnlyEncryptedBackup": false,
          "iosAllApps": [
            "messages",
            "call_log",
            "whatsapp",
            "photos"
          ],
          "iosAllowedApps": [
            "messages",
            "call_log"
          ]
        }
      }
    ],
    "payment": {}
  },
  "statusCode": 201,
  "timestamp": "2026-01-15T10:15:00.000Z"
}