Patient Scheduling API

Appointments

Server

Appointment lifecycle endpoints: list available slots, create, read, update, and cancel appointments, and look up tracking status.


Return a list of available appointment slots.

GET
https://scheduling.services.{domain}
/appointments/times

Query for available appointment time slots matching the given filter criteria. Labcorp limits appointment times to within the next 90 days, regardless of the search criteria given. The optional startDate and numberOfDays parameters can be used to shift the boundaries of the search results within that overall 90-day limitation, e.g. if startDate is 80 days out, a maximum of 10 days' worth of possible times can be returned even if more days are requested.

Return a list of available appointment slots. › query Parameters

locationId
​integer · required

The id for the location you would like to search for appointment times.

serviceId
​integer · required

The id for the service you would like to search for appointment times.

startDate
​string · date · pattern: ^\d{4}-\d{2}-\d{2}$

Optional starting date for returned values. Defaults to today; this value can be in the future by up to 90 days.

Example: 2019-01-24
numberOfDays
​integer · min: 1 · max: 90

Optional number of days, inclusive of startDate, to return appointment slots. This value is between 1 and 90, with a default of 7.

Default: 7
weekday
​string[]

Optional day(s) of the week you would like to search for. This filters the results to only the specified day(s) of the week.

Enum values:
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
timeframe
​string[]

Optional time of day against which to filter appointment times:

  • MORNING - prior to 10AM
  • MIDDAY - between 10AM and 2PM
  • EVENING - between 2PM and closing time
Enum values:
MORNING
MIDDAY
EVENING

Return a list of available appointment slots. › Responses

List of available appointment times.

​object[]
datetime
​string · pattern: ^\d{4}-\d{2}-\d{2}T\…

Query an appointment tracking record under the provided id.

GET
https://scheduling.services.{domain}
/appointments/tracking/{id}

If a tracking ID was used during the scheduling or cancelling of an appointment, a record is kept of the last known status of that appointment. This endpoint queries the current record.

Required headers: - Authorization: Bearer <okta_token> - client-id: <okta_client_id> - One of: x-partner-token or the Aperture-forwarded partner identity

Query an appointment tracking record under the provided id. › path Parameters

id
​string · required

ID of a tracking record.

Query an appointment tracking record under the provided id. › Responses

An appointment tracking record was found.

status
​string · enum · required

Last known status of the appointment, where Pending indicates the schedule was started but not completed.

Enum values:
Pending
Scheduled
Cancelled
confirmationNumber
​string

Create an appointment

POST
https://scheduling.services.{domain}
/appointments/v2

Schedule a new appointment for a patient at a particular Labcorp location. If an email and/or a phone number is provided with the patient data, Labcorp sends confirmation messages when the appointment is successfully scheduled.

Validation behavior (partner-type based): Validation is determined by partner type. See the Scheduling workflow guide for the full breakdown of enforced vs. relaxed validation, and de-identified patient support.

Required headers: - Authorization: Bearer <okta_token> - client-id: <okta_client_id> - One of: x-partner-token or the Aperture-forwarded partner identity

Create an appointment › Request Body

locationId
​integer · required
​Patient · required
serviceId
​integer · required
appointmentTime
​string · pattern: ^\d{4}-\d{2}-\d{2}T\… · required
confirmationNumber
​string

Appointment number if this is an existing appointment. Required for appointment updates.

Example: ABC123456
qrCode
​string

A base64-encoded PNG image that represents a QR code used by the patient to check in for their appointment at a Labcorp patient service center.

confirmationUrl
​string

Labcorp confirmation URL for this appointment.

Create an appointment › Responses

Appointment successfully created

locationId
​integer · required
​Patient · required
serviceId
​integer · required
appointmentTime
​string · pattern: ^\d{4}-\d{2}-\d{2}T\… · required
confirmationNumber
​string

Appointment number if this is an existing appointment. Required for appointment updates.

Example: ABC123456
qrCode
​string

A base64-encoded PNG image that represents a QR code used by the patient to check in for their appointment at a Labcorp patient service center.

confirmationUrl
​string

Labcorp confirmation URL for this appointment.


Get appointment details

GET
https://scheduling.services.{domain}
/appointments/{confirmationNumber}/v2

Using the provided confirmation number, retrieve the matching appointment record. This will not return a value if the appointment is cancelled, or if the current partner ID is not the one that scheduled the appointment.

Required headers: - Authorization: Bearer <okta_token> - client-id: <okta_client_id> - One of: x-partner-token or the Aperture-forwarded partner identity

Get appointment details › path Parameters

confirmationNumber
​string · required

ID of an appointment.

Get appointment details › Responses

Appointment found

locationId
​integer · required
​Patient · required
serviceId
​integer · required
appointmentTime
​string · pattern: ^\d{4}-\d{2}-\d{2}T\… · required
confirmationNumber
​string

Appointment number if this is an existing appointment. Required for appointment updates.

Example: ABC123456
qrCode
​string

A base64-encoded PNG image that represents a QR code used by the patient to check in for their appointment at a Labcorp patient service center.

confirmationUrl
​string

Labcorp confirmation URL for this appointment.


Update an existing appointment

PUT
https://scheduling.services.{domain}
/appointments/{confirmationNumber}/v2

An existing appointment, identified by the confirmation number, can be updated to have entirely new content. If the appointment date or time is modified, this checks availability and can fail if that time is not available.

Validation behavior (partner-type based): Validation is determined by partner type. See the Scheduling workflow guide for details.

Required headers: - Authorization: Bearer <okta_token> - client-id: <okta_client_id> - One of: x-partner-token or the Aperture-forwarded partner identity

Update an existing appointment › path Parameters

confirmationNumber
​string · required

ID of an appointment.

Update an existing appointment › Request Body

locationId
​integer · required
​Patient · required
serviceId
​integer · required
appointmentTime
​string · pattern: ^\d{4}-\d{2}-\d{2}T\… · required
confirmationNumber
​string

Appointment number if this is an existing appointment. Required for appointment updates.

Example: ABC123456
qrCode
​string

A base64-encoded PNG image that represents a QR code used by the patient to check in for their appointment at a Labcorp patient service center.

confirmationUrl
​string

Labcorp confirmation URL for this appointment.

Update an existing appointment › Responses

Appointment successfully updated

locationId
​integer · required
​Patient · required
serviceId
​integer · required
appointmentTime
​string · pattern: ^\d{4}-\d{2}-\d{2}T\… · required
confirmationNumber
​string

Appointment number if this is an existing appointment. Required for appointment updates.

Example: ABC123456
qrCode
​string

A base64-encoded PNG image that represents a QR code used by the patient to check in for their appointment at a Labcorp patient service center.

confirmationUrl
​string

Labcorp confirmation URL for this appointment.


Cancel an appointment

PUT
https://scheduling.services.{domain}
/appointments/{confirmationNumber}/cancel/v2

Cancel a currently scheduled appointment. Once complete, the appointment is permanently disabled and cannot be interacted with again. If an email and/or a phone number was provided during the original schedule call, Labcorp sends cancellation messages.

Required headers: - Authorization: Bearer <okta_token> - client-id: <okta_client_id> - One of: x-partner-token or the Aperture-forwarded partner identity

Cancel an appointment › path Parameters

confirmationNumber
​string · required

ID of an appointment.

Cancel an appointment › Request Body

Cancel appointment request.
firstName
​string · required

Patient's first name.

lastName
​string · required

Patient's last name.

Cancel an appointment › Responses

Appointment successfully cancelled

No data returned