API
API Payloads
Request payloads and required fields.
This page documents the most-used payloads. See /api/v1/openapi for the full schema.
Auth (Device flow)
POST /api/v1/auth/device/authorize
{ "extension_id": "your-extension-id" }POST /api/v1/auth/device/token
{ "device_code": "DEVICE_CODE" }Files
POST /api/v1/upload (multipart/form-data)
Fields:
file(File, required)isPublic("true"|"false")description(optional)folderName(optional)newTags(optional, comma-separated)maxViews(optional, number)maxViewsAction(optional, "make_private" | "delete")
PATCH /api/v1/files/{slug} (JSON)
{
"originalName": "new-name.ext",
"description": "optional",
"isPublic": true,
"newSlug": "optional-slug",
"folderId": "uuid-or-null",
"addTagIds": ["uuid"],
"removeTagIds": ["uuid"],
"password": "optional",
"maxViews": 10,
"maxViewsAction": "make_private"
}Bookmarks
POST /api/v1/bookmarks
{
"url": "https://example.com",
"title": "Optional title",
"description": "Optional",
"imageUrl": "Optional",
"slug": "optional",
"isPublic": false,
"isFavorite": false,
"password": "optional",
"tags": ["reading"],
"maxViews": 10,
"maxViewsAction": "delete"
}Notes
POST /api/v1/notes
{
"title": "Optional title",
"content": "note text",
"sourceUrl": "https://source.com",
"slug": "optional",
"isPublic": false,
"isFavorite": false,
"password": "optional",
"tags": ["ideas"],
"maxViews": 10,
"maxViewsAction": "make_private"
}Snippets
POST /api/v1/snippets
{
"title": "Optional title",
"content": "code or text",
"language": "optional",
"slug": "optional",
"isPublic": false,
"isFavorite": false,
"password": "optional",
"tags": ["dev"],
"maxViews": 10,
"maxViewsAction": "delete"
}Recipes
POST /api/v1/recipes
{
"title": "Recipe title",
"description": "Optional",
"ingredients": "Optional",
"instructions": "Optional",
"slug": "optional",
"isPublic": false,
"isFavorite": false,
"password": "optional",
"tags": ["food"],
"maxViews": 10,
"maxViewsAction": "make_private"
}Short links
POST /api/v1/shorten
{
"originalUrl": "https://example.com",
"slug": "optional",
"description": "optional",
"isPublic": true,
"isFavorite": false,
"password": "optional",
"maxClicks": 25,
"maxViewsAction": "delete",
"tags": ["tools"],
"expiresAt": "2026-01-30T00:00:00.000Z"
}Tags
POST /api/v1/tags
{
"name": "tag-name",
"color": "#AABBCC"
}