List Requisitions
/requisitionsSummary
Returns a paginated list of requisitions available to the API key, with filters for company, agency, project, trade, status, and relevant dates.
URL Parameters
- None
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company | string | No | Filter by company id(s). Pass a single id or comma-separated ids. If omitted, data for all companies linked to the API key is returned. |
| page | integer | No | Page number (default 1) |
| limit | integer | No | Records per page (default 50, max 200) |
| status | enum(open, raised, approved, filled, cancelled, rejected) | No | Filter by derived requisition status. open is an alias for approved and returns approved, active, unfilled requisitions. |
| project | string | No | Filter by project id |
| site | string | No | Filter by site id |
| costCode | string | No | Filter by cost code id |
| trade | string | No | Filter by trade id |
| agency | string | No | Filter by agency id |
| includeStageTracking | boolean | No | Include worker recruitment stage tracking. Only returned when this is true and the company has stage tracking enabled in company config. |
| query | string | No | Case-insensitive search against requisition reference |
| dateField | enum(createdAt, updatedAt, approvedDate, startDate, endDate, dateAccepted) | No | Date field that from/to apply to. Use updatedAt for incremental polling; dateAccepted filters agency accepted dates. Default: createdAt. |
| from | string | No | Date filter start (YYYY-MM-DD); applies to dateField |
| to | string | No | Date filter end (YYYY-MM-DD); applies to dateField |
| sortBy | enum(createdAt, updatedAt, reqRef, approvedDate) | No | Sort field |
| sortOrder | enum(asc, desc) | No | Sort direction |
| fields | string | No | Comma-separated list of response fields or dot-path nested fields to return |
Agency-scoped API keys may use open, approved, filled, or cancelled. Raised and rejected requisitions are not available to agencies. The response status remains approved when the request uses the open alias.
Request Example
- cURL
- JavaScript
- Python
- Go
curl -X GET 'https://api.requidex.com/api/open/v1/requisitions' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Accept: application/json'
const response = await fetch("https://api.requidex.com/api/open/v1/requisitions", {
method: "GET",
headers: {
Authorization: "Bearer <API_KEY>",
Accept: "application/json",
},
});
const json = await response.json();
import requests
response = requests.request(
'GET',
'https://api.requidex.com/api/open/v1/requisitions',
headers={
'Authorization': 'Bearer <API_KEY>',
'Accept': 'application/json',
},
timeout=30,
)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.requidex.com/api/open/v1/requisitions", nil)
req.Header.Set("Authorization", "Bearer <API_KEY>")
req.Header.Set("Accept", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
payload, _ := io.ReadAll(resp.Body)
fmt.Println(string(payload))
}
Response Fields
| Field | Type | Description |
|---|---|---|
| activity | object | Optional. Omitted when no activity is set. Show child attributes
|
| agencies | array[object] | Show child attributes
|
| approvedDate | string | Final approval timestamp when approved |
| approvalStages | array[object] | Approval workflow stages in order. approvedAt is an ISO 8601 timestamp for approvals recorded after stage timestamps were introduced; completed historical stages may return null. Show child attributes
|
| approver | object | Show child attributes
|
| autoAssign | boolean | Whether auto-assignment is enabled for the requisition |
| cancellation | object | Optional. Cancellation details for a currently cancelled requisition. Omitted when unavailable. Show child attributes
|
| company | object | Show child attributes
|
| createdAt | string | Creation timestamp |
| endDate | string | Planned end date |
| id | string | Requisition id |
| project | object | Show child attributes
|
| quantity | number | Requested worker quantity |
| reference | string | Requisition reference |
| region | object | Show child attributes
|
| requestor | object | Show child attributes
|
| sector | object | Show child attributes
|
| site | object | Show child attributes
|
| stageTracking | array[object] | Optional. Returned only when includeStageTracking=true and the company has stage tracking enabled in company config. Agency-scoped keys only receive records for their scoped agency. Show child attributes
|
| startDate | string | Planned start date |
| status | enum(raised, approved, filled, cancelled, rejected) | Derived requisition status |
| trade | object | Show child attributes
|
| updatedAt | string | Last update timestamp |
Each agencies[].submissions[] item can also include submittedBy and assignedBy objects with the responsible user's id and name. These fields are omitted when attribution is unavailable for a historical record.
Response Example (200)
{
"success": true,
"data": [
{
"id": "67bc36db80a1616ec3f48123",
"reference": "REQ-R1002",
"status": "cancelled",
"cancellation": {
"reason": "Project no longer proceeding",
"date": "2026-02-24T09:15:00.000Z",
"comments": "Client withdrew the requirement"
},
"quantity": 4,
"autoAssign": true,
"requestor": {
"name": "Riley Requestor",
"email": "riley.requestor@example.com"
},
"approver": {
"name": "Avery Approver",
"email": "avery.approver@example.com"
},
"approvalStages": [
{
"stage": 1,
"name": "Commercial approval",
"approved": true,
"approvedAt": "2026-02-10T10:00:00.000Z",
"approver": {
"name": "Avery Approver",
"email": "avery.approver@example.com"
}
},
{
"stage": 2,
"name": "Project approval",
"approved": false,
"approvedAt": null,
"approver": null
}
],
"company": {
"id": "67bc36db80a1616ec3f47001",
"name": "Requidex Construction Ltd"
},
"project": {
"id": "67bc36db80a1616ec3f47011",
"name": "Northern Rail Electrification"
},
"region": {
"id": "67bc36db80a1616ec3f47002",
"name": "North West"
},
"sector": {
"id": "67bc36db80a1616ec3f47003",
"name": "Rail"
},
"site": {
"id": "67bc36db80a1616ec3f47055",
"name": "Manchester Central"
},
"agencies": [
{
"id": "67bc36db80a1616ec3f47101",
"name": "Northline Labour Desk",
"offered": 1,
"assigned": 1,
"dateReceived": "2026-02-21T09:00:00.000Z",
"dateAccepted": "2026-02-21T10:00:00.000Z",
"submissions": [
{
"worker": {
"id": "67bc36db80a1616ec3f47201",
"name": "Jordan Taylor"
},
"submittedAt": "2026-02-21T11:00:00.000Z",
"isRejected": true,
"rejectionReason": "Required qualification not held",
"submittedBy": {
"id": "67bc36db80a1616ec3f47301",
"name": "Sam Recruiter"
},
"assignedBy": {
"id": "67bc36db80a1616ec3f47302",
"name": "Alex Manager"
}
}
]
},
{
"id": "67bc36db80a1616ec3f47102",
"name": "Summit Trades",
"offered": 2,
"assigned": 1,
"dateReceived": "2026-02-22T09:00:00.000Z",
"dateAccepted": "2026-02-22T10:00:00.000Z",
"submissions": [
{
"worker": {
"id": "67bc36db80a1616ec3f47202",
"name": "Alex Morgan"
},
"submittedAt": "2026-02-22T11:00:00.000Z",
"isRejected": false,
"rejectionReason": null
}
]
}
],
"trade": {
"id": "67bc36db80a1616ec3f47077",
"name": "Electrician"
},
"activity": {
"id": "67bc36db80a1616ec3f47099",
"name": "Install containment"
},
"startDate": "2026-03-01T00:00:00.000Z",
"endDate": "2026-03-31T23:59:59.999Z",
"createdAt": "2026-02-20T11:10:00.000Z",
"updatedAt": "2026-02-24T09:15:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 50,
"total": 1
}
}
MCP Tool
The MCP server exposes this operation as open_api_list_requisitions with the inputs company, page, limit, status, project, site, costCode, trade, agency, query, dateField, from, to, sortBy, sortOrder, includeStageTracking, and fields.
Errors
| HTTP Status | Description |
|---|---|
| 401 | Missing, invalid, revoked, or expired API key |
| 403 | Forbidden due to scope or IP restrictions |
| 405 | Method not allowed on Open API routes |
| 429 | Rate limit exceeded |
| 500 | Unexpected internal error |
Submission answers
Each returned record includes submissionAnswers (an empty array when there are no applicable answers), unless omitted by list response fields selection. It contains only answers configured to display on this entity. Requisitions expose the saved submission answers, including amendments made while pending; assignments and timesheets expose the saved assignment snapshot.
Agency-scoped callers receive only answers belonging to agencies in their authenticated API key scope, even when another agency submitted the same worker. Query filters and fields selection cannot expand that scope. Company-scoped callers receive answers within their existing company and project access. Existing endpoint read scopes apply; this is read-only access.
Each answer includes:
| Field | Description |
|---|---|
fieldId, label, fieldType, value | Field identifier, captured question and type, and answer value (text, date string, selected option array, or null) |
answerScope | submission for a whole-submission answer or worker for a per-worker answer |
submissionId, workerIds | Submission batch identifier and the workers covered by the answer |
agency, worker | Identifier and name objects; worker is null for whole-submission answers |
displayLocations | Configured display locations captured with the answer |
submittedAt, submittedBy | Original submission timestamp and submitter identifier/name |
updatedAt, updatedBy | Latest amendment timestamp and editor identifier/name, or null |