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.
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.
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.
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.
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.
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.
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.
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.
Saved QR code design for this shortcut. null when the default design is used. Customization requires a paid plan.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Lora Developers","description":"Developer documentation for the Lora API — build on top of your team's shortcuts.","colors":{"primary":"#000000","light":"#FDFCFC","dark":"#0A0D0D"},"logo":{"light":"https://mintcdn.com/lora-5b5199e2/ryYQakwxVJhAxQjJ/logo/logo_light.svg?fit=max\u0026auto=format\u0026n=ryYQakwxVJhAxQjJ\u0026q=85\u0026s=a15e432f45994371977fd6392f2d6c77","dark":"https://mintcdn.com/lora-5b5199e2/ryYQakwxVJhAxQjJ/logo/logo_dark.svg?fit=max\u0026auto=format\u0026n=ryYQakwxVJhAxQjJ\u0026q=85\u0026s=fee365ef76905e13dfeb30ffcce0ec3b","href":"https://uselora.dev"},"favicon":"https://mintcdn.com/lora-5b5199e2/ryYQakwxVJhAxQjJ/favicon.svg?fit=max\u0026auto=format\u0026n=ryYQakwxVJhAxQjJ\u0026q=85\u0026s=fcbbf88d22a959468c499026c22b32d4","navbar":{"links":[{"href":"mailto:feedback@uselora.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.uselora.com"}},"footer":{"socials":{"website":"https://www.uselora.com"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lora-5b5199e2","hasAudioNarration":false,"actualSubdomain":"lora-5b5199e2","customDomains":["uselora.dev"],"gitSource":{"type":"github","owner":"jan10","repo":"lora","deployBranch":"main","contentDirectory":"apps/developers","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb0d4979b24b77d1b955ff","collectionId":"11f6dbdf-fa2f-4f53-a3ff-f14ebba2e771","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb0d4979b24b77d1b955ff"},"feedback":{"agentFeedback":true,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adb0d4979b24b77d1b955ff","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"API Reference","count":22},{"language":"default","tag":"Folders","count":7},{"language":"default","tag":"Shortcuts","count":6},{"language":"default","tag":"Tags","count":5},{"language":"default","tag":"Lora API","count":3},{"language":"default","tag":"QR Codes","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/shortcuts/create-shortcut","slug":"/api-reference/shortcuts/create-shortcut","pageMetadata":{"title":"Create shortcut","description":"Creates a shortcut in the workspace.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shortcuts","href":"/api-reference/shortcuts/create-shortcut","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a shortcut in the workspace.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create shortcut","description":"Creates a shortcut in the workspace.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shortcuts","href":"/api-reference/shortcuts/create-shortcut","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createShortcut","tags":["Shortcuts"],"summary":"Create shortcut","description":"Creates a shortcut in the workspace.","requestBody":"4986b3e3-3793-4781-8e60-0d750461894a","responses":{"201":"abbb2ea9-2e1f-4ce6-8288-2f629ca25c53","400":"bfa1316b-da7f-4130-94e0-74f132083807","401":"f8f561e3-4220-47ae-8822-5b51cfec6f58","402":"21e1cf54-0f78-4b7e-a6da-04b228ac1d08","403":"7ccfc370-4a4d-45ed-be7a-724fac3db5b5","404":"1e73adf9-f13b-479b-bc5c-aba023d013a2","409":"d0d81076-5bc6-4683-a371-a7e1b8833c40","413":"0805cb93-6577-4de3-9292-bdaac3729a49","429":"7174931d-8e14-4023-a6be-1aefc3fcb2d7","500":"844f6c26-81b0-4a46-986e-3728ae53fd16"},"security":["5268dbe4-00f1-417c-ae45-546b1421ee6b"],"method":"post","type":"path","servers":["e04fe8d2-b9b4-4716-96fe-7218328cbf2a"],"path":"/v1/shortcuts","baseUrlOptions":["https://api.uselora.com"],"title":"Create shortcut","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":50,"pattern":"^[a-z0-9]([a-z0-9-_]*[a-z0-9])?$","description":"The shortcut slug.","examples":["handbook"],"isRequired":true,"uniqueKey":"slug","typeLabel":"string"},"destination":{"type":"string","minLength":1,"maxLength":32000,"description":"The shortcut's destination URL.","examples":["https://google.com","mailto:hello@example.com","tel:+1234567890","notion://workspace/page"],"isRequired":true,"uniqueKey":"destination","typeLabel":"string"},"title":{"oneOf":[{"description":"Optional title for the shortcut","type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"description":"Optional title for the shortcut","type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"description":{"oneOf":[{"description":"Optional description for the shortcut","type":"string","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"description":"Optional description for the shortcut","type":"null","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"image":{"oneOf":[{"description":"Optional image URL","type":"string","uniqueKey":"image.oneOf.0","typeLabel":"string"},{"description":"Optional image URL","type":"null","uniqueKey":"image.oneOf.1","typeLabel":"null"}],"uniqueKey":"image","typeLabel":"string | null"},"video":{"oneOf":[{"description":"Optional video URL","type":"string","uniqueKey":"video.oneOf.0","typeLabel":"string"},{"description":"Optional video URL","type":"null","uniqueKey":"video.oneOf.1","typeLabel":"null"}],"uniqueKey":"video","typeLabel":"string | null"},"visibility":{"default":"WORKSPACE","description":"Visibility level of the shortcut","type":"string","enum":["PRIVATE","WORKSPACE","UNLISTED"],"uniqueKey":"visibility","typeLabel":"enum\u003cstring>"},"masked":{"description":"Whether to mask the destination URL","default":false,"type":"boolean","uniqueKey":"masked","typeLabel":"boolean"},"password":{"oneOf":[{"type":"string","description":"The password required to access the destination URL of the shortcut.","format":"password","maxLength":256,"minLength":1,"uniqueKey":"password.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"string","description":"The password required to access the destination URL of the shortcut.","format":"password","const":"","uniqueKey":"password.oneOf.1","typeLabel":"string\u003cpassword>"}],"uniqueKey":"password","typeLabel":"string\u003cpassword>"},"expiresAt":{"oneOf":[{"description":"The date and time when the shortcut expires.","format":"date-time","type":"string","uniqueKey":"expiresAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"description":"The date and time when the shortcut expires.","format":"date-time","type":"null","uniqueKey":"expiresAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"expiresAt","typeLabel":"string\u003cdate-time> | null"},"dynamicRouting":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"conditions":{"minItems":1,"maxItems":2,"type":"array","items":{"oneOf":[{"type":"object","title":"DynamicRoutingCondition","description":"One test against a visitor attribute. Values inside a condition are ORed.","required":["attribute","operator","values"],"properties":{"attribute":{"type":"string","const":"country","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.attribute","typeLabel":"string"},"operator":{"type":"string","enum":["is","is_not"],"description":"`is` matches when the visitor attribute is one of `values`; `is_not` matches when it is not. A visitor attribute we cannot determine (no geo signal, or a non-phone / unclassifiable user agent) never satisfies `is` and always satisfies `is_not`.","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.operator","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"maxItems":250,"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$","uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.values.items.[INDEX]","typeLabel":"string"},"description":"ISO-3166-1 alpha-2 country codes. Matched case-insensitively and stored uppercase.","examples":[["DE","AT","CH"]],"isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0","typeLabel":"DynamicRoutingCondition · object"},{"type":"object","title":"DynamicRoutingCondition","description":"One test against a visitor attribute. Values inside a condition are ORed.","required":["attribute","operator","values"],"properties":{"attribute":{"type":"string","const":"platform","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.attribute","typeLabel":"string"},"operator":{"type":"string","enum":["is","is_not"],"description":"`is` matches when the visitor attribute is one of `values`; `is_not` matches when it is not. A visitor attribute we cannot determine (no geo signal, or a non-phone / unclassifiable user agent) never satisfies `is` and always satisfies `is_not`.","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["ios","android"],"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.values.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Phone platforms. Tablets, desktops and unclassifiable clients are not any of these — they fall through to `destination` unless an `is_not` condition catches them.","examples":[["ios"]],"isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.values","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":false,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1","typeLabel":"DynamicRoutingCondition · object"}],"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX]","typeLabel":"DynamicRoutingCondition · object"},"description":"Conditions to satisfy, ANDed together. At most 2 — one per attribute.","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions","typeLabel":"DynamicRoutingCondition · object[]"},"destination":{"type":"string","minLength":1,"maxLength":32000,"description":"Where to send visitors matching this rule. Same scheme rules as the shortcut's default `destination`, and dynamic placeholders work here too.","examples":["https://apps.apple.com/de/app/id123456789"],"isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].destination","typeLabel":"string"}},"required":["conditions","destination"],"additionalProperties":false,"title":"DynamicRoutingRule","description":"A set of ANDed conditions and the destination they select.","uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX]","typeLabel":"DynamicRoutingRule · object"},"title":"DynamicRouting","description":"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.","maxItems":10,"uniqueKey":"dynamicRouting.oneOf.0","typeLabel":"DynamicRoutingRule · object[]"},{"type":"null","uniqueKey":"dynamicRouting.oneOf.1","typeLabel":"null"}],"uniqueKey":"dynamicRouting","typeLabel":"DynamicRoutingRule · object[] | null"},"folderId":{"description":"The 8-character ID of an existing folder to assign the shortcut to. Defaults to the workspace's default folder when omitted.","examples":["a1b2c3d4"],"type":"string","pattern":"^[0-9abcdefghjkmnpqrstvwxyz]{8}$","uniqueKey":"folderId","typeLabel":"string"},"tagIds":{"description":"The unique IDs of the tags assigned to the shortcut.","examples":[["a1b2c3d4"]],"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[0-9abcdefghjkmnpqrstvwxyz]{8}$","uniqueKey":"tagIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"tagIds","typeLabel":"string[]"},"aliases":{"description":"Optional alternate handles that resolve to this shortcut. Must be unique within the shortcut's namespace.","examples":[["urlaub"]],"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":50,"pattern":"^[a-z0-9]([a-z0-9-_]*[a-z0-9])?$","uniqueKey":"aliases.items.[INDEX]","typeLabel":"string"},"uniqueKey":"aliases","typeLabel":"string[]"},"externalId":{"oneOf":[{"type":"string","uniqueKey":"externalId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"externalId.oneOf.1","typeLabel":"null"}],"uniqueKey":"externalId","typeLabel":"string | null"},"tenantId":{"oneOf":[{"type":"string","uniqueKey":"tenantId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"tenantId.oneOf.1","typeLabel":"null"}],"uniqueKey":"tenantId","typeLabel":"string | null"},"comments":{"oneOf":[{"type":"string","uniqueKey":"comments.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"comments.oneOf.1","typeLabel":"null"}],"uniqueKey":"comments","typeLabel":"string | null"},"qrSettings":{"oneOf":[{"description":"Saved QR code design. Pass `null` to use the default design. Customization requires a paid plan.","type":"object","properties":{"dotColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","uniqueKey":"qrSettings.oneOf.0.dotColor","typeLabel":"string"},"dotStyle":{"type":"string","enum":["square","dots","rounded"],"uniqueKey":"qrSettings.oneOf.0.dotStyle","typeLabel":"enum\u003cstring>"},"frame":{"type":"string","enum":["none","solid-logo","solid-scan","solid-slug","window-logo","window-scan","window-slug","card-logo","card-scan","card-slug"],"uniqueKey":"qrSettings.oneOf.0.frame","typeLabel":"enum\u003cstring>"},"hideLogo":{"type":"boolean","uniqueKey":"qrSettings.oneOf.0.hideLogo","typeLabel":"boolean"},"markerBorder":{"type":"string","enum":["square","rounded","circle"],"uniqueKey":"qrSettings.oneOf.0.markerBorder","typeLabel":"enum\u003cstring>"},"markerCenter":{"type":"string","enum":["square","dot"],"uniqueKey":"qrSettings.oneOf.0.markerCenter","typeLabel":"enum\u003cstring>"},"markerColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","uniqueKey":"qrSettings.oneOf.0.markerColor","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"qrSettings.oneOf.0","typeLabel":"object"},{"description":"Saved QR code design. Pass `null` to use the default design. Customization requires a paid plan.","type":"null","properties":{"dotColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"dotStyle":{"type":"string","enum":["square","dots","rounded"]},"frame":{"type":"string","enum":["none","solid-logo","solid-scan","solid-slug","window-logo","window-scan","window-slug","card-logo","card-scan","card-slug"]},"hideLogo":{"type":"boolean"},"markerBorder":{"type":"string","enum":["square","rounded","circle"]},"markerCenter":{"type":"string","enum":["square","dot"]},"markerColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"}},"additionalProperties":false,"uniqueKey":"qrSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"qrSettings","typeLabel":"object | null"},"additionalFolderIds":{"description":"Short IDs of additional folders this shortcut should appear in, excluding its primary folder (`folderId`).","examples":[["a1b2c3d4"]],"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[0-9abcdefghjkmnpqrstvwxyz]{8}$","uniqueKey":"additionalFolderIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"additionalFolderIds","typeLabel":"string[]"}},"required":["destination","slug"],"additionalProperties":false,"title":"CreateShortcutRequest","description":"Payload to create a new shortcut","uniqueKey":"","typeLabel":"CreateShortcutRequest · object"},"examples":{"Example":{"title":"Example","value":{"slug":"handbook","destination":"https://google.com","title":"\u003cstring>","description":"\u003cstring>","image":"\u003cstring>","video":"\u003cstring>","visibility":"WORKSPACE","masked":false,"password":"\u003cstring>","expiresAt":"2023-11-07T05:31:56Z","dynamicRouting":[{"conditions":[{"attribute":"country","values":["DE","AT","CH"]}],"destination":"https://apps.apple.com/de/app/id123456789"}],"folderId":"a1b2c3d4","tagIds":["a1b2c3d4"],"aliases":["urlaub"],"externalId":"\u003cstring>","tenantId":"\u003cstring>","comments":"\u003cstring>","qrSettings":{"dotColor":"\u003cstring>","hideLogo":true,"markerColor":"\u003cstring>"},"additionalFolderIds":["a1b2c3d4"]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"abbb2ea9-2e1f-4ce6-8288-2f629ca25c53":{"description":"The created shortcut.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The shortcut's unique ID.","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"slug":{"type":"string","description":"The shortcut slug.","isRequired":true,"uniqueKey":"slug","typeLabel":"string"},"url":{"type":"string","description":"Workspace-scoped shortcut URL. Open it to record a click and redirect to the destination.","examples":["https://app.uselora.com/acme/short/handbook"],"isRequired":true,"uniqueKey":"url","typeLabel":"string"},"destination":{"type":"string","description":"The shortcut's destination URL.","isRequired":true,"uniqueKey":"destination","typeLabel":"string"},"title":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"title","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"description","typeLabel":"string | null"},"icon":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"icon.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"icon.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"icon","typeLabel":"string | null"},"image":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"image.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"image.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"image","typeLabel":"string | null"},"video":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"video.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"video.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"video","typeLabel":"string | null"},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE","UNLISTED"],"isRequired":true,"uniqueKey":"visibility","typeLabel":"enum\u003cstring>"},"archived":{"type":"boolean","description":"Whether the shortcut is archived. Defaults to false if not provided.","isRequired":true,"uniqueKey":"archived","typeLabel":"boolean"},"masked":{"type":"boolean","isRequired":true,"uniqueKey":"masked","typeLabel":"boolean"},"passwordProtected":{"type":"boolean","description":"Whether this shortcut requires a password before redirecting. The password hash is never returned.","isRequired":true,"uniqueKey":"passwordProtected","typeLabel":"boolean"},"expiresAt":{"oneOf":[{"type":"string","description":"The date and time when the shortcut expires.","isRequired":true,"uniqueKey":"expiresAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"The date and time when the shortcut expires.","isRequired":true,"uniqueKey":"expiresAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expiresAt","typeLabel":"string | null"},"dynamicRouting":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"conditions":{"minItems":1,"maxItems":2,"type":"array","items":{"oneOf":[{"type":"object","title":"DynamicRoutingCondition","description":"One test against a visitor attribute. Values inside a condition are ORed.","required":["attribute","operator","values"],"properties":{"attribute":{"type":"string","const":"country","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.attribute","typeLabel":"string"},"operator":{"type":"string","enum":["is","is_not"],"description":"`is` matches when the visitor attribute is one of `values`; `is_not` matches when it is not. A visitor attribute we cannot determine (no geo signal, or a non-phone / unclassifiable user agent) never satisfies `is` and always satisfies `is_not`.","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.operator","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"maxItems":250,"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$","uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.values.items.[INDEX]","typeLabel":"string"},"description":"ISO-3166-1 alpha-2 country codes. Matched case-insensitively and stored uppercase.","examples":[["DE","AT","CH"]],"isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.0","typeLabel":"DynamicRoutingCondition · object"},{"type":"object","title":"DynamicRoutingCondition","description":"One test against a visitor attribute. Values inside a condition are ORed.","required":["attribute","operator","values"],"properties":{"attribute":{"type":"string","const":"platform","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.attribute","typeLabel":"string"},"operator":{"type":"string","enum":["is","is_not"],"description":"`is` matches when the visitor attribute is one of `values`; `is_not` matches when it is not. A visitor attribute we cannot determine (no geo signal, or a non-phone / unclassifiable user agent) never satisfies `is` and always satisfies `is_not`.","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.operator","typeLabel":"enum\u003cstring>"},"values":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["ios","android"],"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.values.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Phone platforms. Tablets, desktops and unclassifiable clients are not any of these — they fall through to `destination` unless an `is_not` condition catches them.","examples":[["ios"]],"isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1.values","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":false,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX].oneOf.1","typeLabel":"DynamicRoutingCondition · object"}],"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions.items.[INDEX]","typeLabel":"DynamicRoutingCondition · object"},"description":"Conditions to satisfy, ANDed together. At most 2 — one per attribute.","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].conditions","typeLabel":"DynamicRoutingCondition · object[]"},"destination":{"type":"string","minLength":1,"maxLength":32000,"description":"Where to send visitors matching this rule. Same scheme rules as the shortcut's default `destination`, and dynamic placeholders work here too.","examples":["https://apps.apple.com/de/app/id123456789"],"isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX].destination","typeLabel":"string"}},"required":["conditions","destination"],"additionalProperties":false,"title":"DynamicRoutingRule","description":"A set of ANDed conditions and the destination they select.","uniqueKey":"dynamicRouting.oneOf.0.items.[INDEX]","typeLabel":"DynamicRoutingRule · object"},"title":"DynamicRouting","description":"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`.","maxItems":10,"isRequired":true,"uniqueKey":"dynamicRouting.oneOf.0","typeLabel":"DynamicRoutingRule · object[]"},{"type":"null","description":"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`.","isRequired":true,"uniqueKey":"dynamicRouting.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"dynamicRouting","typeLabel":"DynamicRoutingRule · object[] | null"},"placeholders":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Placeholder name (between curly braces).","isRequired":true,"uniqueKey":"placeholders.items.[INDEX].name","typeLabel":"string"},"default":{"oneOf":[{"description":"Default value substituted when no value is captured at click time.","type":"string","isRequired":true,"uniqueKey":"placeholders.items.[INDEX].default.oneOf.0","typeLabel":"string"},{"description":"Default value substituted when no value is captured at click time.","type":"null","isRequired":true,"uniqueKey":"placeholders.items.[INDEX].default.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"placeholders.items.[INDEX].default","typeLabel":"string | null"}},"required":["name","default"],"additionalProperties":false,"title":"PlaceholderDescriptor","description":"A dynamic placeholder declared in a shortcut's destination URL.","uniqueKey":"placeholders.items.[INDEX]","typeLabel":"PlaceholderDescriptor · object"},"description":"Dynamic placeholders parsed from the destination URL, in template order (e.g. `{query}`). Empty for static destinations.","isRequired":true,"uniqueKey":"placeholders","typeLabel":"PlaceholderDescriptor · object[]"},"folderId":{"type":"string","pattern":"^[0-9abcdefghjkmnpqrstvwxyz]{8}$","description":"The 8-character ID of the folder this shortcut belongs to.","examples":["a1b2c3d4"],"isRequired":true,"uniqueKey":"folderId","typeLabel":"string"},"tagIds":{"default":[],"description":"The unique IDs of the tags assigned to the shortcut.","examples":[["a1b2c3d4"]],"type":"array","items":{"type":"string","pattern":"^[0-9abcdefghjkmnpqrstvwxyz]{8}$","uniqueKey":"tagIds.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"tagIds","typeLabel":"string[]"},"aliases":{"default":[],"description":"Additional handles that resolve to this shortcut in the same namespace as the canonical slug.","examples":[["urlaub","ferien"]],"type":"array","items":{"type":"string","minLength":1,"maxLength":50,"pattern":"^[a-z0-9]([a-z0-9-_]*[a-z0-9])?$","uniqueKey":"aliases.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"aliases","typeLabel":"string[]"},"externalId":{"oneOf":[{"type":"string","description":"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.","isRequired":true,"uniqueKey":"externalId.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.","isRequired":true,"uniqueKey":"externalId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"externalId","typeLabel":"string | null"},"tenantId":{"oneOf":[{"type":"string","description":"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.","isRequired":true,"uniqueKey":"tenantId.oneOf.0","typeLabel":"string"},{"type":"null","description":"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.","isRequired":true,"uniqueKey":"tenantId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"tenantId","typeLabel":"string | null"},"comments":{"oneOf":[{"type":"string","description":"Comments about the shortcut.","isRequired":true,"uniqueKey":"comments.oneOf.0","typeLabel":"string"},{"type":"null","description":"Comments about the shortcut.","isRequired":true,"uniqueKey":"comments.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"comments","typeLabel":"string | null"},"workspaceId":{"type":"string","description":"ID of the workspace the shortcut belongs to.","isRequired":true,"uniqueKey":"workspaceId","typeLabel":"string"},"userId":{"type":"string","description":"ID of the user who created the shortcut.","isRequired":true,"uniqueKey":"userId","typeLabel":"string"},"createdAt":{"type":"string","description":"ISO 8601 creation timestamp.","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string"},"updatedAt":{"type":"string","description":"ISO 8601 timestamp of the last update.","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string"},"metadataSync":{"type":"object","properties":{"description":{"type":"string","enum":["auto","manual"],"isRequired":true,"uniqueKey":"metadataSync.description","typeLabel":"enum\u003cstring>"},"title":{"type":"string","enum":["auto","manual"],"isRequired":true,"uniqueKey":"metadataSync.title","typeLabel":"enum\u003cstring>"}},"required":["description","title"],"additionalProperties":false,"description":"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`.","isRequired":true,"uniqueKey":"metadataSync","typeLabel":"object"},"previewUrl":{"oneOf":[{"description":"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`.","type":"string","isRequired":true,"uniqueKey":"previewUrl.oneOf.0","typeLabel":"string"},{"description":"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`.","type":"null","isRequired":true,"uniqueKey":"previewUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewUrl","typeLabel":"string | null"},"previewDarkUrl":{"oneOf":[{"description":"Resolved URL of the dark preview image, or `null` when the preview has no dark variant. Always `null` when `previewUrl` is a brand card.","type":"string","isRequired":true,"uniqueKey":"previewDarkUrl.oneOf.0","typeLabel":"string"},{"description":"Resolved URL of the dark preview image, or `null` when the preview has no dark variant. Always `null` when `previewUrl` is a brand card.","type":"null","isRequired":true,"uniqueKey":"previewDarkUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewDarkUrl","typeLabel":"string | null"},"additionalFolderIds":{"default":[],"description":"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.","examples":[["a1b2c3d4"]],"type":"array","items":{"type":"string","pattern":"^[0-9abcdefghjkmnpqrstvwxyz]{8}$","uniqueKey":"additionalFolderIds.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"additionalFolderIds","typeLabel":"string[]"},"iconSettings":{"oneOf":[{"description":"Structured icon recipe (glyph + background). `null` when the default monogram-on-neutral design is used.","type":"object","properties":{"background":{"type":"object","properties":{"color":{"oneOf":[{"type":"string","pattern":"^#[0-9A-F]{6}$","isRequired":true,"uniqueKey":"iconSettings.oneOf.0.background.color.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^#[0-9A-F]{6}$","isRequired":true,"uniqueKey":"iconSettings.oneOf.0.background.color.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"iconSettings.oneOf.0.background.color","typeLabel":"string | null"},"type":{"type":"string","enum":["color","neutral"],"isRequired":true,"uniqueKey":"iconSettings.oneOf.0.background.type","typeLabel":"enum\u003cstring>"}},"required":["color","type"],"additionalProperties":false,"isRequired":true,"uniqueKey":"iconSettings.oneOf.0.background","typeLabel":"object"},"glyph":{"type":"object","properties":{"ref":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"iconSettings.oneOf.0.glyph.ref.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"iconSettings.oneOf.0.glyph.ref.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"iconSettings.oneOf.0.glyph.ref","typeLabel":"string | null"},"source":{"type":"string","enum":["favicon","monogram","upload"],"isRequired":true,"uniqueKey":"iconSettings.oneOf.0.glyph.source","typeLabel":"enum\u003cstring>"},"variant":{"type":"string","enum":["color","mono"],"isRequired":true,"uniqueKey":"iconSettings.oneOf.0.glyph.variant","typeLabel":"enum\u003cstring>"}},"required":["ref","source","variant"],"additionalProperties":false,"isRequired":true,"uniqueKey":"iconSettings.oneOf.0.glyph","typeLabel":"object"}},"required":["background","glyph"],"additionalProperties":false,"uniqueKey":"iconSettings.oneOf.0","typeLabel":"object"},{"description":"Structured icon recipe (glyph + background). `null` when the default monogram-on-neutral design is used.","type":"null","properties":{"background":{"type":"object","properties":{"color":{"oneOf":[{"type":"string","pattern":"^#[0-9A-F]{6}$"},{"type":"null","pattern":"^#[0-9A-F]{6}$"}]},"type":{"type":"string","enum":["color","neutral"]}},"required":["color","type"],"additionalProperties":false},"glyph":{"type":"object","properties":{"ref":{"oneOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"string","enum":["favicon","monogram","upload"]},"variant":{"type":"string","enum":["color","mono"]}},"required":["ref","source","variant"],"additionalProperties":false}},"required":["background","glyph"],"additionalProperties":false,"uniqueKey":"iconSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"iconSettings","typeLabel":"object | null"},"previewSettings":{"oneOf":[{"description":"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.","type":"object","properties":{"assetId":{"oneOf":[{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"previewSettings.oneOf.0.assetId.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"previewSettings.oneOf.0.assetId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.assetId","typeLabel":"string | null"},"blobHost":{"oneOf":[{"type":"string","maxLength":253,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?::\\d{1,5})?$","isRequired":true,"uniqueKey":"previewSettings.oneOf.0.blobHost.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":253,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?::\\d{1,5})?$","isRequired":true,"uniqueKey":"previewSettings.oneOf.0.blobHost.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.blobHost","typeLabel":"string | null"},"capturedAt":{"oneOf":[{"type":"string","format":"date-time","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))$","isRequired":true,"uniqueKey":"previewSettings.oneOf.0.capturedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","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))$","isRequired":true,"uniqueKey":"previewSettings.oneOf.0.capturedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.capturedAt","typeLabel":"string\u003cdate-time> | null"},"capturedFor":{"oneOf":[{"type":"string","maxLength":32000,"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.capturedFor.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":32000,"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.capturedFor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.capturedFor","typeLabel":"string | null"},"format":{"oneOf":[{"type":"string","enum":["jpeg","webp","png",null],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["jpeg","webp","png",null],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.format.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.format","typeLabel":"enum\u003cstring> | null"},"hasDark":{"type":"boolean","isRequired":true,"uniqueKey":"previewSettings.oneOf.0.hasDark","typeLabel":"boolean"},"height":{"oneOf":[{"type":"integer","exclusiveMinimum":0,"maximum":2560,"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.height.oneOf.0","typeLabel":"integer"},{"type":"null","exclusiveMinimum":0,"maximum":2560,"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.height","typeLabel":"integer | null"},"source":{"type":"string","enum":["screenshot","opengraph","upload","none"],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.source","typeLabel":"enum\u003cstring>"},"width":{"oneOf":[{"type":"integer","exclusiveMinimum":0,"maximum":2560,"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.width.oneOf.0","typeLabel":"integer"},{"type":"null","exclusiveMinimum":0,"maximum":2560,"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"previewSettings.oneOf.0.width","typeLabel":"integer | null"}},"required":["assetId","blobHost","capturedAt","capturedFor","format","hasDark","height","source","width"],"additionalProperties":false,"uniqueKey":"previewSettings.oneOf.0","typeLabel":"object"},{"description":"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.","type":"null","properties":{"assetId":{"oneOf":[{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},{"type":"null","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}]},"blobHost":{"oneOf":[{"type":"string","maxLength":253,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?::\\d{1,5})?$"},{"type":"null","maxLength":253,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+(?::\\d{1,5})?$"}]},"capturedAt":{"oneOf":[{"type":"string","format":"date-time","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))$"},{"type":"null","format":"date-time","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))$"}]},"capturedFor":{"oneOf":[{"type":"string","maxLength":32000},{"type":"null","maxLength":32000}]},"format":{"oneOf":[{"type":"string","enum":["jpeg","webp","png",null]},{"type":"null","enum":["jpeg","webp","png",null]}]},"hasDark":{"type":"boolean"},"height":{"oneOf":[{"type":"integer","exclusiveMinimum":0,"maximum":2560},{"type":"null","exclusiveMinimum":0,"maximum":2560}]},"source":{"type":"string","enum":["screenshot","opengraph","upload","none"]},"width":{"oneOf":[{"type":"integer","exclusiveMinimum":0,"maximum":2560},{"type":"null","exclusiveMinimum":0,"maximum":2560}]}},"required":["assetId","blobHost","capturedAt","capturedFor","format","hasDark","height","source","width"],"additionalProperties":false,"uniqueKey":"previewSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"previewSettings","typeLabel":"object | null"},"qrSettings":{"oneOf":[{"description":"Saved QR code design for this shortcut. `null` when the default design is used. Customization requires a paid plan.","type":"object","properties":{"dotColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","uniqueKey":"qrSettings.oneOf.0.dotColor","typeLabel":"string"},"dotStyle":{"type":"string","enum":["square","dots","rounded"],"uniqueKey":"qrSettings.oneOf.0.dotStyle","typeLabel":"enum\u003cstring>"},"frame":{"type":"string","enum":["none","solid-logo","solid-scan","solid-slug","window-logo","window-scan","window-slug","card-logo","card-scan","card-slug"],"uniqueKey":"qrSettings.oneOf.0.frame","typeLabel":"enum\u003cstring>"},"hideLogo":{"type":"boolean","uniqueKey":"qrSettings.oneOf.0.hideLogo","typeLabel":"boolean"},"markerBorder":{"type":"string","enum":["square","rounded","circle"],"uniqueKey":"qrSettings.oneOf.0.markerBorder","typeLabel":"enum\u003cstring>"},"markerCenter":{"type":"string","enum":["square","dot"],"uniqueKey":"qrSettings.oneOf.0.markerCenter","typeLabel":"enum\u003cstring>"},"markerColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","uniqueKey":"qrSettings.oneOf.0.markerColor","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"qrSettings.oneOf.0","typeLabel":"object"},{"description":"Saved QR code design for this shortcut. `null` when the default design is used. Customization requires a paid plan.","type":"null","properties":{"dotColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"dotStyle":{"type":"string","enum":["square","dots","rounded"]},"frame":{"type":"string","enum":["none","solid-logo","solid-scan","solid-slug","window-logo","window-scan","window-slug","card-logo","card-scan","card-slug"]},"hideLogo":{"type":"boolean"},"markerBorder":{"type":"string","enum":["square","rounded","circle"]},"markerCenter":{"type":"string","enum":["square","dot"]},"markerColor":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"}},"additionalProperties":false,"uniqueKey":"qrSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"qrSettings","typeLabel":"object | null"}},"required":["archived","comments","createdAt","description","destination","dynamicRouting","expiresAt","externalId","folderId","icon","id","image","masked","metadataSync","slug","tenantId","title","updatedAt","userId","video","visibility","workspaceId","passwordProtected","previewUrl","previewDarkUrl","url","placeholders","tagIds","additionalFolderIds","aliases"],"additionalProperties":false,"title":"Shortcut","description":"A shortcut.","uniqueKey":"","typeLabel":"Shortcut · object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","slug":"\u003cstring>","url":"https://app.uselora.com/acme/short/handbook","destination":"\u003cstring>","title":"\u003cstring>","description":"\u003cstring>","icon":"\u003cstring>","image":"\u003cstring>","video":"\u003cstring>","visibility":"PRIVATE","archived":true,"masked":true,"passwordProtected":true,"expiresAt":"\u003cstring>","dynamicRouting":[{"conditions":[{"attribute":"country","operator":"is","values":["DE","AT","CH"]}],"destination":"https://apps.apple.com/de/app/id123456789"}],"placeholders":[{"name":"\u003cstring>","default":"\u003cstring>"}],"folderId":"a1b2c3d4","tagIds":["a1b2c3d4"],"aliases":["urlaub","ferien"],"externalId":"\u003cstring>","tenantId":"\u003cstring>","comments":"\u003cstring>","workspaceId":"\u003cstring>","userId":"\u003cstring>","createdAt":"\u003cstring>","updatedAt":"\u003cstring>","metadataSync":{"description":"auto","title":"auto"},"previewUrl":"\u003cstring>","previewDarkUrl":"\u003cstring>","additionalFolderIds":["a1b2c3d4"],"iconSettings":{"background":{"color":"\u003cstring>","type":"color"},"glyph":{"ref":"\u003cstring>","source":"favicon","variant":"color"}},"previewSettings":{"assetId":"\u003cstring>","blobHost":"\u003cstring>","capturedAt":"2023-11-07T05:31:56Z","capturedFor":"\u003cstring>","format":"jpeg","hasDark":true,"height":123,"source":"screenshot","width":123},"qrSettings":{"dotColor":"\u003cstring>","dotStyle":"square","frame":"none","hideLogo":true,"markerBorder":"square","markerCenter":"square","markerColor":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"bfa1316b-da7f-4130-94e0-74f132083807":{"description":"The request body failed validation, wasn't valid JSON, or the slug is reserved.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"fieldErrors":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"fieldErrors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"fieldErrors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"fieldErrors","typeLabel":"object"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"}},"required":["error","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","requestId":"\u003cstring>","code":"\u003cstring>","fieldErrors":{},"traceId":"\u003cstring>"}}},"exampleType":"generated"}},"headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"exampleType":"generated"},"f8f561e3-4220-47ae-8822-5b51cfec6f58":{"description":"Missing, malformed, unknown, or workspace-unscoped Bearer token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"}},"required":["error","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","requestId":"\u003cstring>","code":"\u003cstring>","traceId":"\u003cstring>"}}},"exampleType":"generated"}},"headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"exampleType":"generated"},"21e1cf54-0f78-4b7e-a6da-04b228ac1d08":{"description":"The workspace plan does not include API access, the requested capability, or enough resource capacity. The body uses `plan_requires_upgrade` or `quota_exceeded`. Upgrade the workspace or change the request; retrying the same request will not succeed.","headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["plan_requires_upgrade","quota_exceeded"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"},"current_plan":{"description":"The workspace plan when the response includes it.","type":"string","uniqueKey":"current_plan","typeLabel":"string"},"required_capability":{"description":"The required plan capability when the response includes it.","type":"string","uniqueKey":"required_capability","typeLabel":"string"}},"required":["error","code","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"plan_requires_upgrade","requestId":"\u003cstring>","traceId":"\u003cstring>","current_plan":"\u003cstring>","required_capability":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"7ccfc370-4a4d-45ed-be7a-724fac3db5b5":{"description":"The caller is authenticated but not allowed to perform this action. Common codes: `insufficient_scope` (the key lacks the required scope; body sets `required_scope`) and `no_permission` (the caller is no longer a workspace member).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"},"required_scope":{"description":"Set when `code` is `insufficient_scope`. The exact scope name the route required, e.g. `shortcuts.write`.","type":"string","uniqueKey":"required_scope","typeLabel":"string"}},"required":["error","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","requestId":"\u003cstring>","code":"\u003cstring>","traceId":"\u003cstring>","required_scope":"\u003cstring>"}}},"exampleType":"generated"}},"headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"exampleType":"generated"},"1e73adf9-f13b-479b-bc5c-aba023d013a2":{"description":"The specified `folderId` does not exist in this workspace.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"}},"required":["error","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","requestId":"\u003cstring>","code":"\u003cstring>","traceId":"\u003cstring>"}}},"exampleType":"generated"}},"headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"exampleType":"generated"},"d0d81076-5bc6-4683-a371-a7e1b8833c40":{"description":"A shortcut with this slug already exists in the workspace.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"}},"required":["error","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","requestId":"\u003cstring>","code":"\u003cstring>","traceId":"\u003cstring>"}}},"exampleType":"generated"}},"headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"exampleType":"generated"},"0805cb93-6577-4de3-9292-bdaac3729a49":{"description":"The request body exceeded the size limit. The body is rejected before being parsed, so no partial write occurred; retrying with a smaller payload will succeed.","headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","const":"payload_too_large","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"}},"required":["error","code","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"payload_too_large","requestId":"\u003cstring>","traceId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"7174931d-8e14-4023-a6be-1aefc3fcb2d7":{"description":"Rate limit exceeded. The `Retry-After` header gives the seconds to wait before retrying. See [Rate limits](/essentials/rate-limits) for the default policy and recommended back-off.","headers":{"Retry-After":{"description":"Seconds to wait before retrying. Per RFC 9110.","schema":{"type":"integer","minimum":1}},"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"code":{"type":"string","uniqueKey":"code","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"}},"required":["error","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","requestId":"\u003cstring>","code":"\u003cstring>","traceId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"844f6c26-81b0-4a46-986e-3728ae53fd16":{"description":"An unexpected failure on the server. The body is `{ error: \u003cmessage>, code: \"internal_error\", requestId: \u003cid> }`, plus `traceId` when available. Retry idempotent operations with exponential backoff. A write may already have applied; reconcile its state before retrying.","headers":{"X-Lora-Request-Id":{"description":"Request correlation identifier. Matches the `requestId` field in the JSON error body.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","const":"internal_error","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"requestId":{"type":"string","description":"Correlation identifier for support/debugging. Equals the `X-Lora-Request-Id` response header.","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"traceId":{"description":"Trace identifier when available for this request. 32-character lowercase hex string.","type":"string","pattern":"^[0-9a-f]{32}$","uniqueKey":"traceId","typeLabel":"string"}},"required":["error","code","requestId"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"internal_error","requestId":"\u003cstring>","traceId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5268dbe4-00f1-417c-ae45-546b1421ee6b":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Workspace API key (`lora_sk_…`) sent as `Authorization: Bearer \u003capi_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.","scopes":["shortcuts.write"],"schemeName":"bearerAuth"}}},"servers":{"e04fe8d2-b9b4-4716-96fe-7218328cbf2a":{"url":"https://api.uselora.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Workspace API key (`lora_sk_…`) sent as `Authorization: Bearer \u003capi_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.","scopes":["shortcuts.write"],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Workspace API key (`lora_sk_…`) sent as `Authorization: Bearer \u003capi_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.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"lora-5b5199e2","siteName":"Lora Developers","title":"Create shortcut - Lora Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-14T21:37:13.074Z","originalFileLocation":"api-reference/shortcuts/create-shortcut.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a shortcut in the workspace.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lora Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create shortcut - Lora Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a shortcut in the workspace.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lora Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://uselora.dev/api-reference/shortcuts/create-shortcut\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lora-5b5199e2.mintlify.app/_mintlify/api/og/v2?division=Shortcuts\u0026amp;title=Create+shortcut\u0026amp;description=Creates+a+shortcut+in+the+workspace.\u0026amp;theme=8d92c626e8db39f43037bfd2\u0026amp;signature=9a67a169c1081e7ccc3a453012ab47c64d2e411c253b85c48ad14afb0dc4aadb\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create shortcut - Lora Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a shortcut in the workspace.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lora-5b5199e2.mintlify.app/_mintlify/api/og/v2?division=Shortcuts\u0026amp;title=Create+shortcut\u0026amp;description=Creates+a+shortcut+in+the+workspace.\u0026amp;theme=8d92c626e8db39f43037bfd2\u0026amp;signature=9a67a169c1081e7ccc3a453012ab47c64d2e411c253b85c48ad14afb0dc4aadb\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lora-5b5199e2/t921vPvkjwOzqOqG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lora Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://uselora.dev/api-reference/shortcuts/create-shortcut\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/shortcuts/create-shortcut.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://uselora.dev/#organization\",\"name\":\"Lora Developers\",\"url\":\"https://uselora.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lora-5b5199e2/ryYQakwxVJhAxQjJ/logo/logo_light.svg?fit=max\u0026auto=format\u0026n=ryYQakwxVJhAxQjJ\u0026q=85\u0026s=a15e432f45994371977fd6392f2d6c77\"}},{\"@type\":\"WebSite\",\"@id\":\"https://uselora.dev#website\",\"name\":\"Lora Developers\",\"url\":\"https://uselora.dev\",\"publisher\":{\"@id\":\"https://uselora.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut#webpage\",\"url\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut\",\"name\":\"Create shortcut\",\"description\":\"Creates a shortcut in the workspace.\",\"dateModified\":\"2026-10-14T21:37:13.074Z\",\"isPartOf\":{\"@id\":\"https://uselora.dev#website\"},\"breadcrumb\":{\"@id\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Shortcuts\",\"item\":\"https://uselora.dev/api-reference/shortcuts/list-shortcuts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create shortcut\",\"item\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut#apireference\",\"headline\":\"Create shortcut\",\"name\":\"Create shortcut\",\"description\":\"Creates a shortcut in the workspace.\",\"url\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut\",\"mainEntityOfPage\":{\"@id\":\"https://uselora.dev/api-reference/shortcuts/create-shortcut#webpage\"},\"dateModified\":\"2026-10-14T21:37:13.074Z\",\"publisher\":{\"@id\":\"https://uselora.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://uselora.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lora Developers\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Lora Developers","nav":{"global":null,"tabs":[{"tab":"API Reference","groups":[{"group":"Lora API","pages":[{"title":"Lora API — Getting started","sidebarTitle":"Getting started","href":"/essentials/getting-started"},{"title":"Lora API — Versioning \u0026 deprecation","sidebarTitle":"Versioning \u0026 deprecation","href":"/essentials/versioning"},{"title":"Lora API — Rate limits","sidebarTitle":"Rate limits","href":"/essentials/rate-limits"}]},{"group":"Shortcuts","pages":[{"title":"List shortcuts","description":"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 `archived=true`; expired ones unless `showExpired=true` (subject to role/ownership — moderators and above see every expired shortcut they can access, other members only their own).\n\nThe query parameters mirror the in-app overview's own URL contract, so a link a user shares out of the app can be pasted here unchanged. Boolean parameters accordingly accept `1` / `0` as well as `true` / `false`; any other value is a `400 validation_error`.\n\nA cursor encodes a position in one specific ordering. Changing any ordering or filter parameter invalidates it — start the new query without a cursor rather than replaying the previous page's `nextCursor`, which returns `400 invalid_cursor`.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/shortcuts","href":"/api-reference/shortcuts/list-shortcuts"},{"title":"Create shortcut","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/shortcuts","href":"/api-reference/shortcuts/create-shortcut"},{"title":"Retrieve shortcut","description":"Returns a shortcut by its handle. The handle is either the shortcut's `slug` or its `id` (UUID). Archived shortcuts are returned.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/shortcuts/{handle}","href":"/api-reference/shortcuts/retrieve-shortcut"},{"title":"Upsert shortcut","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/shortcuts/{handle}","href":"/api-reference/shortcuts/upsert-shortcut"},{"title":"Delete shortcut","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/shortcuts/{handle}","href":"/api-reference/shortcuts/delete-shortcut"},{"title":"Update shortcut","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/shortcuts/{handle}","href":"/api-reference/shortcuts/update-shortcut"}]},{"group":"Tags","pages":[{"title":"List tags","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tags","href":"/api-reference/tags/list-tags"},{"title":"Create tag","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/tags","href":"/api-reference/tags/create-tag"},{"title":"Retrieve tag","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tags/{id}","href":"/api-reference/tags/retrieve-tag"},{"title":"Delete tag","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/tags/{id}","href":"/api-reference/tags/delete-tag"},{"title":"Update tag","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/tags/{id}","href":"/api-reference/tags/update-tag"}]},{"group":"Folders","pages":[{"title":"List folders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/folders","href":"/api-reference/folders/list-folders"},{"title":"Create folder","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/folders","href":"/api-reference/folders/create-folder"},{"title":"Retrieve folder","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/folders/{id}","href":"/api-reference/folders/retrieve-folder"},{"title":"Delete folder","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/folders/{id}","href":"/api-reference/folders/delete-folder"},{"title":"Update folder","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/folders/{id}","href":"/api-reference/folders/update-folder"},{"title":"Add an item to a folder","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/folders/{id}/items","href":"/api-reference/folders/add-an-item-to-a-folder"},{"title":"Remove an item from a folder","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/folders/{id}/items/{itemType}/{itemId}","href":"/api-reference/folders/remove-an-item-from-a-folder"}]},{"group":"QR Codes","pages":[{"title":"Retrieve QR code","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/qr","href":"/api-reference/qr-codes/retrieve-qr-code"}]}]}]},"title":"Create shortcut - Lora Developers","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}