Pular para o conteúdo
QR Code Jágerador de QR Code grátis

API pública de QR Code em JSON

Gere QR Code em SVG ou PNG, analise um conteúdo, monte um BR Code de Pix e consulte a tabela de capacidade da ISO/IEC 18004 — sem chave, sem cadastro e sem custo. A resposta é JSON ou a própria imagem, com Access-Control-Allow-Origin: *.

Limite: 40 requisições por minuto por endereço IP. Acima disso, a resposta é 429. Para volume maior, escreva pelo contato descrevendo o caso — costuma ser resolvido rápido.

Antes de tudo: onde o conteúdo trafega

O gerador da interface do site monta o QR Code no navegador: nada do que é digitado lá chega até nós. A API é a exceção óbvia — para gerar a imagem no servidor, o conteúdo precisa viajar na requisição. Ele não é gravado em banco, aparecendo apenas no log volátil de acesso do servidor, que é rotacionado.

Consequência prática: não use a API para conteúdo sensível — chave Pix de terceiro, senha de rede corporativa, dados pessoais. Para esses casos, gere pelo navegador, na página do formato, ou rode o codificador do lado do seu servidor.

GET /api/v1/qr

Gera o símbolo e devolve a imagem pronta. É o endpoint que serve para embutir um QR Code direto no seu HTML, com uma tag <img>.

ParâmetroTipoDescrição
textostringobrigatório. O conteúdo do código, até 2.953 bytes.
formatostringsvg (padrão), png ou json.
nivelstringcorreção de erro: L, M (padrão), Q ou H.
escalainteirosó no PNG: pixels por módulo, de 1 a 30 (padrão 8).
pxinteirosó no SVG: largura e altura declaradas na tag.
corhexcor dos módulos, 6 dígitos sem # (padrão 000000). Precisa ser escura.

Exemplo: /api/v1/qr?texto=https://www.qrcodeja.com.br&formato=png&escala=8

GET /api/v1/analisar

Identifica o formato do conteúdo e devolve como ele se comporta nos quatro níveis de correção — versão, módulos, modo, ocupação e lado mínimo de impressão.

ParâmetroTipoDescrição
textostringobrigatório. O conteúdo a analisar.

Exemplo: /api/v1/analisar?texto=WIFI:T:WPA;S:Loja;P:senha2026;;

GET /api/v1/pix

Monta um BR Code estático de Pix, com o CRC16 já calculado, conforme o Manual de Padrões para Iniciação do Pix do Banco Central.

ParâmetroTipoDescrição
chavestringobrigatório. CPF, CNPJ, e-mail, telefone ou chave aleatória.
nomestringnome do recebedor, até 25 caracteres. Acentos são removidos automaticamente.
cidadestringcidade do recebedor, até 15 caracteres.
valornúmeroopcional. Sem valor, o pagador escolhe quanto pagar.
txidstringidentificador da transação. Padrão ***.

Exemplo: /api/v1/[email protected]&nome=Loja%20Exemplo&cidade=Vitoria&valor=25.50

GET /api/v1/capacidade

Consulta a tabela de capacidade calculada a partir dos parâmetros da ISO/IEC 18004. Informe versao para os dados completos de uma versão, ou nivel e modo para a tabela das 40.

ParâmetroTipoDescrição
versaointeiro1 a 40. Devolve módulos, codewords, blocos e capacidade nos quatro níveis.
nivelstringusado com modo: L, M, Q ou H.
modostringusado com nivel: numerico, alfanumerico ou byte.

Exemplo: /api/v1/capacidade?versao=10

GET /api/v1/tipos

Lista os 18 tipos de QR Code documentados no site, com o formato do payload, a correção recomendada e a especificação que define cada um.

Exemplo: /api/v1/tipos

GET /api/v1/segmentos

Lista os 42 segmentos de negócio e quais formatos têm aplicação documentada em cada um.

Exemplo: /api/v1/segmentos

Exemplos de uso

Embutir um QR Code numa página

Como o endpoint devolve a imagem, ele funciona direto numa tag de imagem. Lembre de codificar o conteúdo para URL:

<img src="https://www.qrcodeja.com.br/api/v1/qr?texto=https%3A%2F%2Fexemplo.com.br&formato=png&escala=6"
     alt="QR Code do site" width="248" height="248">

Gerar em lote no terminal

while read linha; do
  curl -s "https://www.qrcodeja.com.br/api/v1/qr?texto=$(printf %s "$linha" | jq -sRr @uri)&formato=png" \
    -o "qr-$(echo "$linha" | md5sum | cut -c1-8).png"
done < lista.txt

Descobrir a versão antes de decidir o tamanho de impressão

curl -s "https://www.qrcodeja.com.br/api/v1/analisar?texto=BEGIN:VCARD..." | jq '.niveis.M'

A resposta traz ladoMinimoCm, que é o menor lado em que aquele símbolo ainda mantém módulos de 0,4 mm — o piso prático para impressão comum.

Quando usar a API e quando não usar

Usar: geração em lote (etiquetas, crachás, mesas numeradas de um salão), integração com sistema próprio (cada pedido gera um QR de Pix com valor), consulta de capacidade dentro de um validador de arte, e embutir um código estático numa página que você controla.

Não usar: conteúdo sensível de terceiros, volume acima do limite sem combinar antes, e — o mais importante — como fonte em tempo real de um material impresso. QR Code estático não precisa de servidor: gere uma vez, salve o SVG e imprima. Um <img> apontando para a nossa API dentro do seu site funciona, mas cria uma dependência desnecessária entre o seu site e o nosso.

Se o volume for grande e recorrente, o caminho mais robusto é rodar o codificador do seu lado: o arquivo qr.js deste site é servido publicamente em /qr.js, funciona em Node e no navegador, não tem dependência e implementa a norma inteira. Copie e use.

Códigos de resposta

CódigoSignificado
200Sucesso.
400Parâmetro ausente ou inválido. O corpo traz erro com a explicação.
404Endpoint inexistente.
413Conteúdo maior que 2.953 bytes, a capacidade máxima do QR Code.
429Limite de 40 requisições por minuto excedido.

As respostas de imagem têm Cache-Control: public, max-age=86400 — o mesmo conteúdo gera exatamente o mesmo símbolo, então cachear é seguro e economiza requisição.

Perguntas frequentes

Preciso de chave de API?

Não. A API é aberta, com limite de 40 requisições por minuto por IP. Para volume maior, fale pelo contato.

Posso usar em produto comercial?

Pode, respeitando o limite e os termos de uso. O que pedimos é citar a fonte quando reproduzir as tabelas técnicas, e não usar a API como infraestrutura de um serviço concorrente sem falar antes.

A API guarda o que eu envio?

Não em banco. O conteúdo aparece no log volátil de acesso do servidor, que é rotacionado. Para conteúdo sensível, gere pelo navegador na página do gerador, onde nada trafega.

Por que o mesmo texto gera sempre a mesma imagem?

Porque a codificação é determinística: mesmo conteúdo, mesmo nível e mesma máscara vencedora produzem a mesma matriz. É o que permite cachear a resposta por 24 horas.

Dá para gerar QR Code de Pix com valor variável?

Dá: chame /api/v1/pix com o parâmetro valor a cada cobrança. Cada chamada devolve um BR Code novo, com o CRC recalculado. Sem o parâmetro, o código sai com valor em aberto.

Esta página resolveu sua dúvida?