# Employment Hero Payroll (slim) > Employment Hero Payroll (formerly KeyPay) is cloud payroll for Australia, New Zealand, the United Kingdom, Singapore and Malaysia. Its REST API covers businesses, employees, timesheets, leave, pay runs and reports, with an API key or OAuth 2.0. - Full: https://www.anchorterminal.com/tools/employment-hero.md (~7,850 tokens) · this version ~1,880 tokens · JSON https://www.anchorterminal.com/tools/employment-hero.json · canonical https://www.anchorterminal.com/tools/employment-hero - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-08 **D · 50.4/100 · rank #591 of 722 · #6 in Payroll infrastructure · not agent-ready · confidence medium** Assessment: Five public Swagger 2.0 files describe 660 to 821 operations per region, and any payroll user can generate an API key without a partner review. The key carries its user's whole access, no idempotency keys or API changelog were found, and the only official client is for .NET. ## Facts - Kind: HTTP API · vendor: Employment Hero Pty Ltd · category: Payroll infrastructure · legal entity: Employment Hero Pty Ltd · provenance 71/100 - Local only (HTTP): nuget `KeyPayV2` - Auth: OAuth or key · pricing: Paid · x402: no · licence: Proprietary service under Employment Hero's General Terms. The `KeyPayV2` .NET client is MIT - Probe metrics: not measured yet (probes haven't run) - Surface graded: Employment Hero Payroll API (REST, JSON), formerly KeyPay. Base https://api.yourpayroll.com.au/api/v2. The separate HR API at developer.employmenthero.com is not graded here - Regions: Australia (728 operations), New Zealand (660), United Kingdom (821), Singapore (695), Malaysia (679), one Swagger 2.0 file each - Payroll coverage: Businesses, employees, contractors, bank accounts, super funds, pay schedules, pay runs (66 operations in the Australian spec), timesheets, rosters, leave requests, expenses, awards, reports (41), webhooks (7) and employee self-service (111) - Pay run steps: Create, recalculate, read warnings and totals, start the approval process, finalise, unlock. Finalise options include `lodgePayRun`, `lodgePayRunInTestMode`, `publishPaySlips` and `exportJournals` - Credentials: API key from My Account, sent as the Basic auth username with a blank password. OAuth 2.0 authorisation code grant at `/oauth/authorise` and `/oauth/token`, 24-hour access tokens, 28-day refresh tokens, and `POST /oauth/token/revoke`. The spec names `read` and `write` scopes - Access steps: API key is self-serve for any user with a payroll login. OAuth client ID and secret come from a support request - Rate limits: 5 requests a second per API key per IP address. Our unauthenticated test saw `x-rate-limit-limit`, `x-rate-limit-remaining` and `x-rate-limit-reset` headers, and a 429 with `retry-after: 1`. The docs don't describe these headers - Pagination and filtering: OData v3 `$skip`, `$top` (100 by default and at most), `$orderby` and `$filter` on most GET operations. `$select` on the Employee API only. `$expand` not supported - Errors: Some operations document 400, 404 and 409 with a `ProblemDetails` body (`type`, `title`, `status`, `detail`, `instance`). 401 and 429 answered our test as plain text - Webhooks: Seven operations under `/api/v2/business/{businessId}/webhookregistrations`, with a test call - SDK: `KeyPayV2` on NuGet for .NET Standard 2.0, MIT, 574 versions, latest 3.0.0.969 on 2 September 2026. Source in Thinkei/keypay-dotnet-v2, generated from the API, last build commit 3.0.0.1025 on 8 October 2026 - Status: https://status.employmenthero.com with Login, Create Pay Run, Finalise Pay Run and Create Employee components for each of five payroll regions. No component names the Payroll API - Data locations: Per the DPA of 15 June 2026, APAC data in Australia, United Kingdom payroll data primarily in Ireland, Canadian payroll data primarily in Canada - Scores: Reliability 65, Performance pending, Schema & documentation 51, Agent ergonomics 53, Security & auth 46, Payments & pricing 10, Task success pending, Maintenance & community 68, Transparency & trust 60 · total over the 7 assessed categories - Why: Reliability, Read with the hosted lines. · Schema & documentation, A Swagger 2.0 file for each of five regions, public and without a login, 728 operations and 460 definitions for Australia (25). · Agent ergonomics, `$top` caps lists at 100 and `$select` trims fields on the Employee API only. · Security & auth, An API key generated under My Account, sent as the Basic auth username, and replaced with Change API Key. · Payments & pricing, Read with the hosted rubric. · Maintenance & community, The .NET client repository, generated from the API, has a build commit on 8 October 2026, and the swagger files were last modified on 28 Aug… · Transparency & trust, Closed service. - Sources: 29, open questions: 12, both in the full twin - Capabilities: payroll.run, payroll.employees, payroll.embedded, payroll.tax-filing, payroll.contractors, hr.time-off - JSON: https://www.anchorterminal.com/api/v1/tools/employment-hero.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/employment-hero.svg` or a link to https://www.anchorterminal.com/tools/employment-hero from a page on employmenthero.com or one of its subdomains, or the README of github.com/Thinkei/keypay-dotnet-v2, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Send the API key as the Basic auth username with a blank password, for example `curl -u {api_key}: https://api.yourpayroll.com.au/api/v2/user` 2. Pick the Swagger file for the business's region (`swagger-au.json`, `swagger-nz.json`, `swagger-uk.json`, `swagger-sg.json`, `swagger-my.json`). Paths and models differ by region 3. Stay under 5 requests a second per key and IP address. A 429 answered our test with `retry-after: 1` 4. Page lists with `$skip` and `$top` (100 at most). Filter property names are capitalised, unlike the camelCase JSON 5. Read `GET /api/v2/business/{businessId}/payrun/{payRunId}/warnings` before `POST .../finalise`. Finalise can lodge with the tax office and publish pay slips in the same call ## Connect ```bash Install-Package KeyPayV2 ``` ```bash curl -u {api_key}: https://api.yourpayroll.com.au/api/v2/user ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/employment-hero ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Gusto | B | 63.3 | payroll.run, payroll.employees, payroll.embedded, payroll.tax-filing, payroll.contractors, hr.time-off | https://www.anchorterminal.com/tools/gusto.min.md | | Check | B | 67.5 | payroll.run, payroll.employees, payroll.embedded, payroll.tax-filing, payroll.contractors | https://www.anchorterminal.com/tools/check-payroll.min.md | | Everee | C | 55.1 | payroll.run, payroll.embedded, payroll.employees, payroll.contractors, payroll.tax-filing | https://www.anchorterminal.com/tools/everee.min.md | | Salsa | D | 46.1 | payroll.run, payroll.embedded, payroll.employees, payroll.tax-filing, payroll.contractors | https://www.anchorterminal.com/tools/salsa.min.md | | Zeal | E | 45.4 | payroll.run, payroll.embedded, payroll.employees, payroll.contractors, payroll.tax-filing | https://www.anchorterminal.com/tools/zeal.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)