Koora, wired into the systems you already run.
Move an existing workforce across, hear the moment a worker's compliance changes, and keep starters and leavers in step without anyone entering a worker twice.
Koora supports the integration in and out of your systems, with dedicated technical support.
Move a whole workforce across without a spreadsheet.
Your system of record already knows who works for you and which files you hold. The workforce API brings that across in one run and keeps it current.
Add your whole book in bulk
Batched a hundred workers per call, at any book size. Idempotent, so re-runs are safe: send the same worker twice and you get the original back.
Attach the credentials you already hold
The certificates and checks in your HR system come across as files, landing in your organisation's own space on the worker's record.
See what each role actually requires
Ask what a role needs and the answer comes from the live compliance engine, per sector and per state.
Read the compliance picture back
Pull each worker's gaps and current status into your own dashboards, as often as you like, without anyone exporting a spreadsheet.
One call, up to a hundred workers.
Plain REST over HTTPS, a bearer key, JSON in and JSON out. That is the shape of the whole thing.
POST /v1/workers/bulk
{
"defaults": { "provider_name": "Sunrise Aged Care" },
"workers": [
{
"email": "amara.okafor@example.com",
"first_name": "Amara",
"last_name": "Okafor",
"date_of_birth": "1988-03-14",
"tracked_role_codes": ["direct_care"],
"external_id": "EMP-10482"
},
{
"email": "yonas.tesfaye@example.com",
"first_name": "Yonas",
"last_name": "Tesfaye",
"date_of_birth": "1992-11-02",
"tracked_role_codes": ["registered_nurse"],
"external_id": "EMP-10515"
}
]
}Every endpoint, field, limit and error code lives inside Koora, next to your organisation's own keys.
Your systems hear it as it happens.
When a worker's expiry dates, review outcomes or access change, Koora posts it to the endpoint you name. Nobody opens a dashboard to find out.
- Start your own reminder in the tool your team already lives in, the day a credential goes into its expiry window.
- Hold a shift assignment while a worker's record says Non-compliant, and release it when the renewal lands.
- Keep the worker's status in your roster or HR system current, without anyone re-keying it.
Nineteen events, four groups.
Pick the events each endpoint receives: expiries approaching, workers claiming their records, access starting or ending, and, with Crew attached, reviews completing.
Every delivery is signed. Miss one and Koora retries for twelve hours.
Send plain JSON to your own systems, or use the built-in formats for Slack, Microsoft Teams, Zapier, Make and n8n.
Hire someone once, where you already hire.
Your HR system stays the source of truth. Point it at Koora and its own employee events do the work.
- New starters arrive from the hire event your HR system already raises, and Koora invites them to claim their record.
- Leavers end on the way out, with the grace period you choose before access is revoked.
- A repeated event never creates a second worker, so a retry from your side is safe.
- Where a system has no webhooks of its own, Zapier, Make and n8n cover the gap.
Koora can also accept new-starter events in the native formats of common HR and rostering systems, set up per organisation on request.
Works with the tools you already use.
Applicant tracking, HR, rostering, chat: if it can send or receive a webhook, it can talk to Koora. API and webhooks today, with direct integrations built on demand.
Hand the wiring to your own AI assistant
Paste this brief into the assistant your team already uses. It carries everything the assistant needs to work out how your HR system reaches Koora, and it keeps the safety model intact: your admin reviews every file in Koora before anything changes.
You are helping me connect my HR system to Koora (koora.care), the care-sector workforce compliance platform. I want my roster to flow into Koora so starters, leavers and credential details stay in step, with every change reviewed by an admin in Koora before it lands.
Koora offers two inbound channels. Both authenticate with a Bearer API key I create in Koora under Integrations, where the exact URLs are also shown:
1. Scheduled file drop (works with any HR system that can schedule a report):
POST the roster export to the "scheduled file drop" URL as JSON:
{ "file_name": "roster.csv", "csv": "<the export's contents>" }
Koora's AI matches the columns, I confirm the matching once, and every
later file re-applies it automatically.
2. Event webhook (for systems that can call an API on employee events):
POST worker.added / worker.removed events to the webhook URL, signed with
the webhook secret. The payload format is documented in the Koora app
beside the URL.
My HR system is: [NAME YOUR SYSTEM]
Please:
- Tell me whether my system can schedule a report delivery to a URL, emit
employee webhooks, or needs a small automation bridge (Zapier, Make or
Power Automate) in between.
- Give me the exact configuration steps for my system, and build the bridge
automation if one is needed.
- Use channel 1 unless my system genuinely supports employee event webhooks.
- Do not invent Koora URLs or payload fields: I will paste the real ones
from the Koora Integrations screen when you ask for them.The technical reference lives inside Koora.
Every endpoint, field, size limit, error code and event payload sits in the app under Settings, then Integrations, beside your organisation's own keys. No developers? Koora supports you to integrate in and out of your systems, with dedicated technical support.
A key is a password to your workforce
Keys are scoped to your organisation, or to a single service with no organisation above it. Each is shown once and stored only as a hash: keep it in your secrets manager.
Locked to the addresses you name
Give a key an allowlist and requests from anywhere else are refused. If the source address cannot be checked, the request is refused too: it fails closed.
Rotate without an outage
Rotate a key and the old one keeps working while you move your systems across, then stops. Revoke one and it stops on the spot.
Webhooks, the HR system connection and the workforce API all come with Pro and Enterprise.
See what each plan includesThe fine print, plainly.
Can the API mark a credential as verified?
No, and nothing you send enters a review queue. Files arrive as your organisation's own records; details without a document become your own dated attestation, labelled as such. The engine reads them and shows complete or missing. Koora reviewing documents is Crew, the add-on; verified by Koora means checked against an authoritative register. The record says which applies.
Do we need developers to connect our HR system?
No. Koora commits to supporting you to integrate in and out of your systems, with dedicated technical support to set the connection up and keep it running. If you do have developers, the workforce API and the in-app reference are there for them.
What happens to the records we supplied once a worker claims theirs?
The record becomes the worker's. What you supplied stays in your organisation's own space, visible to both of you, and new contributions run through the worker's Career Passport connection.
What if our HR system sends the same event twice?
Nothing is duplicated. Adds are idempotent, and inbound events can carry your own idempotency key: a replay returns the original outcome instead of running again.
Put your systems on speaking terms.
Point one endpoint at Koora and watch the first event land, then bring the rest of the workforce across the same way.
Working out where Koora fits your stack? Write to support@koora.care.





















