Search specific term/phrase surrounded by double quotes. e.g. “deep linking”
Exclude records that contain a specific term prefixed with a minus. e.g. Android -Firebase

Overview

The QR Code API is an HTTP API that can be use for creating custom QR Codes programmatically. Every QR Code will contain a unique Branch link which you can deep link and track analytics with.

Access

Access to the QR Code API requires our Engagement Pro package.

This package also includes access to dynamic QR Codes, custom QR Codes, and QR Code analytics.

Learn more on our pricing page.

Create a QR Code

Endpoint

POST /v2/qr-code
Content-Type: application/json

Rate Limits

  • 25 requests per second
  • 100 requests per minute
  • 1000 requests per hour

Parameters

ParameterTypeDefinition
branchkey (_REQUIRED)StringThe Branch key of the originating app; from your Branch Settings Dashboard
data (Optional)JSONThe dictionary to embed link data behind the QR Code. Accessed as session or install parameters from the SDK. Use the data dictionary for all link control parameters that you'll find here.
Branch analytics parameters (Optional)StringIt's important to tag your links with an organized structure of analytics labels so that the data appears consistent and readable in the dashboard.
qr_code_settingsJSONIf this nor any of the key/value pairs are not present, we will utilize your app defaults. See table below for setting details. Required if you would like to override QR code properties defined on the Branch Dashboard.

qr_code_settings

ParameterTypeDefinition
code_colorStringHex color value of the QR Code itself.
background_colorStringHex color value of the background of the QR code itself.
marginInteger (Pixels)The number of pixels you want for the margin (minimum: 0px, maximum 20px).
widthInteger (Pixels)Output size of QR Code image (minimum: 300px, maximum: 2000px). Only applicable to JPEG/PNG.
image_formatStringPNG, JPEG, or JPG.
center_logo_urlString (HTTP URL)URL to the image you want as a center logo, for example: “https://cdn.branch.io/branch-assets/1598575682753-og_image.png"

If you're using a JPEG image, the color space should be RGB.
code_patternIntegerInstead of the generic/standard QR-Code pattern we’re used to seeing, customers can now use (1) standard, (2) squares, (3) circles, (4) triangles, (5) diamonds, (6) hexagons, and (7) octagons.
finder_patternIntegerThe finder pattern refers to the shape seen in the top left, top right, and bottom left of a QR-Code. Users can now choose between a (1) square, (2) rounded square, or (3) circle.
finder_pattern_colorStringHex color value of the Finder Pattern, which can be found at: https://htmlcolorcodes.com/
background_image_urlStringLayer the QR-Code on top a background image.
code_pattern_urlStringA direct link to an image, meant to be used as the code-pattern itself on the QR Code.
finder_eye_colorStringHex color value of the finder eye, which can be found at: https://htmlcolorcodes.com/

Sample Request

curl --request POST \
     --url https://api2.branch.io/v2/qr-code \
     --header 'accept: image/*' \
     --header 'content-type: application/json' \
     --data '
{
     "qr_code_settings": {
          "code_pattern": 1,
          "finder_pattern": 1,
          "image_format": "png",
          "center_logo_url": "https://cdn.branch.io/branch-assets/1598575682753-og_image.png",
          "width": 300,
          "margin": 1,
          "code_color": "#000000",
          "background_color": "#FFFFFF",
          "finder_pattern_color": "#000000",
          "finder_eye_color": "#000000"
     },
     "branch_key": "key_live_xxxx"
}
'

📘

Image Ouput

Note that the output of this cURL requests will be saved in the current directory as the file name indicated at the end of the request e.g. qr_code.png.

Result