Skip to main content
POST
This endpoint supports optional idempotency_key and Async Confirmation features. These features are currently in closed beta. See PSC Appointment Scheduling for more info.

Authorizations

x-vital-api-key
string
header
required

Vital Team API Key

Headers

x-idempotency-key
string | null

[!] This feature (Idempotency Key) is under closed beta. Idempotency Key support for booking PSC appointment.

x-idempotency-error
string | null

If no-cache, applies idempotency only to successful outcomes.

Allowed value: "no-cache"

Path Parameters

order_id
string<uuid>
required

Your Order ID.

Body

application/json
booking_key
string
required
appointment_notes
string | null
Maximum string length: 1000
async_confirmation
boolean
default:false

If true, the endpoint attempts to confirm the booking within the sync_confirmation_timeout_millisecond window. If confirmation is not received in time, a pending appointment is returned and booking continues asynchronously. If false (default), the endpoint waits for confirmation or returns a 500 error on failure.

sync_confirmation_timeout_millisecond
integer | null

Maximum time (in milliseconds) to wait for booking confirmation before returning a pending appointment. Only applies when async_confirmation is true. Defaults to 2500ms. Range: 1000-10000ms.

Required range: 1000 <= x <= 10000
async_confirmation_timeout_millisecond
integer | null

Maximum time (in milliseconds) to attempt asynchronous booking before cancelling the pending appointment. Only applies when async_confirmation is true. Defaults to 15 minutes. Range: 60000-172800000ms.

Required range: 60000 <= x <= 172800000

Response

Successful Response

id
string<uuid4>
required
user_id
string<uuid4>
required
order_id
string<uuid4>
required
address
USAddress · object
required
location
LngLat · object
required
start_at
string<date-time> | null
required

Time is in UTC

end_at
string<date-time> | null
required

Time is in UTC

type
enum<string>
required

ℹ️ This enum is non-exhaustive.

Available options:
phlebotomy,
patient_service_center
provider
enum<string>
required

ℹ️ This enum is non-exhaustive.

Available options:
getlabs,
phlebfinders,
quest,
sonora_quest
status
enum<string>
required

ℹ️ This enum is non-exhaustive.

Available options:
confirmed,
pending,
reserved,
in_progress,
completed,
cancelled
provider_id
string
required
can_reschedule
boolean
required
event_status
enum<string>
required

ℹ️ This enum is non-exhaustive.

Available options:
pending,
reserved,
scheduled,
completed,
cancelled,
in_progress
events
ClientFacingAppointmentEvent · object[]
required
order_transaction_id
string<uuid4> | null
iana_timezone
string | null
Pattern: ^(?:(?:[A-Za-z_\-]+\/[A-Za-z_\-]+(?:\/[A-Za-z_\-]+)?)|(?:Etc\/[A-Za-z0-9+\-]+(?:\/[A-Za-z0-9]+)?|(?:CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|HST)))$
external_id
string | null
appointment_notes
string | null
Maximum string length: 1000
event_data
Event Data · object | null