List crews active over a period

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
GET /eTech/rest/ws/rostering/v1/crews

Returns the crews active over the requested period, with the participation intervals of each resource, so that you can match technician time with equipment time (for invoicing, for instance).

Rules

  • Crews carrying a disabling date, or whose main resource is inactive, are not returned.
  • A crew is returned when at least one of its resources belongs to the office of the OAuth2 application or below. Secondary resources outside that hierarchy are hidden; the main resource is always shown.
  • The main resource is not repeated among the secondary resources. The report filler is not part of a crew.
  • Past periods can be queried: crews are returned as they are stored at call time.

Rate limit range : High

Query parameters

  • startDate string(date-time) Required

    Start of the requested period, inclusive. RFC 3339 date-time with an offset.

  • endDate string(date-time) Required

    End of the requested period, exclusive. RFC 3339 date-time with an offset. Must be after startDate, at most 366 days later.

  • continuationToken string

    The continuation token which was received in the previous request. It contains information on the page to fetch. If not present, then the first page of results will be returned.

  • size integer

    Maximum number of crews returned per page. A value above 200 is capped to 200.

    Minimum value is 1, maximum value is 200. Default value is 200.

Responses

  • 200 application/json

    OK – Crews active over the requested period.

    Hide response attributes Show response attributes object
    • continuationToken string | null

      Opaque pagination token. Pass it back as the continuationToken query parameter to get the next page. null means last page. Do not parse or construct it.

    • data array[object] Required

      A crew, its main resource and its secondary resources, with their participation intervals.

      Hide data attributes Show data attributes object

      A crew, its main resource and its secondary resources, with their participation intervals.

      • mainResource object Required

        Resource carrying the crew. Its intervals are the crew's intervals.

        Hide mainResource attributes Show mainResource attributes object
        • code string Required

          Business code of the technician or equipment.

        • type string Required

          Kind of field resource.

          Values are technician or equipment.

        • intervals array[object] Required

          Participation intervals, non-overlapping, sorted by start date.

          At least 1 element.

          Hide intervals attributes Show intervals attributes object

          Participation interval, half-open [startDate, endDate), in UTC.

          • startDate string(date-time) Required

            Interval start, inclusive. UTC date-time notation as defined by RFC 3339, section 5.6.

          • endDate string(date-time) | null Required

            Interval end, exclusive. null for an open-ended interval.

      • secondaryResources object Required

        Resources working with the main resource, split by kind. Empty lists when none.

        Hide secondaryResources attributes Show secondaryResources attributes object
        • technicians array[object] Required

          Secondary resource of a crew.

          Hide technicians attributes Show technicians attributes object

          Secondary resource of a crew.

          • code string Required

            Business code of the technician or equipment.

          • intervals array[object] Required

            Participation intervals, non-overlapping, sorted by start date, always within the main resource's intervals.

            At least 1 element.

            Hide intervals attributes Show intervals attributes object

            Participation interval, half-open [startDate, endDate), in UTC.

            • startDate string(date-time) Required

              Interval start, inclusive. UTC date-time notation as defined by RFC 3339, section 5.6.

            • endDate string(date-time) | null Required

              Interval end, exclusive. null for an open-ended interval.

        • equipments array[object] Required

          Secondary resource of a crew.

          Hide equipments attributes Show equipments attributes object

          Secondary resource of a crew.

          • code string Required

            Business code of the technician or equipment.

          • intervals array[object] Required

            Participation intervals, non-overlapping, sorted by start date, always within the main resource's intervals.

            At least 1 element.

            Hide intervals attributes Show intervals attributes object

            Participation interval, half-open [startDate, endDate), in UTC.

            • startDate string(date-time) Required

              Interval start, inclusive. UTC date-time notation as defined by RFC 3339, section 5.6.

            • endDate string(date-time) | null Required

              Interval end, exclusive. null for an open-ended interval.

  • 400 application/json

    Bad Request - invalid query parameters.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 401 application/json

    Unauthorized - authentication issue.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 403 application/json

    Forbidden - not enough rights.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 429 application/json

    Too Many Requests.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 500 application/json

    Internal server error.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

GET /eTech/rest/ws/rostering/v1/crews
curl \
 --request GET 'https://ws-eu1.praxedo.com/eTech/rest/ws/rostering/v1/crews?startDate=2026-09-21T00%3A00%3A00Z&endDate=2026-09-26T00%3A00%3A00Z' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "continuationToken": "eyJsYXN0SW5kZXgiOnsic3RhcnREYXRlIjoiMjAyNi0wOS0yM1QwNjowMDowMFoiLCJjcmV3SWQiOjEwNTA2MH19",
  "data": [
    {
      "mainResource": {
        "code": "T-LEA",
        "type": "technician",
        "intervals": [
          {
            "startDate": "2026-09-21 06:00:00 UTC",
            "endDate": "2026-09-23 00:00:00 UTC"
          }
        ]
      },
      "secondaryResources": {
        "technicians": [
          {
            "code": "T-DUBOIS",
            "intervals": [
              {
                "startDate": "2026-09-21 06:00:00 UTC",
                "endDate": "2026-09-23 00:00:00 UTC"
              }
            ]
          }
        ],
        "equipments": [
          {
            "code": "truck-04",
            "intervals": [
              {
                "startDate": "2026-09-21 06:00:00 UTC",
                "endDate": "2026-09-23 00:00:00 UTC"
              }
            ]
          }
        ]
      }
    },
    {
      "mainResource": {
        "code": "T-DAVID",
        "type": "technician",
        "intervals": [
          {
            "startDate": "2026-09-23 06:00:00 UTC",
            "endDate": "2026-09-26 00:00:00 UTC"
          }
        ]
      },
      "secondaryResources": {
        "technicians": [],
        "equipments": [
          {
            "code": "truck-04",
            "intervals": [
              {
                "startDate": "2026-09-23 06:00:00 UTC",
                "endDate": "2026-09-24 00:00:00 UTC"
              },
              {
                "startDate": "2026-09-25 06:00:00 UTC",
                "endDate": "2026-09-26 00:00:00 UTC"
              }
            ]
          }
        ]
      }
    }
  ]
}
{
  "continuationToken": null,
  "data": [
    {
      "mainResource": {
        "code": "crane-02",
        "type": "equipment",
        "intervals": [
          {
            "startDate": "2026-09-22 06:00:00 UTC",
            "endDate": null
          }
        ]
      },
      "secondaryResources": {
        "technicians": [
          {
            "code": "T-MARTIN",
            "intervals": [
              {
                "startDate": "2026-09-22 06:00:00 UTC",
                "endDate": "2026-10-01 00:00:00 UTC"
              }
            ]
          }
        ],
        "equipments": []
      }
    }
  ]
}
{
  "continuationToken": null,
  "data": []
}
Response examples (400)
{
  "errors": [
    {
      "code": "rostering.crews.period.missing",
      "message": "startDate and endDate are mandatory"
    }
  ],
  "errorReference": "923e4567-e89b-12d3-a456-426614174000"
}
{
  "errors": [
    {
      "code": "rostering.crews.period.invalid",
      "message": "startDate and endDate must be ISO 8601 dates, and endDate must be after startDate"
    }
  ],
  "errorReference": "923e4567-e89b-12d3-a456-426614174000"
}
{
  "errors": [
    {
      "code": "rostering.crews.period.tooLong",
      "message": "The requested period cannot exceed one year"
    }
  ],
  "errorReference": "923e4567-e89b-12d3-a456-426614174000"
}
{
  "errors": [
    {
      "code": "rostering.crews.size.invalid",
      "message": "size must be a positive integer"
    }
  ],
  "errorReference": "923e4567-e89b-12d3-a456-426614174000"
}
{
  "errors": [
    {
      "code": "rostering.crews.continuationToken.invalid",
      "message": "The continuation token is malformed or expired"
    }
  ],
  "errorReference": "923e4567-e89b-12d3-a456-426614174000"
}
Response examples (401)
{
  "errors": [
    {
      "code": "unauthorized.nocredentials",
      "message": "No credentials."
    }
  ],
  "errorReference": "f939c6b8c15045c9a70f500fdb570555"
}
{
  "errors": [
    {
      "code": "unauthorized.badcredentials",
      "message": "Bad Credentials."
    }
  ],
  "errorReference": "f1028f99811b422eb21f5ff176664069"
}
Response examples (403)
{
  "errors": [
    {
      "code": "access.forbiden",
      "message": "You don't have the rights to access this resource."
    }
  ],
  "errorReference": "a745dc4c5a2b473aaf8ce94c9260aa8f"
}
Response examples (429)
{
  "errors": [
    {
      "code": "ratelimiter.toomanyrequest",
      "message": "Rejected because of the rate limit definition."
    }
  ],
  "errorReference": "973326230a3f44daba6cc34a5939b4fb"
}
Response examples (500)
{
  "errors": [
    {
      "code": "internal.server.error",
      "message": "Something went wrong."
    }
  ],
  "errorReference": "6377010431314bf6b0b95ec4d32ddae0"
}