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(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, 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 |
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 |
| 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"
},
"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"
},
{
"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 |