{
  "data": {
    "a": {
      "slug": "gusto",
      "name": "Gusto",
      "vendor": "Gusto, Inc.",
      "vendorUrl": "https://gusto.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "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.",
      "url": "https://www.anchorterminal.com/tools/gusto",
      "markdownUrl": "https://www.anchorterminal.com/tools/gusto.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gusto.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gusto.json",
      "repo": "https://github.com/Gusto/gusto-typescript-client",
      "license": "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",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@gusto/embedded-api"
        },
        {
          "registry": "npm",
          "name": "@gusto/embedded-react-sdk"
        },
        {
          "registry": "pypi",
          "name": "gusto-embedded"
        }
      ],
      "auth": "oauth",
      "authNotes": "Graded on the Embedded Payroll API, which needs a partnership. A developer signs up at dev.gusto.com, creates an organisation and an application, and gets a client ID and secret for the demo environment. POST /oauth/token with `grant_type` system_access returns a two-hour system token for partner-level calls, and creating a partner-managed company returns an access and refresh token pair for that company alone. Scopes are assigned by Gusto, and production keys follow commercial, security and implementation reviews. Access to an existing employer's Gusto account is separate. Partner apps use the App Integrations API with the OAuth 2.0 authorisation code grant after Production Pre-Approval and a security review. A customer's own company is reached through the Gusto CLI or the Gusto MCP server, which sign in by OAuth with dynamic client registration and PKCE.",
      "pricing": "paid",
      "pricingNotes": "No price could be read. gusto.com and embedded.gusto.com answered our reader with a bot check, and the developer docs carry no figures. The introduction says commercial conversations are required before production, and an invoices endpoint returns the active companies used to calculate a partner's invoice. The demo environment is open to any developer with a Developer Portal account, with generated demo companies and no contract (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the API reference or the llms.txt index (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 24731,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.gusto.com/embedded-payroll/docs/introduction",
      "llmsTxt": "https://docs.gusto.com/llms.txt",
      "capabilities": [
        "payroll.run",
        "payroll.employees",
        "payroll.embedded",
        "payroll.tax-filing",
        "payroll.contractors",
        "hr.onboarding",
        "hr.time-off"
      ],
      "tags": [
        "hosted",
        "payroll",
        "oauth",
        "partner-approval",
        "sandbox",
        "llms-txt",
        "webhooks",
        "typescript",
        "python",
        "java",
        "csharp",
        "ruby",
        "mcp",
        "cli",
        "status-page"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.3,
        "grade": "B",
        "agentReady": false,
        "rank": 283,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 76,
          "payments": 15,
          "reliability": 58,
          "schema": 86,
          "security": 60,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "A software platform that wants to run US payroll for its own customers and can pass Gusto's partner reviews.",
        "strengths": [
          "Each of 317 reference pages serves an OpenAPI 3.1 definition as Markdown, and llms.txt indexes both documentation projects",
          "Payroll runs in steps (prepare, calculate, submit). Calculate returns a preview with `submission_blockers` before any money moves",
          "Each API version gets 12 months of phased support after deprecation, with dates published and `Deprecation`, `Sunset` and `Link` response headers",
          "Company access tokens work for one company only, expire after two hours and rotate the refresh token on use",
          "Rate limit of 200 requests a minute per application and user, with `Retry-After` and `X-RateLimit-*` headers on responses"
        ],
        "weaknesses": [
          "Production keys need commercial, security and implementation reviews with Gusto's partnerships team, and the docs say not all use cases are supported",
          "The Embedded API status page lists 11 incidents between 14 July and 5 October 2026, five marked major, one titled a complete outage",
          "No price was readable. gusto.com and embedded.gusto.com answered our reader with a bot check, and the docs carry no figures",
          "Idempotency keys were found only on the People Batch endpoint. Other POST calls rely on the caller not repeating them",
          "The five API clients are labelled beta, and the README warns of breaking changes without notice"
        ],
        "agentNotes": [
          "Develop against https://api.gusto-demo.com. Production at https://api.gusto.com needs keys Gusto issues after its reviews",
          "Send `X-Gusto-API-Version: 2026-06-15` on every call. Without it the application's minimum version applies",
          "Send the resource's current `version` with every PUT, and only the fields to change. A stale version returns 409",
          "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",
          "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"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.3
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 76,
          "payments": 15,
          "reliability": 58,
          "schema": 86,
          "security": 60,
          "transparency": 44
        },
        "provenanceScore": 77
      },
      "connect": {
        "install": "npm add @gusto/embedded-api",
        "http": "curl --location --request POST 'https://api.gusto-demo.com/oauth/token' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n  \"client_id\": \"{{client_id}}\",\n  \"client_secret\": \"{{client_secret}}\",\n  \"grant_type\": \"system_access\"\n}'"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/gusto"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Gusto, Inc.",
        "domain": "gusto.com",
        "domainRegistered": "1995-08-23",
        "endpointOnVendorDomain": true,
        "terms": "https://gusto.com/about/terms/developer-terms-of-service",
        "privacy": "",
        "statusPage": "https://gustoapi.statuspage.io",
        "changelog": "https://docs.gusto.com/embedded-payroll/changelog",
        "securityTxt": "unknown",
        "checked": "2026-10-08",
        "notes": [
          "The NOTICE file in Gusto/gusto-cli reads Copyright 2026 Gusto, Inc.",
          "Production calls go to https://api.gusto.com. The demo environment is on a separate domain, api.gusto-demo.com.",
          "The terms URL is the one named in the OpenAPI definitions on the reference pages. gusto.com answered our reader with a bot check, so the terms, the privacy policy and /.well-known/security.txt weren't read.",
          "The API Policy published in the docs is dated 11 July 2022 and refers to Gusto's Privacy Policy without a readable link.",
          "RDAP for gusto.com gives a registration date of 1995-08-23.",
          "The docs embed https://gustoapi.statuspage.io as the API status page. status.gusto.com covers the Gusto product and also lists an API component."
        ],
        "score": 77
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gusto.json",
      "live": {
        "slug": "gusto",
        "vendorStatus": {
          "page": "https://gustoapi.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:06:41.741437742Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Gusto/gusto-typescript-client",
            "version": "gusto_embedded_v_2025_11_15/v0.3.2",
            "released": "2026-10-01",
            "seenAt": "2026-10-08T16:15:29.553541966Z"
          },
          {
            "registry": "npm",
            "name": "@gusto/embedded-api",
            "version": "0.16.2",
            "seenAt": "2026-10-08T16:15:25.588820008Z"
          },
          {
            "registry": "npm",
            "name": "@gusto/embedded-react-sdk",
            "version": "0.56.5",
            "seenAt": "2026-10-08T16:15:29.142122622Z"
          },
          {
            "registry": "pypi",
            "name": "gusto-embedded",
            "version": "0.2.4",
            "released": "2025-04-16",
            "seenAt": "2026-10-08T16:15:29.349450484Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 24731,
        "pypiWeekly": 104,
        "securityTxt": {
          "url": "https://gusto.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-08T15:38:35.992448629Z"
        },
        "pages": [
          {
            "url": "https://docs.gusto.com/embedded-payroll/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:18:50.184946965Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fb0136facdba"
          },
          {
            "url": "https://gusto.com/about/terms/developer-terms-of-service",
            "kind": "terms",
            "status": 403,
            "checkedAt": "2026-10-08T18:20:46.783185211Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "updatedAt": "2026-10-08T19:06:41.741437742Z"
      }
    },
    "answer": "Gusto scores 63.3 (B) on agent readiness against Zeal's 45.4 (E), and leads in every scored category.",
    "b": {
      "slug": "zeal",
      "name": "Zeal",
      "vendor": "Puzzl Group Inc.",
      "vendorUrl": "https://www.zeal.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "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.",
      "url": "https://www.anchorterminal.com/tools/zeal",
      "markdownUrl": "https://www.anchorterminal.com/tools/zeal.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zeal.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zeal.json",
      "repo": "https://github.com/zeal-corp/typescript-sdk",
      "license": "Proprietary service. The npm SDK declares MIT. The SDK repositories on GitHub carry no licence file",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.zeal.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@zeal-api/sdk"
        },
        {
          "registry": "pypi",
          "name": "zeal-api-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "API keys, issued only to Zeal partners. Zeal's team creates the partner account after a demo request, then the Partner Dashboard at app.zeal.com shows one Test API key, one Production API key and the `partnerID`. Every call sends `Authorization: Bearer {apiKey}`, and most also need a `companyID`. A key covers every employer company under the partner, has no scopes, and is rolled from the dashboard, which invalidates the old key at once. Production payroll is switched on by Zeal (error code 0 until then). The agent chat and MCP endpoints need a key that Zeal has Agent-enabled. This is embedded-payroll partner access. An employer has no separate API route into its own Zeal payroll account.",
      "pricing": "paid",
      "pricingNotes": "No public prices. www.zeal.com/pricing returns 404 and every call to action asks for a demo. A test environment that moves no money exists, but its key comes only after Zeal creates a partner account, so an agent cannot start without a sales contact. No free tier or self-serve trial was found (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms-full.txt, the OpenAPI specs or the marketing site (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 8,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.zeal.com",
      "llmsTxt": "https://docs.zeal.com/llms.txt",
      "openapi": "https://docs.zeal.com/openapi/zeal-api.json",
      "capabilities": [
        "payroll.run",
        "payroll.embedded",
        "payroll.employees",
        "payroll.contractors",
        "payroll.tax-filing",
        "hr.onboarding"
      ],
      "tags": [
        "hosted",
        "api-key",
        "openapi",
        "llms-txt",
        "typescript",
        "python",
        "webhooks",
        "sandbox",
        "sales-led",
        "partner-only",
        "us-only",
        "soc2",
        "mcp"
      ],
      "lastRelease": "2026-07-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.4,
        "grade": "E",
        "agentReady": false,
        "rank": 569,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 61,
          "payments": 0,
          "reliability": 42,
          "schema": 68,
          "security": 34,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "A US staffing platform, marketplace or workforce product that will sign a partnership and run payroll for many employers under its own brand, including daily and on-demand pay.",
        "strengths": [
          "Public OpenAPI 3.1 specs with 177 operations, plus llms.txt, llms-full.txt and a Markdown copy of every docs page",
          "Test keys run payroll end to end with no money moved and no tax filings, in an environment separate from production",
          "Preview endpoints return the gross-to-net breakdown before processing, and `approval_required` holds a cheque until `approved` is set",
          "`x-idempotency-key` header honoured for 24 hours, and 116 numbered error codes with messages",
          "Fern-generated TypeScript and Python SDKs (0.2.1, July 2026) that retry 408, 429 and 5xx with backoff"
        ],
        "weaknesses": [
          "No self-serve signup. Zeal's team creates the partner account after a demo request, and no price is published",
          "One test key and one production key per partner account, with no scopes and no read-only key",
          "No status page found, and the changelog linked from the home page and llms.txt returns 404",
          "The API has no version in the path or a header, and the main spec has 18 operations with no summary",
          "Webhooks carry the shared secret itself in `Puzzl-Signature`, not a signature of the payload",
          "No security.txt, disclosure policy, sub-processor list or DPA found on the public site"
        ],
        "agentNotes": [
          "Use the Test API key until a person has approved live payroll. Error code 0 (403) means the account has no production access",
          "Send `companyID` on almost every call and `partnerID` on partner-level calls, in the body for POST and PATCH and the query for GET",
          "Create cheques with `approval_required: true`, run POST /preview/checks, then PATCH /employeeCheck with `approved: true`. Without the flag Zeal processes pending cheques automatically",
          "Send `x-idempotency-key` on every create so a retry within 24 hours doesn't pay twice",
          "Previews and reports are jobs. Keep the `job_id` and poll GET /preview or GET /reports, or wait for the Job Queue webhook",
          "Check dates must be bank days and submitted before 2 PM Pacific two bank days ahead, or the call fails with code 89"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.4
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 61,
          "payments": 0,
          "reliability": 42,
          "schema": 68,
          "security": 34,
          "transparency": 38
        },
        "provenanceScore": 64
      },
      "connect": {
        "install": "npm i -s @zeal-api/sdk",
        "http": "curl --request GET \\\n     --url 'https://api.zeal.com/companies?partnerID=YOUR_PARTNER_ID' \\\n     --header 'Accept: application/json' \\\n     --header 'Authorization: Bearer YOUR_API_KEY'"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/zeal"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Puzzl Group Inc.",
        "domain": "zeal.com",
        "domainRegistered": "1995-07-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zeal.com/legal?tab=terms-of-service",
        "privacy": "https://www.zeal.com/legal?tab=privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The legal page names Puzzl Group Inc., a Delaware corporation, 80 Langton Street, San Francisco, CA 94103. Its privacy notice was last updated on 16 January 2026.",
          "The API answers at https://api.zeal.com and docs at docs.zeal.com (hosted on Mintlify). The help centre at support.zeal.com runs on Pylon.",
          "www.zeal.com/.well-known/security.txt and docs.zeal.com/.well-known/security.txt return 404.",
          "No status page is linked from the site, the docs or the help centre. status.zeal.com did not complete a TLS handshake on 8 October 2026.",
          "The changelog URL the site advertises, https://docs.zeal.com/changelog, returns 404, so the field is left empty.",
          "The legal page says banking services come from Bangor Savings Bank, Member FDIC.",
          "RDAP for zeal.com gives a registration date of 1995-07-03 and GoDaddy.com, LLC as registrar."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zeal.json",
      "live": {
        "slug": "zeal",
        "probe": {
          "target": "https://api.zeal.com",
          "method": "get",
          "lastAt": "2026-10-08T19:09:02.816720765Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 608,
          "authRequired": false,
          "uptime24h": 97.62,
          "uptime30d": 97.62,
          "p50ms24h": 596,
          "p95ms24h": 681,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 41
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@zeal-api/sdk",
            "version": "0.2.1",
            "seenAt": "2026-10-08T16:35:37.1323379Z"
          },
          {
            "registry": "pypi",
            "name": "zeal-api-sdk",
            "version": "0.2.1",
            "released": "2026-07-31",
            "seenAt": "2026-10-08T16:35:39.815769205Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 8,
        "pypiWeekly": 4,
        "securityTxt": {
          "url": "https://zeal.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:30.40067532Z"
        },
        "pages": [
          {
            "url": "https://www.zeal.com/legal?tab=privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:31:44.751983613Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca2c8021bf60"
          },
          {
            "url": "https://www.zeal.com/legal?tab=terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:31:46.842036275Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca2c8021bf60"
          }
        ],
        "updatedAt": "2026-10-08T19:09:02.816720765Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Gusto, Inc.",
        "b": "Puzzl Group Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.zeal.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "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",
        "b": "Proprietary service. The npm SDK declares MIT. The SDK repositories on GitHub carry no licence file",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-07-31",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "2026-01-16",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-01-16",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2 stars, 25k npm/wk",
        "b": "0 stars, 8 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Gusto scores 63.3 (B) on agent readiness against Zeal's 45.4 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Gusto or Zeal?"
      },
      {
        "answer": "Gusto uses an OAuth sign-in. Zeal needs an API key.",
        "question": "Do Gusto and Zeal need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Gusto. Zeal has a hosted endpoint at https://api.zeal.com.",
        "question": "Can an agent call Gusto and Zeal without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 58 against 42",
          "Schema \u0026 documentation, 86 against 68",
          "Agent ergonomics, 82 against 63",
          "Security \u0026 auth, 60 against 34",
          "Payments \u0026 pricing, 15 against 0",
          "Maintenance \u0026 community, 76 against 61",
          "Transparency \u0026 trust, 61 against 51"
        ],
        "also": null,
        "goodFor": "A software platform that wants to run US payroll for its own customers and can pass Gusto's partner reviews.",
        "slug": "gusto",
        "watchFor": "Production keys need commercial, security and implementation reviews with Gusto's partnerships team, and the docs say not all use cases are supported"
      },
      {
        "aheadOn": null,
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A US staffing platform, marketplace or workforce product that will sign a partnership and run payroll for many employers under its own brand, including daily and on-demand pay.",
        "slug": "zeal",
        "watchFor": "No self-serve signup. Zeal's team creates the partner account after a demo request, and no price is published"
      }
    ],
    "job": {
      "capability": "payroll.run",
      "name": "Payroll run"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-gusto.json",
        "title": "Check vs Gusto",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-gusto"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-zeal.json",
        "title": "Check vs Zeal",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-zeal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gusto-vs-salsa.json",
        "title": "Gusto vs Salsa",
        "url": "https://www.anchorterminal.com/compare/gusto-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/salsa-vs-zeal.json",
        "title": "Salsa vs Zeal",
        "url": "https://www.anchorterminal.com/compare/salsa-vs-zeal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-gusto.json",
        "title": "Finch vs Gusto",
        "url": "https://www.anchorterminal.com/compare/finch-vs-gusto"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-zeal.json",
        "title": "Finch vs Zeal",
        "url": "https://www.anchorterminal.com/compare/finch-vs-zeal"
      }
    ],
    "scores": [
      {
        "by": 16,
        "edge": "gusto",
        "gusto": 58,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "zeal": 42
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "edge": "gusto",
        "gusto": 86,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "zeal": 68
      },
      {
        "by": 19,
        "edge": "gusto",
        "gusto": 82,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "zeal": 63
      },
      {
        "by": 26,
        "edge": "gusto",
        "gusto": 60,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "zeal": 34
      },
      {
        "by": 15,
        "edge": "gusto",
        "gusto": 15,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "zeal": 0
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "edge": "gusto",
        "gusto": 76,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "zeal": 61
      },
      {
        "by": 10,
        "edge": "gusto",
        "gusto": 61,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "zeal": 51
      }
    ],
    "summary": "Gusto scores 63.3 (B) on agent readiness against Zeal's 45.4 (E), and leads in every scored category. Both do payroll run.",
    "verdicts": {
      "gusto": "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.",
      "zeal": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gusto-vs-zeal",
    "json": "https://www.anchorterminal.com/compare/gusto-vs-zeal.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gusto-vs-zeal.md",
    "slim": "https://www.anchorterminal.com/compare/gusto-vs-zeal.min.md"
  },
  "markdown": "Gusto scores 63.3 (B) on agent readiness against Zeal's 45.4 (E), and leads in every scored category. Both do payroll run.\n\n- Gusto: grade B, 63.3/100, rank #283 of 629. Markdown https://www.anchorterminal.com/tools/gusto.md · JSON https://www.anchorterminal.com/api/v1/tools/gusto.json\n- Zeal: grade E, 45.4/100, rank #569 of 629. Markdown https://www.anchorterminal.com/tools/zeal.md · JSON https://www.anchorterminal.com/api/v1/tools/zeal.json\n\n## Which one, for what\n\n### Gusto (B)\n\nGood for: A software platform that wants to run US payroll for its own customers and can pass Gusto's partner reviews.\n\nAhead on:\n- Reliability, 58 against 42\n- Schema \u0026 documentation, 86 against 68\n- Agent ergonomics, 82 against 63\n- Security \u0026 auth, 60 against 34\n- Payments \u0026 pricing, 15 against 0\n- Maintenance \u0026 community, 76 against 61\n- Transparency \u0026 trust, 61 against 51\n\nWatch for: Production keys need commercial, security and implementation reviews with Gusto's partnerships team, and the docs say not all use cases are supported\n\n### Zeal (E)\n\nGood for: A US staffing platform, marketplace or workforce product that will sign a partnership and run payroll for many employers under its own brand, including daily and on-demand pay.\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No self-serve signup. Zeal's team creates the partner account after a demo request, and no price is published\n\n\n## Score by category\n\n| Category | Weight | Gusto | Zeal | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 42 | Gusto +16 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 68 | Gusto +18 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 63 | Gusto +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 34 | Gusto +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 0 | Gusto +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 76 | 61 | Gusto +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 51 | Gusto +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.3 · B** | **45.4 · E** | |\n\n## Facts side by side\n\n| Fact | Gusto | Zeal |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Gusto, Inc. | Puzzl Group Inc. |\n| Hosted endpoint | no (local only) | `https://api.zeal.com` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| 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 | Proprietary service. The npm SDK declares MIT. The SDK repositories on GitHub carry no licence file |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-01 | 2026-07-31 |\n| Terms last updated | couldn't be read | 2026-01-16 |\n| Privacy policy last updated | no document linked | 2026-01-16 |\n| Customer content may train models | couldn't be read | not found in the text |\n| Terms restrict automated access | couldn't be read | yes |\n| Terms restrict benchmarking | couldn't be read | not found in the text |\n| Terms or service can change without notice | couldn't be read | yes |\n| Arbitration or class-action waiver | couldn't be read | not found in the text |\n| Popularity | 2 stars, 25k npm/wk | 0 stars, 8 npm/wk |\n\n## Verdicts\n\n**Gusto.** 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.\n\n**Zeal.** 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.\n\n## Before you call either\n\n### Gusto\n\n1. Develop against https://api.gusto-demo.com. Production at https://api.gusto.com needs keys Gusto issues after its reviews\n2. Send `X-Gusto-API-Version: 2026-06-15` on every call. Without it the application's minimum version applies\n3. Send the resource's current `version` with every PUT, and only the fields to change. A stale version returns 409\n4. 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\n5. 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\n\n### Zeal\n\n1. Use the Test API key until a person has approved live payroll. Error code 0 (403) means the account has no production access\n2. Send `companyID` on almost every call and `partnerID` on partner-level calls, in the body for POST and PATCH and the query for GET\n3. Create cheques with `approval_required: true`, run POST /preview/checks, then PATCH /employeeCheck with `approved: true`. Without the flag Zeal processes pending cheques automatically\n4. Send `x-idempotency-key` on every create so a retry within 24 hours doesn't pay twice\n5. Previews and reports are jobs. Keep the `job_id` and poll GET /preview or GET /reports, or wait for the Job Queue webhook\n6. Check dates must be bank days and submitted before 2 PM Pacific two bank days ahead, or the call fails with code 89\n\n## Questions\n\n### Which is better for AI agents, Gusto or Zeal?\n\nGusto scores 63.3 (B) on agent readiness against Zeal's 45.4 (E), and leads in every scored category.\n\n### Do Gusto and Zeal need an API key?\n\nGusto uses an OAuth sign-in. Zeal needs an API key.\n\n### Can an agent call Gusto and Zeal without installing anything?\n\nNo hosted endpoint is listed for Gusto. Zeal has a hosted endpoint at https://api.zeal.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/gusto-vs-zeal.json, and with the fewest tokens: https://www.anchorterminal.com/compare/gusto-vs-zeal.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"gusto\", \"b\": \"zeal\"}`. From a terminal: `anchor compare gusto zeal`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/gusto.json and https://www.anchorterminal.com/api/v1/tools/zeal.json\n\n## Other comparisons with Gusto or Zeal\n\n- [Check vs Gusto](https://www.anchorterminal.com/compare/check-payroll-vs-gusto.md)\n- [Check vs Zeal](https://www.anchorterminal.com/compare/check-payroll-vs-zeal.md)\n- [Gusto vs Salsa](https://www.anchorterminal.com/compare/gusto-vs-salsa.md)\n- [Salsa vs Zeal](https://www.anchorterminal.com/compare/salsa-vs-zeal.md)\n- [Finch vs Gusto](https://www.anchorterminal.com/compare/finch-vs-gusto.md)\n- [Finch vs Zeal](https://www.anchorterminal.com/compare/finch-vs-zeal.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Gusto vs Zeal",
        "url": ""
      }
    ],
    "description": "Gusto scores 63.3 (B) on agent readiness against Zeal's 45.4 (E), and leads in every scored category. Both do payroll run. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Gusto B 63.3",
      "Zeal E 45.4",
      "scores"
    ],
    "h1": "Gusto vs Zeal",
    "image": "https://www.anchorterminal.com/assets/og/compare-gusto-vs-zeal.png",
    "path": "/compare/gusto-vs-zeal",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Gusto vs Zeal for AI agents, B 63.3 vs E 45.4 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/gusto-vs-zeal"
  },
  "tokens": {
    "markdown": 1950,
    "slim": 680
  },
  "version": 1
}
