Desktop plumbing: takes a log file (multipart field file), zips it with the request details, stores it in S3 and posts a Slack notification with its download link and the device, OS and backup details. Also saves an app log record for the caller's extraction code and case. Returns the Slack message ts as threadTs.
POST
/extraction/device/app-logs
curl \
--request POST 'http://api.example.com/extraction/device/app-logs' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"systemId": "string",
"deviceId": "string",
"deviceType": "unknown",
"date": "string",
"appVersion": "string",
"message": "string",
"osDetails": "string",
"deviceMetadata": "string",
"threadTs": "string",
"replyBroadcast": true,
"backupMetadata": {},
"errorMetadata": "string",
"backupPath": "string"
}'
Request examples
{
"systemId": "string",
"deviceId": "string",
"deviceType": "unknown",
"date": "string",
"appVersion": "string",
"message": "string",
"osDetails": "string",
"deviceMetadata": "string",
"threadTs": "string",
"replyBroadcast": true,
"backupMetadata": {},
"errorMetadata": "string",
"backupPath": "string"
}
Response examples (200)
{
"data": {
"message": "string",
"isSuccess": true,
"threadTs": "string"
},
"statusCode": 200,
"timestamp": "2026-01-15T10:15:00.000Z"
}