Quickstart

Three calls take you from an API key to a confirmed booking: offerings_list finds what to book, availability_get returns open slots with what's left of each, and bookings_create books one. Each is a REST call with your key in the Authorization header, and the same operation is an MCP tool.

Plain text

Get a key

Create an API key in Dashboard → Developers. Send it with every request:

AuthAuthorization: Bearer daybooked_live_…

1Find an offering

MCP tool · offerings_list

curl
curl "https://daybooked.io/api/v1/offerings" \
  -H "Authorization: Bearer daybooked_live_…"
200response
{
  "data": [
    {
      "id": "8f1c2e4a-0b7d-4c55-9a7e-3f2d1c0b9a88",
      "kind": "rental",
      "name": "Studio wheel",
      "duration_minutes": 60,
      "capacity": 6,
      "max_per_booking": 2,
      "price_cents": 2000,
      "active": true
    }
  ]
}

2Pick a slot

MCP tool · availability_get

curl
curl "https://daybooked.io/api/v1/offerings/8f1c2e4a-0b7d-4c55-9a7e-3f2d1c0b9a88/availability?from=2026-12-05&to=2026-12-05" \
  -H "Authorization: Bearer daybooked_live_…"
200response
{
  "timezone": "America/Denver",
  "data": [
    {
      "starts_at": "2026-12-05T15:00:00.000Z",
      "ends_at": "2026-12-05T16:00:00.000Z",
      "capacity": 6,
      "remaining": 4
    }
  ]
}

from and to are local dates in your org's time zone; the default is the next 14 days.

3Book it

MCP tool · bookings_create

curl
curl -X POST https://daybooked.io/api/v1/bookings \
  -H "Authorization: Bearer daybooked_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "offering_id": "8f1c2e4a-0b7d-4c55-9a7e-3f2d1c0b9a88",
    "starts_at": "2026-12-05T15:00:00Z",
    "quantity": 2,
    "customer": { "email": "pat@example.com", "name": "Pat" }
  }'
201response
{
  "id": "1e2d3c4b-5a69-4788-9a6b-5c4d3e2f1a0b",
  "reference": "0GWYRZ2V",
  "status": "confirmed",
  "starts_at": "2026-12-05T15:00:00+00:00",
  "ends_at": "2026-12-05T16:00:00+00:00",
  "quantity": 2,
  "total_cents": 4000,
  "offering": {
    "id": "8f1c2e4a-0b7d-4c55-9a7e-3f2d1c0b9a88",
    "name": "Studio wheel",
    "kind": "rental",
    "location": "12 Maple Street",
    "duration_minutes": 60
  },
  "customer": {
    "id": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
    "name": "Pat",
    "email": "pat@example.com",
    "phone": ""
  }
}

Classes: pass the slot's session_id instead of starts_at. Add idempotency_key so a retry never books twice.