Register or update a device (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 /extraction/device/add-update-device

Desktop plumbing: creates the device from the app's device metadata, or updates it, links it to the caller's extraction code, organization and case, and creates or updates the case's data-source status for it. Returns the device without the lists of organizations and extraction codes it is linked to.

application/json

Body Required

  • deviceId string Required
  • deviceType string Required

    Values are unknown, android, ios, facebook_dump, instagram_dump, threads_dump, or email.

  • deviceMetadata object

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
      • 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
      • availableData object

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

    • statusCode number Required
    • timestamp string(date-time) Required
POST /extraction/device/add-update-device
curl \
 --request POST 'http://api.example.com/extraction/device/add-update-device' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "deviceId": "string",
  "deviceType": "unknown",
  "deviceMetadata": {}
}'
Request examples
{
  "deviceId": "string",
  "deviceType": "unknown",
  "deviceMetadata": {}
}
Response examples (201)
{
  "data": {
    "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",
    "availableData": {
      "messages": true,
      "calls": false
    }
  },
  "statusCode": 201,
  "timestamp": "2026-01-15T10:15:00.000Z"
}