Endpoints
| Method | Path | Description |
|---|---|---|
GET | /attachments | List attachments |
GET | /attachments/{attachment_uuid} | Get attachment details |
PATCH | /attachments/{attachment_uuid} | Update attachment metadata |
POST | /attachments/{attachment_uuid}/export | Get a signed download URL |
GET | /attachments/{attachment_uuid}/annotations | List annotations |
POST | /annotations | Create an annotation |
List attachments
GET /attachments
Returns attachments belonging to the authenticated user and attachments created by Atlas in their sessions.
Query parameters:
| Parameter | Required | Type | Description |
|---|---|---|---|
session_id | No | UUID | Filter to a specific session |
attachment_type | No | string | Filter by file type (e.g. pdf, csv, bin) |
created_after | No | string | ISO 8601 datetime lower bound |
created_before | No | string | ISO 8601 datetime upper bound |
{"items": [...], "count": N} where each item is an attachment object:
| Field | Type | Nullable | Description |
|---|---|---|---|
attachment_id | UUID | Yes | Attachment identifier |
attachment_name | string | No | Original filename |
attachment_type | string | No | File type |
attachment_title | string | Yes | Display title |
attachment_description | string | Yes | Description |
attachment_citation | string | Yes | Source citation |
attachment_source_session_id | UUID | Yes | Session this attachment belongs to |
attachment_created_by | string | No | Creator (email or "atlas") |
attachment_created_at | string | No | ISO 8601 creation timestamp |
is_visible | boolean | No | Whether the attachment should be shown in the UI |
Get attachment details
GET /attachments/{attachment_uuid}
Returns a single attachment with its full content payload.
Example request:
| Field | Type | Nullable | Description |
|---|---|---|---|
attachment_id | UUID | Yes | Attachment identifier |
attachment_name | string | No | Original filename |
attachment_type | string | No | File type |
attachment_title | string | Yes | Display title |
attachment_description | string | Yes | Description |
attachment_citation | string | Yes | Source citation |
attachment_source_session_id | UUID | Yes | Session this attachment belongs to |
attachment_created_by | string | No | Creator (email or "atlas") |
attachment_created_at | string | No | ISO 8601 creation timestamp |
is_visible | boolean | No | Whether the attachment is shown in the UI |
attachment_content | object | Yes | Structured content payload (chart data, table data, etc.) |
s3_url | string | Yes | S3 URL of the underlying file |
Update attachment metadata
PATCH /attachments/{attachment_uuid}
Request body (all fields optional):
| Field | Type | Description |
|---|---|---|
attachment_title | string | Display title |
attachment_description | string | Description |
attachment_citation | string | Source citation |
is_visible | boolean | Whether the attachment is shown in the UI |
Download an attachment
POST /attachments/{attachment_uuid}/export
Returns a signed URL for direct download.
Example request:
| Field | Type | Nullable | Description |
|---|---|---|---|
presigned_url | string | Yes | Time-limited signed download URL |
Create an annotation
POST /annotations
Annotations mark regions of interest within an attachment.
Request body:
| Field | Required | Type | Description |
|---|---|---|---|
attachment_id | Yes | UUID | Attachment to annotate |
annotation_type | Yes | string | Annotation type: bbox (bounding box) or path |
annotation_content | Yes | object | Structured annotation content (see below) |
annotation_content object:
| Field | Required | Type | Description |
|---|---|---|---|
page_width | Yes | number | Width of the page/image being annotated |
page_height | Yes | number | Height of the page/image being annotated |
page_number | Yes | integer | Page number (0-indexed) |
content | Yes | array | List of bbox or path objects |
content:
| Field | Required | Type | Description |
|---|---|---|---|
tags | Yes | object | Key-value tags (string or boolean values) |
label | Yes | string | Annotation label |
x | Yes | number | Left edge |
y | Yes | number | Top edge |
width | Yes | number | Box width |
height | Yes | number | Box height |
| Field | Type | Description |
|---|---|---|
attachment_id | string | Parent attachment |
annotation_id | string | Annotation identifier |
annotation_content | object | The annotation content |
annotation_type | string | Annotation type |
List annotations
GET /attachments/{attachment_uuid}/annotations
Example request:
| Field | Type | Description |
|---|---|---|
uuid | string | Annotation identifier |
annotation_type | string | bbox or path |
annotation_content | object | Structured annotation data |
attachment_id | string | Parent attachment ID |

