Skip to main content

FAQ

Answers to common questions about the OlaClick Public API, each linked to the page that documents it in full.

Getting access & authentication​

How do I get an API key?

API keys are generated from the restaurant's panel under Integrations > API Keys. See Authentication.

How do I authenticate my requests?

Send your key in either the Authorization: Bearer olk_live_... header or the X-API-Key: olk_live_... header. See Authentication.

What's the difference between the Public API and the OlaClick Hub?

The Public API uses an API key and gives you access to your own company's data — it's for a single company integrating its own systems. OlaClick Hub uses OAuth 2.1 client credentials and gives access to any connected company's data — it's for developers building products for multiple companies. See Choose Your Integration Path.

Rate limits & errors​

What happens if I exceed the rate limit?

Requests are rate-limited per API key. Response headers (RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset) show your current usage, and exceeding the limit returns 429 Too Many Requests with a Retry-After header. See Rate Limiting.

How are error responses formatted?

Errors use RFC 7807 Problem Details — not wrapped in data — with type, title, status, detail, and instance (the request path) fields. See Errors.

Orders & webhooks​

How do I avoid creating a duplicate order if my request times out?

POST /v1/orders requires an Idempotency-Key header, stored as the order's reference. Retry with the same key and the API won't create a second order. See Orders changelog and Infrastructure changelog.

Which orders can I edit, update payments on, or cancel through the API?

Only orders created through the API can be edited, have items/discounts changed, or be cancelled. Updating payments and changing status are exceptions that also work on orders from other channels (storefront, POS). See Orders changelog.

How do I calculate the delivery price before creating an order?

Call GET /v1/delivery/pricing to learn the merchant's pricing mode, then GET /v1/delivery/quote for the modes that need a quote, and send the result as delivery_price on POST /v1/orders. See the Calculate delivery prices guide.

How do webhooks work, and how do I verify they came from OlaClick?

OlaClick sends a POST to your registered URL when an event occurs, signed with HMAC-SHA256 in the X-OlaClick-Signature header. Verify it against the raw request body using your webhook's signing_secret. See Webhooks.

What happens if my endpoint doesn't acknowledge a webhook delivery?

OlaClick retries up to max_retry times with exponential backoff (30s, 60s, 120s, ...) if your endpoint doesn't respond with a success code. See Retries.

MCP​

What can I do through the MCP server?

The MCP server exposes the Public API as tools for AI assistants: read menus, orders and clients, and operate the stack end to end — create and advance orders, manage promotions, webhooks, the menu, logistics, clients and addresses. See MCP Server.

How do I connect an MCP client, and do I need an API key?

For Claude.ai, Claude Desktop, Claude Code and ChatGPT you can sign in with OAuth — no API key needed. For local/stdio setups or clients without OAuth support, generate an API key and pass it yourself. See Two ways to authenticate.

Why does my MCP client ask me to confirm before some actions?

Every tool carries MCP annotations (readOnlyHint, destructiveHint, idempotentHint) based on the underlying HTTP method. Clients that honor these hints may ask you to confirm before running a destructive tool (one backed by DELETE). See Write tools: how they behave.

Support​

For recommendations, bug reports and questions, email api@olaclick.com.

To help us investigate faster, include:

  • The endpoint you called (method and path, e.g. POST /v1/orders).
  • The timestamp of the request.
  • Your company (or which API key / integration, without pasting the key itself).
  • The full error response body, if there was one — it carries type, detail and instance (see Errors).