QRinio

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.

Richiesta di esempio
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
}'
Estratto della risposta
{
  "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.

Richiesta di esempio
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.

Richiesta di esempio
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.

Riferimento endpoint
GET /resourcesTutto in un unico posto.
POST /resourcesCrea codice QR
GET · PATCH · DELETE /resources/{id}Modifica
POST /resources/batchImporta CSV
POST /resources/bulkImposta cartella e tag
GET /resources/{id}/analytics?days=30Statistiche
GET /resources/{id}/historyCronologia versioni
GET · POST /assetsFile
GET /quotasInizia gratis. Con limiti chiari.
GET /workspacesSpazi