API Reference
The GetQrivo REST API lets you create, manage, and track dynamic QR codes programmatically. All endpoints return JSON and use standard HTTP methods.
Base URL
https://api.qrivo.appAuthentication
Bearer <JWT>Rate Limit
60 req/min (API) · 120 req/min (redirect)
Quick Start
Register, authenticate, and create your first QR code in three requests:
Copy# 1. Register
curl -X POST https://api.qrivo.app/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"s3cret!","name":"You"}'
# 2. Login (returns JWT)
curl -X POST https://api.qrivo.app/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"s3cret!"}'
# 3. Create a QR code
curl -X POST https://api.qrivo.app/v1/qr-codes \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"destinationUrl":"https://example.com","title":"My first QR","type":"url"}'All Endpoints (19)
Complete list of available API endpoints. Click any row to expand the example payload.
POST/v1/auth/registerCreate a new user account
Create a new user account
Copy{ "email": "user@example.com", "password": "secret", "name": "Jane" }POST/v1/auth/loginAuthenticate and receive a JWT token
Authenticate and receive a JWT token
Copy{ "email": "user@example.com", "password": "secret" }GET/v1/auth/meAuthGet the current authenticated user profile
Get the current authenticated user profile
Requires Authorization: Bearer <token> header
No request body required.
GET/v1/qr-codesAuthList all QR codes (paginated, ?page=1&limit=20)
List all QR codes (paginated, ?page=1&limit=20)
Requires Authorization: Bearer <token> header
No request body required.
POST/v1/qr-codesAuthCreate a new dynamic QR code
Create a new dynamic QR code
Requires Authorization: Bearer <token> header
Copy{ "destinationUrl": "https://example.com", "title": "My QR", "type": "url" }POST/v1/qr-codes/batchAuthCreate multiple QR codes in a single request
Create multiple QR codes in a single request
Requires Authorization: Bearer <token> header
Copy{ "items": [{ "destinationUrl": "https://a.com", "title": "A" }, { "destinationUrl": "https://b.com", "title": "B" }] }GET/v1/qr-codes/:idAuthGet a single QR code by ID
Get a single QR code by ID
Requires Authorization: Bearer <token> header
No request body required.
PATCH/v1/qr-codes/:idAuthUpdate QR code destination, settings, or status
Update QR code destination, settings, or status
Requires Authorization: Bearer <token> header
Copy{ "destinationUrl": "https://new-url.com", "isActive": true }DELETE/v1/qr-codes/:idAuthDelete a QR code permanently
Delete a QR code permanently
Requires Authorization: Bearer <token> header
No request body required.
GET/v1/qr-codes/:id/scansAuthGet scan analytics (by day, country, device)
Get scan analytics (by day, country, device)
Requires Authorization: Bearer <token> header
No request body required.
GET/r/:shortCodePublic redirect — records scan and redirects to destination
Public redirect — records scan and redirects to destination
No request body required.
POST/v1/filesAuthUpload a file (PDF, image, audio, video — 20 MB max)
Upload a file (PDF, image, audio, video — 20 MB max)
Requires Authorization: Bearer <token> header
Copymultipart/form-data with "file" fieldGET/files/:filenameServe an uploaded file by filename
Serve an uploaded file by filename
No request body required.
GET/v1/webhooksAuthList all webhook configurations
List all webhook configurations
Requires Authorization: Bearer <token> header
No request body required.
POST/v1/webhooksAuthCreate a webhook (events: scan, create, update, delete)
Create a webhook (events: scan, create, update, delete)
Requires Authorization: Bearer <token> header
Copy{ "url": "https://example.com/hook", "events": ["scan", "create"] }DELETE/v1/webhooks/:idAuthDelete a webhook configuration
Delete a webhook configuration
Requires Authorization: Bearer <token> header
No request body required.
GET/v1/api-keysAuthList all API keys for the current user
List all API keys for the current user
Requires Authorization: Bearer <token> header
No request body required.
POST/v1/api-keysAuthGenerate a new API key with a name prefix
Generate a new API key with a name prefix
Requires Authorization: Bearer <token> header
Copy{ "name": "production-key" }DELETE/v1/api-keys/:idAuthRevoke an API key
Revoke an API key
Requires Authorization: Bearer <token> header
No request body required.
Response Format
All successful responses return JSON. Errors include a descriptive message:
Success (200 / 201)
Copy{
"id": "abc123",
"shortCode": "xK9mQ",
"destinationUrl": "https://example.com",
"title": "My QR",
"isActive": true,
"totalScans": 0,
"createdAt": "2026-03-23T12:00:00Z"
}Error (4xx / 5xx)
Copy{
"error": "Validation failed",
"details": {
"destinationUrl": "Must be a valid URL"
}
}