Endpoints
| Method | Path | Description |
|---|---|---|
POST | /sessions | Create a session |
GET | /sessions | List sessions |
GET | /sessions/{session_id} | Get a session |
PUT | /sessions/{session_id} | Update a session |
DELETE | /sessions/{session_id} | Delete a session |
POST | /sessions/{session_id}/upload-files | Upload files to a session |
DELETE | /sessions/{session_id}/attachments/{attachment_id} | Remove an attachment from a session |
Create a session
POST /sessions
Request body:
| Field | Required | Type | Description |
|---|---|---|---|
title | No | string | Session display name. Defaults to "New Atlas session" |
attachments | No | array | List of {attachment_id} objects to pre-associate |
| Field | Type | Nullable | Description |
|---|---|---|---|
session_id | UUID | No | Session identifier |
session_title | string | Yes | Display name |
session_description | string | Yes | Session description |
session_created_by | string | No | Creator email |
session_created_at | string | No | ISO 8601 creation timestamp |
attachments | array | No | List of attachment objects associated with this session |
imported_projects | array | No | UUIDs of imported projects |
is_starred | boolean | No | Whether the session is starred |
starred_at | string | Yes | ISO 8601 timestamp of when starred |
List sessions
GET /sessions
Example request:
{"items": [...], "count": N} where each item is a session object with the same fields as the create response (except attachments, which is only included on the single-session GET).
Get a session
GET /sessions/{session_id}
Example request:
Update a session
PUT /sessions/{session_id}
All fields are optional.
| Field | Type | Description |
|---|---|---|
title | string | New display name |
description | string | Session description |
starred | boolean | Set to true to star the session |
Delete a session
DELETE /sessions/{session_id}
Example request:
Upload files
POST /sessions/{session_id}/upload-files
Upload one or more files as multipart/form-data. Each uploaded file becomes an attachment in the session.
Form fields:
| Field | Required | Description |
|---|---|---|
files | Yes | One or more file binaries (repeat the files field for multiple uploads) |
| 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 |
Remove an attachment
DELETE /sessions/{session_id}/attachments/{attachment_id}
Removes an attachment from a session.
Example request:

