cURL
curl "https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12?email=anna@example.com"const r = await fetch("https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12?email=anna@example.com");
r = requests.get("https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12",
params={"email":"anna@example.com"})
<?php
$b = json_decode(file_get_contents('https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12?email=anna@example.com'), true);
{
"id": 503,
"booking_reference": "BK-20260419-AB12",
"customer_name": "<string>",
"customer_email": "jsmith@example.com",
"starts_at": "2023-11-07T05:31:56Z",
"status": "pending",
"service": {
"id": 12,
"name": "60-minute private yoga",
"slug": "60-minute-private-yoga"
},
"customer_phone": "<string>",
"ends_at": "2023-11-07T05:31:56Z",
"payment_status": "not_required",
"price_charged": 123,
"currency": "<string>",
"customer_notes": "<string>",
"admin_notes": "<string>",
"cancellation_reason": "<string>",
"cancelled_at": "2023-11-07T05:31:56Z",
"confirmed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"type": "https://api.neuraldraft.io/errors/bad_request",
"title": "Bad request",
"status": 400,
"detail": "Request body could not be parsed.",
"code": "bad_request",
"instance": "req_2Nh4PqRsTuVw"
}{
"type": "https://api.neuraldraft.io/errors/not_found",
"title": "Not found",
"status": 404,
"detail": "No such resource.",
"code": "not_found",
"instance": "req_2Nh4PqRsTuVw"
}{
"type": "https://api.neuraldraft.io/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"detail": "Rate limit exceeded. Retry in 12 seconds.",
"code": "rate_limited",
"instance": "req_2Nh4PqRsTuVw"
}Booking
Public booking lookup by reference
Lets a customer check the status of their booking without an account.
Requires the booking reference in the path and the customer’s
email in the email query parameter as a verification proof.
Returns a public-fields-only variant — internal admin notes are hidden.
GET
/
public
/
bookings
/
{ref}
cURL
curl "https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12?email=anna@example.com"const r = await fetch("https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12?email=anna@example.com");
r = requests.get("https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12",
params={"email":"anna@example.com"})
<?php
$b = json_decode(file_get_contents('https://api.neuraldraft.io/v1/public/bookings/BK-20260419-AB12?email=anna@example.com'), true);
{
"id": 503,
"booking_reference": "BK-20260419-AB12",
"customer_name": "<string>",
"customer_email": "jsmith@example.com",
"starts_at": "2023-11-07T05:31:56Z",
"status": "pending",
"service": {
"id": 12,
"name": "60-minute private yoga",
"slug": "60-minute-private-yoga"
},
"customer_phone": "<string>",
"ends_at": "2023-11-07T05:31:56Z",
"payment_status": "not_required",
"price_charged": 123,
"currency": "<string>",
"customer_notes": "<string>",
"admin_notes": "<string>",
"cancellation_reason": "<string>",
"cancelled_at": "2023-11-07T05:31:56Z",
"confirmed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"type": "https://api.neuraldraft.io/errors/bad_request",
"title": "Bad request",
"status": 400,
"detail": "Request body could not be parsed.",
"code": "bad_request",
"instance": "req_2Nh4PqRsTuVw"
}{
"type": "https://api.neuraldraft.io/errors/not_found",
"title": "Not found",
"status": 404,
"detail": "No such resource.",
"code": "not_found",
"instance": "req_2Nh4PqRsTuVw"
}{
"type": "https://api.neuraldraft.io/errors/rate_limited",
"title": "Too many requests",
"status": 429,
"detail": "Rate limit exceeded. Retry in 12 seconds.",
"code": "rate_limited",
"instance": "req_2Nh4PqRsTuVw"
}Path Parameters
Booking reference (BK-YYYYMMDD-XXXX).
Example:
"BK-20260419-AB12"
Query Parameters
Response
Booking.
Example:
503
Example:
"BK-20260419-AB12"
Available options:
pending, confirmed, cancelled, completed, no_show Show child attributes
Show child attributes
Available options:
not_required, unpaid, paid, refunded Hidden in public lookups.