# Lora Developers > Developer documentation for the Lora API — build on top of your team's shortcuts. ## Docs - [Add an item to a folder](https://uselora.dev/api-reference/folders/add-an-item-to-a-folder.md): Adds an existing item to this folder as an **additional** appearance. The item's primary folder is unchanged — to move it, `PATCH /v1/shortcuts/{handle}` with a new `folderId`. Adding an item to a folder never changes who can see that item: visibility lives on the item, and a folder only filters. Id… - [Create folder](https://uselora.dev/api-reference/folders/create-folder.md): Creates a folder in the workspace. Folder names must be unique within the workspace. - [Delete folder](https://uselora.dev/api-reference/folders/delete-folder.md): Deletes a folder. Re-deleting an already-deleted folder returns `not_found`. The workspace's default folder cannot be deleted, and folders that still contain shortcuts return `folder_not_empty`. - [List folders](https://uselora.dev/api-reference/folders/list-folders.md): Returns folders in the workspace, ordered newest-first, paginated by an opaque cursor. Deleted folders are excluded. - [Remove an item from a folder](https://uselora.dev/api-reference/folders/remove-an-item-from-a-folder.md): Removes an item's **additional** appearance from this folder. The item itself is not deleted and keeps its primary folder. An item whose primary folder is this folder cannot be removed this way — it would be left without a canonical location; move it instead. - [Retrieve folder](https://uselora.dev/api-reference/folders/retrieve-folder.md): Returns a folder by its ID. - [Update folder](https://uselora.dev/api-reference/folders/update-folder.md): All fields are optional. Omitted fields stay as-is. Renaming a folder updates its slug and runs the same uniqueness check as create. The workspace's default folder cannot be edited. - [Retrieve QR code](https://uselora.dev/api-reference/qr-codes/retrieve-qr-code.md): Generates a PNG image of a QR code for the given URL. Accepts both anonymous and Bearer-authenticated callers; anonymous responses encode a `lora-links.com` redirect URL, authenticated responses encode the destination verbatim and may use `hideLogo` on Basic / Business / Enterprise plans. - [Create shortcut](https://uselora.dev/api-reference/shortcuts/create-shortcut.md): Creates a short link in the workspace. - [Delete shortcut](https://uselora.dev/api-reference/shortcuts/delete-shortcut.md): Deletes a shortcut by handle. The handle is either the shortcut's `slug` or its `id` (UUID). The slug becomes immediately reusable for a new shortcut. Idempotent — re-deleting an already-deleted shortcut returns `not_found`. - [List shortcuts](https://uselora.dev/api-reference/shortcuts/list-shortcuts.md): Returns shortcuts visible to the caller, paginated by an opaque cursor. Most-used first by default; use `sort` and `dir` to re-order, and the `tags` / `creator` / `owner` / `expired` / `passwordProtected` / `masked` parameters to filter. Deleted shortcuts are always excluded; archived ones unless `a… - [Retrieve shortcut](https://uselora.dev/api-reference/shortcuts/retrieve-shortcut.md): Returns a shortcut by its handle. The handle is either the shortcut's `slug` or its `id` (UUID). Archived shortcuts are returned. - [Update shortcut](https://uselora.dev/api-reference/shortcuts/update-shortcut.md): All fields are optional. Omitted fields stay as-is. Renaming the slug runs the same reserved-word and uniqueness checks as create. `archived` is not editable here and will get its own endpoint. - [Upsert shortcut](https://uselora.dev/api-reference/shortcuts/upsert-shortcut.md): Creates a shortcut at the given slug, or updates the existing one. Returns `201` when a new shortcut is created and `200` when an existing one is updated. The handle is taken verbatim as the slug — for symmetry with `GET`/`PATCH`/`DELETE` the segment is named `{handle}`, but PUT does not resolve UUI… - [Create tag](https://uselora.dev/api-reference/tags/create-tag.md): Creates a new tag in the specified workspace. - [Delete tag](https://uselora.dev/api-reference/tags/delete-tag.md): Soft-deletes the tag. Idempotent — re-deleting an already-deleted tag returns `not_found`. - [List tags](https://uselora.dev/api-reference/tags/list-tags.md): Returns tags in the workspace, ordered newest-first, paginated by an opaque cursor. Deleted tags are excluded. - [Retrieve tag](https://uselora.dev/api-reference/tags/retrieve-tag.md): Returns a tag by its ID. - [Update tag](https://uselora.dev/api-reference/tags/update-tag.md): All fields are optional. Renaming a tag updates its slug and runs the same uniqueness check as create. - [Getting started](https://uselora.dev/essentials/getting-started.md): Learn how to use Lora's API to manage resources in your Lora workspace programmatically. - [Rate limits](https://uselora.dev/essentials/rate-limits.md): How Lora throttles requests and what to do when you hit the cap. ## OpenAPI Specs - [openapi](https://uselora.dev/openapi.json)