qr-cow
Gere códigos QR estilizados a partir de qualquer agente de IA: URL, Wi-Fi, vCard e 13 tipos de conteúdo, com cores e logotipos, além de códigos dinâmicos e análises de escaneamento da API qr-cow.
Documentação
Início rápido
1
Obter um token
Entre, abra Dashboard → API & MCP e clique em Criar token. Você receberá um valor qrc_live_…, copie-o uma vez; armazenamos apenas o hash.
2
Faça uma chamada
Envie o token como cabeçalho Bearer para api.qr-cow.com. Todo endpoint que uma sessão JWT pode acessar também aceita um token.
3
Ou conecte via MCP
Adicione o trecho JSON abaixo na configuração MCP do seu cliente de IA e o mesmo token funcionará lá, sem código de integração.
Experimente
Escolha um endpoint e um idioma. O token nos trechos é um espaço reservado; cole o seu próprio do dashboard.
Renderizar um QR estilizado
Dados mais um preset ou estilo de entrada, uma imagem estilizada de saída. Nenhum token é necessário.
# Styled image back, no account needed. Save straight to a file:
curl "https://qr-cow.com/api/v1/qr/render" \
-H "Content-Type: application/json" \
-o menu-qr.png \
-d '{
"data": "https://my-cafe.com/menu",
"preset": "cafe",
"size": 600,
"format": "png"
}'
# Full control instead of a preset:
# "style": { "body": "rounded", "eye": "dots",
# "gradient": { "from": "#06b6d4", "to": "#7c3aed", "direction": "vertical" } }
# Or drop it straight into an <img src>:
# https://qr-cow.com/api/v1/qr/render?data=https://my-cafe.com&preset=cafe&size=600
API de renderização estilizada
Gere uma imagem QR estilizada e finalizada diretamente do seu código. Envie data mais um estilo (um preset, uma configuração de estúdio ou campos explícitos) e receba um PNG, JPG ou SVG de volta. Sem conta e sem registro armazenado, é ideal para gerar códigos em massa. POST /api/v1/qr/render para controle total, ou GET no mesmo caminho para inserir um código diretamente em uma tag de imagem.
| Parâmetro | Aceita | O que faz |
|---|---|---|
| data | string | O conteúdo a codificar: uma URL, texto simples ou uma string Wi-Fi / vCard pré-formatada. |
| preset | nome ↓ | Um visual pronto, aplicado primeiro (veja a lista abaixo). |
| body | square · dots · rounded · extra-rounded · classy · classy-rounded · vertical-bars · horizontal-bars | Forma do módulo / ponto. |
| eye | square · rounded · dots | Forma do padrão de localização (cantos). |
| fg · bg | #hex | Cores de primeiro plano e fundo, hex de 3, 6 ou 8 dígitos. |
| gradient | { from, to, direction } | Gradiente de duas cores nos módulos; direção é horizontal, vertical ou radial. |
| logo | base64 data URL | Um logotipo central, passado como data URL base64. Use ecc Q ou H com um logotipo. |
| ecc | L · M · Q · H | Correção de erros. Níveis mais altos suportam mais danos e um logotipo, ao custo de densidade. |
| size | 64–2000 | Largura da saída em pixels (quadrado). |
| format | png · jpg · svg | png e jpg carregam todos os estilos; svg é um vetor limpo com forma, cor e gradiente (sem logotipo). |
Modelos que você pode escolher (passe o nome como preset): restaurant · cafe · tech · event · retail · wedding · healthcare · real-estate · business-card · crypto · sunset · ocean · forest · aurora · berry · mono
# Pick one of our templates — pass its name as "preset"
curl -X POST https://qr-cow.com/api/v1/qr/render \
-H "Content-Type: application/json" \
-d '{"data":"https://acme.com","preset":"restaurant","size":600,"format":"png"}' \
--output qr.png
# Or your own template — set a style once and reuse it for every code
curl -X POST https://qr-cow.com/api/v1/qr/render \
-H "Content-Type: application/json" \
-d '{"data":"https://acme.com","style":{"body":"rounded","eye":"dots","fg":"#1F2937","gradient":{"from":"#F97316","to":"#F5A300"}}}' \
--output qr.png
Feito para volume
Defina seu estilo de marca uma vez como um objeto style (ou escolha um preset): esse é seu estilo pessoal, definido antecipadamente e reutilizado para cada código. Faça um loop sobre o endpoint para gerar quantos precisar; cada chamada é independente e não armazena nada.
Mantenha-o escaneável
Módulos escuros sobre fundo claro escaneiam de forma mais confiável. Estilos de fundo escuro ou baixo contraste ficam ótimos, mas leem de forma menos confiável em scanners mais fracos, e com um logotipo use ecc Q ou H para que o código ainda seja resolvido.
Referência de endpoints
Tudo em /api/v1, mesma estrutura em todos os idiomas.
| Método | Caminho | O que faz |
|---|---|---|
| POST | /qr/render | Renderiza uma imagem QR estilizada a partir de um estilo ou preset (sem autenticação, nada armazenado). |
| GET | /qr/render | A mesma renderização como um GET simples, incorporável diretamente em uma tag de imagem. |
| GET | /auth/me | Usuário autenticado + plano |
| POST | /qrcodes | Cria um QR estático ou dinâmico |
| GET | /qrcodes | Lista seus códigos QR (paginado) |
| GET | /qrcodes/{id} | Obtém os detalhes completos de um QR |
| PATCH | /qrcodes/{id} | Atualiza nome / destino dinâmico |
| DELETE | /qrcodes/{id} | Exclusão suave de um QR |
| GET | /analytics/qrcodes/{id} | Escaneamentos, geo, dispositivo, hora do dia |
| GET | /dev/tokens | Lista tokens de API |
| POST | /dev/tokens | Cria um token (retorna texto simples UMA VEZ) |
| DELETE | /dev/tokens/{id} | Revoga um token |
MCP, Model Context Protocol
MCP é um protocolo aberto publicado pela Anthropic para conectar clientes de IA a ferramentas externas. Uma vez conectado, seu assistente pode dizer coisas como "crie um código QR para meu novo cardápio" ou "mostre-me quais países escanearam meu QR do café na semana passada" e chamar qr-cow diretamente.
Claude Desktop / Claude Code
{
"mcpServers": {
"qr-cow": {
"command": "uvx",
"args": ["qr-cow-mcp"],
"env": { "QRCOW_API_TOKEN": "qrc_live_..." }
}
}
}
Cursor / Zed / outros
Mesma estrutura, a configuração MCP do editor usa command, args e um bloco env. O servidor MCP é um processo stdio, qualquer coisa que fale MCP pode usá-lo.
Guia completo de configuração MCP ↗ qr-cow-mcp no PyPI ↗
Ferramentas expostas pelo servidor
| Ferramenta | O que faz |
|---|---|
| create_qrcode | Cria um QR estático ou dinâmico (URL, Wi-Fi, vCard, …). |
| render_styled_qrcode | Renderiza uma imagem QR totalmente estilizada (formas, gradiente, logotipo) a partir de dados mais um preset ou estilo. Retorna a imagem; nada é salvo. |
| list_qrcodes | Lista códigos QR recentes na conta do usuário. |
| get_qrcode | Busca o design atual + destino de um QR. |
| update_qrcode_destination | Altera o destino de um QR dinâmico, o código impresso continua funcionando. |
| delete_qrcode | Exclusão suave de um código. |
| get_qrcode_analytics | Escaneamentos + detalhamento por país, dispositivo, hora. |
| me | Perfil do usuário conectado + plano. |
Autenticação
Envie Authorization: Bearer qrc_live_… em cada requisição. Tokens são universais, funcionam em todo endpoint que uma sessão JWT acessa. Tokens revogados são rejeitados imediatamente.
Erros
Todas as respostas seguem {success, data, error}. Os códigos de status HTTP seguem a RFC 7231; o campo error carrega um código curto legível por máquina (ex.: token_limit_reached).
Limites de taxa e segurança
- Leituras Sem limite Listagem, busca e leituras de analytics não têm limite de taxa.
- Criar / renderizar 20 / min por IP POST /qrcodes e /qr/render. Edição e exclusão não são limitadas.
- Limite de tokens 20 / conta Tokens de API ativos. Revogue um para liberar um slot.
Os limites são baseados em IP e nenhum cabeçalho de limite de taxa é enviado, então em um 429 (erro "rate_limit_exceeded") recue e tente novamente. Armazenamos apenas o SHA-256 de cada token; revogue imediatamente se um vazar e provisione um novo em segundos.
Pronto para construir?
Providencie seu primeiro token e envie uma integração "crie um código QR a partir desta URL" em menos de 5 minutos.
Não é desenvolvedor? Experimente os geradores de código QR ou veja preços.