Import uploaded conversations (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/conversation/bulk-import

Desktop plumbing: queues the uploaded conversations for background import into the caller's case. When search data is sent, it is also saved as a search-tracking record for the extraction code.

Headers

  • organization string Required

    id of the selected (active) organization

application/json

Body Required

Bulk upload conversation

  • messageSelectionReport object
    Hide messageSelectionReport attributes Show messageSelectionReport attributes object
    • version number Required
    • uploadAttemptId string Required
    • phase object Required
    • platformImportAccepted boolean Required
    • coverage string Required
    • eligibleScope string Required
    • conversations array[object] Required
      Hide conversations attributes Show conversations attributes object
      • app string Required

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

      • conversationId number Required
      • mode string Required
      • selectedMessageCount number Required
      • eligibleMessageCount number | null Required
      • includedMessageCount number Required
      • omittedEligibleMessageCount number | null Required
      • selectedNotIncludedCount number Required
      • totalMessageCount number | null
  • systemId string Required
  • deviceId string Required
  • deviceType string Required

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

  • dateAppended string Required
  • organizationId string Required
  • extractionCode string
  • case string
  • shareEmails array[string]
  • totalSize number
  • appVersion string
  • localBackupPath string
  • timezone string
  • searchData array[string]
  • messagesAlreadyExists boolean
  • isShareAll boolean

Responses

  • 201 application/json
    Hide response attributes Show response attributes object
    • data object Required
      Hide data attributes Show data attributes object
      • message string Required
      • isSuccess boolean Required
    • statusCode number Required
    • timestamp string(date-time) Required
POST /extraction/conversation/bulk-import
curl \
 --request POST 'http://api.example.com/extraction/conversation/bulk-import' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --header "organization: string" \
 --data '{
  "messageSelectionReport": {
    "version": 42.0,
    "uploadAttemptId": "string",
    "phase": {},
    "platformImportAccepted": true,
    "coverage": "string",
    "eligibleScope": "string",
    "conversations": [
      {
        "app": "message",
        "conversationId": 42.0,
        "mode": "string",
        "selectedMessageCount": 42.0,
        "eligibleMessageCount": 42.0,
        "includedMessageCount": 42.0,
        "omittedEligibleMessageCount": 42.0,
        "selectedNotIncludedCount": 42.0,
        "totalMessageCount": 42.0
      }
    ]
  },
  "systemId": "string",
  "deviceId": "string",
  "deviceType": "unknown",
  "dateAppended": "DD_MM_YY_HH_mm_ss",
  "organizationId": "string",
  "extractionCode": "string",
  "case": "string",
  "shareEmails": [
    "string"
  ],
  "totalSize": 42.0,
  "appVersion": "string",
  "localBackupPath": "string",
  "timezone": "string",
  "searchData": [
    "string"
  ],
  "messagesAlreadyExists": true,
  "isShareAll": true
}'
Request examples
# Headers
organization: string

# Payload
{
  "messageSelectionReport": {
    "version": 42.0,
    "uploadAttemptId": "string",
    "phase": {},
    "platformImportAccepted": true,
    "coverage": "string",
    "eligibleScope": "string",
    "conversations": [
      {
        "app": "message",
        "conversationId": 42.0,
        "mode": "string",
        "selectedMessageCount": 42.0,
        "eligibleMessageCount": 42.0,
        "includedMessageCount": 42.0,
        "omittedEligibleMessageCount": 42.0,
        "selectedNotIncludedCount": 42.0,
        "totalMessageCount": 42.0
      }
    ]
  },
  "systemId": "string",
  "deviceId": "string",
  "deviceType": "unknown",
  "dateAppended": "DD_MM_YY_HH_mm_ss",
  "organizationId": "string",
  "extractionCode": "string",
  "case": "string",
  "shareEmails": [
    "string"
  ],
  "totalSize": 42.0,
  "appVersion": "string",
  "localBackupPath": "string",
  "timezone": "string",
  "searchData": [
    "string"
  ],
  "messagesAlreadyExists": true,
  "isShareAll": true
}
Response examples (201)
{
  "data": {
    "message": "Done",
    "isSuccess": true
  },
  "statusCode": 201,
  "timestamp": "2026-01-15T10:15:00.000Z"
}