---
title: "Get QR code by ID"
method: GET
path: "/qr-code/{id}"
tags: ["QR Codes"]
---

# Get QR code by ID

`GET /qr-code/{id}`

## Request

- Base URL: `https://api.qrcodly.de/api/v1`
- URL: `https://api.qrcodly.de/api/v1/qr-code/{id}`
- Auth: HTTP bearer

Returns a single QR code with its full configuration, content, linked short URL, and tags. Only the owner can access their QR codes.

## Path parameters

- `id` string, uuid, required

## Response `200`

Default Response

- object
  - `id` string, uuid, required: Unique identifier (UUID v4)
  - `createdAt` string, date-time, required: Timestamp when the resource was created (ISO 8601)
  - `updatedAt` string, date-time, nullable, required: Timestamp when the resource was last updated (ISO 8601), or null if never updated
  - `name` string, nullable, required: User-defined name for the QR code (max 50 characters)
  - `config` object, required: QR code visual styling configuration (colors, shapes, dimensions, embedded image)
    - `width` number, required: QR code width in pixels
    - `height` number, required: QR code height in pixels
    - `margin` number, required: Quiet zone margin around the QR code in pixels
    - `image` string: Base64-encoded logo image to embed in the center of the QR code. Max size 1 MB.
    - `imageOptions` object, required: Options for the embedded logo image
      - `hideBackgroundDots` boolean, required: Whether to hide QR code dots behind the embedded logo image
    - `dotsOptions` object, required: Styling for the QR code data dots
      - `type` 'dots' | 'rounded' | 'classy' | 'classy-rounded' | 'square' | 'extra-rounded', required: Shape style of the QR code data dots: dots, rounded, classy, classy-rounded, square, or extra-rounded
      - `style` union, required: Color or gradient for the data dots
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `cornersSquareOptions` object, required: Styling for the three corner squares (finder patterns)
      - `type` 'dot' | 'square' | 'extra-rounded', required: Shape style of the corner squares: dot, square, or extra-rounded
      - `style` union, required: Color or gradient for the corner squares
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `cornersDotOptions` object, required: Styling for the dots inside the corner squares
      - `type` 'dot' | 'square', required: Shape style of the corner dots: dot or square
      - `style` union, required: Color or gradient for the corner dots
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `backgroundOptions` object, required: QR code background styling
      - `style` union, required: Background color or gradient
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
  - `content` union, required: QR code content as a discriminated union — the "type" field determines which data schema applies
    - object
      - `type` 'url', required
      - `data` object, required
        - `url` string, uri, required: The target URL that the QR code points to
        - `isDynamic` boolean: If true, creates a dynamic QR code with a short URL redirect so the destination can be changed later
    - object
      - `type` 'text', required
      - `data` string, required
    - object
      - `type` 'wifi', required
      - `data` object, required
        - `ssid` string, required: WiFi network name (SSID)
        - `password` string, required: WiFi password (leave empty for open networks)
        - `encryption` 'WPA' | 'WEP' | 'nopass', required: WiFi encryption type: WPA, WEP, or nopass (open)
    - object
      - `type` 'vCard', required
      - `data` object, required
        - `title` string: Job title or honorific (e.g. Dr., Mr.)
        - `firstName` string: First name
        - `lastName` string: Last name
        - `email` string, email
        - `emailPrivate` string, email
        - `emailBusiness` string, email
        - `phone` string
        - `phonePrivate` string
        - `phoneMobile` string
        - `phoneBusiness` string
        - `fax` string
        - `company` string: Company or organization name
        - `job` string: Job title or position
        - `streetPrivate` string: Private street address
        - `cityPrivate` string: Private city
        - `zipPrivate` string: Private postal / ZIP code
        - `statePrivate` string: Private state or province
        - `countryPrivate` string: Private country
        - `streetBusiness` string: Business street address
        - `cityBusiness` string: Business city
        - `zipBusiness` string: Business postal / ZIP code
        - `stateBusiness` string: Business state or province
        - `countryBusiness` string: Business country
        - `website` string, uri: Personal or company website URL
        - `note` string: Free-form note or additional information
        - `isDynamic` boolean: If true, creates a dynamic vCard QR code with an editable short URL
    - object
      - `type` 'email', required
      - `data` object, required
        - `email` string, email, required: Recipient email address
        - `subject` string: Pre-filled email subject line
        - `body` string: Pre-filled email body text
    - object
      - `type` 'location', required
      - `data` object, required
        - `address` string, required: Human-readable address (e.g. "1600 Amphitheatre Parkway, Mountain View, CA")
        - `latitude` number: GPS latitude coordinate (-90 to 90)
        - `longitude` number: GPS longitude coordinate (-180 to 180)
    - object
      - `type` 'event', required
      - `data` object, required
        - `title` string, required: Event title or name
        - `description` string: Event description or details
        - `location` string: Event location or venue
        - `url` string, uri: URL with more information about the event
        - `startDate` string, date-time, required: Event start date and time as ISO 8601 string (e.g. "2025-06-15T14:00:00Z")
        - `endDate` string, date-time, required: Event end date and time as ISO 8601 string (must be after startDate)
    - object
      - `type` 'epc', required
      - `data` object, required
        - `name` string, required: Beneficiary name (payment recipient)
        - `iban` string, required: IBAN of the beneficiary (e.g. "DE89370400440532013000")
        - `bic` string: BIC/SWIFT code of the beneficiary bank
        - `amount` number: Payment amount in EUR
        - `purpose` string: Payment reference or purpose text
  - `qrCodeData` string, nullable, required: Raw data string encoded in the QR code
  - `previewImage` string, nullable, required: URL to a preview image of the rendered QR code
  - `createdBy` string, nullable, required: User ID of the QR code owner
  - `shortUrl` object, nullable, required: Linked short URL for dynamic QR codes, or null for static QR codes
    - `id` string, uuid, required: Unique identifier (UUID v4)
    - `createdAt` string, date-time, required: Timestamp when the resource was created (ISO 8601)
    - `updatedAt` string, date-time, nullable, required: Timestamp when the resource was last updated (ISO 8601), or null if never updated
    - `shortCode` string, required: Unique 5-character short code (e.g. "Ab3xZ")
    - `name` string, nullable, required: User-defined name for the short URL (max 50 characters)
    - `destinationUrl` string, uri, nullable, required: The target URL that the short URL redirects to
    - `qrCodeId` string, uuid, nullable, required: ID of the linked QR code, or null for standalone short URLs
    - `customDomainId` string, uuid, nullable, required: ID of the custom domain used for this short URL, or null for the default domain
    - `isActive` boolean, required: Whether the short URL is currently active and redirecting
    - `createdBy` string, required: User ID of the short URL owner
    - `deletedAt` string, date-time, nullable, required: Soft-delete timestamp, or null if the short URL is active
    - `safetyStatus` 'unchecked' | 'clean' | 'blocked', required: Result of the destination safety screening. "blocked" means we disabled the link and the owner cannot re-enable it
    - `safetyBlockedAt` string, date-time, nullable, required: When the link was blocked for safety reasons, or null
    - `safetyThreatTypes` string, nullable, required: Comma-separated Google Web Risk threat types behind the block, or null
  - `tags` object[], required: Tags assigned to this QR code
    - `id` string, uuid, required: Unique identifier (UUID v4)
    - `createdAt` string, date-time, required: Timestamp when the resource was created (ISO 8601)
    - `updatedAt` string, date-time, nullable, required: Timestamp when the resource was last updated (ISO 8601), or null if never updated
    - `name` string, required: Tag display name (max 32 characters)
    - `color` string, required: Tag color as hex code (e.g. "#FF5733")
    - `createdBy` string, required: User ID of the tag owner
    - `qrCodeCount` number: Number of QR codes assigned to this tag

## Other responses

- `401`: Unauthorized — missing or invalid Bearer token.
- `403`: Forbidden — you do not have permission to access this resource.
- `404`: Not Found — the requested resource does not exist.
- `429`: Too Many Requests — rate limit exceeded. Retry after the rate limit window resets.

---

[API](https://skmtc.dev/qrcodly/apis/qrcodly-api.md) · [All operations](https://skmtc.dev/qrcodly/apis/qrcodly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qrcodly/apis/qrcodly-api/revisions/b7e95eb68866?raw)
