Files
Attachments on any record, stored encrypted in Bramble.
| Method | Path | Summary |
|---|---|---|
| GET | /api/files | Files on a record |
| POST | /api/files | Attach a file |
| GET | /api/files/:id | Download a file |
| DELETE | /api/files/:id | Delete a file |
#Files on a record
GET
/api/files- Address
https://<your-org>.brambleit.cloud/atlas/api/files- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Atlas.
Query parameters
| Name | Type | Description |
|---|---|---|
kind | string | The record's kind. |
id | integer | Its id. |
Response 200
| Field | Type | Description |
|---|---|---|
files | array of object | |
files[].id | integer, or null | |
files[].filename | string | |
files[].mime | string | |
files[].size | integer | |
files[].uploaded_name | string, or null | |
files[].created_at | string (date-time), or null |
Example response
JSON
{
"files": [
{
"id": 42,
"filename": "Example filename",
"mime": "string",
"size": 1,
"uploaded_name": "Example uploaded name",
"created_at": "2026-11-12T09:30:00.000Z"
}
]
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/atlas/api/files', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Attach a file
POST
/api/filesThe request body is the file's bytes; kind, id and name are in the query string.
- Address
https://<your-org>.brambleit.cloud/atlas/api/files- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Atlas.
Query parameters
| Name | Type | Description |
|---|---|---|
kind | string | |
id | number | |
name | string |
Response 200
| Field | Type | Description |
|---|---|---|
file | object | |
file.id | integer | |
file.filename | string | |
file.mime | any | |
file.size | integer | |
file.url | string |
Example response
JSON
{
"file": {
"id": 42,
"filename": "Example filename",
"mime": null,
"size": 1,
"url": "https://example.com/…"
}
}Errors
| Status | Message |
|---|---|
| 411 | The upload has no size |
| 413 | Images can be up to 25 MB |
| 413 | Files can be up to … |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/atlas/api/files', {
method: 'POST',
credentials: 'include',
});
const data = await res.json();#Download a file
GET
/api/files/:id- Address
https://<your-org>.brambleit.cloud/atlas/api/files/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Atlas.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Query parameters
| Name | Type | Description |
|---|---|---|
download | string |
Errors
| Status | Message |
|---|---|
| 404 | File not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/atlas/api/files/42', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Delete a file
DELETE
/api/files/:id- Address
https://<your-org>.brambleit.cloud/atlas/api/files/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Atlas.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
ok | boolean |
Example response
JSON
{
"ok": true
}Errors
| Status | Message |
|---|---|
| 404 | File not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/atlas/api/files/42', {
method: 'DELETE',
credentials: 'include',
});
const data = await res.json();Was this page helpful?
Thanks for your feedback.