> ## Documentation Index
> Fetch the complete documentation index at: https://docs.supaqr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk update links(QR codes)

> Bulk update up to 100 links(QR codes).
If updateData.data is not empty, all links(QR codes) specified in the linkIds array must share the same linkType.



## OpenAPI

````yaml PATCH /links/bulk
openapi: 3.0.1
info:
  title: SupaQR
  description: ''
  version: 1.0.0
servers:
  - url: https://api.supaqr.com
    description: 正式环境
security:
  - bearer: []
tags: []
paths:
  /links/bulk:
    patch:
      tags: []
      summary: Bulk update links(QR codes)
      description: >-
        Bulk update up to 100 links(QR codes).

        If updateData.data is not empty, all links(QR codes) specified in the
        linkIds array must share the same linkType.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                linkIds:
                  type: array
                  items:
                    type: string
                  description: 'The IDs of the links to update. '
                updateData:
                  $ref: '#/components/schemas/link_QRcode_all_options_for_bulk_update'
              required:
                - linkIds
                - updateData
            examples: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - bad_request
                    default: bad_request
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                title: ''
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - unauthorized
                    default: unauthorized
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
        '403':
          description: ''
          content:
            application/json:
              schema:
                title: ''
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - forbidden
                    default: forbidden
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
        '404':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - not_found
                    default: not_found
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
        '410':
          description: ''
          content:
            application/json:
              schema:
                title: ''
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - record_gone
                    default: record_gone
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
        '422':
          description: ''
          content:
            application/json:
              schema:
                title: ''
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - parameter_error
                    default: parameter_error
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
        '429':
          description: ''
          content:
            application/json:
              schema:
                title: ''
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - rate_limit_exceeded
                    default: rate_limit_exceeded
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                title: ''
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - internal_server_error
                    default: internal_server_error
                    description: A short code indicating the error code returned.
                  message:
                    type: string
                    description: A human readable explanation of what went wrong.
                required:
                  - code
                  - message
          headers: {}
      deprecated: false
      security:
        - bearer: []
components:
  schemas:
    link_QRcode_all_options_for_bulk_update:
      type: object
      properties:
        data:
          oneOf:
            - $ref: '#/components/schemas/link'
            - $ref: '#/components/schemas/appstores'
            - $ref: '#/components/schemas/email'
            - $ref: '#/components/schemas/audio'
            - $ref: '#/components/schemas/googleForm'
            - $ref: '#/components/schemas/whatsapp'
            - $ref: '#/components/schemas/sms'
            - $ref: '#/components/schemas/vcard'
            - $ref: '#/components/schemas/map'
            - $ref: '#/components/schemas/file'
            - $ref: '#/components/schemas/document'
            - $ref: '#/components/schemas/image'
            - $ref: '#/components/schemas/svg'
            - $ref: '#/components/schemas/menu'
            - $ref: '#/components/schemas/video'
          description: The data/link destination of the short URL or QR code.
        linkOptions:
          $ref: '#/components/schemas/linkOptions'
          nullable: true
        qrOptions:
          $ref: '#/components/schemas/qrOptions'
          nullable: true
    link:
      type: object
      properties:
        url:
          type: string
          description: The destination URL of the short link or QR code.
          format: uri
          minLength: 1
          maxLength: 2000
          example: https://example.com
      required:
        - url
      title: link
    appstores:
      title: app-stores
      type: object
      properties:
        ios_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 2000
          description: The destination URL for iOS devices
          example: https://example.com
        android_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 2000
          description: The destination URL for android devices
          example: https://example.com
        other_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 2000
          description: The destination URL for other devices
          example: https://example.com
    email:
      type: object
      properties:
        mails:
          type: array
          items:
            type: string
            minLength: 1
            format: email
            maxLength: 300
            example: mail@example.com
          minItems: 1
          maxItems: 100
          uniqueItems: true
          description: The addresses in the email
        subject:
          type: string
          minLength: 1
          maxLength: 70
          description: The email subject
        content:
          type: string
          minLength: 1
          maxLength: 5000
          description: The email content
      required:
        - mails
        - subject
        - content
      title: email
    audio:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 20
            example: sRqH71Nf...
          description: The audio file IDs
          minItems: 1
          uniqueItems: true
          maxItems: 1
      required:
        - files
      title: audio
    googleForm:
      type: object
      properties:
        url:
          type: string
          maxLength: 2000
          minLength: 1
          format: uri
          description: The Google Form URL
          example: https://docs.google.com/forms
      required:
        - url
      title: google-form
    whatsapp:
      type: object
      properties:
        phone:
          type: string
          description: The WhatsApp phone number
          minLength: 1
          maxLength: 30
          example: +1 (123) 456-7890
        message:
          type: string
          description: The text of the message
          minLength: 1
          maxLength: 5000
      required:
        - phone
        - message
      title: whatsapp
    sms:
      type: object
      properties:
        phone:
          type: string
          description: The  phone number
          minLength: 1
          maxLength: 30
          example: +1 (123) 456-7890
        message:
          type: string
          description: The text of the message
          minLength: 1
          maxLength: 100
      required:
        - phone
        - message
      title: sms
    vcard:
      type: object
      properties:
        full_name:
          type: string
          minLength: 1
          maxLength: 60
        avatar_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 2000
          example: https://example.com/abc.png
        description:
          type: string
          minLength: 1
          maxLength: 300
        company_name:
          type: string
          minLength: 1
          maxLength: 80
        company_position:
          type: string
          minLength: 1
          maxLength: 80
        phone:
          type: string
          minLength: 1
          maxLength: 30
        phone_mobile:
          type: string
          minLength: 1
          maxLength: 30
        phone_work:
          type: string
        fax:
          type: string
          minLength: 1
          maxLength: 30
        email:
          type: string
          minLength: 1
          maxLength: 500
        website:
          type: string
          minLength: 1
          maxLength: 2000
          format: uri
        address:
          type: string
          minLength: 1
          maxLength: 500
        linkedin:
          type: string
          format: uri
          minLength: 1
          maxLength: 1000
        x:
          type: string
          format: uri
          minLength: 1
          maxLength: 1000
        youtube:
          type: string
          format: uri
          minLength: 1
          maxLength: 1000
        instagram:
          type: string
          format: uri
          minLength: 1
          maxLength: 1000
        facebook:
          type: string
          format: uri
          minLength: 1
          maxLength: 1000
      required:
        - full_name
      title: vcard
    map:
      type: object
      properties:
        type:
          type: string
          enum:
            - url
            - number
        url:
          type: string
          minLength: 1
          maxLength: 2000
          description: |-
            The google map URL.
            For cases requiring type='url'
        latitude:
          type: number
          minimum: 0
          format: float
          description: For cases requiring type='number'
          example: 40.7128
        longitude:
          type: number
          format: float
          minimum: 0
          description: For cases requiring type='number'
          example: 74.006
      required:
        - type
      title: map
    file:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 20
            example: sRqH71Nf...
          description: The file IDs
          minItems: 1
          uniqueItems: true
          maxItems: 1
      required:
        - files
      title: file
    document:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 20
            example: sRqH71Nf...
          description: The document file IDs
          minItems: 1
          uniqueItems: true
          maxItems: 1
      required:
        - files
      title: document
    image:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 20
            example: sRqH71Nf...
          description: The image file IDs
          minItems: 1
          uniqueItems: true
          maxItems: 20
      required:
        - files
      title: image
    svg:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 20
            example: sRqH71Nf...
          description: The svg file IDs
          minItems: 1
          uniqueItems: true
          maxItems: 20
      required:
        - files
      title: svg
    menu:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 20
            example: sRqH71Nf...
          description: The menu file IDs
          minItems: 1
          uniqueItems: true
          maxItems: 1
      required:
        - files
      title: menu
    video:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 20
            example: sRqH71Nf...
          description: The video file IDs
          minItems: 1
          uniqueItems: true
          maxItems: 1
      required:
        - files
      title: video
    linkOptions:
      type: object
      properties:
        domain:
          type: string
          description: >-
            Specifies the domain to use for generating short links or  QR codes.


            Default domains: iqr.im or spqr.co


            You may also use your own custom domain (must be properly
            configured)
          default: iqr.im
          maxLength: 253
          minLength: 3
          nullable: true
        key:
          type: string
          description: >-
            The short link slug. If not provided, a random 7-character slug will
            be generated
          maxLength: 190
          pattern: ^[a-zA-Z0-9-_]+
          minLength: 1
          nullable: true
        tags:
          type: array
          items:
            type: string
            example: tagId
          description: The unique IDs of the tags assigned to the short link or QR code.
          uniqueItems: true
          maxItems: 30
          minItems: 1
          nullable: true
        comment:
          type: string
          description: The comments for the short link or QR code.
          maxLength: 2000
          minLength: 1
          nullable: true
        password:
          type: string
          description: >-
            Password required to access the short link or QR code's destination
            content
          minLength: 6
          maxLength: 64
          nullable: true
        expiration:
          type: object
          properties:
            time:
              type: string
              description: >-
                The date and time (ISO 8601 timestamp) when the short link or QR
                code will expire at.
              format: date-time
              example: '2025-12-31T23:59:59Z'
            url:
              type: string
              description: >-
                The URL to redirect to when the short link or QR code has
                expired.
              format: uri
              maxLength: 2000
              minLength: 3
              example: https://example.com
          description: >-
            Defines when the link expires. After expiration, users will be
            redirected to a specified fallback URL.
          required:
            - time
            - url
          nullable: true
        utm:
          type: object
          properties:
            source:
              type: string
              description: >-
                The UTM source of the short link or QR code. If set, this will
                populate or override the UTM source in the destination URL.
              minLength: 1
              maxLength: 190
              example: google
            medium:
              type: string
              description: >-
                The UTM medium of the short link or QR code. If set, this will
                populate or override the UTM medium in the destination URL.
              minLength: 1
              maxLength: 190
              example: cpc
            campaign:
              type: string
              description: >-
                The UTM campaign of the short link or QR code. If set, this will
                populate or override the UTM campaign in the destination URL.
              minLength: 1
              maxLength: 190
              example: menu
            term:
              type: string
              description: >-
                The UTM term of the short link or QR code. If set, this will
                populate or override the UTM term in the destination URL.
              minLength: 1
              maxLength: 190
              example: pizza
            content:
              type: string
              description: >-
                The UTM content of the short link or QR code. If set, this will
                populate or override the UTM content in the destination URL.
              minLength: 1
              maxLength: 190
              example: menu QR code
            ref:
              type: string
              description: >-
                The referral tag of the short link or QR code. If set, this will
                populate or override the ref query parameter in the destination
                URL.
              minLength: 1
              maxLength: 190
              example: yoursite.com
          description: >-
            Used to track marketing campaign metrics (e.g., source, medium,
            campaign name) in analytics tools
          nullable: true
        option:
          type: object
          properties:
            isWaterMark:
              type: boolean
              description: Determines whether a watermark should be applied to the content.
              default: false
            watermarkText:
              type: string
              description: >-
                Specifies the custom text to be displayed as a watermark on the
                content.
              minLength: 1
              maxLength: 64
              example: supaqr
            isScreenshotProtected:
              type: boolean
              description: When true, prevents screenshots or screen captures
              default: false
          description: Content Protection Options
          nullable: true
        previewData:
          type: object
          properties:
            title:
              type: string
              description: The custom link preview title (og:title).
              maxLength: 256
              minLength: 1
              example: SupaQR
            desc:
              type: string
              description: 'The custom link preview description (og:description). '
              maxLength: 256
              minLength: 1
              example: >-
                Create Your Free Custom Dynamic QR Codes for link, images or PDF
                files
            image:
              type: string
              description: The custom link preview image (og:image).
              format: uri
              maxLength: 2000
              minLength: 1
              example: https://example.com/abc.png
          description: Will be used for Custom Social Media Cards
          nullable: true
        Targeting:
          type: object
          properties:
            targetType:
              type: string
              enum:
                - device
                - location
                - number
                - time
                - language
              description: The type of targeting
              example: device
            targetDatas:
              oneOf:
                - type: object
                  properties:
                    ios:
                      type: string
                      description: The URL to redirect to when the device is iOS
                      format: uri
                      minLength: 1
                      maxLength: 2000
                      example: https://example.com
                    android:
                      type: string
                      minLength: 1
                      maxLength: 2000
                      format: uri
                      description: The URL to redirect to when the device is android
                      example: https://example.com
                  title: When targetType = 'device'
                  required:
                    - ios
                    - android
                - type: array
                  items:
                    $ref: '#/components/schemas/location'
                  title: When targetType = 'location'
                - type: array
                  items:
                    $ref: '#/components/schemas/number'
                  title: When targetType = 'number'
                - type: array
                  items:
                    $ref: '#/components/schemas/time'
                  title: When targetType = 'time'
                - type: array
                  items:
                    $ref: '#/components/schemas/language'
                  title: When targetType = 'language'
          description: >-
            Defines conditional routing rules for different target URLs based on
            visitor attributes (device, location, etc.)
          required:
            - targetType
            - targetDatas
          nullable: true
    qrOptions:
      type: object
      properties:
        correctLevel:
          type: integer
          description: >-
            Specifies the error correction capability of the QR code. Higher
            levels allow the QR code to remain scannable even if it's partially
            damaged.
          minimum: 0
          maximum: 3
          default: 2
          format: int32
          nullable: true
        space:
          type: integer
          description: >-
            Defines the blank space (margin) around the QR code, ensuring
            scanners can detect it properly. Too small margins may cause
            scanning issues.
          default: 2
          minimum: 1
          maximum: 4
          format: int32
          nullable: true
        version:
          type: integer
          description: >-
            Determines the size and data capacity of the QR code. Higher
            versions support more data but require more space.
          minimum: -1
          maximum: 40
          default: -1
          format: int32
          nullable: true
        frame:
          type: object
          properties:
            type:
              type: string
              description: The type of frame
              enum:
                - preset
                - image
            value:
              oneOf:
                - type: string
                  title: When type='image'
                  description: >-
                    The url of frame's image.

                    Retrieve the image URL from
                    https://supaqr.com/dash-board/images.

                    For cases requiring type='image'
                  format: uri
                  example: https://file.supaqr.com/example.png
                - type: string
                  description: >-
                    The ID of the preset frame.

                    For cases requiring type='preset'


                    ### ID（1-14）


                    |       |       |       |       |       |

                    |-------|-------|-------|-------|-------|

                    | ![样式1](https://static.supaqr.com/public/imgs/frames/1.png)
                    | ![样式2](https://static.supaqr.com/public/imgs/frames/2.png)
                    | ![样式3](https://static.supaqr.com/public/imgs/frames/3.png)
                    | ![样式4](https://static.supaqr.com/public/imgs/frames/4.png)
                    | ![样式5](https://static.supaqr.com/public/imgs/frames/5.png)
                    |

                    | **1** | **2** | **3** | **4** | **5** |


                    |       |       |       |       |        |

                    |-------|-------|-------|-------|--------|

                    | ![样式6](https://static.supaqr.com/public/imgs/frames/6.png)
                    | ![样式7](https://static.supaqr.com/public/imgs/frames/8.png)
                    | ![样式8](https://static.supaqr.com/public/imgs/frames/9.png)
                    |
                    ![样式9](https://static.supaqr.com/public/imgs/frames/10.png)
                    |
                    ![样式10](https://static.supaqr.com/public/imgs/frames/11.png)
                    |

                    | **6** | **7** | **8** | **9** | **10** |


                    |       |       |       |       |        |

                    |-------|-------|-------|-------|--------|

                    |
                    ![样式11](https://static.supaqr.com/public/imgs/frames/12.png)
                    |
                    ![样式12](https://static.supaqr.com/public/imgs/frames/13.png)
                    |
                    ![样式13](https://static.supaqr.com/public/imgs/frames/14.png)
                    |
                    ![样式14](https://static.supaqr.com/public/imgs/frames/15.png)
                    |![样式15](https://static.supaqr.com/public/imgs/frames/qr_none.png)|

                    | **11** | **12** | **13** | **14** | **none** |
                  enum:
                    - '1'
                    - '2'
                    - '3'
                    - '4'
                    - '5'
                    - '6'
                    - '7'
                    - '8'
                    - '9'
                    - '10'
                    - '11'
                    - '12'
                    - '13'
                    - '14'
                  title: When type='preset'
                  example: '1'
            options:
              oneOf:
                - type: object
                  properties:
                    code_rect:
                      type: array
                      items:
                        type: integer
                        format: int32
                        minimum: 0
                        example: 100
                      minItems: 4
                      maxItems: 4
                      description: >-
                        Specifies the bounding box of the QR code within the
                        image. Please provide the coordinates and dimensions in
                        the following format: (e.g., "[10,20,100,100]").

                        "x,y,width,height"


                        Where:


                        x = X-coordinate of the top-left corner (in pixels)


                        y = Y-coordinate of the top-left corner (in pixels)


                        width = Width of the QR code (in pixels)


                        height = Height of the QR code (in pixels)
                  required:
                    - code_rect
                  title: When type='image'
                - type: object
                  properties:
                    background:
                      type: object
                      properties:
                        type:
                          type: string
                          description: The background type of the frame
                          enum:
                            - color
                            - transparent
                          default: color
                        value:
                          type: string
                          default: '#000000'
                          description: >-
                            When type=color is required, it must be in HEX
                            format.
                      required:
                        - type
                        - value
                      description: The background of the frame.
                    color:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - single
                          default: single
                          description: The color type of the frame
                        value:
                          type: string
                          description: The color value of the frame in hex format.
                          example: '#000000'
                      required:
                        - type
                        - value
                      description: The color of the frame.
                    textOptions:
                      type: object
                      properties:
                        color:
                          type: string
                          description: The color of the text in hex format.
                          default: '#FFFFFF'
                        font:
                          type: string
                          description: The font of the text.
                          enum:
                            - Roboto
                            - Roboto-Bold
                            - Lato
                            - Montserrat
                            - Merriweather
                            - PT Serif
                            - Patrick Hand
                            - Oswald
                            - Nunito
                            - Open Sans
                            - Courier Prime
                            - VT323
                            - Caveat
                            - Anton
                            - Abril Fatface
                          default: Roboto
                        size:
                          type: integer
                          description: The font size of the text.
                          minimum: 1
                          maximum: 99
                          format: int32
                          default: 48
                        width:
                          type: integer
                          description: The width of the text.
                          minimum: 1
                          maximum: 1000
                          format: int32
                          default: 400
                        pos:
                          type: array
                          items:
                            type: integer
                            minimum: 1
                            format: int32
                          minItems: 2
                          maxItems: 2
                          description: The position of the text.e.g.,[x,y]
                        content:
                          type: string
                          description: The text string
                          minLength: 0
                          maxLength: 64
                          default: SCAN ME
                      description: The text settings for the frame
                  title: When type='preset'
            add_texts:
              type: array
              items:
                type: object
                properties:
                  pos:
                    type: array
                    items:
                      type: integer
                      minimum: 1
                      format: int32
                    minItems: 2
                    maxItems: 2
                    description: The position of the text.e.g.,[x,y]
                  color:
                    type: string
                    description: The color of the text in hex format.
                    example: '#FFFFFF'
                  size:
                    type: integer
                    minimum: 1
                    maximum: 200
                    format: int32
                    description: The font size of the text.
                  align:
                    type: string
                    enum:
                      - start
                      - middle
                      - end
                    description: The align of the text.
                  font:
                    type: string
                    description: The font of the text.
                    enum:
                      - Roboto
                      - Roboto-Bold
                      - Lato
                      - Montserrat
                      - Merriweather
                      - PT Serif
                      - Patrick Hand
                      - Oswald
                      - Nunito
                      - Open Sans
                      - Courier Prime
                      - VT323
                      - Caveat
                      - Anton
                      - Abril Fatface
                  content:
                    type: string
                    minLength: 1
                    maxLength: 200
                    description: The text string
                  prefix:
                    type: string
                    minLength: 1
                    maxLength: 200
                    description: The prefix of the text
                required:
                  - pos
                  - color
                  - size
                  - align
                  - font
                  - content
          description: >-
            Adds a custom surrounding image or decorative border around the QR
            code (e.g., a branded frame, ornamental design, or scan-guiding
            graphics).
          required:
            - type
            - value
            - options
          nullable: true
        patterns:
          type: object
          properties:
            background:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - single
                    - image
                    - transparent
                  default: single
                  description: The type of the background
                value:
                  oneOf:
                    - type: string
                      title: When type = 'single'
                      description: 'The color of the background  in hex format. '
                      example: '#000000'
                    - type: string
                      title: When type = 'image'
                      description: >-
                        The URL of the background image

                        Retrieve the image URL from
                        https://supaqr.com/dash-board/images.
                      format: uri
                      example: https://example.com/abc.png
              description: >-
                Sets the background color or image behind the QR code (not the
                quiet zone/margin).
              required:
                - type
              nullable: true
            body:
              type: object
              properties:
                style_id:
                  type: string
                  default: Simple
                  enum:
                    - 'Simple  '
                    - 'Liquid  '
                    - 'Grid  '
                    - 'H Line  '
                    - 'V Line  '
                    - 'Dot  '
                    - 'Dot Lt  '
                    - 'Star  '
                    - 'Star Lt  '
                    - 'Rhombus  '
                    - 'Square  '
                    - 'Liquid Lt  '
                    - 'Line  '
                    - Square Lt
                  description: >-
                    Specifies the visual style of the QR code's data modules
                    (the individual dots/patterns that encode information)


                    ### Style ID


                    |       |       |       |       |       |       |       |

                    |-------|-------|-------|-------|-------|-------|-------|

                    | ![1](https://static.supaqr.com/public/imgs/bodys/1.png) |
                    ![2](https://static.supaqr.com/public/imgs/bodys/2.png) |
                    ![3](https://static.supaqr.com/public/imgs/bodys/3.png) |
                    ![4](https://static.supaqr.com/public/imgs/bodys/4.png) |
                    ![5](https://static.supaqr.com/public/imgs/bodys/5.png) |
                    ![6](https://static.supaqr.com/public/imgs/bodys/6.png) |
                    ![7](https://static.supaqr.com/public/imgs/bodys/7.png) |

                    | **Simple** | **Liquid** | **Grid** | **H Line** | **V
                    Line** | **Dot** | **Dot Lt** |


                    |       |       |       |       |       |       |       |

                    |-------|-------|-------|-------|-------|-------|-------|

                    | ![1](https://static.supaqr.com/public/imgs/bodys/9.png) |
                    ![2](https://static.supaqr.com/public/imgs/bodys/10.png) |
                    ![3](https://static.supaqr.com/public/imgs/bodys/11.png) |
                    ![4](https://static.supaqr.com/public/imgs/bodys/15.png) |
                    ![5](https://static.supaqr.com/public/imgs/bodys/16.png) |
                    ![6](https://static.supaqr.com/public/imgs/bodys/17.png) |
                    ![7](https://static.supaqr.com/public/imgs/bodys/dot32.png)
                    |

                    | **Star** | **Star Lt** | **Rhombus** | **Square** |
                    **Liquid Lt** | **Line** | **Square Lt** |
                type:
                  type: string
                  enum:
                    - single
                    - image
                    - gradient
                  default: single
                  description: Defines the color and style of the QR code's dots
                value:
                  oneOf:
                    - type: string
                      title: When type = 'single'
                      description: Hex color code
                      example: '#000000'
                    - type: string
                      title: When type = 'image'
                      format: uri
                      description: >-
                        URL of the image.

                        Retrieve the image URL from
                        https://supaqr.com/dash-board/images.
                      example: https://example.com/abc.png
                    - type: string
                      title: When type = 'gradient'
                      description: 'Hex gradient colors: #xxxxxx, #xxxxxx'
                      example: '#000000,#FFFFFF'
                direction:
                  type: string
                  description: |-
                    When type='gradient'
                    Specifies the angle or orientation of color gradients
                  enum:
                    - Horizontal
                    - Vertical
                    - Diagonal
                    - Diagonal inverted
                    - Radial
                  default: Horizontal
              description: >-
                Defines the appearance of the QR code’s central data modules
                (the black dots).
              required:
                - style_id
                - type
                - value
              nullable: true
            eye:
              type: object
              properties:
                style_id:
                  type: string
                  description: >-
                    Defines the visual design of the three corner finder
                    patterns (eyes) in the QR code.


                    ### Style ID


                    |       |       |       |       |       |       |       |

                    |-------|-------|-------|-------|-------|-------|-------|

                    | ![1](https://static.supaqr.com/public/imgs/eyes/e1.png) |
                    ![2](https://static.supaqr.com/public/imgs/eyes/e2.png) |
                    ![3](https://static.supaqr.com/public/imgs/eyes/e3.png) |
                    ![4](https://static.supaqr.com/public/imgs/eyes/e4.png) |
                    ![5](https://static.supaqr.com/public/imgs/eyes/e5.png) |
                    ![6](https://static.supaqr.com/public/imgs/eyes/e6.png) |
                    ![7](https://static.supaqr.com/public/imgs/eyes/e7.png) |

                    | **1** | **2** | **3** | **4** | **5** | **6** | **7** |


                    |       |       |       |       |       |       |       |

                    |-------|-------|-------|-------|-------|-------|-------|

                    | ![1](https://static.supaqr.com/public/imgs/eyes/e8.png) |
                    ![2](https://static.supaqr.com/public/imgs/eyes/e16.png) |
                    ![3](https://static.supaqr.com/public/imgs/eyes/e18.png) |
                    ![4](https://static.supaqr.com/public/imgs/eyes/e19.png) |
                    ![5](https://static.supaqr.com/public/imgs/eyes/e20.png) |
                    ![6](https://static.supaqr.com/public/imgs/eyes/e22.png) |
                    ![7](https://static.supaqr.com/public/imgs/frames/qr_none.png)
                    |

                    | **8** | **16** | **18** | **19** | **20** | **22** |
                    **none** |
                  enum:
                    - '1'
                    - '2'
                    - '3'
                    - '4'
                    - '5'
                    - '6'
                    - '7'
                    - '8'
                    - '16'
                    - '18'
                    - '19'
                    - '20'
                    - '22'
                  default: '1'
                type:
                  type: string
                  description: >-
                    Defines the color and style of the QR code's eyes, with
                    options including same (uniform color), diff (different
                    inner and outer colors), image (image-based styling), and
                    gradient (smooth color transitions).
                  enum:
                    - same
                    - diff
                    - image
                    - gradient
                    - none
                  default: same
                value:
                  oneOf:
                    - type: string
                      title: When type='same'
                      description: Hex color code
                      example: '#000000'
                    - type: string
                      title: When type='gradient' or type='diff'
                      description: >-
                        The different color or gradient color of the eye. Hex
                        gradient colors: #xxxxxx, #xxxxxx

                        When type='diff' or type='gradient'
                      example: '#FFFFFF,#000000'
                    - type: string
                      title: When type='image'
                      description: >-
                        The url of the image.

                        Retrieve the image URL from
                        https://supaqr.com/dash-board/images.
                      format: uri
                      example: https://example.com/abc.png
                direction:
                  type: string
                  description: |-
                    Gradient direction
                    For cases requiring type='gradient'
                  enum:
                    - Horizontal
                    - Vertical
                    - Diagonal
                    - Diagonal inverted
                    - Radial
                  default: Horizontal
              description: Customizes the three corner marker squares.
              required:
                - style_id
                - value
              nullable: true
          description: >-
            Allows customization of the QR code's appearance by modifying its
            finder patterns (the three corner squares) or alignment patterns
            (smaller squares inside the code).
          nullable: true
        logo:
          $ref: '#/components/schemas/icon'
          description: Embeds a small logo/image in the QR code.
          nullable: true
    location:
      type: object
      properties:
        country:
          type: string
          description: Country code (e.g., AF)
          minLength: 1
          maxLength: 20
          example: AF
        url:
          type: string
          description: The URL to redirect to when the country code matches
          format: uri
          minLength: 1
          maxLength: 2000
          example: https://example.com
      required:
        - country
        - url
    number:
      type: object
      properties:
        number:
          type: integer
          description: Short link clicks or QR code scans
          format: int32
          minimum: 1
          example: 100
        url:
          type: string
          description: >-
            The URL to redirect to when the click count or scan count reaches
            the value set in “number”
          format: uri
          minLength: 1
          maxLength: 2000
          example: https://example.com
      required:
        - number
        - url
    time:
      type: object
      properties:
        startTime:
          type: string
          description: The start time of the time range
          format: time
          minLength: 1
          maxLength: 10
          example: '06:12'
        endTime:
          type: string
          description: The end time of the time range
          format: time
          minLength: 1
          maxLength: 10
          example: '18:23'
        url:
          type: string
          description: >-
            The URL to redirect to when the current time falls within the set
            time range.
          format: uri
          minLength: 1
          maxLength: 2000
          example: https://example.com
      required:
        - startTime
        - url
        - endTime
    language:
      type: object
      properties:
        language:
          type: string
          description: The device language, e.g., English.
          minLength: 1
          maxLength: 50
          enum:
            - English
            - Chinese(Simplified)
            - Chinese(Traditional)
            - Spanish
            - French
            - German
            - Japanese
            - Russian
            - Arabic
            - Korean
            - Portuguese
            - Italian
            - Turkish
            - Polish
            - Dutch
            - Greek
            - Hebrew
            - Hindi
            - Indonesian
            - Thai
            - Vietnamese
            - Swedish
            - Danish
            - Norwegian
            - Finnish
            - Czech
            - Hungarian
            - Romanian
            - Slovak
            - Bulgarian
            - Slovenian
            - Croatian
            - Serbian
            - Macedonian
            - Lithuanian
            - Latvian
            - Estonian
            - Maltese
            - Icelandic
          example: English
        url:
          type: string
          description: >-
            The URL to redirect to when the device language matches the set
            language.
          format: uri
          minLength: 1
          maxLength: 2000
          example: https://example.com
      required:
        - language
        - url
    icon:
      type: object
      properties:
        type:
          type: string
          enum:
            - image
            - preset
          description: >-
            Specifies whether the logo is a predefined system-built image or a
            user-uploaded
        value:
          oneOf:
            - type: string
              title: When type = 'image'
              description: >-
                The Url of the logo.

                Retrieve the image URL from
                https://supaqr.com/dash-board/images.

                When type='image'
              minLength: 1
              maxLength: 2000
            - type: string
              title: When type = 'preset'
              enum:
                - scanme
                - youtube
                - facebook
                - whatsapp
                - instagram
                - linkedin
                - telegram
                - twitter
                - messenger
                - tiktok
                - snapchat
                - skype
                - spotify
                - pinterest
                - drrrible
                - behance
                - google
                - twitch
                - xbox
                - dropbox
                - reddit
                - vimeo
                - gitHub
                - discord
                - wechat
                - x
              description: When type='preset'
              example: scanme
        location:
          type: string
          description: Sets where the logo is placed within the QR code.
          enum:
            - Center
            - Bottom Right
          default: Center
          nullable: true
        shape:
          type: string
          description: Defines the logo’s display shape
          enum:
            - Squared
            - Circle
          default: Squared
          nullable: true
        size:
          type: integer
          description: Controls the logo’s width/height relative to the QR code.
          minimum: 1
          maximum: 4
          default: 2
          nullable: true
        hasBackground:
          type: boolean
          description: Adds a solid background behind the logo for better visibility.
          default: true
          nullable: true
        shadow:
          type: boolean
          description: Applies a shadow effect to the logo for depth.
          default: false
          nullable: true
      description: Embeds a small logo/image in the center of the QR code.
      required:
        - value
        - type
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````