Attachments API
File attachment management across products, issues, and meetings.
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /catalog/spaces/{slug}/products/{product_id}/attachments | List product attachments |
| POST | /catalog/spaces/{slug}/products/{product_id}/attachments | Upload product attachment |
| DELETE | /catalog/attachments/{attachment_id} | Delete product attachment |
| GET | /catalog/attachments/{attachment_id}/download | Download product attachment |
| POST | /issues/tickets/{ticket_id}/attachments | Upload ticket attachment |
| GET | /issues/attachments/{attachment_id} | Download ticket attachment |
| DELETE | /issues/attachments/{attachment_id} | Delete ticket attachment |
Product Attachments
List Attachments
GET /catalog/spaces/{slug}/products/{product_id}/attachments
Response
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"file_name": "data_dictionary.pdf",
"file_size": 245760,
"mime_type": "application/pdf",
"uploaded_by": {
"id": "...",
"full_name": "Alice Johnson"
},
"created_at": "2026-01-15T10:30:00Z"
}
]
Upload Attachment
POST /catalog/spaces/{slug}/products/{product_id}/attachments
Content-Type: multipart/form-data
Request
| Field | Type | Required | Description |
|---|---|---|---|
file | file | Yes | File to upload (max 50MB) |
Example
curl -X POST "https://api.qarion.com/catalog/spaces/analytics/products/{id}/attachments" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@data_dictionary.pdf"
Response
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"file_name": "data_dictionary.pdf",
"file_size": 245760,
"mime_type": "application/pdf",
"uploaded_by": {
"id": "...",
"full_name": "Alice Johnson"
},
"created_at": "2026-01-15T10:30:00Z"
}
Download Attachment
GET /catalog/attachments/{attachment_id}/download
Response
Returns download URL or file content depending on storage backend.
{
"download_url": "https://storage.qarion.com/...",
"file_name": "data_dictionary.pdf",
"expires_at": "2026-01-15T11:30:00Z"
}
Delete Attachment
DELETE /catalog/attachments/{attachment_id}
Only the uploader or admins can delete attachments.
Response
{
"message": "Attachment deleted successfully"
}
Ticket Attachments
Upload Ticket Attachment
POST /issues/tickets/{ticket_id}/attachments
Content-Type: multipart/form-data
Request
| Field | Type | Required | Description |
|---|---|---|---|
file | file | Yes | File to upload |
comment_id | uuid | No | Optional comment to associate |
Response
Returns the created attachment object similar to product attachments.
Download Ticket Attachment
GET /issues/attachments/{attachment_id}
Returns the file for download with appropriate content headers.
Delete Ticket Attachment
DELETE /issues/attachments/{attachment_id}
Only the uploader or ticket owner can delete attachments.
Supported File Types
The platform accepts common file types including:
- Documents: PDF, Word, Excel, PowerPoint
- Images: PNG, JPEG, GIF, SVG
- Data: CSV, JSON, XML, Parquet
- Archives: ZIP
Maximum file size: 50 MB
Error Responses
| Status | Description |
|---|---|
400 | Invalid file or exceeds size limit |
403 | Not authorized to upload/delete |
404 | Attachment or parent entity not found |
413 | File too large |