GET
/v1/documentsList Documents
List all documents for the authenticated user.
Returns a paginated list of your documents, ordered by most recently updated. This endpoint does not count toward your monthly usage quota.
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 20 | Maximum results per page. Min 1, max 100. |
cursor | string | No | ISO 8601 timestamp cursor from a previous response's next_cursor field. Used for pagination. |
Response
Returns a paginated list of document summaries.
| Field | Type | Description |
|---|---|---|
data | array | Array of document summary objects |
has_more | boolean | Whether more results are available |
next_cursor | string or null | Cursor for the next page. Pass as the cursor query parameter. |
Document summary fields
| Field | Type | Description |
|---|---|---|
id | string | Document UUID |
title | string | Document title |
template_id | string | Template applied to the document |
theme_mode | string | Color theme |
is_published | boolean | Whether the document is currently published |
slug | string or null | URL slug if published |
page_width | string or null | Page width setting: "standard", "wide", or "full" |
word_count | integer | Word count of the document content |
created_at | string | ISO 8601 creation timestamp |
updated_at | string | ISO 8601 last update timestamp |
Errors
| Status | Code | Description |
|---|---|---|
| 401 | unauthorized | Missing or invalid API key |
| 500 | internal_error | Unexpected server error |
TIP
To paginate through all documents, keep requesting with the next_cursor value from the previous response until has_more is false.
# List first 20 documents
curl https://api.unmarkdown.com/v1/documents \
-H "Authorization: Bearer um_your_key_here"
# Paginate with cursor
curl "https://api.unmarkdown.com/v1/documents?limit=10&cursor=2026-02-14T12:00:00.000Z" \
-H "Authorization: Bearer um_your_key_here"
const response = await fetch(
"https://api.unmarkdown.com/v1/documents?limit=10",
{
headers: {
"Authorization": "Bearer um_your_key_here",
},
}
);
const { data, has_more, next_cursor } = await response.json();
// Fetch next page if available
if (has_more) {
const nextPage = await fetch(
`https://api.unmarkdown.com/v1/documents?limit=10&cursor=${next_cursor}`,
{ headers: { "Authorization": "Bearer um_your_key_here" } }
);
}
import requests
response = requests.get(
"https://api.unmarkdown.com/v1/documents",
headers={"Authorization": "Bearer um_your_key_here"},
params={"limit": 10},
)
data = response.json()
documents = data["data"]
# Fetch next page if available
if data["has_more"]:
next_page = requests.get(
"https://api.unmarkdown.com/v1/documents",
headers={"Authorization": "Bearer um_your_key_here"},
params={"limit": 10, "cursor": data["next_cursor"]},
)
Response 200 OK
{
"data": [
{
"id": "d4f7a8b2-1234-5678-9abc-def012345678",
"title": "Weekly Report",
"template_id": "executive",
"theme_mode": "light",
"is_published": true,
"slug": "weekly-report",
"page_width": "standard",
"word_count": 450,
"created_at": "2026-02-14T12:00:00.000Z",
"updated_at": "2026-02-15T09:30:00.000Z"
},
{
"id": "a1b2c3d4-5678-9abc-def0-123456789abc",
"title": "API Documentation",
"template_id": "github",
"theme_mode": "light",
"is_published": false,
"slug": null,
"page_width": null,
"word_count": 1200,
"created_at": "2026-02-13T08:00:00.000Z",
"updated_at": "2026-02-14T16:45:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}