Skip to content

List documents

GET
/api/v1/documents
curl --request GET \
--url 'https://your-orimora-instance.example.com/api/v1/documents?status=published&deleted=true&limit=25&offset=0&format=markdown' \
--header 'Authorization: Bearer <token>'

Returns a paginated list of documents. Use updatedSince for incremental sync (e.g. Obsidian plugin).

collectionId

Filter by collection

string format: uuid

Filter by collection

parentDocumentId

Filter to direct children of this document

string format: uuid

Filter to direct children of this document

title

Exact title match, case-insensitive — for targeted existence lookups (used by the Obsidian plugin)

string
<= 255 characters

Exact title match, case-insensitive — for targeted existence lookups (used by the Obsidian plugin)

status

Filter by publish status

string
Allowed values: published draft

Filter by publish status

tag

Filter to documents carrying this tag (by name, case-insensitive)

string
<= 100 characters

Filter to documents carrying this tag (by name, case-insensitive)

deleted

When true, lists the trash (soft-deleted documents) instead of active ones

string
Allowed values: true false

When true, lists the trash (soft-deleted documents) instead of active ones

limit
integer
default: 25 >= 1 <= 100
offset
integer | null
0
updatedSince

ISO 8601 datetime. When set, returns only documents updated after this timestamp. Raises the default limit to 500.

string format: date-time

ISO 8601 datetime. When set, returns only documents updated after this timestamp. Raises the default limit to 500.

format

When markdown and updatedSince is set, includes a markdownText field per document

string
Allowed values: markdown

When markdown and updatedSince is set, includes a markdownText field per document

Paginated list of documents

Media type application/json
Any of:
object
total
required

Total number of matching records

integer
limit
required

Page size

integer
offset
required

Page offset

integer
data
required
Array<object>
object
id
required
string format: uuid
title
required

Document title

string
emoji
required

Optional emoji prefix for the document icon

string | null
text
required

Plain-text content (read-only, derived from body)

string | null
collectionId
required
string | null format: uuid
parentDocumentId
required
string | null format: uuid
teamId
required
string format: uuid
createdById
required
string | null format: uuid
lastModifiedById
required
string | null format: uuid
publishedAt
required

Null = draft

string | null format: date-time
archivedAt
required
string | null format: date-time
deletedAt
required
string | null format: date-time
revision
required
integer
tags
required

The document’s unrestricted tag names (restricted/ACL tags are excluded)

Array<string>
sortOrder
required
number
fullWidth
required
boolean
collaborativeId
required
string | null
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example generated
{
"total": 1,
"limit": 1,
"offset": 1,
"data": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"title": "example",
"emoji": "example",
"text": "example",
"collectionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"parentDocumentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"teamId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"createdById": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"lastModifiedById": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"publishedAt": "2026-04-15T12:00:00Z",
"archivedAt": "2026-04-15T12:00:00Z",
"deletedAt": "2026-04-15T12:00:00Z",
"revision": 1,
"tags": [
"example"
],
"sortOrder": 1,
"fullWidth": true,
"collaborativeId": "example",
"createdAt": "2026-04-15T12:00:00Z",
"updatedAt": "2026-04-15T12:00:00Z"
}
]
}

Unauthorized

Media type application/json
object
error
required

Human-readable error message

string
Example generated
{
"error": "example"
}