Skip to main content
GET
Retrieve shortcut

Authorizations

Authorization
string
header
required

Workspace API key (lora_sk_…) sent as Authorization: Bearer <api_key>. Each scoped operation names the scope it requires in its security requirement, for example shortcuts.write; a key without it receives 403 with code: insufficient_scope. GET /v1/qr also accepts anonymous requests and requires no scope.

Path Parameters

handle
string
required

The shortcut's slug or id (UUID).

Response

The 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 preview image, or null when there is none. Usually the image described by previewSettings. It can also be set while previewSettings is null: a destination on a service Lora has brand art for falls back to a brand card, which is what a destination behind a login wall gets instead of a screenshot. Gate rendering on this field, not on previewSettings.assetId.

previewDarkUrl
string | null
required

Resolved URL of the dark preview image, or null when the preview has no dark variant. Always null when previewUrl is a brand card.

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, blobHost and format describe where and how the file is stored. format is jpeg for every preview stored today, and webp or png for older ones; blobHost is 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.