Bridge APIQuickstart

Quickstart

Check your API key, find a booking page, get its open times and book a meeting from code.

This guide books a meeting on one of your booking pages using the Bridge API. You need a workspace on the Business or Enterprise plan and a booking page that is accepting bookings.

Booking through the API works like someone booking on your booking page: Bridge sends the confirmation emails and adds the meeting to the hosts' calendars. Use your own email address while you try it.

Create an API key

In Bridge, go to Settings → API keys, click Create API key and choose Read and write. Copy the key and keep it in an environment variable:

export BRIDGE_API_KEY="bridge_live_..."

See Authentication for more about keys.

Check the key

curl https://api.meetonbridge.com/v1/me \
  -H "Authorization: Bearer $BRIDGE_API_KEY"
{
  "status": "success",
  "data": {
    "user": { "id": 42, "name": "Ada Lovelace", "email": "ada@example.com" },
    "workspace": { "id": 7, "name": "Acme", "handle": "acme" },
    "api_key": { "id": "0b7c…", "name": "Quickstart", "scope": "write" }
  }
}

Find a booking page

curl https://api.meetonbridge.com/v1/booking-pages \
  -H "Authorization: Bearer $BRIDGE_API_KEY"

Each booking page includes its id, status, duration_minutes and booking form questions. Pick a page whose status is active and note its id.

{
  "status": "success",
  "data": [
    {
      "id": "6f1c2a3b-4d5e-4f60-8a7b-9c0d1e2f3a4b",
      "name": "Product demo",
      "slug": "product-demo",
      "duration_minutes": 30,
      "status": "active",
      "booking_url": "https://meetonbridge.com/acme/product-demo",
      "questions": [
        { "id": "q_team", "label": "Team size", "type": "short_text", "required": true, "options": null }
      ]
    }
  ]
}

Get open times

Ask for open times over the next week, in the time zone you want them shown in:

curl -G https://api.meetonbridge.com/v1/slots \
  -H "Authorization: Bearer $BRIDGE_API_KEY" \
  --data-urlencode "booking_page_id=6f1c2a3b-4d5e-4f60-8a7b-9c0d1e2f3a4b" \
  --data-urlencode "start=2026-11-02T00:00:00Z" \
  --data-urlencode "end=2026-11-09T00:00:00Z" \
  --data-urlencode "timezone=America/New_York"
{
  "status": "success",
  "data": {
    "bookable": true,
    "timezone": "America/New_York",
    "slots": [
      { "start": "2026-11-02T14:00:00.000Z" },
      { "start": "2026-11-02T14:30:00.000Z" }
    ]
  }
}

The range can be up to 31 days. bookable is false when the page isn't accepting bookings, for example when it's inactive or a host's calendar is disconnected.

Book the meeting

Book one of the open times. Answer the page's questions in responses, keyed by question id:

curl https://api.meetonbridge.com/v1/bookings \
  -H "Authorization: Bearer $BRIDGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "booking_page_id": "6f1c2a3b-4d5e-4f60-8a7b-9c0d1e2f3a4b",
    "start": "2026-11-02T14:00:00.000Z",
    "attendee": {
      "name": "Grace Hopper",
      "email": "grace@example.com",
      "timezone": "America/New_York"
    },
    "responses": { "q_team": "12" },
    "notes": "Looking forward to it"
  }'

The response is the new booking, with status: "confirmed" and the meeting link in location.meeting_url. Keep its id to change it later.

Reschedule or cancel

curl https://api.meetonbridge.com/v1/bookings/BOOKING_ID/reschedule \
  -H "Authorization: Bearer $BRIDGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "start": "2026-11-03T15:00:00.000Z" }'

curl https://api.meetonbridge.com/v1/bookings/BOOKING_ID/cancel \
  -H "Authorization: Bearer $BRIDGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Customer asked to cancel" }'

Both return the updated booking. The attendee and hosts get the same emails as when the change is made in Bridge.

Next steps