Create a booking
Book a call on one of your organization's booking links. Runs the same booking pipeline as the public booking page and the Aura dashboard:
- The calendar event is created on the assigned host's calendar and the guest receives the standard invite + confirmation email
- The lead is created or updated (matched by organization + guest email)
- Guest reminders, meeting recording, and configured workflows are scheduled
- The
call.bookedwebhook fires to all subscribers (single emitter — do not expect a second event from this endpoint)
Host assignment: by default the booking link's normal host assignment
(round-robin / first-free) applies. Pass closer_email to prefer a specific
host — it is resolved server-side against your organization's roster.
Form answers: answers are validated against the booking link's custom
field configuration — required fields must be answered and unknown field ids
are rejected with 400. Disqualification rules configured on the link are NOT
evaluated for API-created bookings (matching dashboard host-initiated booking
semantics) — the API caller vouches for the guest.
Slot validation: start_time must be in the future and respect the
link's minimum booking notice. The slot is re-checked against existing
bookings at write time; a slot taken between your availability read and this
request fails with 409 SLOT_UNAVAILABLE. A small residual race window
remains under high concurrency — the host's calendar provider is the final
arbiter and rejects a genuinely conflicting event (422). A failed request
never leaves a partial booking: if persistence fails after the calendar event
was created, the event is rolled back.
Idempotency: send an Idempotency-Key header to make retries safe. A
repeated key returns the originally created call; a key whose first request
is still in flight fails with 409 CONFLICT.
Rate limit: this endpoint is limited to 20 requests/minute per API key, in addition to the global limits.
Upstream failures: if the calendar provider rejects the booking the
request fails with 422 EXTERNAL_API_ERROR; if the provider or scheduling
service is degraded it fails with 502 EXTERNAL_API_ERROR.
Answers to the booking link's custom form fields. Required fields must be answered; unknown field ids are rejected with 400. Disqualification rules configured on the link are NOT evaluated for API-created bookings (matching dashboard host-initiated booking semantics).
Booking link to book against (must be active)
uuidPreferred host, by email. Resolved server-side against the organization's roster (no internal user IDs needed). When omitted, the booking link's normal host assignment (round-robin / first-free) applies.
emailSlot end. When omitted, derived from the booking link's configured duration.
date-timeThe prospect being booked
Slot start as an ISO-8601 datetime (UTC or with offset). Must be in the future and respect the booking link's minimum notice.
date-timeIANA timezone for the guest (e.g. Europe/Berlin). Defaults to the booking link's timezone.
length <= 255length <= 255length <= 255Attribution: UTM source recorded on the call and lead
length <= 255length <= 255Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.aura-app.ai/v1/calls" \ -H "Content-Type: application/json" \ -d '{ "booking_link_id": "850e8400-e29b-41d4-a716-446655440003", "guest": { "email": "ada@example.com", "name": "Ada Lovelace" }, "start_time": "2026-08-01T15:00:00Z" }'{
"data": {
"action_items": [
{
"due_at": "string",
"notes": "string",
"owner": "string",
"title": "string",
"property1": null,
"property2": null
}
],
"ai_summary": "string",
"booking_link_id": "850e8400-e29b-41d4-a716-446655440003",
"call_kind": "booking",
"closer_id": "user_2abc123xyz",
"conferencing_link": "https://zoom.us/j/123456789",
"created_at": "2026-01-17T08:00:00Z",
"duration_minutes": 45,
"ended_at": "2019-08-24T14:15:22Z",
"expected_deal_value": 500000,
"form_data": [
{
"field_id": "budget",
"label": "What is your budget?",
"value": null,
"property1": null,
"property2": null
}
],
"guest_rsvp_confirmed_at": "2019-08-24T14:15:22Z",
"guest_rsvp_status": "yes",
"has_analysis": true,
"has_recording": true,
"id": "550e8400-e29b-41d4-a716-446655440000",
"lead_id": "650e8400-e29b-41d4-a716-446655440001",
"linked_payment_id": "403ebef4-39b7-43a9-8633-c107cae8737a",
"notes": "string",
"product_id": "950e8400-e29b-41d4-a716-446655440004",
"recording_url": "string",
"referral": "string",
"scheduled_at": "2026-01-20T15:00:00Z",
"setter_id": "user_2def456uvw",
"started_at": "2019-08-24T14:15:22Z",
"status": "closed",
"transcript_data": {
"duration_seconds": 0,
"language": "string",
"segments": [
{
"end_seconds": 0,
"speaker": "string",
"start_seconds": 0,
"text": "string",
"property1": null,
"property2": null
}
],
"property1": null,
"property2": null
},
"updated_at": "2026-01-17T09:30:00Z",
"utm_campaign": "summer_promo",
"utm_content": "string",
"utm_medium": "cpc",
"utm_source": "google",
"utm_term": "string"
},
"success": true
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"requestId": "req_abc123",
"success": false
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"requestId": "req_abc123",
"success": false
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"requestId": "req_abc123",
"success": false
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"requestId": "req_abc123",
"success": false
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"requestId": "req_abc123",
"success": false
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"requestId": "req_abc123",
"success": false
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"requestId": "req_abc123",
"success": false
}