Hoppa till innehåll

API-översikt

API-översikt

qr3.app REST-API är tillgängligt på https://qr3.app/v1/.

Versionering

API:et är versionerat via URL-sökvägen (/v1/). Breaking changes leder alltid till en ny huvudversion.

Request-format

  • Content-Type: application/json
  • Autentisering: Authorization: Bearer qr3_sk_xxx
  • Idempotens: POST-requests kan göras idempotenta med Idempotency-Key: <uuid>

Response-format

Alla lyckade responser returnerar JSON:

{
"id": "qr_abc123",
"type": "url",
"url": "https://example.com",
"short_url": "https://qr3.app/r7f3Kx",
"created_at": "2026-03-15T10:00:00.000Z"
}

Listresponser har alltid en meta.pagination-struktur:

{
"data": [...],
"meta": {
"request_id": "req_xxx",
"pagination": {
"has_more": true,
"next_cursor": "qr_abc",
"total_count": 142
}
}
}

Felformat (RFC 7807)

Alla fel följer standarden 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"
}
StatusFeltypBeskrivning
400bad-requestOgiltig JSON eller obligatoriska fält som saknas
401authenticationSaknad eller ogiltig API-nyckel
403forbiddenIngen behörighet för denna resurs
404not-foundResursen hittades inte
409conflictIdempotency-Key-konflikt
422validation-errorFelaktig indata (med errors-array)
429rate-limitedRate limit överskridet
500internalInternt serverfel

Paginering

API:et använder cursor-baserad paginering:

Terminal window
# Erste Seite
GET /v1/codes?limit=20
# Nächste Seite
GET /v1/codes?limit=20&cursor=qr_lastid

Rate limits

Varje svar innehåller:

X-RateLimit-Limit: 30
X-RateLimit-Remaining: 28
X-RateLimit-Reset: 1742040120

Interaktiv API-referens

Testa alla slutpunkter direkt i webbläsaren:

→ Öppna API-referens (Scalar, interaktiv, med Try-it-out)

DPP-kontrakt (Fas 4a)

För batteri-arbetsflödet dokumenterar qr3.app dessutom dessa rutter:

  • POST /v1/dpp
  • GET /v1/dpp
  • GET /v1/dpp/:id
  • POST /v1/dpp/validate
  • GET /v1/dpp/:id/qr.svg
  • GET /v1/dpp/:id/qr.png
  • GET /v1/dpp/:id/qr.pdf
  • GET /v1/dpp/:id/qr.eps
  • GET /01/...
  • GET /dpp/:gtin/:serial?lot=...

Dashboard-sidorna, SDK:er och denna dokumentation använder samma datakontrakt.