QRinio API v1
Documentação da API
Gere recursos QR dinâmicos e ligações curtas a partir do servidor. Começa com autenticação, repetições seguras e revisões.
1. Autenticação
Verifica o email e cria uma chave API nas definições. Envia-a como token Bearer do servidor. Suporta recursos, ficheiros, designs e leitura de quotas e espaços. Segurança da conta, domínios e administração exigem sessão no navegador. Não exponhas chaves no cliente.
2. Criar um recurso
O exemplo cria um redirecionamento QR e uma ligação curta no domínio predefinido. Partilham destino e usam as respetivas quotas. A resposta inclui ID, slug e revisão. Representa /r/ como QR e partilha /s/ como ligação curta. A API devolve dados, não imagens.
curl --request POST 'https://qrinio.com/api/v1/resources' \
--header "Authorization: Bearer $QRINIO_API_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: product-42-v1' \
--data '{
"title": "Product 42",
"targetUrl": "https://example.com/products/42",
"qrEnabled": true,
"shortEnabled": true
}'{
"id": "00000000-0000-4000-8000-000000000042",
"slug": "sample-code",
"revision": 1
}3. Atualizar sem substituir colegas
Lê o recurso e envia a revisão atual com PATCH. Em revision_conflict (409), volta a ler e concilia alterações antes de repetir. DELETE com ?revision= move para o lixo; restauração disponível por 30 dias. A eliminação definitiva é separada. Arquivo e lixo continuam a contar.
curl --request PATCH 'https://qrinio.com/api/v1/resources/00000000-0000-4000-8000-000000000042' \
--header "Authorization: Bearer $QRINIO_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"revision": 1,
"targetUrl": "https://example.com/products/42-v2"
}'4. Repetições e lotes seguros
Reutiliza Idempotency-Key e corpo idêntico ao repetir uma criação. As chaves duram 24 horas; outro corpo com a mesma chave devolve 409. Lotes exigem chave e 1–100 itens com chaves de linha distintas. Cada item tem estado próprio; HTTP 200 não garante todas as linhas. Guarda os resultados.
curl --request POST 'https://qrinio.com/api/v1/resources/batch' \
--header "Authorization: Bearer $QRINIO_API_KEY" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: catalog-batch-42-v1' \
--data '{
"items": [
{
"key": "product-42",
"data": {
"title": "Product 42",
"targetUrl": "https://example.com/products/42",
"qrEnabled": true,
"shortEnabled": true
}
}
]
}'Limites e erros
Consulta /quotas para limites atuais e exceções. Chaves e sessões partilham limites de pedidos; espaços usam a quota do titular. Em 429 respeita Retry-After e espera. Usa code para tratar erros; message é diagnóstico. Não repitas automaticamente erros de validação, permissões ou quota.
- Leituras por minuto
- 120
- Escritas por minuto
- 30
- Lotes por minuto
- 2
Referência de endpoints
Lista recursos com page (desde 1), pageSize (1–100), q, status e workspaceId. Sem workspaceId só aparecem pessoais. Ficheiros usam limit (1–200), offset, search e kind=pdf ou image. Perfis, ligações e PDF alojados exigem published=true para serem públicos.
| GET /resources | Tudo em um só lugar. |
|---|---|
| POST /resources | Criar código QR |
| GET · PATCH · DELETE /resources/{id} | Editar |
| POST /resources/batch | Importar CSV |
| POST /resources/bulk | Definir pasta e etiquetas |
| GET /resources/{id}/analytics?days=30 | Estatísticas |
| GET /resources/{id}/history | Histórico de versões |
| GET · POST /assets | Arquivos |
| GET /quotas | Começa grátis. Com limites claros. |
| GET /workspaces | Espaços |