API Documentation

Build powerful integrations with the Olux Professional API.

Getting Started

The Olux Professional API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes.

Base URL: https://api.oluxprofessional.com/v1

Authentication

The API uses API keys to authenticate requests. You can view and manage your API keys in the Dashboard. Include your API key in the Authorization header of all requests.

curl https://api.oluxprofessional.com/v1/users \
  -H "Authorization: Bearer YOUR_API_KEY"

Warning: Keep your API keys secure. Do not share them in publicly accessible areas or client-side code.

Endpoints

List Users

Returns a list of users in your organization.

GET /users

Create User

Creates a new user in your organization.

POST /users
{
  "name": "John Doe",
  "email": "john@example.com",
  "role": "member"
}

Get User

Retrieves a specific user by ID.

GET /users/:id

Update User

Updates an existing user.

PUT /users/:id
{
  "name": "John Smith",
  "role": "admin"
}

Delete User

Removes a user from your organization.

DELETE /users/:id

Rate Limits

The API implements rate limiting to ensure fair usage. Rate limits vary by plan:

  • Starter: 1,000 requests per hour
  • Professional: 10,000 requests per hour
  • Enterprise: Custom limits

Rate limit information is included in response headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Error Handling

The API uses conventional HTTP response codes to indicate success or failure. Codes in the 2xx range indicate success, 4xx indicate client errors, and 5xx indicate server errors.

200 - OK

The request was successful.

400 - Bad Request

The request was invalid or cannot be served.

401 - Unauthorized

Authentication credentials are missing or invalid.

404 - Not Found

The requested resource doesn't exist.

429 - Too Many Requests

Rate limit exceeded.

500 - Internal Server Error

Something went wrong on our end.

{
  "error": {
    "type": "invalid_request",
    "message": "Missing required parameter: email"
  }
}