QrioTagQrioTag Docs
API Reference

API Reference

Complete REST API reference for QrioTag — base URL, authentication, environments, response format, pagination, and error handling.

Environments

Use the switcher below to select your target environment. Copy the base URL and use it in your requests.

API Base URLSelect environment

Live environment — real data

https://api.qriotag.global/api/v1

All Environments

Productionhttps://api.qriotag.global/api/v1
Staginghttps://staging-api.qriotag.global/api/v1
Developmenthttp://localhost:4000/api/v1

Staging environment

The staging environment uses test data and mirrors production closely. Use it for integration testing before going live. Never use real payment credentials on staging.

API Categories

Authentication

Three methods are supported:

MethodHeaderUse case
Bearer tokenAuthorization: Bearer <accessToken>Frontend apps, scripts
httpOnly cookieSet automatically on loginBrowser-based apps
API keyX-API-Key: <key>Server-to-server integrations

Token lifetime: Access token = 15 min · Refresh token = 7 days

# Bearer token
curl https://api.qriotag.global/api/v1/auth/me \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

# API key
curl https://api.qriotag.global/api/v1/tags \
  -H "X-API-Key: qtk_live_abc123..."
# Bearer token
curl https://staging-api.qriotag.global/api/v1/auth/me \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

# API key
curl https://staging-api.qriotag.global/api/v1/tags \
  -H "X-API-Key: qtk_test_abc123..."
# Bearer token
curl http://localhost:4000/api/v1/auth/me \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

# API key
curl http://localhost:4000/api/v1/tags \
  -H "X-API-Key: qtk_dev_abc123..."

Response Format

Every response follows a consistent JSON structure.

Success

{
  "success": true,
  "data": {
    "id": "usr_abc123",
    "email": "user@example.com",
    "firstName": "Jane"
  }
}

Success with pagination

{
  "success": true,
  "data": [
    { "id": "tag_001", "itemName": "House Keys" },
    { "id": "tag_002", "itemName": "Backpack" }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "totalPages": 5
  }
}

Error

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid email address",
    "details": [
      { "field": "email", "message": "Must be a valid email" }
    ]
  }
}

Pagination

ParameterTypeDefaultMaxDescription
pageinteger1Page number (1-based)
limitinteger10100Items per page
curl "https://api.qriotag.global/api/v1/tags?page=2&limit=20" \
  -H "Authorization: Bearer <token>"
curl "https://staging-api.qriotag.global/api/v1/tags?page=2&limit=20" \
  -H "Authorization: Bearer <token>"
curl "http://localhost:4000/api/v1/tags?page=2&limit=20" \
  -H "Authorization: Bearer <token>"

Rate Limiting

ScopeLimitEndpoints
General100 req/minMost authenticated endpoints
Auth10 req/minLogin, register, password reset
Public scan30 req/minGET /scan/:id
Emergency scan5 req/minGET /scan/:id/emergency
Registration5 req/hrPOST /auth/register
Password reset3 req/hrPOST /auth/forgot-password
Contact form3 req/hrPOST /contact

Rate limit headers in every response:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1700000000

When exceeded — HTTP 429:

{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Too many requests. Please try again later."
  }
}

Error Codes

StatusCodeMeaning
400VALIDATION_ERRORRequest body or params failed validation
401UNAUTHORIZEDMissing or invalid authentication
403FORBIDDENAuthenticated but insufficient permissions
404NOT_FOUNDResource does not exist
409CONFLICTResource already exists or state conflict
422UNPROCESSABLE_ENTITYRequest understood but cannot be processed
429RATE_LIMIT_EXCEEDEDToo many requests
500INTERNAL_ERRORServer error — contact support

HTTP Methods

MethodUsage
GETRead resources — never modifies data
POSTCreate resources or trigger actions
PATCHPartially update a resource
PUTReplace a resource or sub-resource entirely
DELETERemove a resource

Interactive Explorer

Swagger UI is available on all environments:

EnvironmentURL
Productionhttps://api.qriotag.global/docs
Staginghttps://staging-api.qriotag.global/docs
Developmenthttp://localhost:4000/docs

Test endpoints directly from the browser, inspect schemas, and view all available routes.

Quick Start

Start with Authentication — register an account and get tokens, then explore any category from the sidebar.

Was this page helpful?

API Reference | QrioTag Docs