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.

O que é a API da CodeQR?
A API da CodeQR é uma interface RESTful que permite criar, gerenciar e rastrear QR codes programaticamente. Com ela, você pode:
- Criar QR codes de diferentes tipos (URL, texto, WiFi, email, etc.)
- Personalizar aparência com cores, tamanhos e logos
- Configurar comportamentos como expiração, senha e redirecionamento
- Rastrear analytics e escaneamentos em tempo real
- Integrar webhooks para eventos automáticos
Por que usar a API da CodeQR?
Vantagens da integração via API
- Automação completa: Crie QR codes sem intervenção manual
- Escalabilidade: Gere milhares de QR codes rapidamente
- Personalização avançada: Controle total sobre aparência e comportamento
- Integração simples: Funciona com qualquer linguagem de programação
- Analytics detalhados: Rastreie performance e engajamento
Casos de uso comuns
- E-commerce: QR codes para produtos e campanhas
- Eventos: Check-in e informações para participantes
- Marketing: Campanhas promocionais e tracking
- WiFi: Compartilhamento de credenciais de rede
- Contatos: vCards para networking profissional
Configuração Inicial
1. Obter sua chave de API
Para começar, você precisa de uma chave de API válida:
- Acesse Settings > API Keys no seu dashboard da CodeQR

- Clique em "Create" para gerar uma nova chave
- Selecione as permissões necessárias
- Copie e armazene a chave de forma segura
Saiba mais sobre como obter sua chave de API.
2. Configurar autenticação
Todas as requisições devem incluir sua chave de API no header de autorização:
Authorization: Bearer codeqr_xxxxxxxx
3. Obter o Project Slug
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:
- Acesse seu projeto no dashboard da CodeQR
- O slug aparece na URL: app.codeqr.io/[acme]
- Exemplo: se a URL é app.codeqr.io/acme, o slug é marketing
- Ou vá em Settings > Project para ver o slug configurado
4. Base URL da API
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.
Criando seu Primeiro QR Code
QR Code básico de URL
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": []
}Campos importantes da resposta
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
- Use este campo para exibir o QR code
- Exemplo: https://res.cloudinary.com/.../qr.png
shortLink - Link encurtado
- Redireciona para a URL original
- Exemplo: https://expol.ink/zfNIPj8Mv24Q-qr
id - Identificador único
- Use para futuras operações (atualizar, deletar)
- Exemplo: cm9zsbu1f00019imtllva1p35
key - Slug personalizado
- Nome personalizado (se fornecido)
- Exemplo: zfNIPj8Mv24Q-qr
scans - Contador de escaneamentos
- Atualizado em tempo real
- Exemplo: 500
createdAt - Data de criação
- Timestamp ISO 8601
- Exemplo: 2025-04-27T15:09:08.689Z
💡 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.
Exemplo em JavaScript
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);
Personalizando QR Codes
Aparência visual
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

Parâmetros de personalização
bgColor (string) - A cor de fundo do QR code
- Exemplo: #fff5b1
fgColor (string) - A cor de primeiro plano do QR code
- Exemplo: #0017e5
size (number) - O tamanho do QR code
- Exemplo: 1024
level (string) - O nível de correção de erro do QR code
- Exemplo: M
showLogo (boolean) - Se o logo deve ser exibido no QR code
- Exemplo: true
src (string | null) - A URL da imagem do QR code
- Exemplo: enter src
height (number) - A altura do QR code
- Exemplo: 256
width (number) - A largura do QR code
- Exemplo: 256
excavate (boolean) - Se o QR code deve ter áreas escavadas
- Exemplo: true
pattern (string) - O padrão de forma dos módulos do QR code
- Valores aceitos: default, circles, diamond, triangles, squares, circles, stars, hearts
- Exemplo: diamond
shape (string) - A forma do design ao redor do QR code
- Valores aceitos: none, square, circle
- Exemplo: circle
Organização e identificaçã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 '{
"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"]
}'
Tipos de QR Code Disponíveis
1. QR Code de Texto
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",
}'
2. 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": "text",
"text": "Olá! Este é um QR code de texto."
}'
3. QR Code de 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": "email",
"email": {
"to": "contact@codeqr.io",
"subject": "Assunto do email",
"body": "Corpo do email"
}
}'
4. QR Code de WiFi
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"
}
}'
5. QR Code de Telefone
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"
}'
6. QR Code de Localização
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
}
}'
Configurações Avançadas
Controle de acesso
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",
}'
Redirecionamento por dispositivo
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"
}'
Redirecionamento por localização
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"
}
}'
Parâmetros UTM para analytics
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"
}'
Tratamento de Erros
Códigos de erro comuns
bad_request (400) - Requisição malformada
- Solução: Verificar formato dos dados
unauthorized (401) - Chave de API inválida
- Solução: Verificar chave de API
forbidden (403) - Sem permissão
- Solução: Verificar permissões da chave
not_found (404) - Recurso não encontrado
- Solução: Verificar ID/URL do QR code
conflict (409) - Conflito (ex: key duplicada)
- Solução: Usar key única
rate_limit_exceeded (429) - Rate limit excedido
- Solução: Aguardar e tentar novamente
internal_server_error (500) - Erro interno do servidor
- Solução: Tentar novamente mais tarde
Melhores Práticas
1. Segurança
- Nunca exponha chaves de API no frontend
- Use variáveis de ambiente para armazenar credenciais
- Implemente rotação regular de chaves
- Use chaves com permissões mínimas necessárias
2. Performance
- Implemente cache para QR codes frequentemente acessados
- Use paginação para listas grandes
- Monitore rate limits e implemente retry logic
- Considere webhooks para atualizações em tempo real
3. Monitoramento
- Implemente logging para todas as operações
- Use UTM parameters para rastreamento
- Configure alertas para erros críticos
- Monitore uso anômalo de API
4. Validação
- Valide todas as URLs antes de criar QR codes
- Verifique formatos de dados obrigatórios
- Teste em diferentes dispositivos e navegadores
- Implemente validação de entrada robusta
Próximos Passos
Agora que você sabe como criar QR codes via API, explore estas funcionalidades avançadas:
1. Gerenciamento de QR Codes
2. Operações em Lote
3. Recursos Avançados
4. Integração com SDKs
Recursos Adicionais
Documentação Oficial
Artigos Relacionados
- Como usar link cloaking na CodeQR
- Como criar links protegidos por senha
- Como usar tags na CodeQR
- Integração com ActiveCampaign
Suporte
Conclusão
A API da CodeQR oferece uma solução completa e flexível para criar QR codes programaticamente. Com este guia, você aprendeu:
- ✅ Como configurar autenticação e fazer sua primeira requisição
- ✅ Como personalizar aparência e comportamento dos QR codes
- ✅ Diferentes tipos de QR codes disponíveis
- ✅ Configurações avançadas para casos específicos
- ✅ Exemplos práticos em JavaScript, Python e PHP
- ✅ Tratamento de erros e melhores práticas
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.