Quickstart
This guide gets you from zero to your first shift fulfilment response in about five minutes. It assumes you already have OAuth credentials (a client ID and client secret). If you do not, see the Authentication guide for how to request access.
US employers use the base URL https://client-api.indeedflex.com. UK employers use https://client-api.indeedflex.co.uk.
1. Get an access token
Exchange your client credentials for a Bearer token using the OAuth 2.0 client credentials flow. The scope must be employer_access:
curl -X POST https://apis.indeed.com/oauth/v2/tokens \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Accept: application/json" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" \ -d "grant_type=client_credentials" \ -d "scope=employer_access"The response contains an access_token you will use in the next step:
{ "access_token": "YOUR_ACCESS_TOKEN", "token_type": "Bearer", "expires_in": 3600, "scope": "employer_access"}2. Call the shift fulfilment endpoint
Use me as the employer path segment -- it resolves to the employer associated with your OAuth credentials, so you do not need to look up your internal Flex employer ID. All reporting endpoints are POST and take an empty JSON array (-d '[]') as the body.
curl -X POST "https://client-api.indeedflex.com/v1/reporting/me/reports/shift_fulfilment?from_date=2026-01-01&to_date=2026-01-31" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '[]'3. Read the response
A successful call returns 200 OK with the request echo, the shift records, and metadata:
{ "request": { "employer_id": 12345, "deployment_code": "US", "from_date": "2026-01-01", "to_date": "2026-01-31" }, "report": { "shifts": [ { "SHIFT_DATE": "2026-01-06", "VENUE_NAME": "Downtown Warehouse", "AREA_NAME": "Inbound", "JOB_TITLE": "Warehouse Operative", "SHIFTS_POSTED": 20, "SHIFTS_BOOKED": 19, "SHIFTS_BOOKED_PERCENTAGE": 95.0, "SHIFTS_UNFILLED": 1, "SHIFTS_UNFILLED_PERCENTAGE": 5.0, "SHIFTS_WORKED": 18, "SHIFTS_WORKED_PERCENTAGE": 90.0, "NO_SHOWS": 1, "NO_SHOWS_PERCENTAGE": 5.26, "HOURS_SCHEDULED": 160.0, "HOURS_WORKED": 144.0, "TRUE_DEMAND": 20, "TRUE_FULFILMENT_PERCENTAGE": 90.0, "SHIFT_ID": 987654 } ] }, "metadata": { "employer_id": 12345, "generated_at": "2026-02-01T09:15:00Z" }}Next steps
- Shift fulfilment -- Full metric definitions for the response above.
- Shift fulfilment aggregated -- Group the same data by time period.
- Worker turnover -- Headcount and turnover metrics.
- Rate limiting -- Stay within the per-token request allowance.
- API reference -- Full endpoint specifications.