# Gusto (slim) > Gusto Embedded Payroll is a REST API for running US payroll inside another product, covering company and worker onboarding, payroll calculation and submission, tax filing and contractor payments. Production access needs a partnership with Gusto. A demo environment is self-serve. - Full: https://www.anchorterminal.com/tools/gusto.md (~7,550 tokens) · this version ~1,930 tokens · JSON https://www.anchorterminal.com/tools/gusto.json · canonical https://www.anchorterminal.com/tools/gusto - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-08 **B · 63.3/100 · rank #283 of 629 · #3 in Payroll infrastructure · not agent-ready · confidence medium** Assessment: This listing covers the Embedded Payroll API. Every reference page carries an OpenAPI 3.1 definition, payroll is calculated as a preview before submission, and each API version gets 12 months of deprecation support. Production needs commercial and security approval, no price was readable, and the status page lists 11 incidents between 14 July and 5 October 2026, five marked major. ## Facts - Kind: HTTP API · vendor: Gusto, Inc. · category: Payroll infrastructure · legal entity: Gusto, Inc. · provenance 77/100 - Local only (HTTP): npm `@gusto/embedded-api`, npm `@gusto/embedded-react-sdk`, pypi `gusto-embedded` - Auth: OAuth · pricing: Paid · x402: no · licence: Proprietary service under Gusto's API Policy and Developer Terms of Service. The API clients on GitHub are MIT, and the React SDK and the Gusto CLI are Apache-2.0 - Probe metrics: not measured yet (probes haven't run) - Surface graded: Embedded Payroll API (REST, JSON), demo at https://api.gusto-demo.com and production at https://api.gusto.com, all paths under /v1. 317 reference pages in the embedded project - Payroll coverage: Regular and off-cycle payrolls, prepare, calculate, submit and cancel, payroll receipts, pay schedules, contractor payments, tax payments, time off policies, benefits, garnishments, forms and reports - Other Gusto surfaces: App Integrations API for partner apps on an existing Gusto account (update a payroll, no run). Gusto CLI and Gusto MCP server for a customer's own company (draft payroll, no submit). Dev Assistant MCP for documentation search, in beta - Credentials: System access token from client ID and secret (`grant_type` system_access) for partner-level calls. One access and refresh token pair per company. Access tokens last two hours. Scopes named resource:action, such as `payrolls:run`, assigned by Gusto before production - Access steps: Developer Portal account, organisation and application are self-serve for the demo. Production keys follow commercial, security and implementation reviews with the partnerships team - Rate limits: 200 requests a minute per application and user, rolling 60-second window, 429 with `Retry-After`, `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` - Pagination and sorting: `page` and `per` (25 by default, 100 at most on payrolls) with `X-Total-Count` and `X-Total-Pages` headers. Cursor pagination with `starting_after_uuid` and `limit` on some endpoints. `sort_by` with an allowlist per endpoint - Writes: PUT takes a delta plus the resource's `version` and returns 409 on a stale one. `idempotency_key` on People Batch creation. Calculate and submit answer 202 and are polled - Errors: JSON `errors` array with `error_key`, `category`, `message` and `metadata`. 18 documented categories, among them `payroll_blocker`, `invalid_resource_version`, `missing_oauth_scopes` and `rate_limit_exceeded` - Versioning: Dated versions in `X-Gusto-API-Version`, about one a quarter. Six months of full support and six of limited support after deprecation, then 406. `Deprecation`, `Sunset` and `Link` headers - Webhooks: Subscriptions verified with a `verification_token`, up to 16 retries over three days, and GET /v1/events with 30 days of events - SDKs: API clients for TypeScript (@gusto/embedded-api 0.16.2, 1 October 2026), Python, Java, C# and Ruby, generated by Speakeasy, MIT, all labelled beta. React SDK @gusto/embedded-react-sdk 0.56.5 (7 October 2026), Apache-2.0 - Status: https://gustoapi.statuspage.io for the Embedded API (APIs, Webhooks, Embedded Flows, Developer Portal and three portals). https://status.gusto.com for the Gusto product - Scores: Reliability 58, Performance pending, Schema & documentation 86, Agent ergonomics 82, Security & auth 60, Payments & pricing 15, Task success pending, Maintenance & community 76, Transparency & trust 61 · total over the 7 assessed categories - Why: Reliability, Read with the hosted lines and scored on the Embedded Payroll API. · Schema & documentation, Each of 317 reference pages serves an OpenAPI 3.1 definition for its operation as Markdown. · Agent ergonomics, `include` chooses which parts of a payroll come back, and `page` and `per` size lists. · Security & auth, OAuth-style tokens with resource:action scopes. · Payments & pricing, Read with the hosted rubric. · Maintenance & community, The changelog's latest entry is dated 1 October 2026, the TypeScript client 0.16.2 shipped the same day and the React SDK 0.56.5 on 7 Octobe… · Transparency & trust, Closed service. - Sources: 32, open questions: 10, both in the full twin - Capabilities: payroll.run, payroll.employees, payroll.embedded, payroll.tax-filing, payroll.contractors, hr.onboarding, hr.time-off - JSON: https://www.anchorterminal.com/api/v1/tools/gusto.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/gusto.svg` or a link to https://www.anchorterminal.com/tools/gusto from a page on gusto.com or one of its subdomains, or the README of github.com/Gusto/gusto-typescript-client, 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. Develop against https://api.gusto-demo.com. Production at https://api.gusto.com needs keys Gusto issues after its reviews 2. Send `X-Gusto-API-Version: 2026-06-15` on every call. Without it the application's minimum version applies 3. Send the resource's current `version` with every PUT, and only the fields to change. A stale version returns 409 4. Calculate and submit return 202. Poll GET on the payroll until `calculated_at` is set or the status is processed, and read `submission_blockers` first 5. For a company already on Gusto, the Embedded API is the wrong route. Use the Gusto CLI or the MCP server at https://mcp.api.gusto.com, which draft payroll but can't submit it ## Connect ```bash npm add @gusto/embedded-api ``` ```bash curl --location --request POST 'https://api.gusto-demo.com/oauth/token' \ --header 'Content-Type: application/json' \ --data-raw '{ "client_id": "{{client_id}}", "client_secret": "{{client_secret}}", "grant_type": "system_access" }' ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/gusto ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Zeal | E | 45.4 | payroll.run, payroll.embedded, payroll.employees, payroll.contractors, payroll.tax-filing, hr.onboarding | https://www.anchorterminal.com/tools/zeal.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.time-off, hr.onboarding | https://www.anchorterminal.com/tools/deel.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)