GET /requisitions
Summary
List requisitions
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(raised, approved, filled, cancelled, rejected) | No | Filter by derived requisition status |
| 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, approvedDate, startDate, endDate, dateAccepted) | No | Date field that from/to apply to. 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 |
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 |
| approver | object | Show child attributes
|
| autoAssign | boolean | Whether auto-assignment is enabled for the requisition |
| 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 |
Response Example (200)
{
"success": true,
"data": [
{
"id": "67bc36db80a1616ec3f48123",
"reference": "REQ-R1002",
"status": "raised",
"quantity": 4,
"autoAssign": true,
"requestor": {
"name": "Riley Requestor",
"email": "riley.requestor@example.com"
},
"approver": {
"name": "Avery Approver",
"email": "avery.approver@example.com"
},
"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"
},
{
"id": "67bc36db80a1616ec3f47102",
"name": "Summit Trades",
"offered": 2,
"assigned": 1,
"dateReceived": "2026-02-22T09:00:00.000Z",
"dateAccepted": "2026-02-22T10:00:00.000Z"
}
],
"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-20T11:10:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 50,
"total": 1
}
}
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 |