Incident media
An Incident can have up to 10 attachments. Uploads use signed URLs and are attached to an Incident in a separate step.
Attachment flow
- Generate an upload URL.
- Upload the file to the returned signed
uploadUrlbefore it expires. - Send the returned
fileIdtoPOST /incidents/{incidentId}/media. - Store the media ID from the Incident's
mediaIdscollection for download or deletion.
Generate a temporary upload URL
- Method:
GET - Endpoint:
/upload/temp/incidents/media/urls - Operation ID:
get-incident-temp-media-upload-url - Query parameter: optional UUID
mediaId, useful for offline synchronization
Generate an upload URL for an existing Incident
- Method:
GET - Endpoint:
/upload/incidents/{incidentId}/media/urls - Operation ID:
get-incident-media-upload-url - Query parameter: optional client-generated UUID
mediaId
This endpoint verifies organization access and attachment capacity before issuing the URL.
Both upload URL endpoints return:
{
"uploadUrl": "https://signed-upload-url.example/...",
"fileId": "44100168-11b1-4396-b863-96872820ab5f"
}
Attach uploaded media
- Method:
POST - Endpoint:
/incidents/{incidentId}/media - Operation ID:
add-incident-media
{
"mediaIds": [
"44100168-11b1-4396-b863-96872820ab5f"
]
}
mediaIds must contain 1 to 10 unique UUIDs. The uploaded objects must belong to the same organization. Success returns 200 OK with the updated IncidentResponse.
Download media
- Method:
GET - Endpoint:
/download/incidents/{incidentId}/media/{mediaId}/urls - Operation ID:
get-incident-media-download-url
{
"downloadUrl": "https://signed-download-url.example/...",
"thumbnailDownloadUrl": "https://signed-thumbnail-url.example/..."
}
thumbnailDownloadUrl can be null when no thumbnail is available.
Delete media
- Method:
POST - Endpoint:
/incidents/{incidentId}/media/delete - Operation ID:
delete-incident-media
{
"mediaIds": [
"44100168-11b1-4396-b863-96872820ab5f"
]
}
Success returns 204 No Content and removes the attachments from the Incident and object storage.
Common errors include 400 Bad Request for invalid media IDs, missing uploads, or the 10-attachment limit; 401 Unauthorized; 404 Not Found; and 500 Internal Server Error.