Swush
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"
}

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"
}

On this page