Base URL
Every API request is sent to:https://api.zeal.com/companies).
Request and response format
All request bodies must be sent as JSON with theContent-Type: application/json header. All successful responses are returned as JSON. Dates follow ISO 8601 (YYYY-MM-DD) unless otherwise noted in a specific endpoint’s documentation.
Authentication
Every request must include anAuthorization header with a Bearer token equal to your API key:
Example request
The snippet below shows a minimal authenticated request that lists all companies under your partner account.Environments
Zeal provides two isolated environments, each with its own set of API keys.Use your Test API key for all development and QA work. Switch to your Production API key only when you are ready to process real payroll. Test and Production resources are completely separate - data created in one environment does not appear in the other.
Partner ID vs Company ID
Two identifiers appear frequently across the API:partnerID- Identifies your Zeal partner account. Use this when creating companies or fetching resources that are scoped to your entire partner account. You can find yourpartnerIDon the API page of the Partner Dashboard.companyID- Identifies a specific employer company under your partner account. Most company-level and worker-level endpoints require acompanyID. It is returned when you callPOST /companiesand is also visible in the Partner Dashboard.
Error format
When a request fails, Zeal returns a non-2xx HTTP status code and a JSON body describing the problem. Errors follow the standard response envelope:success is false and errors is an array of error objects, each with a message and a code (see Error Codes):