List documents
GET
/v1/attachmentsLists the company's documents, newest first. Use is_empty=true to find bilag still missing their files, and attachment_number to look one up by its bilag number.
Requires one ofdocuments:readread:ledger
Query parameters
- Only bilag with this number. Numbers restart each accounting year, so this can return one per year.
- is_emptystringOnly bilag with or without filesOne of
truefalse - Maximum number of results (default 100, max 500)
Default
100 - Number of results to skip
Default
0
Errors
400Invalid input or validation failed401Invalid or missing authentication403Missing scope, or the company is archived429Rate limit exceeded500Internal Server Error
Every error has the same shape. See Errors.
curl https://api.numina.app/v1/attachments \
-H "Authorization: Bearer numi_YOUR_API_KEY"const response = await fetch("https://api.numina.app/v1/attachments", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.NUMINA_API_KEY}`,
},
});
const data = await response.json();import os
import requests
response = requests.get(
"https://api.numina.app/v1/attachments",
headers={
"Authorization": f"Bearer {os.environ['NUMINA_API_KEY']}",
},
)
data = response.json()Response
{
"attachments": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"file_name": "string",
"status": "uploaded",
"created_at": "string",
"attachment_number": 185,
"year": "2026",
"is_empty": false,
"file_count": 0,
"booked_accounting_year": "2026",
"content_sha256": "string",
"journal_entry_ids": [
"550e8400-e29b-41d4-a716-446655440000"
]
}
],
"has_more": false,
"next_offset": 0
}