Skip to main content
POST
/
v1
/
shortcuts
Create shortcut
curl --request POST \
  --url https://api.uselora.com/v1/shortcuts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "slug": "<string>",
  "destination": "<string>",
  "title": "<string>",
  "description": "<string>",
  "icon": "<string>",
  "image": "<string>",
  "video": "<string>",
  "visibility": "WORKSPACE",
  "masked": false,
  "password": "<string>",
  "expiresAt": "2023-11-07T05:31:56Z",
  "ios": "<string>",
  "android": "<string>",
  "geo": {},
  "folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "tagIds": [
    "<string>"
  ],
  "externalId": "<string>",
  "tenantId": "<string>",
  "comments": "<string>"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "slug": "<string>",
  "destination": "<string>",
  "title": "<string>",
  "description": "<string>",
  "icon": "<string>",
  "image": "<string>",
  "video": "<string>",
  "archived": true,
  "masked": true,
  "passwordProtected": true,
  "expiresAt": "<string>",
  "ios": "<string>",
  "android": "<string>",
  "geo": {},
  "placeholders": [
    {
      "name": "<string>",
      "default": "<string>"
    }
  ],
  "folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "tagIds": [],
  "externalId": "<string>",
  "tenantId": "<string>",
  "comments": "<string>",
  "workspaceId": "<string>",
  "userId": "<string>",
  "createdAt": "<string>",
  "updatedAt": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://uselora.dev/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Payload to create a new shortcut

slug
string
required

The unique short path (e.g. short/handbook)

Required string length: 1 - 50
Pattern: ^[a-z0-9]([a-z0-9-_]*[a-z0-9])?$
Example:

"handbook"

destination
string
required

The destination URL. Accepts http(s), mailto:, tel:, sms:, and app deep-links (e.g. notion://, slack://). Unsafe schemes (javascript:, data:, file:, …) are rejected.

Maximum string length: 32000
Examples:

"https://google.com"

"mailto:hello@example.com"

"tel:+1234567890"

"notion://workspace/page"

title
string | null

Optional title for the shortcut

description
string | null

Optional description for the shortcut

icon
string | null

Optional icon URL

image
string | null

Optional image URL

video
string | null

Optional video URL

visibility
enum<string>
default:WORKSPACE

Visibility level of the shortcut

Available options:
PRIVATE,
WORKSPACE,
UNLISTED
masked
boolean
default:false

Whether to mask the destination URL

password

Optional shortcut password. Plaintext is accepted only on write; responses expose passwordProtected instead.

Required string length: 1 - 256
expiresAt
string<date-time> | null

Optional expiration timestamp (ISO 8601, e.g. 2026-05-08T12:34:56Z). Must be in the future on create; updates accept past values.

ios

Optional iOS-only destination. iOS visitors fall back to destination when omitted. Same URL scheme rules as destination.

Maximum string length: 32000
android

Optional Android-only destination. Android visitors fall back to destination when omitted. Same URL scheme rules as destination.

Maximum string length: 32000
geo
Geo · object

Geo-targeting map of country code to destination URL. Keys must be supported ISO-3166-1 alpha-2 country codes.

folderId
string<uuid>

Folder ID to place this shortcut in (defaults to workspace default folder)

Example:

"550e8400-e29b-41d4-a716-446655440001"

tagIds
string[]

Tag short IDs to associate with this shortcut. On update, pass the full set you want — existing associations not in this list are removed. Pass [] to clear all tags.

Maximum array length: 50
Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:
["a1b2c3d4"]
externalId
string | null
tenantId
string | null
comments
string | null

Response

The created shortcut.

A shortcut.

id
string<uuid>
required

Unique shortcut ID.

slug
string
required
destination
string
required
title
string | null
required
description
string | null
required
icon
string | null
required
image
string | null
required
video
string | null
required
visibility
enum<string>
required
Available options:
PRIVATE,
WORKSPACE,
UNLISTED,
PUBLIC
archived
boolean
required
masked
boolean
required
passwordProtected
boolean
required

Whether this shortcut requires a password before redirecting. The password hash is never returned.

expiresAt
string | null
required
ios
string | null
required
android
string | null
required
geo
Geo · object
required

Country-specific destination overrides keyed by ISO-3166-1 alpha-2 country code.

placeholders
PlaceholderDescriptor · object[]
required

Dynamic placeholders parsed from the destination URL. Empty for static destinations. See docs/dynamic-placeholders.md.

folderId
string<uuid>
required

ID of the folder this shortcut is filed in. Defaults to the workspace's default folder when omitted on create.

tagIds
string[]
required

IDs of the tags applied to this shortcut. Tags are for categorization; folderId is the shortcut's location.

Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:
["a1b2c3d4"]
externalId
string | null
required
tenantId
string | null
required
comments
string | null
required
workspaceId
string
required

ID of the workspace the shortcut belongs to.

userId
string
required

ID of the user who created the shortcut.

createdAt
string
required

ISO 8601 creation timestamp.

updatedAt
string
required

ISO 8601 timestamp of the last update.