QRinio API v1
API-documentatie
Beheer dynamische QR-items en korte links vanaf je server. Begin met authenticatie, veilige herhalingen en revisies.
1. Authenticeren
Bevestig je e-mail en maak een API-sleutel in de instellingen. Stuur hem als Bearer-token vanaf je server. Sleutels ondersteunen items, bestanden, ontwerpen en het lezen van limieten en werkruimtes. Accountbeveiliging, domeinen en beheer vereisen een browsersessie. Zet sleutels nooit in clientcode.
2. Maak een item
Het voorbeeld maakt een QR-doorverwijzing en korte link op het standaarddomein. Ze delen één bestemming en gebruiken elk hun eigen tegoed. De respons bevat ID, slug en revisie. Teken /r/ als QR en deel /s/ als korte link. De API geeft gegevens terug, geen afbeelding.
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. Wijzig zonder teamwerk te overschrijven
Lees eerst het item en stuur de actuele revisie met PATCH. Bij revision_conflict (409) lees je opnieuw en verwerk je verschillen vóór herhaling. DELETE met ?revision= verplaatst naar de prullenbak; herstel kan 30 dagen. Definitief wissen is apart. Archief en prullenbak blijven meetellen.
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. Veilig herhalen en batches
Gebruik dezelfde Idempotency-Key en identieke inhoud bij opnieuw aanmaken. Sleutels blijven 24 uur bewaard; een andere inhoud met dezelfde sleutel geeft 409. Batches vereisen een sleutel en 1–100 items met unieke rijsleutels. Elk item krijgt een status; HTTP 200 betekent niet dat alles slaagde. Bewaar resultaten zelf.
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
}
}
]
}'Limieten en fouten
Lees /quotas voor actuele limieten en uitzonderingen. Sleutels en sessies delen aanvraaglimieten; eigen werkruimtes delen het tegoed van de eigenaar. Respecteer bij 429 Retry-After en wacht. Gebruik code voor foutafhandeling; message is diagnostisch. Herhaal validatie-, rechten- of quotafouten niet automatisch.
- Leesaanvragen per minuut
- 120
- Schrijfaanvragen per minuut
- 30
- Batchaanvragen per minuut
- 2
Endpointoverzicht
Lijst items met page (vanaf 1), pageSize (1–100), q, status en workspaceId. Zonder workspaceId krijg je alleen persoonlijke items. Bestanden gebruiken limit (1–200), offset, search en kind=pdf of image. Gehoste profielen, links en PDF vereisen published=true voor publicatie.
| GET /resources | Alles op één plek. |
|---|---|
| POST /resources | QR-code maken |
| GET · PATCH · DELETE /resources/{id} | Bewerken |
| POST /resources/batch | CSV importeren |
| POST /resources/bulk | Map en tags instellen |
| GET /resources/{id}/analytics?days=30 | Statistieken |
| GET /resources/{id}/history | Versiegeschiedenis |
| GET · POST /assets | Bestanden |
| GET /quotas | Begin gratis. Weet waar je aan toe bent. |
| GET /workspaces | Werkruimtes |