Prezentare generală API
Prezentare generală API
API-ul REST qr3.app este disponibil la https://qr3.app/v1/.
Versionare
API-ul este versionat prin calea URL-ului (/v1/). Modificările majore (breaking changes) duc întotdeauna la o nouă versiune principală.
Formatul cererii
- Content-Type:
application/json - Autentificare:
Authorization: Bearer qr3_sk_xxx - Idempotență: Cererile POST pot fi făcute idempotente folosind
Idempotency-Key: <uuid>
Formatul răspunsului
Toate răspunsurile de succes returnează JSON:
{ "id": "qr_abc123", "type": "url", "url": "https://example.com", "short_url": "https://qr3.app/r7f3Kx", "created_at": "2026-03-15T10:00:00.000Z"}Răspunsurile de tip listă au întotdeauna o structură meta.pagination:
{ "data": [...], "meta": { "request_id": "req_xxx", "pagination": { "has_more": true, "next_cursor": "qr_abc", "total_count": 142 } }}Formatul erorilor (RFC 7807)
Toate erorile respectă standardul RFC 7807 Problem Details:
{ "type": "https://docs.qr3.app/errors/not-found", "title": "Not Found", "status": 404, "detail": "QR code qr_xxx not found", "instance": "/v1/codes/qr_xxx"}| Status | Tip eroare | Descriere |
|---|---|---|
| 400 | bad-request | JSON nevalid sau câmpuri obligatorii lipsă |
| 401 | authentication | Cheie API lipsă sau nevalidă |
| 403 | forbidden | Lipsă permisiuni pentru această resursă |
| 404 | not-found | Resursă negăsită |
| 409 | conflict | Conflict Idempotency-Key |
| 422 | validation-error | Date de intrare eronate (cu matricea errors) |
| 429 | rate-limited | Limită de rată depășită |
| 500 | internal | Eroare internă de server |
Paginare
API-ul utilizează paginare bazată pe cursor:
# Erste SeiteGET /v1/codes?limit=20
# Nächste SeiteGET /v1/codes?limit=20&cursor=qr_lastidLimite de rată
Fiecare răspuns conține:
X-RateLimit-Limit: 30X-RateLimit-Remaining: 28X-RateLimit-Reset: 1742040120Referință API interactivă
Testează toate endpoint-urile direct în browser:
→ Deschide referința API (Scalar, interactiv, cu Try-it-out)
Contract DPP (Faza 4a)
Pentru fluxul de lucru al bateriilor, qr3.app documentează suplimentar aceste rute:
POST /v1/dppGET /v1/dppGET /v1/dpp/:idPOST /v1/dpp/validateGET /v1/dpp/:id/qr.svgGET /v1/dpp/:id/qr.pngGET /v1/dpp/:id/qr.pdfGET /v1/dpp/:id/qr.epsGET /01/...GET /dpp/:gtin/:serial?lot=...
Paginile de dashboard, SDK-urile și această documentație utilizează același contract de date.