This path proves your API key, tenant base URL, and first read in a few minutes.
Start read-only. Move to writes only after you have a disposable tenant and a
clear rollback plan.
Replace {workspace}.hollyhr.com with the HollyHR app origin your organisation
uses to sign in. If your organisation uses a custom HollyHR domain, use that
origin instead. For the hosted synthetic sandbox, use
HOLLYHR_API_BASE_URL="https://sandbox.hollyhr.com/api/v1" with an
hhr_test_... token created in the sandbox tenant.
The response identifies the current organisation, key scopes, environment, and
actor. Live organisation keys report environment.type = "live" and
environment.sandbox = false; hosted sandbox keys report
environment.type = "sandbox" and environment.sandbox = true. In both cases,
actor.type is api_key. See Environments and Testing
before running write tests.
Inside the HollyHR repository, the source package lives at
packages/hollyhr-api-client and is generated with pnpm sdk:generate. The SDK
includes helpers for cursor pagination, typed API errors, ETags/If-Match,
idempotency keys, request IDs, rate-limit headers, and webhook signature
verification. The package is merge-gated with pnpm guard:sdk, which builds
the SDK, runs its tests, syntax-checks the packaged examples, and checks
generated operation drift before release branches can merge.
The npm package includes runnable examples for the first call, pagination,
conditional updates, and webhook signatures:
The smoke expects a seeded disposable tenant by default. If you are debugging an
empty tenant, set HOLLYHR_TTFC_ALLOW_EMPTY=1. To produce a shareable evidence
file for directory or aggregator review, set: