Your records, in your reports. Read-only by design.
A versioned REST API for your roster, shift notes, forms, staff and participants. Pull them into BI tools, spreadsheets and your data warehouse, with exactly the access you give each key and nothing more.
- Staff
- Participants
- Groups
- Positions
- Sites
- Shifts
- Shift notes
- Forms
- Form submissions
API keys are included on the Grow and Enterprise plans. See pricing
curl -G https://api.diversitysync.com/v1/shifts \
-H "Authorization: Bearer $DS_TOKEN" -d limit=1
{
"object": "list",
"has_more": true,
"data": [{
"object": "shift",
"status": "Complete",
"site": { "name": "Northside House" },
"staff": { "name": "Jordan Avery" }
}]
}The records you report on, readable by your tools. The roster, shift notes, forms, staff and participants, through one versioned, read-only REST API.
Read the roster
List published shifts across any date range, filtered by site, staff member or status.
Read shift notes
Pull a participant’s note timeline by date, with who wrote each entry, its shift and how many attachments it has.
Track form activity
See which incident reports and checks were submitted, by whom, and which are still in draft.
Know your people
Staff with their positions and employment type, and the participants each key is allowed to see.
Map your organisation
Sites, positions and participant groups, so your reports group the data the way your team does.
Feed your reporting
Pull a fortnight of roster into your BI tool, a spreadsheet or your data warehouse on a schedule you set.
Hours, if you allow them
Add the roster-hours scope and each shift carries its rostered hours, with breaks taken out.
Your permissions, no more
Every key acts as the staff member who created it, with the participant access they have in the app.
Sensitive fields stay put
Admin notes, exit notes and form answers are never exposed. Locked note blocks stay locked, and redacted text stays redacted.
Scoped keys
Choose read scopes per key in Admin → API Keys. A key can never carry more than its creator.
Short-lived tokens
Keys swap for 15-minute access tokens, and are revoked when their creator is archived.
Versioned, no silent changes
Everything lives under /v1. Breaking changes ship as a new version, never silently.
The reports you’d otherwise build by hand. Pull the record into the tools your finance, quality and IT teams already use, on a schedule you set.
- BI export
Rostered hours in your reports
A nightly pull of shifts and their rostered hours lands next to your finance data, so you can set what was rostered against what was billed and paid.
GET /v1/shifts?from=…&to=…
- Data warehouse
A copy of the record you query
Page through staff, participants, sites and shifts and load them into your own warehouse for long-range reporting.
GET /v1/participants?starting_after=…
- Staff sync
Staff lists that stay current
Pull active staff with their positions and employment type into your directory or onboarding tracker, so nobody retypes a new starter.
GET /v1/staff
- Audit
Evidence for your next audit
List every submission of your incident report form for the period, with who submitted it, when, and whether it’s processed.
GET /v1/forms/{id}/submissions?from=…
- Nightly script
Catch missing shift notes
Compare yesterday’s completed shifts with their notes and email coordinators the gaps before an auditor finds them.
GET /v1/shift-notes?from=…
- Internal tool
A coordinator page in an afternoon
Build a weekend cover page showing who’s rostered at each house, against /v1, without waiting on a feature request.
GET /v1/shifts?siteId=…&from=…
Easy to build on. Hard to over-share. A predictable contract for your developers, and access that never goes further than the app.
REST API
- Versioned under /v1: breaking changes ship as a new version
- Cursor pagination with limit and starting_after
- One list envelope and one error shape across /v1
- 120 requests a minute per key, with RateLimit headers
- No webhooks yet: pull on a schedule with date filters
Access control
- Keys created and revoked in Admin → API Keys
- Scopes never exceed the creator’s permissions
- Participant access matches the app, row by row
- Access tokens expire after 15 minutes
- Keys revoke themselves when their creator is archived
Care records
- Read only: nothing is created, changed or deleted
- Form answers stay in the app; only who submitted and when
- Admin and exit notes on shifts are never exposed
- Locked note blocks stay locked, redacted text stays redacted
- Data you pull out leaves our Sydney hosting: send it only where your policies allow
Your first request in two calls. Create a key, swap it for a token, read your roster.
- 1
Create a key
In Admin → API Keys, give it only the read scopes it needs. It’s shown once, so store it somewhere safe.
- 2
Swap it for a token
POST the key to /oauth/token for an access token that lasts 15 minutes. Reuse it until it expires.
- 3
Read your data
Send the token as a bearer on any /v1 request, and page through results with limit and starting_after.
# 1. Exchange your API key for a 15-minute access tokencurl -X POST https://api.diversitysync.com/oauth/token \ -H "Authorization: Bearer $DS_API_KEY" # 2. Read a fortnight of published shiftscurl -G https://api.diversitysync.com/v1/shifts \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d from=2026-10-26T00:00:00Z \ -d to=2026-11-09T00:00:00Z \ -d limit=25Every report, one record. Reports, scripts and your own code read over one REST API. Every answer comes from the same record your team works in.
- BI reports
- Spreadsheets
- Warehouse
- Scripts
- Your code
Diversity Sync’d
One record of care
- Scoped key
- Your permissions
- Read only
- Staff
- Participants
- Sites
- Positions
- Groups
- Shifts
- Shift notes
- Forms
Put your reports on the same record.
One read-only REST API, and keys your admins control.