Skip to main content
PATCH
Update shortcut

Authorizations

Authorization
string
header
required

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

Path Parameters

handle
string
required

The shortcut's slug or id (UUID).

Body

application/json

Partial shortcut update — all fields optional (PATCH semantics).

slug
string

New unique short path. Omit to keep the existing slug.

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

"handbook"

destination
string

New destination URL. Same scheme rules as create (no javascript:/data:/file:).

Required string length: 1 - 32000
Example:

"https://example.com/new-target"

title
string | null

New title. Pass null to clear.

description
string | null

New description. Pass null to clear.

iconSettings
object | null

Replace the icon recipe. Pass null to reset to the default. Omit to leave it untouched. The payload replaces the whole recipe — partial merges are not supported.

visibility
enum<string>

New visibility level. One of PRIVATE, WORKSPACE, or UNLISTED.

Available options:
PRIVATE,
WORKSPACE,
UNLISTED
masked
boolean
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.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
dynamicRouting
DynamicRoutingRule · object[] | null

Replace the routing rules. Pass [] or null to remove all rules. Omit to leave them untouched.

Maximum array length: 10
folderId
string

Move the shortcut to a different folder, by its 8-character ID. The caller must have access to the target folder.

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

Replace the tag set. Pass the full set you want — existing tags not in this list are removed. Omit to leave tags untouched. Pass [] to clear all tags.

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

Replace the alias set. Pass the full set you want — existing aliases not in this list are removed. Omit to leave aliases untouched. Pass [] to clear all aliases.

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

Comments about the shortcut.

proxy
boolean
qrSettings
object | null

Saved QR code design. Pass null to reset to the default design.

previewSettings
object | null

Replace the stored screenshot. Pass an assetId already uploaded to this workspace, { "source": "none" } to decline a preview, or null to make it eligible for automatic capture again. Omit to leave it untouched. The payload replaces the whole record — partial merges are not supported.

Response

The updated 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.