Short.io QR Codes API
The QR Codes API from Short.io — 4 operation(s) for qr codes.
The QR Codes API from Short.io — 4 operation(s) for qr codes.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/short-io:short-io-qr-codes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Short.io QR Codes API
version: 1.0.0
x-scalar-sdk-installation:
- lang: Node
description: 'Install the official **Short.io Node.js SDK** from npm:'
source: npm install @short.io/client-node
servers:
- url: https://api.short.io
description: API server
security:
- apiKey: []
tags:
- name: QR Codes
paths:
/links/qr/settings/{linkIdString}:
get:
summary: Get link QR code settings
tags:
- QR Codes
description: Returns the QR code settings saved for the link, applied on every generation instead of the domain or folder settings.
parameters:
- schema:
type: string
pattern: (?:lnk|link)_[0-9a-zA-Z]+_[0-9a-zA-Z]+
examples:
lnk_abc123_abcdef:
value: lnk_abc123_abcdef
link_abc123_abcdef:
value: link_abc123_abcdef
in: path
name: linkIdString
required: true
description: Link ID
responses:
'200':
description: Default Response
operationId: getSetting
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await getSetting({\n \"path\": {\n \"linkIdString\": \"string\"\n }\n});\n"
post:
summary: Create or update link QR code settings
tags:
- QR Codes
description: Saves the QR code settings for the link. Omitted fields are left untouched; send an empty string to clear a text field.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
logoUrl:
type: string
maxLength: 255
description: URL of the logo image embedded in the QR code
color:
type: string
pattern: ^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$
minLength: 6
maxLength: 8
description: '6 or 8-character hex color without # prefix (RRGGBB or RRGGBBAA)'
example: FF0000
backgroundColor:
type: string
pattern: ^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$
minLength: 6
maxLength: 8
description: '6 or 8-character hex color without # prefix (RRGGBB or RRGGBBAA)'
example: FF0000
logoHeight:
type: integer
minimum: 1
description: Logo height in pixels
example: 64
logoWidth:
type: integer
minimum: 1
description: Logo width in pixels
example: 64
ecLevel:
enum:
- L
- M
- Q
- H
description: QR code error correction level
borderRadius:
type: integer
minimum: 0
maximum: 5
description: Dot border radius on the dashboard 0-5 scale, 5 = fully round
example: 2
noExcavate:
type: boolean
description: Disable logo excavation (cutout) in the QR code
example: false
finderOuterShape:
enum:
- square
- rounded
- circle
- drop
description: Shape of the outer finder pattern
finderInnerShape:
enum:
- square
- rounded
- circle
- drop
description: Shape of the inner finder pattern
finderColor:
type: string
pattern: ^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$
minLength: 6
maxLength: 8
description: '6 or 8-character hex color without # prefix (RRGGBB or RRGGBBAA)'
example: FF0000
cornerMode:
enum:
- individual
- merge
description: Corner module rendering mode
labelText:
type: string
maxLength: 255
description: Optional text label rendered with the QR code
example: Scan me
labelStyle:
enum:
- below
- pill
- box
description: Label visual style
labelColor:
type: string
pattern: ^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$
minLength: 6
maxLength: 8
description: '6 or 8-character hex color without # prefix (RRGGBB or RRGGBBAA)'
example: FF0000
labelBgColor:
type: string
pattern: ^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$
minLength: 6
maxLength: 8
description: '6 or 8-character hex color without # prefix (RRGGBB or RRGGBBAA)'
example: FF0000
labelFontSize:
type: integer
minimum: 1
maximum: 20
description: Label font size in module units (rendered px = value * block size)
example: 5
labelFontFamily:
type: string
maxLength: 255
description: Label font family name
example: Arial
parameters:
- schema:
type: string
pattern: (?:lnk|link)_[0-9a-zA-Z]+_[0-9a-zA-Z]+
examples:
lnk_abc123_abcdef:
value: lnk_abc123_abcdef
link_abc123_abcdef:
value: link_abc123_abcdef
in: path
name: linkIdString
required: true
description: Link ID
responses:
'200':
description: Default Response
operationId: createSetting
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await createSetting({\n \"path\": {\n \"linkIdString\": \"string\"\n },\n \"body\": {\n \"logoUrl\": \"string\",\n \"color\": \"FF0000\",\n \"backgroundColor\": \"FF0000\",\n \"logoHeight\": 64,\n \"logoWidth\": 64,\n \"ecLevel\": \"L\",\n \"borderRadius\": 2,\n \"noExcavate\": false,\n \"finderOuterShape\": \"square\",\n \"finderInnerShape\": \"square\",\n \"finderColor\": \"FF0000\",\n \"cornerMode\": \"individual\",\n \"labelText\": \"Scan me\",\n \"labelStyle\": \"below\",\n \"labelColor\": \"FF0000\",\n \"labelBgColor\": \"FF0000\",\n \"labelFontSize\": 5,\n \"labelFontFamily\": \"Arial\"\n }\n});\n"
delete:
summary: Delete link QR code settings
tags:
- QR Codes
description: Deletes the QR code settings saved for the link, reverting to the domain or folder settings.
parameters:
- schema:
type: string
pattern: (?:lnk|link)_[0-9a-zA-Z]+_[0-9a-zA-Z]+
examples:
lnk_abc123_abcdef:
value: lnk_abc123_abcdef
link_abc123_abcdef:
value: link_abc123_abcdef
in: path
name: linkIdString
required: true
description: Link ID
responses:
'200':
description: Default Response
operationId: deleteSetting
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await deleteSetting({\n \"path\": {\n \"linkIdString\": \"string\"\n }\n});\n"
/links/qr/settings/logo/{linkIdString}:
put:
summary: Upload link QR code logo
tags:
- QR Codes
description: Uploads the logo embedded in the link's QR code, as the raw image body. Save the returned URL as logoUrl in the link's QR code settings.
requestBody:
required: true
content:
application/json:
schema: {}
parameters:
- schema:
type: string
pattern: (?:lnk|link)_[0-9a-zA-Z]+_[0-9a-zA-Z]+
examples:
lnk_abc123_abcdef:
value: lnk_abc123_abcdef
link_abc123_abcdef:
value: link_abc123_abcdef
in: path
name: linkIdString
required: true
description: Link ID
responses:
'200':
description: Default Response
operationId: updateLogo
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await updateLogo({\n \"path\": {\n \"linkIdString\": \"string\"\n }\n});\n"
/domains/qrCodeSettings/{domainId}:
get:
summary: Get domain QR code settings
tags:
- QR Codes
description: Returns the default QR code settings applied to the domain's links.
parameters:
- schema:
type: number
example: 12345
in: path
name: domainId
required: true
description: Domain ID
responses:
'200':
description: Default Response
operationId: getQrcodesetting
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await getQrcodesetting({\n \"path\": {\n \"domainId\": 12345\n }\n});\n"
post:
summary: Create or update domain QR code settings
tags:
- QR Codes
description: Creates or updates the default QR code settings applied to the domain's links.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
color:
type: string
pattern: ^[0-9a-fA-F]{6,8}$
description: QR code foreground color as hex (RRGGBB or RRGGBBAA)
example: '000000'
backgroundColor:
type: string
pattern: ^[0-9a-fA-F]{6,8}$
description: QR code background color as hex
example: ffffff
logoUrl:
type: string
description: URL of the logo image embedded in the QR code
example: https://shortiougc.com/qr-code-settings-logo/example.com/logo.png
logoHeight:
type: number
description: Logo height in pixels
example: 64
logoWidth:
type: number
description: Logo width in pixels
example: 64
ecLevel:
enum:
- L
- M
- Q
- H
description: QR code error correction level
borderRadius:
type: number
description: Module border radius in pixels
example: 4
noExcavate:
type: boolean
description: Disable logo area excavation
example: false
finderOuterShape:
enum:
- square
- rounded
- circle
- drop
description: Shape of the outer finder pattern
finderInnerShape:
enum:
- square
- rounded
- circle
- drop
description: Shape of the inner finder pattern
finderColor:
type: string
pattern: ^[0-9a-fA-F]{6,8}$
description: Finder pattern color as hex
example: '000000'
cornerMode:
enum:
- individual
- merge
description: Corner module rendering mode
labelText:
type: string
description: Optional text label rendered with the QR code
example: Scan me
labelStyle:
enum:
- below
- pill
- box
description: Label visual style
labelColor:
type: string
pattern: ^[0-9a-fA-F]{6,8}$
description: Label text color as hex
example: '000000'
labelBgColor:
type: string
pattern: ^[0-9a-fA-F]{6,8}$
description: Label background color as hex
example: ffffff
labelFontSize:
type: number
description: Label font size in pixels
example: 14
labelFontFamily:
type: string
description: Label font family name
example: Arial
parameters:
- schema:
type: number
example: 12345
in: path
name: domainId
required: true
description: Domain ID
responses:
'200':
description: Default Response
operationId: createQrcodesetting
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await createQrcodesetting({\n \"path\": {\n \"domainId\": 12345\n },\n \"body\": {\n \"color\": \"000000\",\n \"backgroundColor\": \"ffffff\",\n \"logoUrl\": \"https://shortiougc.com/qr-code-settings-logo/example.com/logo.png\",\n \"logoHeight\": 64,\n \"logoWidth\": 64,\n \"ecLevel\": \"L\",\n \"borderRadius\": 4,\n \"noExcavate\": false,\n \"finderOuterShape\": \"square\",\n \"finderInnerShape\": \"square\",\n \"finderColor\": \"000000\",\n \"cornerMode\": \"individual\",\n \"labelText\": \"Scan me\",\n \"labelStyle\": \"below\",\n \"labelColor\": \"000000\",\n \"labelBgColor\": \"ffffff\",\n \"labelFontSize\": 14,\n \"labelFontFamily\": \"Arial\"\n }\n});\n"
delete:
summary: Delete domain QR code settings
tags:
- QR Codes
description: Deletes the domain's QR code settings, reverting to defaults.
parameters:
- schema:
type: number
example: 12345
in: path
name: domainId
required: true
description: Domain ID
responses:
'200':
description: Default Response
operationId: deleteQrcodesetting
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await deleteQrcodesetting({\n \"path\": {\n \"domainId\": 12345\n }\n});\n"
/domains/qrCodeSettings/logo/{domainId}:
put:
summary: Upload QR code logo
tags:
- QR Codes
description: Uploads the logo embedded in the domain's QR codes, as multipart form data.
requestBody:
required: true
content:
application/json:
schema: {}
parameters:
- schema:
type: number
example: 12345
in: path
name: domainId
required: true
description: Domain ID
responses:
'200':
description: Default Response
operationId: putDomainsQrCodeSettingsLogoByDomainId
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await updateLogo({\n \"path\": {\n \"domainId\": 12345\n }\n});\n"
x-operation-id-source: normalized
x-operation-id-original: updateLogo
components:
securitySchemes:
apiKey:
type: apiKey
name: Authorization
in: header