Skip to main content

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:

ScopePermission
menu:readRead catalog (categories, products, variants)
menu:writeCreate/update products
orders:readRead orders
clients:readRead customer data
reports:readRead reports and analytics
webhooks:readRead webhook subscriptions
webhooks:writeCreate/update/delete webhook subscriptions
companies:readRead 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.