Skip to main content

Attachments API

File attachment management across products, issues, and meetings.

Endpoints Overview

MethodEndpointDescription
GET/catalog/spaces/{slug}/products/{product_id}/attachmentsList product attachments
POST/catalog/spaces/{slug}/products/{product_id}/attachmentsUpload product attachment
DELETE/catalog/attachments/{attachment_id}Delete product attachment
GET/catalog/attachments/{attachment_id}/downloadDownload product attachment
POST/issues/tickets/{ticket_id}/attachmentsUpload 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

FieldTypeRequiredDescription
filefileYesFile 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

FieldTypeRequiredDescription
filefileYesFile to upload
comment_iduuidNoOptional 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

StatusDescription
400Invalid file or exceeds size limit
403Not authorized to upload/delete
404Attachment or parent entity not found
413File too large