# Zeal (slim) > Zeal is an embedded payroll API for US staffing platforms, labour marketplaces and workforce software. Partners create employer companies, onboard W-2 employees and 1099 contractors, create pay cheques and contractor payments, preview payroll and pull reports. - Full: https://www.anchorterminal.com/tools/zeal.md (~7,350 tokens) · this version ~1,930 tokens · JSON https://www.anchorterminal.com/tools/zeal.json · canonical https://www.anchorterminal.com/tools/zeal - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-08 **E · 45.4/100 · rank #569 of 629 · #5 in Payroll infrastructure · not agent-ready · confidence medium** Assessment: Graded on the partner REST API at api.zeal.com, which is the only access route. Three OpenAPI specs, llms.txt, a test environment that moves no money, a preview endpoint and a per-cheque approval flag are documented. Access starts with a demo request, prices are not published, each environment has one unscoped key, and no status page or working changelog was found. ## Facts - Kind: HTTP API · vendor: Puzzl Group Inc. · category: Payroll infrastructure · legal entity: Puzzl Group Inc. · provenance 64/100 - Endpoint: `https://api.zeal.com` (HTTP) - Auth: API key · pricing: Paid · x402: no · licence: Proprietary service. The npm SDK declares MIT. The SDK repositories on GitHub carry no licence file - Probe metrics: not measured yet (probes haven't run) - Access route graded: Embedded-payroll partnership. A software platform becomes a Zeal partner and holds the keys for every employer company it creates. Zeal has no API for an employer to reach an existing payroll account of its own outside a partner - API: REST at https://api.zeal.com with no version in the path, JSON in and out. The main OpenAPI 3.1 spec has 128 paths and 177 operations (91 POST, 58 GET, 19 PATCH, 8 DELETE, 1 PUT) - Environments: Test and Production, each with its own key and separate data. Test processes payroll with no money moved and no tax filings. Responses carry `testMode` - Credentials: One Test API key and one Production API key per partner account, sent as a Bearer token, rolled from the API page of the Partner Dashboard. No scopes - Preview and approval: POST /preview/checks, /preview/checkDate and /preview/checkData start a job, GET /preview returns the breakdown. `approval_required` on a cheque or contractor payment blocks processing until `approved` is true - Rate limits: 100 requests a second in both modes, then 429. The error page recommends exponential backoff. No Retry-After header is documented - Idempotency: `x-idempotency-key` request header, honoured for 24 hours, in both modes - Pagination: Cursor with `start_at` and `limit` on some list endpoints, with `meta.next` and `meta.previous` links. Not every endpoint pages - Errors: `{success:false, errors:[{message, code}]}` with 116 numbered codes mapped to HTTP statuses. An unauthenticated call returned a `correlationId` on 8 October 2026 - Webhooks: 27 reference pages covering company, employee, contractor, cheque, payment, shift, report job, paperwork, bank account and garnishment events. URLs are set per event in the dashboard. `Puzzl-Signature` carries the shared secret - SDKs: @zeal-api/sdk 0.2.1 on npm (30 July 2026, MIT) and zeal-api-sdk 0.2.1 on PyPI (31 July 2026), both generated with Fern. The docs site does not mention them - Agents and MCP: The spec lists POST /agents/chat and an MCP Streamable HTTP endpoint at /mcp with four tools (ask_PayrollSpecialistAgent, ask_HrSpecialistAgent, ask_ReportingSpecialistAgent, ask_MigrationsSpecialistAgent). Both need an Agent-enabled key that Zeal's team switches on. No guide page found - Coverage: United States only, all 50 states. W-2 employees and 1099 contractors. Zeal says it files and pays payroll taxes and issues W-2 and 1099 forms - Early Access: Endpoints marked Early Access (I-9, custom paperwork, paycards, customer accounts, employee requirements) are enabled per partner contract - Security claims: SOC 2 Type II, AWS hosting, TLS 1.2 in transit and AES-256 at rest, per the security tab of zeal.com/legal. No report or trust centre is linked - Scores: Reliability 42, Performance pending, Schema & documentation 68, Agent ergonomics 63, Security & auth 34, Payments & pricing 0, Task success pending, Maintenance & community 61, Transparency & trust 51 · total over the 7 assessed categories - Why: Reliability, Read with the hosted rubric, on the partner REST API. · Schema & documentation, Three public OpenAPI 3.1 specs at docs.zeal.com/openapi, the main one with 128 paths and 177 operations (25). · Agent ergonomics, Responses can't be trimmed by field. · Security & auth, One Test key and one Production key per partner account, sent as a Bearer header, rollable from the dashboard with the old key invalidated a… · Payments & pricing, Read with the hosted rubric. · Maintenance & community, With the changelog returning 404, the newest dated public release is the Python SDK zeal-api-sdk 0.2.1 on 31 July 2026, 69 days before the c… · Transparency & trust, Editorial half only. - Sources: 28, open questions: 7, both in the full twin - Capabilities: payroll.run, payroll.embedded, payroll.employees, payroll.contractors, payroll.tax-filing, hr.onboarding - JSON: https://www.anchorterminal.com/api/v1/tools/zeal.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/zeal.svg` or a link to https://www.anchorterminal.com/tools/zeal from a page on zeal.com or one of its subdomains, or the README of github.com/zeal-corp/typescript-sdk, 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. Use the Test API key until a person has approved live payroll. Error code 0 (403) means the account has no production access 2. Send `companyID` on almost every call and `partnerID` on partner-level calls, in the body for POST and PATCH and the query for GET 3. Create cheques with `approval_required: true`, run POST /preview/checks, then PATCH /employeeCheck with `approved: true`. Without the flag Zeal processes pending cheques automatically 4. Send `x-idempotency-key` on every create so a retry within 24 hours doesn't pay twice 5. Previews and reports are jobs. Keep the `job_id` and poll GET /preview or GET /reports, or wait for the Job Queue webhook 6. Check dates must be bank days and submitted before 2 PM Pacific two bank days ahead, or the call fails with code 89 ## Connect ```bash npm i -s @zeal-api/sdk ``` ```bash curl --request GET \ --url 'https://api.zeal.com/companies?partnerID=YOUR_PARTNER_ID' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer YOUR_API_KEY' ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/zeal ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Gusto | B | 63.3 | payroll.run, payroll.employees, payroll.embedded, payroll.tax-filing, payroll.contractors, hr.onboarding | 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 | | Salsa | D | 46.1 | payroll.run, payroll.embedded, payroll.employees, payroll.tax-filing, payroll.contractors | https://www.anchorterminal.com/tools/salsa.min.md | | Finch | BB | 71.6 | payroll.employees, payroll.contractors | https://www.anchorterminal.com/tools/finch.min.md | | Deel | B | 69.1 | hr.onboarding | https://www.anchorterminal.com/tools/deel.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)