QRinio API v1
Documentazione API
Gestisci risorse QR dinamiche e link brevi dal tuo server. Inizia con autenticazione, tentativi sicuri e revisioni.
1. Autenticazione
Verifica l’email e crea una chiave API nelle impostazioni. Inviala come token Bearer dal server. Supporta risorse, file, design e lettura di quote e spazi. Sicurezza account, domini e amministrazione richiedono una sessione browser. Non esporre chiavi nel client.
2. Crea una risorsa
L’esempio crea un reindirizzamento QR e un link breve sul dominio predefinito. Condividono la destinazione e usano le rispettive quote. La risposta contiene ID, slug e revisione. Rappresenta /r/ come QR e condividi /s/ come link breve. L’API restituisce dati, non immagini.
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. Aggiorna senza sovrascrivere i colleghi
Leggi la risorsa e invia la revisione attuale con PATCH. Con revision_conflict (409), rileggi e riconcilia le modifiche prima di riprovare. DELETE con ?revision= sposta nel cestino; ripristino possibile per 30 giorni. L’eliminazione permanente è separata. Archivio e cestino continuano a contare.
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. Tentativi e serie sicuri
Riutilizza Idempotency-Key e corpo identico quando ripeti una creazione. Le chiavi durano 24 ore; un corpo diverso con la stessa chiave restituisce 409. Le serie richiedono una chiave e 1–100 elementi con chiavi di riga distinte. Ogni elemento ha uno stato; HTTP 200 non garantisce tutte le righe. Salva i risultati.
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
}
}
]
}'Limiti ed errori
Consulta /quotas per limiti attuali ed eccezioni. Chiavi e sessioni condividono i limiti di richieste; gli spazi usano la quota del proprietario. Su 429 rispetta Retry-After e attendi. Usa code per gestire errori; message è diagnostico. Non ripetere automaticamente errori di validazione, permessi o quota.
- Letture al minuto
- 120
- Scritture al minuto
- 30
- Serie al minuto
- 2
Riferimento endpoint
Elenca risorse con page (da 1), pageSize (1–100), q, status e workspaceId. Senza workspaceId tornano solo quelle personali. I file usano limit (1–200), offset, search e kind=pdf o image. Profili, link e PDF ospitati richiedono published=true per essere pubblici.
| GET /resources | Tutto in un unico posto. |
|---|---|
| POST /resources | Crea codice QR |
| GET · PATCH · DELETE /resources/{id} | Modifica |
| POST /resources/batch | Importa CSV |
| POST /resources/bulk | Imposta cartella e tag |
| GET /resources/{id}/analytics?days=30 | Statistiche |
| GET /resources/{id}/history | Cronologia versioni |
| GET · POST /assets | File |
| GET /quotas | Inizia gratis. Con limiti chiari. |
| GET /workspaces | Spazi |