Introduction
The OlaClick Public API lets partners and developers integrate with the OlaClick platform programmatically — query menus, read orders, and receive real-time event notifications via webhooks.
Base URL
https://public-api.olaclick.app
All endpoints are served under the /v1 path prefix (e.g. GET /v1/orders).
Authentication
All endpoints require an API Key. Pass it in one of these headers:
Authorization: Bearer olk_live_...
or
X-API-Key: olk_live_...
API Keys are generated from the restaurant's panel under Integrations > API Keys.
Scopes
API Key permissions are controlled by scopes assigned at creation time:
| Scope | Permission |
|---|---|
menu:read | Read catalog (categories, products, variants) |
menu:write | Create/update products |
orders:read | Read orders |
clients:read | Read customer data |
reports:read | Read reports and analytics |
webhooks:read | Read webhook subscriptions |
webhooks:write | Create/update/delete webhook subscriptions |
companies:read | Read company information |
Response Format
All successful responses are wrapped in a data envelope:
{
"data": { ... }
}
For list endpoints, pagination and metadata are included:
{
"data": [ ... ],
"pagination": {
"current_page": 1,
"per_page": 50,
"total": 230,
"has_more": true
}
}
Query Parameters Convention
Inspired by JSON:API:
Filtering:
GET /v1/orders?filter[status]=pending&filter[start_date]=2026-01-01
Pagination:
GET /v1/orders?page=1&per_page=50
Sorting (prefix - = descending):
GET /v1/orders?sort=-created_at
Errors
Error responses use RFC 7807 Problem Details (not wrapped in data):
{
"type": "https://api.olaclick.com/errors/insufficient_scope",
"title": "Insufficient Scope",
"status": 403,
"detail": "The API key does not have the required scope: orders:read",
"instance": "/v1/orders"
}
Rate Limiting
Requests are rate-limited per API key based on tier. Response headers indicate your current usage:
RateLimit-Limit: 100
RateLimit-Remaining: 97
RateLimit-Reset: 1719000000
When exceeded, the API returns 429 Too Many Requests with a Retry-After header.
Next Steps
→ Getting Started — Make your first API call in 5 minutes.