FairCal API.

Pay-per-booking REST API. Auth with a Bearer token. Every endpoint returns a hold ID — operations settle on success and void on failure.

Base URL

https://api.faircompany.ai/v1/cal

Authentication

All requests use a Bearer token. Get one from faircal.ai/app.

Authorization: Bearer fair_live_...

Pricing

Every booking costs $0.05 per booking. The cost is held against your wallet at request time, settled on success, and voided on failure.

Endpoints

POST/v1/cal/bookings

Create a new booking.

{
  "input": "...",
  "metadata": { "ref": "your-internal-id" }
}

Returns the resource and a hold_id:

{
  "id": "booking_01HX...",
  "status": "queued",
  "hold_id": "hold_01HX...",
  "estimated_cost_usd": "$0.05"
}

GET/v1/cal/bookings/:id

Fetch a booking by ID. Returns full state including settled cost.

GET/v1/cal/bookings

List bookings. Supports cursor pagination, created_after, status, and metadata filters.

DELETE/v1/cal/bookings/:id

Cancel a queued booking. Held funds are released. Already-settled bookings cannot be cancelled.

POST/v1/cal/webhooks

Register a webhook for booking.created, booking.completed, booking.failed events. Signed with HMAC-SHA256.

Errors

  • 402 Payment Required — wallet balance below the hold amount. Top up at faircal.ai/app.
  • 401 Unauthorized — missing or invalid Bearer token.
  • 422 Unprocessable — input failed validation.
  • 429 Rate Limit — exponential backoff with the Retry-After header.
  • 5xx — held funds are auto-voided after 5 minutes if no settlement arrives.

SDKs

Typed clients available for TypeScript / Python via @fair/sdk (npm) and fair-sdk (PyPI). Full OpenAPI spec at api.faircompany.ai/openapi.