Como Criar QR Codes via API da CodeQR: Guia Completo
Aprenda como usar a API da CodeQR para criar QR codes programaticamente e integrar essa funcionalidade em suas aplicações.

Aprenda como usar a API da CodeQR para criar QR codes programaticamente e integrar essa funcionalidade em suas aplicações.

A API da CodeQR é uma interface RESTful que permite criar, gerenciar e rastrear QR codes programaticamente. Com ela, você pode:
Para começar, você precisa de uma chave de API válida:

Saiba mais sobre como obter sua chave de API.
Todas as requisições devem incluir sua chave de API no header de autorização:
Authorization: Bearer codeqr_xxxxxxxx
Além da chave de API, você precisa do project slug do seu projeto. Este parâmetro é obrigatório em todas as requisições:
Como encontrar o project slug:
Todas as requisições devem ser feitas para:
https://api.codeqr.io
Importante: Todas as requisições devem incluir o parâmetro projectSlug na query string.
O parâmetro mínimo necessário é a url de destino:
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "url",
"url": "https://codeqr.io/blog",
}'
Escaneie para acessar

Resposta da API:
{
"id": "cmf6yawg30001pqrwjhd1bdxe",
"domain": "expol.ink",
"key": "iympEuajxgeP-qr",
"archived": false,
"expiresAt": null,
"expiredUrl": null,
"password": null,
"externalId": null,
"trackConversion": false,
"proxy": false,
"title": null,
"description": null,
"image": "https://res.cloudinary.com/dhnaggn4g/image/upload/v1757085378/expol.ink/iympEuajxgeP-qr.png",
"utm_source": null,
"utm_medium": null,
"utm_campaign": null,
"utm_term": null,
"utm_content": null,
"rewrite": false,
"doIndex": false,
"flexible": false,
"filled": true,
"ios": null,
"android": null,
"geo": null,
"static": false,
"type": "url",
"contentStatic": null,
"text": null,
"email": null,
"wifi": null,
"url": "https://codeqr.io/blog",
"phone": null,
"vcard": null,
"crypto": null,
"sms": null,
"facetime": null,
"latlog": null,
"pix": null,
"logo": null,
"bgColor": "#FFFFFF",
"fgColor": "#000000",
"size": 1024,
"level": "H",
"showLogo": true,
"src": "https://res.cloudinary.com/dhnaggn4g/image/upload/v1741477675/logos/clwazhjsm00002nx4heuc6vge.png",
"height": 153,
"width": 153,
"excavate": true,
"pattern": "default",
"shape": "none",
"frame": "none",
"frameColor": "#000000",
"frameText": null,
"userId": "cmbsr6sky0000ljvvbzz5qjkj",
"projectId": "clwazhjsm00002nx4heuc6vge",
"preRedirection": false,
"pageId": null,
"pageUrl": null,
"isFormMandatory": false,
"publicStats": false,
"scans": 0,
"lastClicked": null,
"leads": 0,
"sales": 0,
"saleAmount": 0,
"createdAt": "2025-09-05T14:49:17.761Z",
"updatedAt": "2025-09-05T15:16:21.270Z",
"tagId": null,
"comments": "",
"notificationToken": null,
"tags": [],
"shortLink": "https://expol.ink/iympEuajxgeP-qr",
"webhookIds": []
}A resposta da API contém vários campos úteis que você pode usar em sua aplicação:
image - URL da imagem do QR code
shortLink - Link encurtado
id - Identificador único
key - Slug personalizado
scans - Contador de escaneamentos
createdAt - Data de criação
💡 Dica: O campo image é especialmente importante - ele contém a URL direta para a imagem do QR code que você pode usar em sua aplicação, site ou impressões.
const response = await fetch("https://api.codeqr.io/qrcodes?projectSlug=acme", {
method: "POST",
headers: {
Authorization: "Bearer codeqr_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
type: "url",
url: "https://codeqr.io/blog",
}),
});
const qrCode = await response.json();
console.log("QR Code criado:", qrCode.shortLink);
console.log("Imagem do QR Code:", qrCode.image);
Você pode personalizar completamente a aparência do seu QR code:
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "url",
"url": "https://codeqr.io/blog",
"static": false,
"bgColor": "#fff5b1",
"fgColor": "#0017e5",
"showLogo": true,
"pattern": "diamond",
"shape": "square",
"frame": "none"
}'
Resultado

bgColor (string) - A cor de fundo do QR code
fgColor (string) - A cor de primeiro plano do QR code
size (number) - O tamanho do QR code
level (string) - O nível de correção de erro do QR code
showLogo (boolean) - Se o logo deve ser exibido no QR code
src (string | null) - A URL da imagem do QR code
height (number) - A altura do QR code
width (number) - A largura do QR code
excavate (boolean) - Se o QR code deve ter áreas escavadas
pattern (string) - O padrão de forma dos módulos do QR code
shape (string) - A forma do design ao redor do QR code
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://codeqr.io/blog",
"key": "meu-qr-personalizado",
"title": "QR Code do Produto",
"description": "QR code para página do produto",
"externalId": "PROD-001",
"tagIds": ["tag1", "tag2"]
}'
curl --request POST \
--url https://api.codeqr.io/qrcodes \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "url",
"url": "https://codeqr.io/blog",
}'
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "text",
"text": "Olá! Este é um QR code de texto."
}'
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "email",
"email": {
"to": "contact@codeqr.io",
"subject": "Assunto do email",
"body": "Corpo do email"
}
}'
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "wifi",
"wifi": {
"ssid": "NomeDaRede",
"password": "senha123",
"security": "WPA"
}
}'
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "phone",
"phone": "+5511999999999"
}'
curl --request POST \
--url https://api.codeqr.io/qrcodes \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "latlog",
"latlog": {
"latitude": -23.5505,
"longitude": -46.6333
}
}'
Proteja seus QR codes com senha e data de expiração:
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "url",
"url": "https://codeqr.io/blog",
"password": "password123",
"expiresAt": "2025-12-05T17:10:00.000Z",
}'
Direcione usuários para diferentes URLs baseado no dispositivo:
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://codeqr.io/blog",
"ios": "https://apps.apple.com/us/app/qr-code-generator-and-reader/id1623860555",
"android": "https://play.google.com/store/apps/details?id=com.losenvo.codeqrlink"
}'
Personalize a experiência baseada na localização do usuário:
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "url",
"url": "https://codeqr.io/blog",
"geo": {
"BR": "https://exemplo.com/brasil",
"US": "https://exemplo.com/usa",
"GB": "https://exemplo.com/uk"
}
}'
Rastreie a performance dos seus QR codes:
curl --request POST \
--url https://api.codeqr.io/qrcodes?projectSlug=acme \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"type": "url",
"url": "https://exemplo.com",
"utm_source": "marketing",
"utm_medium": "qr_code",
"utm_campaign": "promocao_2025",
"utm_term": "produto",
"utm_content": "banner"
}'
bad_request (400) - Requisição malformada
unauthorized (401) - Chave de API inválida
forbidden (403) - Sem permissão
not_found (404) - Recurso não encontrado
conflict (409) - Conflito (ex: key duplicada)
rate_limit_exceeded (429) - Rate limit excedido
internal_server_error (500) - Erro interno do servidor
Agora que você sabe como criar QR codes via API, explore estas funcionalidades avançadas:
A API da CodeQR oferece uma solução completa e flexível para criar QR codes programaticamente. Com este guia, você aprendeu:
Agora você está pronto para integrar a criação de QR codes em suas aplicações e aproveitar todo o potencial da plataforma CodeQR!
Este artigo foi útil? Compartilhe com sua equipe e explore outros recursos da documentação da CodeQR.