Import an AI chat export

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/ai-chat/import

Creates an import job in the extraction code's case for an uploaded AI chat export (Claude, ChatGPT or Gemini), marks the data source as pending and queues the import. Returns 400 if the file was already imported.

application/json

Body Required

  • fileId string Required

    UserFile ID of the uploaded zip

  • platform string Required

    AI platform: claude, chatgpt, or gemini

    Values are claude, chatgpt, or gemini.

  • extractionCode string

    Extraction code string (optional)

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
      • case string Required
      • extractionCode string | null Required
      • file string Required
      • createdBy string Required
      • platform string Required

        Values are claude, chatgpt, or gemini.

      • status string Required

        Values are not_started, in_progress, completed, or failed.

      • startedAt string(date-time) | null Required
      • completedAt string(date-time) | null Required
      • failedAt string(date-time) | null Required
      • message string | null Required
      • aiChatProvider string | null Required
      • stats object | null Required
    • statusCode number Required
    • timestamp string(date-time) Required
POST /extraction/ai-chat/import
curl \
 --request POST 'http://api.example.com/extraction/ai-chat/import' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "fileId": "string",
  "platform": "claude",
  "extractionCode": "string"
}'
Request examples
{
  "fileId": "string",
  "platform": "claude",
  "extractionCode": "string"
}
Response examples (201)
{
  "data": {
    "createdAt": "2026-01-15T14:30:00.000Z",
    "updatedAt": "2026-01-15T14:30:00.000Z",
    "id": "507f1f77bcf86cd799439011",
    "case": "65a1b2c3d4e5f6a7b8c9d0e2",
    "extractionCode": "65a1b2c3d4e5f6a7b8c9d0e2",
    "file": "65a1b2c3d4e5f6a7b8c9d0e2",
    "createdBy": "65a1b2c3d4e5f6a7b8c9d0e2",
    "platform": "claude",
    "status": "completed",
    "startedAt": "2026-01-15T14:30:00.000Z",
    "completedAt": "2026-01-15T14:32:10.000Z",
    "failedAt": "2026-05-04T09:42:00Z",
    "message": "Upload file not found",
    "aiChatProvider": "65a1b2c3d4e5f6a7b8c9d0e2",
    "stats": {
      "conversations": 12,
      "messages": 348,
      "artifacts": 0,
      "activities": 0,
      "attachments": 5
    }
  },
  "statusCode": 201,
  "timestamp": "2026-01-15T10:15:00.000Z"
}