QRinio API v1
Documentation API
Gère les ressources QR dynamiques et liens courts depuis ton serveur. Commence par l’authentification, les reprises sûres et les révisions.
1. S’authentifier
Vérifie ton e-mail et crée une clé API dans les réglages. Envoie-la en jeton Bearer depuis ton serveur. Les clés permettent ressources, fichiers, designs et lecture des quotas et espaces. Sécurité du compte, domaines et administration nécessitent une session navigateur. N’expose jamais la clé côté client.
2. Créer une ressource
L’exemple crée une redirection QR et un lien court sur le domaine par défaut. Ils partagent une destination et consomment leurs quotas respectifs. La réponse contient ID, slug et révision. Dessine l’adresse /r/ en QR et partage /s/ comme lien court. L’API renvoie des données, pas une image.
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. Mettre à jour sans écraser les collègues
Lis la ressource et envoie sa révision actuelle avec PATCH. En cas de revision_conflict (409), relis et réconcilie les changements avant de réessayer. DELETE avec ?revision= place en corbeille ; restauration possible pendant 30 jours. La suppression définitive est séparée. Archives et corbeille comptent toujours.
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. Reprises et lots sûrs
Réutilise le même Idempotency-Key et le corps identique pour reprendre une création. Conservation de 24 heures ; un autre corps avec la même clé renvoie 409. Les lots exigent une clé et 1–100 éléments aux clés de ligne distinctes. Chaque élément a son statut ; HTTP 200 ne garantit pas toutes les lignes. Conserve les résultats.
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 et erreurs
Consulte /quotas pour les limites actuelles et exceptions. Clés et sessions partagent les limites de requêtes ; les espaces utilisent le quota du propriétaire. Sur 429, respecte Retry-After et attends. Utilise code pour traiter l’erreur ; message sert au diagnostic. Ne répète pas automatiquement validation, droits ou quota.
- Lectures par minute
- 120
- Écritures par minute
- 30
- Lots par minute
- 2
Référence des endpoints
Liste les ressources avec page (dès 1), pageSize (1–100), q, status et workspaceId. Sans workspaceId, seuls les éléments personnels apparaissent. Les fichiers utilisent limit (1–200), offset, search et kind=pdf ou image. Les profils, liens et PDF hébergés exigent published=true.
| GET /resources | Tout au même endroit. |
|---|---|
| POST /resources | Créer un code QR |
| GET · PATCH · DELETE /resources/{id} | Modifier |
| POST /resources/batch | Import CSV |
| POST /resources/bulk | Définir le dossier et les tags |
| GET /resources/{id}/analytics?days=30 | Statistiques |
| GET /resources/{id}/history | Historique des versions |
| GET · POST /assets | Fichiers |
| GET /quotas | Commence gratuitement. Des limites claires. |
| GET /workspaces | Espaces |