TimeSlotsRequest
billingIdThe end user's unique identifier used for billing
targetGeoLocationThe latitude and longitude coordinates of where the service will take place [latitude, longitude]
targetServiceDurationMinsThe duration of the service in minutes
List of providers, each with their providerId, maxTravelTimeMins, bookings, and availability.
lookAheadStartDateThe date to begin the look-ahead period. By default, the date and time of the request is used.
lookAheadDaysThe number of days to search ahead from the lookAheadStartDate. Defaults to 7 days and cannot exceed a maximum of 7 days.
travelTimeTypeThe travel time type returned in TimeSlotResponse: "raw" (e.g. 12.6 min) or "rounded" (e.g. 15 min). By default, travel time is rounded up to the nearest 5 minutes.
preferredTimeSlotThresholdMinsThe maximum travel time threshold for a preferred time slot. Defaults to 5 minutes.
distanceUnitThe unit for travel distance in the response. Defaults to kilometers.
minBookingNoticeMinsMinimum advance notice from current date and time for time slot suggestions - no time slots will be suggested within the minimum booking notice window. Defaults to no minimum notice.
emptyDayAnchorTimeThe anchor time for the first booking on an empty day, used as a base for clustering. Defaults to the first and last available slots of a schedule's time range.
preferredDaysSpecifies the preferred days of the week for time slots. Days are represented numerically, where 0 = Sunday and 6 = Saturday
Specifies preferred time ranges for time slots
orderPrioritizes suggested time slots at the start (mustBeFirst) or end (mustBeLast) of the day. Add optional startGeoLocation and/or endGeoLocation parameters in the provider availability array to make sure routes start and end at specific locations. Regular time slots will still be included in the response.
maxNumberOfBookingsPerDayMaximum number of bookings for a single day
TimeSlotsResponse
statusmessageList of generated suggested time slot objects
errorsArray of error messages for individual providers. Errors for one provider do not prevent attempts for other providers.
WhoIsAvailableRequest
billingIdThe end user's unique identifier used for billing
targetGeoLocationThe latitude and longitude coordinates of where the service will take place [latitude, longitude]. This is not required if a valid companyLocationId is provided.
targetServiceIdThe ID for the service saved in MarketBox.
companyLocationIdThe ID for the company location saved in MarketBox. This value will override the targetGeoLocation.
bookingTypeSpecifies if the slots being searched for are for a single booking, or a recurring booking set. By marking this recurring, expect a WhoIsAvailableRecurringResponse returned. Defaults to single.
startDateAndTimeThis is the date range AND time range of when the "Who is available" API will generate suggested time slots for.
endDateAndTimeThis is the date range AND time range of when the "Who is available" API will generate suggested time slots for – the time range is calculated on EACH of the day of the date range, e.g. if you send Oct 22, 14:00 until Oct 24, 18:00, this will mean 14:00-18:00 on each of the 3 days, and NOT a continuous period of 52 hours.
daysOfWeekIf bookingType is set to single, the days of the week specify which days to return time slots for (e.g. the client can only do Mondays, so only return time slots for Mondays); if bookingType is set to recurring, the days of the week are NOT taken into consideration, as this information will be provided in the rrule attribute.
skillsThis is a list of required skills for the provider to have in order to be eligible for the booking (defaults to none, i.e. no skill constraints).
rruleThis is the recurring pattern for bookings - bookingType must be set to recurring for this to be considered; The days of week provided in the rrule indicate the repeating cadence and if included, all of the days are considered as required, e.g. if you send every week Tuesday, Saturday and Sunday, we will ONLY suggest time slots that are available on all 3 of those days, so if a provider can do Tuesdays and Saturdays, but not Sundays, then they will not be included in the response.
travelTimeTypeThe travel time type returned in TimeSlotResponse: "raw" (e.g. 12.6 min) or "rounded" (e.g. 15 min). By default, travel time is rounded up to the nearest 5 minutes.
minBookingNoticeMinsMinimum advance notice from current date and time for time slot suggestions - no time slots will be suggested within the minimum booking notice window. Defaults to no minimum notice.
preferredTimeSlotThresholdMinsThe maximum travel time threshold for a preferred time slot. Defaults to 5 minutes.
distanceUnitThe unit for travel distance in the response. Defaults to kilometers.
WhoIsAvailableResponse
statusmessageList of generated suggested time slot objects
errorsArray of error messages for individual providers. Errors for one provider do not prevent attempts for other providers.
WhoIsAvailableRecurringResponse
statusmessageList of generated sets of suggested time slots
errorsArray of error messages for individual providers. Errors for one provider do not prevent attempts for other providers.
ClustersUsageResponse
totalRequestsTotal number of requests made.
totalTimeSlotsGeneratedTotal number of time slots generated.
totalBookingsTotal number of provider bookings provided in the requests.
avgProvidersPerRequestAverage number of providers per request.
Breakdown of usage by billing ID.
startDateStart date for the usage data range.
endDateEnd date for the usage data range.
BaseService
namedesccategoryIdcategoryNameminutespriceactivedeletedServiceResponse
namedescidcreatedAtupdatedAtcategoryIdcategoryNameminutespriceactivedeletedPictureObject
urlSigned S3 URL for the provider picture
expiresAtISO 8601 timestamp when the signed URL expires
ProviderResponse
providerIdcreatedAtupdatedAtfirstnamelastnameemailaddressphonetimezonebioSigned URL for profile picture with expiration
offersMobileServicesactivedeletedratingstarsavgAverage rating in stars (formatted to 2 decimal places)
numberofratingsoffersVirtualServicesmaxTravelTimeMaximum travel time allowed between bookings in minutes
externalIdExternal system identifier
Additional external data as key-value pairs
Serivces provided by the provider
Skills of the provider
OrderAddress
addressOneLineFull address
stateState code or province code
countryCountry name
countryCodeCountry code
postalCodeZip code or postal code
latitudeLatitude coordinate
longitudeLongitude coordinate
OrderResponse
orderIdserviceNameclientIdproviderIdcreatedAtupdatedAttypeorderNumbercurrencystatusexternalOrderIdAdditional external data as key-value pairs
orderTotalBookingResponse
bookingIdserviceNameorderIdproviderIdclientIdstartDateAndTimeBooking date and time with timezone offset
durationMinsserviceIdserviceLocationstatustimezoneorderTypeexternalBookingIdAdditional external data as key-value pairs
createdAtupdatedAtClientRequest
firstNameClient's first name
lastNameClient's last name
emailClient's email address
phonePhone number in E.164 format without spaces
PaymentDetails
orderTotalcurrency^[A-Z]{3}$ · requiredISO 4217 currency code
CreateOrderRequest
reservedSlotIdReserved slot ID obtained from POST /reservedslots endpoint
serviceIdService unique identifier
externalOrderIdThis is the unique identifier of the order inside your system – MarketBox will store and map this internally. If your system does not have a distinction between orders and bookings, then send the same booking or order ID in both externalBookingId and externalOrderId fields
externalBookingIdThis is the unique identifier of the booking inside your system – MarketBox will store and map this internally
Additional external data for the order
Additional external data for the booking
sendProviderEmailNotificationUpdateBookingResponse
bookingIdupdatedAtexternalBookingIdstatusstartDateAndTimeBooking date and time with timezone offset
UpdateBookingRequest
bookingIdMarketBox booking id of the booking to be updated
externalBookingIdThis is the unique identifier of the booking inside your system that needs to be updated in MarketBox. You can provide either bookingId or externalBookingId
startDateAndTimeBooking date and time with timezone offset. Provide this value, if you want to reschedule the booking.
timezoneIANA timezone identifier (required if startDateAndTime is provided)
statusBooking status. Provide this value when you want to update the status of booking.
CreateReservedSlotResponse
reservedSlotIdUnique identifier (UUID) for the reserved slot mapping record
Address
streetStreet address
cityName of the city
stateState code or province code
countryCountry name
postalCodeZip code or postal code
latitudeLatitude coordinate
longitudeLongitude coordinate
ServiceLocation
companyLocationIdUnique identifier of the company location in MarketBox. If address is not provided, companyLocationId must be provided.
CreateReservedSlotRequest
providerIdProvider unique identifier
serviceIdService unique identifier
Provide either the address object OR a companyLocationId; if both are provided, the companyLocationId will override the address
timezoneIANA timezone
startDateAndTimeBooking date and time with timezone offset
reservationTimeoutMinsThe number of minutes MarketBox will hold the reservation before releasing it.
ClientAddress
streetStreet address
cityCity name
stateState or province code
countryCountry name
postalcodePostal code or ZIP code
ClientResponse
clientIdUnique identifier for the client
firstnameClient's first name
lastnameClient's last name
emailaddressClient's email address
phoneClient's phone number
notesNotes about the client
longitudeLongitude coordinate
latitudeLatitude coordinate
externalClientIdExternal system identifier
Additional external data as key-value pairs
CreateClientRequest
firstnameClient's first name
lastnameClient's last name
emailaddressClient's email address (will be converted to lowercase)
phonePhone number in E.164 format without spaces
notesNotes about the client
longitudeLongitude coordinate
latitudeLatitude coordinate
externalClientIdExternal system identifier
Additional external data as key-value pairs
PaginatedClientsResponse
successIndicates the request was successful
Array of items for the current page. The length may be less than the requested 'limit' due to filtering or data availability.
UpdateClientRequest
clientIdMarketBox client ID
externalClientIdExternal system's client ID. Either clientId or externalClientId must be provided.
firstnameClient's first name
lastnameClient's last name
emailaddressClient's email address (will be converted to lowercase)
phonePhone number in E.164 format without spaces
notesNotes about the client. Set to null to clear existing notes.
longitudeLongitude coordinate
latitudeLatitude coordinate
Additional external data as key-value pairs