Find available staff
Needs: Roster, Read
Finds active staff who are free to work a shift: not already rostered, not on leave, within their availability, not excluded by the clients, and meeting the clients' compliance requirements. Best matches come first (no notes, site support staff, nearest, fewest hours this week).
Note: Each person also has
site_support_staff,notesand, for unavailable staff,reasons, when they apply.shift.siteis left out unlesssite_idis sent. If more staff exist than can be checked,counts.not_checkedand anoteask you to narrow the search withqueryorgender.
curl -X GET "https://app.imploy.com.au/api/integrations/v1/staff/available?start=example_string&end=example_string&clients=%5B%22null%22%5D&site_id=123&query=example_string&gender=example_string&exclude_ref=example_string&include_unavailable=true&limit=42" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://app.imploy.com.au/api/integrations/v1/staff/available?start=example_string&end=example_string&clients=%5B%22null%22%5D&site_id=123&query=example_string&gender=example_string&exclude_ref=example_string&include_unavailable=true&limit=42"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://app.imploy.com.au/api/integrations/v1/staff/available?start=example_string&end=example_string&clients=%5B%22null%22%5D&site_id=123&query=example_string&gender=example_string&exclude_ref=example_string&include_unavailable=true&limit=42", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://app.imploy.com.au/api/integrations/v1/staff/available?start=example_string&end=example_string&clients=%5B%22null%22%5D&site_id=123&query=example_string&gender=example_string&exclude_ref=example_string&include_unavailable=true&limit=42", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://app.imploy.com.au/api/integrations/v1/staff/available?start=example_string&end=example_string&clients=%5B%22null%22%5D&site_id=123&query=example_string&gender=example_string&exclude_ref=example_string&include_unavailable=true&limit=42')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"shift": {
"start": "2026-03-02 09:00",
"end": "2026-03-02 13:00",
"site": null
},
"available": [
{
"id": 31,
"name": "Example Worker",
"week_hours": 18.5,
"distance_km": 4.2
}
],
"counts": {
"staff_checked": 24,
"available": 6,
"unavailable": 18
}
}
{
"message": "Invalid or expired access token."
}
{
"message": "Access token does not permit this action."
}
{
"message": "Too many requests."
}
/staff/available
Target server for requests. Edit to use your own host.
An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
imp_at_. Send it as Authorization: Bearer imp_at_XXXX.Shift start, YYYY-MM-DD HH:MM in the organisation's time.
Shift end, YYYY-MM-DD HH:MM. Must be after start, and within 24 hours of it.
Up to 20 client ids, comma separated. Checks exclusions and the clients' compliance requirements.
For a site shift. Site support staff are listed first.
Match a staff name.
Match a gender.
When re-staffing an existing shift, its ref (such as a:123), so it is not counted as a clash.
How many available staff to return. Defaults to 10, up to 50.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
Query Parameters
Shift start, YYYY-MM-DD HH:MM in the organisation's time.
Shift end, YYYY-MM-DD HH:MM. Must be after start, and within 24 hours of it.
Up to 20 client ids, comma separated. Checks exclusions and the clients' compliance requirements.
For a site shift. Site support staff are listed first.
Match a staff name.
Match a gender.
When re-staffing an existing shift, its ref (such as a:123), so it is not counted as a clash.
How many available staff to return. Defaults to 10, up to 50.
Responses
OK