Get shift fulfilment data for a specific employer
POST/v1/reporting/:employer_id/reports/shift_fulfilment
Retrieves shift fulfilment data with optional filtering by date range, venue, role, and worker type
Request
Path Parameters
Use me (recommended) to resolve the employer associated with your OAuth credentials, or pass your numeric employer ID. The value must match the employer your token is issued for.
Query Parameters
Start date for filtering (ISO 8601 format: YYYY-MM-DD)
End date for filtering (ISO 8601 format: YYYY-MM-DD)
Responses
- 200
- 400
- 401
- 403
- 404
- 429
- 500
- 504
Successfully retrieved shift fulfilment data
- */*
- Schema
- Example (from schema)
Schema
Array [
]
Array [
]
request
object
venue_and_area_ids
object[]
The venue ID
List of area IDs within this venue. Omit/empty = all areas, [0] = venue-level only, [5843] = specific area(s), [0, 5843] = venue-level + specific. Note: 0 represents NULL areas.
report
object
shifts
object[]
metadata
object
{ "request": { "employer_id": 0, "deployment_code": "string", "from_date": "string", "to_date": "string", "venue_and_area_ids": [ { "venue_id": 2057, "area_ids": [ 5811, 5812 ] } ] }, "report": { "shifts": [ { "SHIFT_DATE": "string", "NOTICE_PERIOD": "string", "SHIFT_START_TIME": "string", "SHIFT_END_TIME": "string", "VENUE_NAME": "string", "AREA_NAME": "string", "TIMEZONE": "string", "JOB_TITLE": "string", "SHIFTS_POSTED": 0, "SHIFTS_BOOKED": 0, "SHIFTS_BOOKED_PERCENTAGE": 0, "SHIFTS_UNFILLED": 0, "SHIFTS_UNFILLED_PERCENTAGE": 0, "SHIFTS_WORKED": 0, "SHIFTS_WORKED_PERCENTAGE": 0, "NO_SHOWS": 0, "NO_SHOWS_PERCENTAGE": 0, "HOURS_SCHEDULED": 0, "HOURS_WORKED": 0, "AVERAGE_WORKER_RATING": 0, "OVERBOOK_SHIFTS": 0, "ACCEPTED_ABSENCES": 0, "TRUE_DEMAND": 0, "TRUE_FULFILMENT_PERCENTAGE": 0, "TRUE_BOOKED_PERCENTAGE": 0, "TRUE_UNFILLED_PERCENTAGE": 0, "TRUE_NO_SHOW_PERCENTAGE": 0, "PUBLISHED_AT": "string", "OVERBOOK_SHIFT_DEMAND": 0, "AGENCY_RETRO_DEMAND": 0, "ADHOC_SHIFT_DEMAND": 0, "TIMECLOCK_SHIFT_DEMAND": 0, "SHIFT_ID": 0 } ] }, "metadata": { "employer_id": 0, "to_date": "string", "period_from": "string", "period_granularity": "string", "venue_ids": [ 0 ], "area_ids": [ 0 ], "generated_at": "2026-07-07T10:51:42.818Z" }}Invalid request parameters. The response body follows the ErrorResponse schema.
- application/json
- Schema
- Example (from schema)
Schema
Human-readable error message.
Machine-readable error classification (e.g. VALIDATION_ERROR, TIMEOUT_ERROR, CIRCUIT_BREAKER_OPEN).
Whether the request can be safely retried.
When the error occurred.
{ "error": "string", "errorType": "string", "retryable": true, "timestamp": "2026-07-07T10:51:42.818Z"}Missing or invalid Bearer token.
The authenticated client is not authorized for the requested employer_id. The employer_id in the path must match the employer your token is issued for.
Unknown endpoint, or reporting access is not enabled for this client.
Rate limit exceeded. Retry after the interval indicated by the Retry-After response header.
Internal server error. The response body follows the ErrorResponse schema.
- application/json
- Schema
- Example (from schema)
Schema
Human-readable error message.
Machine-readable error classification (e.g. VALIDATION_ERROR, TIMEOUT_ERROR, CIRCUIT_BREAKER_OPEN).
Whether the request can be safely retried.
When the error occurred.
{ "error": "string", "errorType": "string", "retryable": true, "timestamp": "2026-07-07T10:51:42.818Z"}Upstream timeout. The reporting backend did not respond in time; the response body is {"error": "upstream timeout"}.