API ReferencePublic booking

Create booking intent

Create a new booking intent via a public interface (no authentication required).

The account_id field is required to identify which account the intent belongs to.

POST
/v1/public/booking_intents

Authorization

authorization
AuthorizationBearer <token>

In: header

Request Body

application/json

Create public booking intent params

TypeScript Definitions

Use the request body type in TypeScript.

Request schema for creating a booking intent via a public interface.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/public/booking_intents" \  -H "Content-Type: application/json" \  -d '{    "account_id": "acct_1234567890",    "end_at": "2026-02-23T10:30:00-05:00",    "service_id": "srv_1234567890",    "start_at": "2026-02-23T10:00:00-05:00",    "time_zone": "America/New_York"  }'
{  "data": {    "appointment": null,    "end_at": {      "local": "2026-02-23T10:30:00-05:00",      "object": "zoned_date_time",      "time_zone": "America/New_York",      "unix_ts": 1771947000,      "utc": "2026-02-23T15:30:00Z"    },    "errors": null,    "hold_until": "2026-02-22T10:10:00Z",    "id": "bi_abc123def456abc123def456",    "locked_fields": [],    "object": "public_booking_intent",    "requirements": {      "booking": {        "complete": true      },      "info": {        "complete": false      },      "submissions": [        {          "complete": false,          "form_id": "frm_abc123def456"        }      ]    },    "start_at": {      "local": "2026-02-23T10:00:00-05:00",      "object": "zoned_date_time",      "time_zone": "America/New_York",      "unix_ts": 1771945200,      "utc": "2026-02-23T15:00:00Z"    },    "status": "slot_selected",    "workflow": {      "available_steps": [        "booking",        "info",        "form:frm_abc123def456"      ],      "can_change_slot": true,      "can_complete": false,      "defunct_reason": null,      "is_defunct": false,      "resume_step": "info"    }  }}