Search for available slots

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://developers.praxedo.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "public-rest-apis MCP server": {
    "url": "https://developers.praxedo.com/mcp"
  }
}

Close
POST /rest/v3/slots/search

Finds the available time ranges for qualified field resources to carry out a given type of work order. Given a work order type and a location, the service allows to find the available intervals during which field resources possessing the needed skills have enough time to travel to the work order site from the previous site, perform the work order, and travel to the site of the next work order.
Use https://availableslots-production-1.praxedo.com/rest/v3/slots/search for EU instances.
Use https://availableslots-production-2.praxedo.com/rest/v3/slots/search for AM2.
Use https://availableslots-production-3.praxedo.com/rest/v3/slots/search for AM1.

application/json

Body Required

  • endCustomer object Required
    Hide endCustomer attributes Show endCustomer attributes object
    • need object Required
      Hide need attributes Show need attributes object
      • workOrder object Required

        The code of the work order type for which to look for slots.

        Hide workOrder attribute Show workOrder attribute object
        • code string
      • overrides object

        Replaces default values defined in the work order, regarding the duration and skill requirements, by custom ones for this search.

        Hide overrides attributes Show overrides attributes object
        • duration string

          Replaces the forecast duration of the work order which is the subject of the slot search, in ISO-8601 duration format.

          Format should match the following pattern: PnDTnHnMn.nS..

        • skillsRequirement object
          One of:
      • dispatchLocation object Required

        The location of the work order to be scheduled.

        One of:
    • availabilities object Required
      One of:
  • schedulerRequirements object
    Hide schedulerRequirements attributes Show schedulerRequirements attributes object
    • fieldResourceScheduled object
      Hide fieldResourceScheduled attributes Show fieldResourceScheduled attributes object
      • inArea object

        Allows to filter the field resources that can perform the work order, based on geographical constraints.

        Hide inArea attributes Show inArea attributes object
        • circle object

          The circle zone describing the working area of the work order.

          Hide circle attributes Show circle attributes object
          • radius object Required

            The radius of this circle area.

            Hide radius attributes Show radius attributes object
            • value number(double) Required

              The distance value.

            • unit string Required

              The distance unit.

              Values are KILOMETERS, METERS, or INTERNATIONAL_MILES.

          • center object Required

            The center of this circle area.

            Hide center attributes Show center attributes object
            • latitude number(double) Required

              WGS84 latitude of the coordinates.

            • longitude number(double) Required

              WGS84 longitude of the coordinates.

        • zipZone object

          The zone described by a zip code for the working area of the work order.

          Hide zipZone attributes Show zipZone attributes object
          • zipCode string Required

            Postal/ZIP code of the dispatch location. Only field resources set as available to work in this area can be dispatched to this area.

          • areaScope string

            Defines the level at which the ZIP code filter is applied: *'RESOURCE': Returns slots for resources whose area, defined on their details page, matches the requested zipCode. *'TIMESLOT': Returns slots only if the resource has a reserved time slot with an area matching the zipCode.

            Values are TIMESLOT or RESOURCE. Default value is RESOURCE.

      • nearDispatchLocation object

        Allows to filter the field resources that can perform the work order, based on travel time/distance constraints and according to their current schedule.

        Hide nearDispatchLocation attributes Show nearDispatchLocation attributes object
        • maximumDistanceToLocation object

          Filters out field resources that are too distant from the dispatch location.

          Hide maximumDistanceToLocation attributes Show maximumDistanceToLocation attributes object
          • value number(double) Required

            The distance value.

          • unit string Required

            The distance unit.

            Values are KILOMETERS, METERS, or INTERNATIONAL_MILES.

        • maximumTravelTimeToLocation string

          Filter out slots that would imply the field resource to travel more than this duration.

          Format should match the following pattern: PnDTnHnMn.nS..

        • maximumAddedTravelTime string

          Ignore slots for which the travel time exceeds the travel time allowed for this day, taking into account the value in maximumAddedTravelTime.

          Format should match the following pattern: PnDTnHnMn.nS..

    • fieldResourceWorkingFor object
      Hide fieldResourceWorkingFor attributes Show fieldResourceWorkingFor attributes object
      • customerPortalUser string

        The customer portal user who asks for the dispatching. All slots will match a time slot linked to this customer portal user.

      • offices array[object]

        The list of offices from which field resources can be dispatched to this work order.

        Default value is Root office of the enterprise.

        Hide offices attribute Show offices attribute object
        • code string

          The code of an office from which field resources can be dispatched to this work order.

      • childrenOfficesIncluded boolean

        Whether the children offices of the offices indicated are part of the slot search, or only the given offices are targeted. If true, children offices in the office hierarchy are eligible to dispatch a field resource to perform the work order.

        Default value is true.

    • workingHours object
      Hide workingHours attributes Show workingHours attributes object
      • ignoreFieldResourceOwnWorkingHours boolean

        Considers that the field resource's working time is the same as the hours defined at the company level. In consequence, it can return time slots that do not respect the custom working hours of the field resource.

        Default value is false.

      • ignoreFieldResourceBreak boolean

        Ignores the field resources' break, returning slots that run through it.

        Default value is false.

      • ignoreFieldResourceCapacityModel boolean

        Ignores the field ressources' capacity models in the returned slots calculation.

        Default value is false.

  • slotSearchConfiguration object
    Hide slotSearchConfiguration attributes Show slotSearchConfiguration attributes object
    • searchSize object

      Allows to limit the search space size beyond the default configuration, lowering the number of results and speeding up the computation.

      Hide searchSize attribute Show searchSize attribute object
      • maximumSlotNumber integer(int32)

        The maximum number of slots to return.

        Default value is 700.

    • servedSlots object

      Allows to configure some aspects of the slots in the result.

      Hide servedSlots attributes Show servedSlots attributes object
      • perTimeInterval string

        Allows to configure the slot sampling policy. Defining a sampling policy is required in case:

        • there are many field resources that can carry out the work order
        • the slot search time range is too big

        Otherwise, all slots will be grouped at the start of the slot search range.

        Values are BEST, FEW, or ALL. Default value is BEST.

      • startingHours object

        Allows to configure which slots to return based on their starting hour.

        One of:
    • mustExplainResults boolean

Responses

  • 200 application/json

    OK

    Hide response attributes Show response attributes object
    • slots array[object]
      Hide slots attributes Show slots attributes object
      • start string(date-time)

        Date time in ISO format indicating the start of the time interval.

        Format should match the following pattern: yyyy-MM-dd'T'HH:mm:ss.SSSZ.

      • end string(date-time)

        Date time in ISO format indicating the end of the time interval.

        Format should match the following pattern: yyyy-MM-dd'T'HH:mm:ss.SSSZ.

      • fieldResources array[object]
        Hide fieldResources attributes Show fieldResources attributes object
        • fieldResource object

          The code of an available field resource.

        • teamSize integer

          The size of the field resource's team, if they're a team leader.

        • availableTeammates array[object]

          The list of the available teammates on that time interval : the teammates shown are ones that are available and respect all the necessary conditions (skills, distance or travel time filter, etc..).

        • hasActivatedSubscription string

          Whether the field resource has an active subscription or not.

        • quality

          The quality of the slot for this field resource.

      • availableResourceCount integer

        The number of available resources on this time interval.

    • searchReport string

      A text detailing the steps taken while looking for a slot. Might prove useful to understand why a given resource unexpectedly has/miss slots. This is for manually diagnosing issues. The format of this field is submit to change at any given time. Do not parse it.

  • 400 application/json

    Bad request

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 1001 application/json

    The work order type is missing

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 1002 application/json

    A list of time ranges or a an appointment date is missing

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 1003 application/json

    Received a request requesting slots related to field resources in charge of an area (enableZoneFilter = 'true'). However, no zip code has been provided to help identify the area in which the work order will take place

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2001 application/json

    The provided work order type does not exist

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2002 application/json

    At least one of the provided offices does not exist

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2003 application/json

    The provided dates are in the past

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2004 application/json

    The end date of the search interval is earlier than the start date

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2005 application/json

    The slot search period is too long. The maximum is 200 weeks

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2006 application/json

    The 'offices' list accepts either 'codes' or 'ids', but not both. Please provide only one

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2007 application/json

    The provided areas do not exist

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2008 application/json

    Maximal value for maximumSlotNumber is 700

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2009 application/json

    The skills list accepts either 'codes' or 'ids', but not both. Please provide only on

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2010 application/json

    The 'workOrder' can either be a code or an id. Please provide only one

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2011 application/json

    Invalid value '%s' for parameter 'areaScope'. Allowed values are: 'RESOURCE', 'TIMESLOT'

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2012 application/json

    The parameter 'customerPortalUser' cannot be used with the 'RESOURCE' area scopes

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2013 application/json

    The parameter 'values' of 'startingHours' cannot be used with the 'FIRST_OF_THE_DAY' "perResource" option

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 2014 application/json

    The parameter 'appointmentDate' of 'availabilities' cannot be used with the 'FIRST_OF_THE_DAY' "perResource" option

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 3011 application/json

    The provided address couldn't be geocoded

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 3021 application/json

    The provided [latitude, longitude] is out of range : [%s, %s]. Expected values : -90 < latitude < 90 and -180 < longitude < 180

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 3022 application/json

    Coordinates (0,0) are not accepted

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 3031 application/json

    The travel times and distances could not be computed

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

  • 3032 application/json

    No route could be found to reach the work order destination (e.g. closed road, unreachable area)

    Hide response attributes Show response attributes object
    • errorCode string

      The error code.

    • errorMessage string

      The error message.

POST /rest/v3/slots/search
curl \
 --request POST 'https://ws-eu1.praxedo.com/rest/v3/slots/search' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "endCustomer": {
    "need": {
      "workOrder": {
        "code": "MAINTENANCE"
      },
      "dispatchLocation": {
        "address": "28 rue de Mogador, 75009 Paris"
      }
    },
    "availabilities": {
      "appointmentDate": "2026-11-03 08:00:00 UTC"
    }
  }
}'
Request examples
{
  "endCustomer": {
    "need": {
      "workOrder": {
        "code": "MAINTENANCE"
      },
      "dispatchLocation": {
        "address": "28 rue de Mogador, 75009 Paris"
      }
    },
    "availabilities": {
      "appointmentDate": "2026-11-03 08:00:00 UTC"
    }
  }
}
{
  "endCustomer": {
    "need": {
      "workOrder": {
        "code": "FIBER_INSTALL",
        "overrides": {
          "duration": "PT1H30M",
          "skillsRequirement": {
            "additionalSkills": [
              {
                "code": "FIBER",
                "constraint": "MANDATORY"
              }
            ]
          }
        }
      },
      "dispatchLocation": {
        "coordinates": {
          "latitude": 48.8755905,
          "longitude": 2.3287881
        }
      }
    },
    "availabilities": {
      "ranges": [
        {
          "start": "2026-11-03 07:00:00 UTC",
          "end": "2026-11-03 17:00:00 UTC"
        },
        {
          "start": "2026-11-04 07:00:00 UTC",
          "end": "2026-11-04 12:00:00 UTC"
        }
      ]
    }
  },
  "schedulerRequirements": {
    "fieldResourceWorkingFor": {
      "offices": [
        {
          "code": "PARIS_NORD"
        }
      ],
      "childrenOfficesIncluded": true
    },
    "workingHours": {
      "ignoreFieldResourceBreak": false
    }
  }
}
{
  "endCustomer": {
    "need": {
      "workOrder": {
        "code": "MAINTENANCE"
      },
      "dispatchLocation": {
        "address": "1 Place de la Comedie, 34000 Montpellier"
      }
    },
    "availabilities": {
      "ranges": [
        {
          "start": "2026-11-10 08:00:00 UTC",
          "end": "2026-11-14 18:00:00 UTC"
        }
      ]
    }
  },
  "slotSearchConfiguration": {
    "searchSize": {
      "maximumSlotNumber": 100
    },
    "servedSlots": {
      "perTimeInterval": "BEST"
    },
    "mustExplainResults": false
  }
}
{
  "endCustomer": {
    "need": {
      "workOrder": {
        "code": "MAINTENANCE"
      },
      "dispatchLocation": {
        "address": "28 rue de Mogador, 75009 Paris"
      }
    },
    "availabilities": {
      "ranges": [
        {
          "start": "2026-11-03 07:00:00 UTC",
          "end": "2026-11-03 17:00:00 UTC"
        }
      ]
    }
  },
  "schedulerRequirements": {
    "workingHours": {
      "ignoreFieldResourceCapacityModel": true
    }
  }
}
Response examples (200)
{
  "slots": [
    {
      "start": "2023-08-03T06:00:00Z",
      "end": "2023-08-03T06:00:00Z",
      "fieldResources": [
        {
          "fieldResource": {},
          "teamSize": 42,
          "availableTeammates": [
            {}
          ],
          "hasActivatedSubscription": "string"
        }
      ],
      "availableResourceCount": 42
    }
  ],
  "searchReport": "string"
}
Response examples (400)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (1001)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (1002)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (1003)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2001)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2002)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2003)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2004)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2005)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2006)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2007)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2008)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2009)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2010)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2011)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2012)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2013)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (2014)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (3011)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (3021)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (3022)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (3031)
{
  "errorCode": "string",
  "errorMessage": "string"
}
Response examples (3032)
{
  "errorCode": "string",
  "errorMessage": "string"
}