The GetQR API is in beta and is available to selected workspaces. Details may change before the general release.
styles, frameOptions and logoOptions objects when you create or update it. All fields are optional, and defaults apply to anything you leave out.
The same three objects work on QR codes, templates and bulk creations. Unknown shapes, frames or logos are rejected with 422.
Example design object
Styles
Thestyles object sets the pattern shapes and colors.
- Colors. Hex values only:
#RGBor#RRGGBB. - Error correction. Always
Q, and not an input. Sendingstyles.qrOptionsgets422. - Branded and AI designs. Can’t be set through the API. Sending
styles.logoQrArtgets422. - Content.
styles.datais ignored. The image always encodes the QR code’s content.
Frames
TheframeOptions object adds a decorative frame with a call to action around the QR code.
General frames
General frames
none, card, card-1, card-2, card-3, card-4, card-5, card-7, card-8, card-9, card-10, card-11, card-12, card-13, card-14, card-15, card-hor, wreath, envelope, waitress, coffee-cup, scooter, clipboardcard-hor shows no label.Frames by QR code type
Frames by QR code type
Any frame works with any QR code type. The grouping matches the dashboard.
textColor must differ from color doesn’t apply to them.
Logos
ThelogoOptions object places a logo in the center of the QR code. Set type to pick the kind of logo.
Suggested logo
Settype to suggested and pick an id from the catalog. Use logo-none for no logo.
All suggested logo IDs
All suggested logo IDs
logo-none, logo-website-3, logo-website-4, logo-link, logo-pdf-1, logo-pdf-2, logo-pdf-3, logo-picture-1, logo-picture-2, logo-picture-3, logo-picture-5, logo-picture-7, logo-picture-8, logo-video-1, logo-video-5, logo-whatsapp-1, logo-whatsapp-2, logo-whatsapp, logo-wifi-1, logo-wifi-2, logo-wifi-3, logo-wifi, logo-airbnb, logo-apple, logo-binance, logo-bitcoin, logo-bolt-food, logo-booking, logo-facebook, logo-glovo, logo-google, logo-google-maps, logo-google-play, logo-instagram, logo-linkedin, logo-location, logo-mail, logo-paypal, logo-stripe, logo-venmo, logo-cashapp, logo-braintree, logo-square, logo-verifone, logo-google-pay, logo-apple-pay, logo-klarna, logo-ayden, logo-giropay, logo-cartes-bancaires, logo-restaurant, logo-scan-me, logo-tripadvisor, logo-trustpilot, logo-uber-eats, logo-youtube, logo-spotify, logo-spotify-blackYour own logo
1
Upload the image
Register it with Files using
"target": "logo", then upload the file to the returned uploadUrl.2
Reference the file
Set
type to uploaded and fileId to the returned fileId. fileId is required, and it must be an ID returned by the Files endpoint.Logo size
scalePercent sets the logo size as a percentage of the QR code. It takes a whole number from 15 to 45. The default is 25. Other values, including ratios such as 0.25, get 422.
Updating a design
- Partial updates. On Update a QR code,
styles,frameOptionsandlogoOptionsare merged into the stored design. A partial object changes only what it names. - Changing the logo. Picking another logo replaces the stored one but keeps its
scalePercent. - Templates. With
templateIdon create, the fields you send are merged on top of the template’s design. See Templates. - Branded and AI designs. A QR code with
designKindbrandedoraiwas made in the dashboard. The API can’t edit its picture, but keeps it when you change other fields. - Reading a design. Responses return the stored design under
design, in the same shape as the request fields, so you can send it back.
Common issues
422 "Error correction is always Q and is not an input"
422 "Error correction is always Q and is not an input"
Remove
styles.qrOptions from the request.422 "Frame caption is at most 12 characters"
422 "Frame caption is at most 12 characters"
Shorten
frameOptions.text to 12 characters or fewer.422 "Frame caption color must differ from the frame color"
422 "Frame caption color must differ from the frame color"
textColor and color are the same on a frame that shows a label. Pick a contrasting textColor.422 "Logo scale is a whole number from 15 to 45"
422 "Logo scale is a whole number from 15 to 45"
Send
scalePercent as a whole percentage, for example 25, not 0.25.The corner color doesn't change
The corner color doesn't change
Corners always use
dotsOptions.color. cornersSquareOptions.color and cornersDotOptions.color have no effect.