Skip to main content
POST
Create shortcut

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 shortcut slug.

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

"handbook"

destination
string
required

The shortcut's destination URL.

Required string length: 1 - 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

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

The password required to access the destination URL of the shortcut.

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

The date and time when the shortcut expires.

dynamicRouting
DynamicRoutingRule · object[] | null

Ordered routing rules, evaluated top to bottom — the first rule whose conditions all match wins. Conditions within a rule are ANDed; values within a condition are ORed. Visitors matching no rule get the shortcut's default destination. At most 10 rules. Pass [] or null to remove all rules.

Maximum array length: 10
folderId
string

The 8-character ID of an existing folder to assign the shortcut to. Defaults to the workspace's default folder when omitted.

Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:

"a1b2c3d4"

tagIds
string[]

The unique IDs of the tags assigned to the shortcut.

Maximum array length: 50
Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:
aliases
string[]

Optional alternate handles that resolve to this shortcut. Must be unique within the shortcut's namespace.

Maximum array length: 10
Required string length: 1 - 50
Pattern: ^[a-z0-9]([a-z0-9-_]*[a-z0-9])?$
Example:
externalId
string | null
tenantId
string | null
comments
string | null
qrSettings
object | null

Saved QR code design. Pass null to use the default design. Customization requires a paid plan.

additionalFolderIds
string[]

Short IDs of additional folders this shortcut should appear in, excluding its primary folder (folderId).

Maximum array length: 20
Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:

Response

The created shortcut.

A shortcut.

id
string<uuid>
required

The shortcut's unique ID.

slug
string
required

The shortcut slug.

url
string
required

Workspace-scoped shortcut URL. Open it to record a click and redirect to the destination.

Example:

"https://app.uselora.com/acme/short/handbook"

destination
string
required

The shortcut's destination URL.

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
archived
boolean
required

Whether the shortcut is archived. Defaults to false if not provided.

masked
boolean
required
passwordProtected
boolean
required

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

expiresAt
string | null
required

The date and time when the shortcut expires.

dynamicRouting
DynamicRoutingRule · object[] | null
required

Ordered routing rules, evaluated top to bottom — the first rule whose conditions all match wins. Conditions within a rule are ANDed; values within a condition are ORed. Visitors matching no rule get the shortcut's default destination.

Maximum array length: 10
placeholders
PlaceholderDescriptor · object[]
required

Dynamic placeholders parsed from the destination URL, in template order (e.g. {query}). Empty for static destinations.

folderId
string
required

The 8-character ID of the folder this shortcut belongs to.

Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:

"a1b2c3d4"

tagIds
string[]
required

The unique IDs of the tags assigned to the shortcut.

Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:
aliases
string[]
required

Additional handles that resolve to this shortcut in the same namespace as the canonical slug.

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

The shortcut ID in your system. If set, it can identify the shortcut in future API requests. The ext_ prefix is recommended on query parameters for visual disambiguation, but the server accepts prefixed and bare values. This key is unique across your workspace.

tenantId
string | null
required

The ID of the tenant that created the shortcut in your system. If set, it can be used to fetch all shortcuts for a tenant.

comments
string | null
required

Comments about the shortcut.

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.

metadataSync
object
required

Whether title and description are still kept in sync with the destination automatically, or have been overridden by hand. The screenshot's own sync state is previewSettings.source.

previewUrl
string | null
required

Resolved URL of the light screenshot, or null when there is none.

previewDarkUrl
string | null
required

Resolved URL of the dark screenshot, or null when the preview has no dark variant.

additionalFolderIds
string[]
required

Short IDs of ADDITIONAL folders this shortcut appears in, excluding its primary folder (folderId). Empty array when it only lives in its primary folder. Settable at create; curate afterwards via the folder items endpoints. Folders you cannot see are omitted.

Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:
iconSettings
object | null

Structured icon recipe (glyph + background). null when the default monogram-on-neutral design is used.

previewSettings
object | null

Stored destination screenshot for the hover preview. null when none has been resolved yet; source: "none" when the owner declined one. Use the resolved previewUrl / previewDarkUrl to render it — assetId and blobHost describe where it is stored and are not accepted on a write.

qrSettings
object | null

Saved QR code design for this shortcut. null when the default design is used. Customization requires a paid plan.