Desktop plumbing: creates an import job for an uploaded ChatGPT, Claude or Gemini export file, marks the case's AI chat data source as pending, and queues the import. Returns 400 if the file was already imported successfully, and 404 if the file or extraction code is not found. Not available to opposing counsel.
POST
/ai-chat/{caseId}/import
curl \
--request POST 'http://api.example.com/ai-chat/{caseId}/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"
}