Authentication
Authentication methods
Section titled “Authentication methods”JWT Bearer token
Section titled “JWT Bearer token”Used for user sessions (web/mobile apps).
# Login to get tokenPOST /api/v1/auth/login{ "email": "user@example.com", "password": "password" }
# Response{ "access_token": "eyJ...", "refresh_token": "eyJ...", "expires_in": 86400}
# Use in requestsGET /api/v1/ordersAuthorization: Bearer eyJ...- Access token: 24 hours (configurable)
- Refresh token: 7 days
API key
Section titled “API key”Used for service-to-service integrations.
# Create via CLIrcommerce api-key create --name "My Integration" --scopes "products:read,orders:write"
# Use in requestsGET /api/v1/productsAuthorization: Bearer ak_xxxx.yyyyAPI keys have fine-grained scopes:
| Scope | Access |
|---|---|
products:read | Read products |
products:write | Create/update products |
orders:read | Read orders |
orders:write | Create/update orders |
customers:read | Read customers |
customers:write | Create/update customers |
read | Read access to all resources |
write | Write access to all resources |
admin | Full admin access |
Public endpoints
Section titled “Public endpoints”No authentication required:
GET /api/v1/products— list productsGET /api/v1/products/:id— get productGET /api/v1/categories— list categoriesPOST /api/v1/auth/register— create accountPOST /api/v1/auth/login— authenticatePOST /api/v1/auth/password-reset— request password reset
Token refresh
Section titled “Token refresh”POST /api/v1/auth/refresh{ "refresh_token": "eyJ..." }Returns new access token.
Rate limiting
Section titled “Rate limiting”- Default: 60 requests/minute per IP
- API keys: 1000 requests/minute (configurable)