Skip to content

Authentication

Used for user sessions (web/mobile apps).

Terminal window
# Login to get token
POST /api/v1/auth/login
{ "email": "user@example.com", "password": "password" }
# Response
{
"access_token": "eyJ...",
"refresh_token": "eyJ...",
"expires_in": 86400
}
# Use in requests
GET /api/v1/orders
Authorization: Bearer eyJ...
  • Access token: 24 hours (configurable)
  • Refresh token: 7 days

Used for service-to-service integrations.

Terminal window
# Create via CLI
rcommerce api-key create --name "My Integration" --scopes "products:read,orders:write"
# Use in requests
GET /api/v1/products
Authorization: Bearer ak_xxxx.yyyy

API keys have fine-grained scopes:

ScopeAccess
products:readRead products
products:writeCreate/update products
orders:readRead orders
orders:writeCreate/update orders
customers:readRead customers
customers:writeCreate/update customers
readRead access to all resources
writeWrite access to all resources
adminFull admin access

No authentication required:

  • GET /api/v1/products — list products
  • GET /api/v1/products/:id — get product
  • GET /api/v1/categories — list categories
  • POST /api/v1/auth/register — create account
  • POST /api/v1/auth/login — authenticate
  • POST /api/v1/auth/password-reset — request password reset
Terminal window
POST /api/v1/auth/refresh
{ "refresh_token": "eyJ..." }

Returns new access token.

  • Default: 60 requests/minute per IP
  • API keys: 1000 requests/minute (configurable)