Bitly QR Codes API

Create dynamic and static QR Codes, customize their render, fetch the image, upgrade a code to a Bitlink, and read scan metrics by browser, city, country and device OS. 16 operation(s), extracted verbatim from the OpenAPI Bitly publishes at https://dev.bitly.com/v4/v4.json.

OpenAPI Specification

bitly-qr-codes-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Bitly QR Codes API
  description: The QR Codes surface of the Bitly v4 REST API. Extracted verbatim, operation-for-operation,
    from the authoritative OpenAPI Bitly publishes at https://dev.bitly.com/v4/v4.json — no operation,
    parameter or schema was authored by API Evangelist.
  version: 4.0.0
  termsOfService: https://bitly.com/pages/terms-of-service
  contact:
    url: https://bitly.is/API-support
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api-ssl.bitly.com/v4
security:
- bearerAuth: []
tags:
- name: QR Codes
  description: 'QR codes can be created and customized with different dot patterns, corner shapes, colors,
    and more. They can contain bitlinks, links to microsites, or several kinds of static data.

    '
paths:
  /qr-codes:
    post:
      summary: Create a QR Code
      description: Create a new QR Code and return its metadata
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicCreateQRCodeRequest'
            examples:
              Minimal:
                value:
                  title: Minimal QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    bitlink_id: bit.ly/abc123
                  tags:
                  - tag1
                  - tag2
              Link in Bio:
                value:
                  title: Link-in-Bio QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    site_id: Mabc123
              Complex:
                value:
                  title: Complex QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    bitlink_id: bit.ly/abc123
                  archived: false
                  render_customizations:
                    background_color: '#ffffff'
                    dot_pattern_color: '#EF8000'
                    dot_pattern_type: rounded
                    corners:
                      corner_1:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: concave
                      corner_2:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: leaf
                      corner_3:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: target
                    logo:
                      image_guid: bitlylogo
                    frame:
                      id: text_top_and_bottom
                      colors:
                        primary: '#F55656'
                        background: '#FFFFFF'
                      text:
                        primary:
                          content: QR Frame
                        secondary:
                          content: Frame Text
                    branding:
                      bitly_brand: true
              Gradients:
                value:
                  title: Gradient QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    bitlink_id: bit.ly/abc123
                  archived: false
                  render_customizations:
                    dot_pattern_type: rounded
                    corners:
                      corner_1:
                        shape: leaf
                      corner_2:
                        shape: leaf
                      corner_3:
                        shape: leaf
                    gradient:
                      style: linear
                      angle: 45
                      colors:
                      - color: '#C80404'
                        offset: 10
                      - color: '#042F86'
                        offset: 90
                      exclude_corners: false
                    background_gradient:
                      style: radial
                      colors:
                      - color: '#C696EE'
                        offset: 25
                      - color: '#D4E1A8'
                        offset: 50
              Framed:
                value:
                  title: Framed QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    bitlink_id: bit.ly/abc123
                  archived: false
                  render_customizations:
                    frame:
                      id: arrow
                      colors:
                        primary: '#F55656'
                        background: '#FFFFFF'
                      text:
                        primary:
                          content: Scan Here
                    background_color: '#ffffff'
                    dot_pattern_color: '#EF8000'
                    dot_pattern_type: rounded
                    corners:
                      corner_1:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: concave
                      corner_2:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: leaf
                      corner_3:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: target
                    logo:
                      image_guid: bitlylogo
              Lowest Error Correction:
                value:
                  title: Lowest Error Correction QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    bitlink_id: bit.ly/abc123
                  render_customizations:
                    spec_settings:
                      error_correction: 1
              GS1:
                value:
                  title: GS1 QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    bitlink_id: bit.ly/abc123
                  gs1:
                    values:
                    - key: '01'
                      value: '12345670'
              With Expiration:
                value:
                  group_guid: Ba1bc23dE4F
                  destination:
                    bitlink_id: bit.ly/abc123
                  expiration_at: 2025-07-28T14:30:00+0000
              Stand Alone QR Code:
                value:
                  title: Stand Alone QR Code
                  group_guid: Ba1bc23dE4F
                  destination:
                    long_url: https://example.com/page
      operationId: createQRCodePublic
      tags:
      - QR Codes
      responses:
        '201':
          description: CREATED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QRCodeMinimal'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '402':
          description: UPGRADE_REQUIRED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpgradeRequired'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '429':
          description: MONTHLY_LIMIT_EXCEEDED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyLimitExceeded'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /qr-codes/static:
    post:
      summary: Generate a static QR Code image
      description: 'Generate a static QR code image without creating or saving a QR code resource. SVG
        and PNG output are supported via the Accept header

        Contact your Account Manager to discuss enabling this feature for your account.


        The `render_customizations` field supports basic appearance options. Customizations that require
        the rasterize API are not supported: `gradient`, `background_gradient`, `frame`, `text`, and `logo`.


        The Accept header controls the response format:

        - `application/json` (default): Returns a JSON object with the image as a base64-encoded byte
        string.

        - `image/svg+xml`: Returns the raw SVG image.

        - `image/png`: Returns the raw PNG image.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicCreateStaticQRCodeRequest'
            examples:
              Minimal:
                value:
                  content: https://bitly.com
                  group_guid: Ba1bc23dE4F
              With Customizations:
                value:
                  content: https://bitly.com
                  group_guid: Ba1bc23dE4F
                  render_customizations:
                    background_color: '#ffffff'
                    dot_pattern_color: '#EF8000'
                    dot_pattern_type: rounded
                    corners:
                      corner_1:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: leaf
                      corner_2:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: leaf
                      corner_3:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: leaf
      operationId: createStaticQRCodePublic
      tags:
      - QR Codes
      parameters:
      - in: header
        name: Accept
        description: Controls the response format. Use `application/json` (default) to receive a JSON-wrapped
          base64 image, `image/svg+xml` to receive the raw SVG, or `image/png` to receive the raw PNG.
        schema:
          type: string
          enum:
          - application/json
          - image/svg+xml
          - image/png
        required: false
        example: image/svg+xml
      - in: query
        name: format
        description: The image format. Supports `svg` and `png`. Ignored if the Accept header specifies
          an image type.
        schema:
          type: string
          enum:
          - svg
          - png
          default: svg
        required: false
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicStaticQRCodeResponse'
            image/svg+xml:
              schema:
                type: string
              example: <svg>QR code svg</svg>
            image/png:
              schema:
                type: string
                format: binary
              example: '...png bytes...'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '406':
          description: NOT_ACCEPTABLE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '422':
          description: UNPROCESSABLE_ENTITY
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntity'
        '429':
          description: MONTHLY_LIMIT_EXCEEDED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyLimitExceeded'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /qr-codes/{qrcode_id}/image:
    get:
      summary: Retrieve a QR Code image
      description: 'Get the image of a given QR Code. The Accept header controls how this is returned
        (options are "application/json", "image/svg+xml", and "image/png").

        If the Accept header is "application/json" the format query parameter will determine the image
        format inside of the json (which will be base64 encoded and prefixed with its mime type as would
        be suitable for a HTML image src tag).

        To Return the QR Code image itself, set the Accept header to "image/svg+xml" or "image/png", or
        remove the Accept header and set the format query parameter to “svg” or “png” (if no format is
        specified the default will be “svg”).

        '
      operationId: getQRCodeImagePublic
      tags:
      - QR Codes
      parameters:
      - in: header
        name: Accept
        description: The file format for the QR code's image. If the accept header is application/json
          the image data will be wrapped in a json object, base64 encoded and prefixed with its mime type
          as would be suitable for a HTML image src tag.
        schema:
          type: string
        required: false
        example: image/svg+xml
      - $ref: '#/components/parameters/QRCodeID'
      - in: query
        name: format
        description: The format type of the image. If there is an image format in the header it takes
          precedence.
        schema:
          type: string
          enum:
          - svg
          - png
          default: svg
          example: svg
        required: false
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicQRCodeImageResponse'
            image/svg+xml:
              schema:
                type: string
              example: <svg>QR code svg</svg>
            image/png:
              schema:
                type: string
              example: '...png bytes...'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /qr-codes/{qrcode_id}:
    patch:
      summary: Update a QR Code
      description: Updates the QR code with a matching id and returns it.
      operationId: updateQRCodePublic
      tags:
      - QR Codes
      parameters:
      - in: path
        name: qrcode_id
        description: The QR code ID
        schema:
          type: string
        required: true
        example: Qabc123
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicUpdateQRCodeRequest'
            examples:
              Minimal:
                value:
                  title: Minimal QR Code Updated
                  tags:
                  - tag1
                  - tag2
              Complex:
                value:
                  title: Complex QR Code Updated
                  archived: false
                  render_customizations:
                    background_color: '#ffffff'
                    dot_pattern_color: '#EF8000'
                    dot_pattern_type: rounded
                    corners:
                      corner_1:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: concave
                      corner_2:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: leaf
                      corner_3:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: target
                    logo:
                      image_guid: bitlylogo
                    frame:
                      id: text_top_and_bottom
                      colors:
                        primary: '#F55656'
                        background: '#FFFFFF'
                      text:
                        primary:
                          content: QR Frame
                        secondary:
                          content: Frame Text
                    branding:
                      bitly_brand: true
              Gradients:
                value:
                  title: Gradient QR Code Updated
                  archived: false
                  render_customizations:
                    dot_pattern_type: rounded
                    corners:
                      corner_1:
                        shape: leaf
                      corner_2:
                        shape: leaf
                      corner_3:
                        shape: leaf
                    gradient:
                      style: linear
                      angle: 45
                      colors:
                      - color: '#C80404'
                        offset: 10
                      - color: '#042F86'
                        offset: 90
                      exclude_corners: false
                    background_gradient:
                      style: radial
                      colors:
                      - color: '#C696EE'
                        offset: 25
                      - color: '#D4E1A8'
                        offset: 50
              Framed:
                value:
                  title: Framed QR Code Updated
                  archived: false
                  render_customizations:
                    frame:
                      id: arrow
                      colors:
                        primary: '#F55656'
                        background: '#FFFFFF'
                      text:
                        primary:
                          content: Scan Here
                    background_color: '#ffffff'
                    dot_pattern_color: '#EF8000'
                    dot_pattern_type: rounded
                    corners:
                      corner_1:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: concave
                      corner_2:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: leaf
                      corner_3:
                        inner_color: '#EF8000'
                        outer_color: '#EF8000'
                        shape: target
                    logo:
                      image_guid: bitlylogo
              Lowest Error Correction:
                value:
                  title: Lowest Error Correction QR Code Updated
                  render_customizations:
                    spec_settings:
                      error_correction: 1
              With Expiration:
                value:
                  expiration_at: 2025-07-28T14:30:00+0000
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QRCodeMinimal'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
    get:
      summary: Retrieve a QR Code
      description: Gets the QR code with a matching id.
      operationId: getQRCodeByIdPublic
      tags:
      - QR Codes
      parameters:
      - $ref: '#/components/parameters/QRCodeID'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QRCodeDetails'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
    delete:
      summary: Delete a QR Code
      description: Delete a QR Code that has not been redirected and is not for a custom link. Also deletes
        the associated link (if applicable).
      operationId: deleteQRCode
      tags:
      - QR Codes
      parameters:
      - $ref: '#/components/parameters/QRCodeID'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDeleteQRCodeResponse'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '429':
          description: MONTHLY_LIMIT_EXCEEDED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyLimitExceeded'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /groups/{group_guid}/qr-codes:
    get:
      summary: Retrieve QR Codes by Group
      description: 'Retrieves a list of QR codes matching the filter settings. Values are in reverse chronological
        order.

        The pagination occurs by calling the next link in the pagination response object.

        '
      operationId: listQRMinimal
      tags:
      - QR Codes
      parameters:
      - $ref: '#/components/parameters/GroupGUID'
      - $ref: '#/components/parameters/FilterHasRenderCustomizations'
      - $ref: '#/components/parameters/Size'
      - $ref: '#/components/parameters/SearchAfterQR'
      - $ref: '#/components/parameters/Query'
      - $ref: '#/components/parameters/HostnamePathQuery'
      - $ref: '#/components/parameters/CreatedBefore'
      - $ref: '#/components/parameters/CreatedAfter'
      - $ref: '#/components/parameters/Archived'
      - $ref: '#/components/parameters/CreatingLogin'
      - $ref: '#/components/parameters/FilterQRCodeType'
      - $ref: '#/components/parameters/FilterIsGS1'
      - $ref: '#/components/parameters/FilterIsExpired'
      - $ref: '#/components/parameters/FilterHasExpiration'
      - $ref: '#/components/parameters/FilterHasDynamicRouting'
      - $ref: '#/components/parameters/Tags'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QRCodesMinimal'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '429':
          description: MONTHLY_LIMIT_EXCEEDED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyLimitExceeded'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
    patch:
      summary: Bulk update QR codes
      description: 'Bulk update can add or remove tags, or archive/un-archive, up to 100 QR codes at a
        time.

        Pages QR codes cannot be updated with this endpoint.

        The response includes a list of QR code ids that were updated.

        '
      tags:
      - QR Codes
      operationId: updateQRCodesByGroup
      parameters:
      - $ref: '#/components/parameters/GroupGUID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QRCBulkUpdateRequest'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QRCBulkUpdate'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '422':
          description: UNPROCESSABLE_ENTITY
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntity'
        '429':
          description: MONTHLY_LIMIT_EXCEEDED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonthlyLimitExceeded'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
        '503':
          description: TEMPORARILY_UNAVAILABLE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemporarilyUnavailable'
  /qr-codes/{qrcode_id}/scans:
    get:
      summary: Get Scans for a QR Code
      description: Returns an array of scan counts for the specified QR code. The array is comprised of
        scan counts for each time window, where the window is based on the provided unit.
      operationId: getScanMetricsForQRCode
      tags:
      - QR Codes
      parameters:
      - $ref: '#/components/parameters/QRCodeID'
      - $ref: '#/components/parameters/TimeUnit'
      - $ref: '#/components/parameters/UnitAmount'
      - $ref: '#/components/parameters/UnitReferenceTimeStamp'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitlinkScans'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
        '503':
          description: TEMPORARILY_UNAVAILABLE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemporarilyUnavailable'
  /qr-codes/{qrcode_id}/scans/summary:
    get:
      summary: Get Scans Summary for a QR Code
      description: Returns the scan counts for a QR Code rolled up into a single field for a specified
        time window, where the window is based on the provided unit.
      operationId: getScanMetricsSummaryForQRCode
      tags:
      - QR Codes
      parameters:
      - $ref: '#/components/parameters/QRCodeID'
      - $ref: '#/components/parameters/TimeUnit'
      - $ref: '#/components/parameters/UnitAmount'
      - $ref: '#/components/parameters/UnitReferenceTimeStamp'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitlinkScansSummary'
        '400':
          description: BAD_REQUEST
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '403':
          description: FORBIDDEN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NOT_FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '410':
          description: GONE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Gone'
        '500':
          description: INTERNAL_ERROR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
        '503':
          description: TEMPORARILY_UNAVAILABLE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemporarilyUnavailable'
  /qr-codes/{qrcode_id}/scans/countries:
    get:
      summary: Get Scans for a QR Code by Country
      description: Returns the country origins of scan traffic for the specified QR Code.
      tags:
      - QR Codes
      operationId: getScanMetricsForQRCodeByCountries
      parameters:
      - $ref: '#/components/parameters/QRCodeID'
      - $ref: '#/components/parameters/TimeUnit'
      - $ref: '#/components/parameters/UnitAmount'
      - $ref: '#/components/parameters/Size'
      - $ref: '#/components/parameters/UnitReferenceTimeSta

# --- truncated at 32 KB (80 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bitly/refs/heads/main/openapi/bitly-qr-codes-api-openapi.yml