Ciklek

API Reference

The Ciklek REST API lets you integrate Ciklek data into your own systems.

Enterprise plan only. API access requires an Enterprise subscription. Contact your Account Manager to enable it.

Base URL

https://api.ciklek.com/v1

All requests must be made over HTTPS.

Authentication

Use an API key in the Authorization header:

Authorization: Bearer bsk_live_<your_key>

API keys are scoped — a key with orders:read scope cannot write orders. Generate keys in Portal → Settings → API Keys.

Rate Limits

| Plan | Requests/minute | Requests/day | |------|----------------|-------------| | Enterprise | 120 | 50,000 |

Rate limit headers are returned on every response:

X-RateLimit-Limit: 120
X-RateLimit-Remaining: 119
X-RateLimit-Reset: 1710864000

When you exceed the limit, you receive 429 Too Many Requests. Back off and retry after the X-RateLimit-Reset timestamp.

Request Format

  • All request bodies must be application/json
  • Dates are ISO 8601: 2026-03-15T09:00:00Z
  • Monetary amounts are in cents (integer): $12.50 = 1250
  • IDs are UUIDs

Response Format

Successful responses return 200 OK or 201 Created with a JSON body.

{
  "data": { ... },
  "meta": {
    "total": 42,
    "page": 1,
    "per_page": 25
  }
}

Errors

{
  "error": {
    "code": "not_found",
    "message": "Order not found",
    "status": 404
  }
}

| HTTP Status | Meaning | |-------------|---------| | 400 | Bad request — invalid parameters | | 401 | Unauthorized — missing or invalid API key | | 403 | Forbidden — key doesn't have required scope | | 404 | Not found | | 422 | Validation error — see error.details | | 429 | Rate limit exceeded | | 500 | Internal server error — contact support |

Pagination

List endpoints use cursor pagination:

GET /v1/orders?limit=25&after=cursor_xyz

The response includes meta.next_cursor for the next page. When meta.next_cursor is null, you've reached the last page.

Idempotency

For POST requests, send an Idempotency-Key header to safely retry:

Idempotency-Key: <unique_uuid>

The same request with the same key returns the original response without creating a duplicate. Idempotency keys expire after 24 hours.