The QRCode API generate custom QR codes for any content. It supports custom colors, size, and several image formats.



Returns a QRCode image binary specified by input parameters.


data (required) - data to encode in the QR code.

format (required) - image format to return. Must be one of the following: png, jpg, jpeg, eps, svg.

size (optional) - size of the QR code image to generate. The output will be a square image with (size x size) dimensions.

fg_color (optional) - foreground color of the QR code. Must be a 6-digit hex color (e.g. 00ff00 for green). Default is 000000 (black)

bg_color (optional) - background color of the QR code. Must be a 6-digit hex color (e.g. 00ff00 for green). Default is ffffff (white)


X-Api-Key (required) - API Key associated with your account.

Accept (required) - header indicating the content type(s) to accept in the result. Set the value according to your format parameter:

  • png: image/png
  • jpg: image/jpg
  • jpeg: image/png
  • eps: application/postscript
  • svg: image/svg+xml

Note: Without the Accept header, the image data will be sent with base64 encoding, and you have to decode it using a base64 decoder library in your programming language before using it.

Sample Request URL

Live Demo!


Sample Response

import requests
data = 'https://api-ninjas.com'
fmt = 'png'
api_url = 'https://api.api-ninjas.com/v1/qrcode?data={}&format={}'.format(data, fmt)
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code == requests.codes.ok:
    print("Error:", response.status_code, response.text)
var data = 'https://api-ninjas.com';
var fmt = 'png'
    method: 'GET',
    url: 'https://api.api-ninjas.com/v1/qrcode?data=' + data + '&format=' + fmt,
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
const request = require('request');
var data = 'https://api-ninjas.com';
var fmt = 'png'
  url: 'https://api.api-ninjas.com/v1/qrcode?data=' + data + '&format=' + fmt,
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL("https://api.api-ninjas.com/v1/qrcode?data=https://api-ninjas.com&format=png");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
let data = "https://api-ninjas.com".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let fmt = "png"
let url = URL(string: "https://api.api-ninjas.com/v1/sentiment?data="+data!+"&format="+fmt)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.