The MarketBox API is a modular, API-first platform for building modern scheduling, booking and dispatch workflows for both mobile services and fixed locations. At its core is the Smart Clusters engine, which generates realistic, bookable availability by analyzing provider schedules, existing bookings, travel zones and real-world travel constraints. Instead of relying on static time slots or buffers, MarketBox returns appointment times that are physically feasible, route-aware and optimized to reduce travel, traffic and idle gaps.
Beyond availability intelligence, the API includes a full set of resource endpoints for managing services, providers, schedules, bookings, orders and more. This allows teams to enhance an existing booking flow or build a complete, white-labeled scheduling system end-to-end. MarketBox is designed to be embedded into websites, dispatcher tools, AI chat and voice agents, or third-party platforms, with near real-time responses returned in JSON for seamless integration into any workflow.
To get started, please contact support@gomarketbox.com to get an API key.
Endpoints powered by the Smart Clusters engine, providing a set of stand-alone scheduling and route optimization tools for the field services industry – perfect for white labeling or embedding into any 3rd party software system.
Retrieves time slots
Endpoints powered by the Smart Clusters engine, providing a set of stand-alone scheduling and route optimization tools for the field services industry – perfect for white labeling or embedding into any 3rd party software system.
query Parameters
timeSuggestionsLimitThe maximum number of time suggestions returned per provider.
sortBySpecifies the sorting order of the timeSlots in the response. By default, the time slots are sorted by ascending travel time.
Retrieves time slots › Request Body
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
Retrieves time slots › Responses
Success
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.
Find best provider
Retrieve a list of suggested time slots based on internal schedules and existing bookings, retrieved from the MarketBox system
query Parameters
sortBySpecifies the sorting order of the timeSlots in the response. By default, the time slots are sorted by ascending travel time.
Find best provider › Request Body
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.
Find best provider › Responses
Success
statusmessageList of generated suggested time slot objects
All available time slots based on provider availability, shown at the increment value set at the company level. Indexed by provider ID.
errorsArray of error messages for individual providers. Errors for one provider do not prevent attempts for other providers.