Documentação
API pública do justQRs
Gerencie seus QR codes de forma programática. Crie uma chave de API em Chaves de API no painel (somente proprietários da conta).
URL base
https://api.justqrs.com
Autenticação
Envie sua chave de API como bearer token em cada requisição:
Authorization: Bearer jqr_xxxxxxxxxxxxxxxx
As chaves são exibidas por completo apenas uma vez, no momento da criação. Para rotacionar uma chave, crie uma nova e exclua a antiga.
Endpoints
| Método | Caminho | Descrição |
|---|---|---|
GET | /v1/qrcodes | Lista seus QR codes. Response: { qrcodes: QrResponse[] } |
POST | /v1/qrcodes | Cria um QR code. Request: CreateQrRequest { name, mode, content, design? } · Response: QrResponse |
GET | /v1/qrcodes/{qrId} | Busca um único QR code. Response: QrResponse |
PATCH | /v1/qrcodes/{qrId} | Atualiza um QR code (somente códigos dinâmicos). Request: UpdateQrRequest { name?, content?, design? } · Response: QrResponse |
DELETE | /v1/qrcodes/{qrId} | Exclui um QR code. Response: 204 No Content |
GET | /v1/qrcodes/{qrId}/stats?days=7|30|90 | Análise de leituras de um QR code dinâmico. Response: QrStats { totalScans, rangeScans, rangeUniques, series, breakdowns } |
Exemplo: criar um QR code de URL
curl -X POST "https://api.justqrs.com/v1/qrcodes" \
-H "Authorization: Bearer jqr_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "My link",
"mode": "dynamic",
"content": { "kind": "url", "url": "https://example.com" }
}'
Exemplo: buscar estatísticas de leitura
curl "https://api.justqrs.com/v1/qrcodes/{qrId}/stats?days=30" \
-H "Authorization: Bearer jqr_xxxxxxxxxxxxxxxx"
Erros
As respostas de erro são JSON: { "error": string, "code"?: string }.
| Status | Código | Significado |
|---|---|---|
| 400 | (validation) | O corpo da requisição falhou na validação — veja a mensagem de erro para detalhes. |
| 401 | — | Cabeçalho Authorization ausente. |
| 403 | — | Chave de API rejeitada — inválida, revogada ou expirada. |
| 402 | upgrade_required | Sua conta está no plano gratuito — o acesso à API requer um plano pago. |
| 404 | — | O QR code não existe ou não pertence a esta conta. |
| 409 | qr_limit_reached | A conta já atingiu seu limite de QR codes dinâmicos (500 no plano base, mais disponíveis via pacotes adicionais). |