Docs
API documentation
A single JSON endpoint for decoding codes from images, with optional safety analysis.
Base URL and authentication
All requests go to https://api.tryseeqr.com/v1 over HTTPS. Authenticate with a bearer token in the Authorization header. Keys are secret - keep them on your server, never in client-side code.
Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
| /v1/scan | POST | Decode a QR code from an image URL or base64 payload |
| /v1/safety | POST | Score an already-decoded URL |
| /v1/usage | GET | Current period request count and remaining quota |
/v1/scan
- Method
- POST
- Purpose
- Decode a QR code from an image URL or base64 payload
/v1/safety
- Method
- POST
- Purpose
- Score an already-decoded URL
/v1/usage
- Method
- GET
- Purpose
- Current period request count and remaining quota
Request body - POST /v1/scan
| Field | Type | Notes |
|---|---|---|
| image_url | string | Publicly reachable image URL. One of image_url or image_base64 is required. |
| image_base64 | string | Base64-encoded JPG, PNG or WebP, up to 10 MB decoded. |
| safety | boolean | Defaults to true. Set false to skip link analysis. |
image_url
- Type
- string
- Notes
- Publicly reachable image URL. One of image_url or image_base64 is required.
image_base64
- Type
- string
- Notes
- Base64-encoded JPG, PNG or WebP, up to 10 MB decoded.
safety
- Type
- boolean
- Notes
- Defaults to true. Set false to skip link analysis.
Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_image | The payload was not a supported image or was unreadable |
| 401 | invalid_key | Missing or revoked API key |
| 404 | no_code_found | The image contained no detectable QR code |
| 413 | image_too_large | Decoded image exceeded 10 MB |
| 429 | rate_limited | Quota or per-second limit exceeded; retry after the header value |
400
- Code
- invalid_image
- Meaning
- The payload was not a supported image or was unreadable
401
- Code
- invalid_key
- Meaning
- Missing or revoked API key
404
- Code
- no_code_found
- Meaning
- The image contained no detectable QR code
413
- Code
- image_too_large
- Meaning
- Decoded image exceeded 10 MB
429
- Code
- rate_limited
- Meaning
- Quota or per-second limit exceeded; retry after the header value
Rate limits
Free keys allow 100 requests per month and 1 request per second. Paid plans raise both limits; every response includes X-RateLimit-Remaining and Retry-After headers so you can back off cleanly.