{
  "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 Salsa's 46.1 (D), and leads in every scored category.",
    "b": {
      "slug": "salsa",
      "name": "Salsa",
      "vendor": "Salsa Software Inc.",
      "vendorUrl": "https://www.salsa.dev",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Embedded payroll from Salsa Software Inc. for software platforms. A partner's backend onboards employers and workers, sends pay data, previews and confirms payroll runs and reads pay statements through a REST API, while Salsa files taxes and moves money.",
      "url": "https://www.anchorterminal.com/tools/salsa",
      "markdownUrl": "https://www.anchorterminal.com/tools/salsa.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/salsa.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/salsa.json",
      "license": "Proprietary service. The website Terms of Use are public and the partner agreement isn't. The browser library @salsa-payroll/salsa-js on npm is MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.salsa.dev/api/rest/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@salsa-payroll/salsa-js"
        }
      ],
      "auth": "api-key",
      "authNotes": "A partner receives two bearer API tokens from Salsa after a sales contact, one for the sandbox and one for production. The docs say these tokens grant many privileges. From them a backend mints user tokens (JWT) at POST /api/rest/v1/auth/token, each with one of 12 roles in three tiers (basic, admin, super-admin, with onboarding variants), a list of up to 125 employers and a lifetime of 60 minutes by default, or up to 30 days for onboarding roles. Role limits are enforced at the API. No self-serve key page or key rotation procedure was found in the docs. This is embedded-payroll partner access. Salsa has no route into an employer's existing payroll account at another provider.",
      "pricing": "paid",
      "pricingNotes": "No public prices. salsa.dev has no pricing page (www.salsa.dev/pricing returns 404) and access starts with a contact form. The sandbox is issued by Salsa on request, so an agent can't start without a person contacting sales, and no free tier or trial was found. A Usage API reports confirmed payroll runs, worker payments, workers paid and tax filings per employer so a partner can bill its own customers, with no unit price published (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the OpenAPI spec or the website (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 435,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.salsa.dev",
      "llmsTxt": "https://docs.salsa.dev/llms.txt",
      "openapi": "https://docs.salsa.dev/openapi/salsadev.yaml",
      "capabilities": [
        "payroll.run",
        "payroll.embedded",
        "payroll.employees",
        "payroll.tax-filing",
        "payroll.contractors"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "sales-led",
        "partner-access",
        "soc2"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 46.1,
        "grade": "D",
        "agentReady": false,
        "rank": 565,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 48,
          "maintenance": 50,
          "payments": 5,
          "reliability": 36,
          "schema": 73,
          "security": 56,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Salsa is reached as an embedded-payroll partner, not through an employer's existing payroll account. The REST API has a public OpenAPI 3.1 spec with 123 operations, a payroll preview, a separate confirm step and short-lived user tokens limited by role. Access starts with a sales conversation, and no public price, self-serve sandbox, status page or API changelog was found.",
        "bestFor": "A software platform that wants to sell payroll to its own business customers and can sign a partner agreement, with Salsa handling tax filing and money movement.",
        "strengths": [
          "Public OpenAPI 3.1 spec with 123 operations and 78 webhook events, last modified 7 October 2026, plus llms.txt and a Markdown copy of every docs page",
          "A payroll run is previewed, created as PENDING and paid only after a separate confirm call. A pending run can be deleted",
          "User tokens last 60 minutes by default, carry one of 12 roles in three tiers and name the employers they cover",
          "Audit entries record who changed what and when, with the actor shown as a user, an API client or the system",
          "Sandbox at api.sandbox.salsa.dev with mock-onboard endpoints that fill in employer and worker details for tests"
        ],
        "weaknesses": [
          "API tokens come from Salsa after a sales contact. No self-serve signup, public price, free tier or trial was found",
          "No status page, SLA, API changelog or deprecation policy was found on salsa.dev or docs.salsa.dev",
          "No Idempotency-Key header. The rate-limit page names 429 with no Retry-After or backoff guidance",
          "No server-side SDK. The only official package is the browser library Salsa.js, last published on 11 December 2025",
          "The signup link used across the docs, www.salsa.dev/get-a-demo, returned 404 on 8 October 2026",
          "No security.txt, disclosure policy, DPA or subprocessor list was found. SOC 2 Type 2 appears only as a badge image"
        ],
        "agentNotes": [
          "Use the sandbox token against https://api.sandbox.salsa.dev and the production token against https://api.salsa.dev. Each environment has its own token",
          "Call POST /payroll-runs/preview before creating a run, then confirm the PENDING run in a separate call. Confirming starts the employer debit",
          "Send your own externalId on every create. A repeat returns a uniqueness error, which is the only duplicate protection",
          "Make sure externalId values are unique across all employers, since each entity type has one namespace",
          "Mint a user token with the lowest role and the fewest employerIds the task needs, and keep the partner token on the server"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 46.1
          }
        ],
        "editorialScores": {
          "ergonomics": 48,
          "maintenance": 50,
          "payments": 5,
          "reliability": 36,
          "schema": 73,
          "security": 56,
          "transparency": 31
        },
        "provenanceScore": 70
      },
      "connect": {
        "http": "curl --location --request GET 'https://api.sandbox.salsa.dev/api/rest/v1/partner-pay-types' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer ${YOUR_API_TOKEN}'"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/salsa"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Salsa Software Inc.",
        "domain": "salsa.dev",
        "domainRegistered": "2021-08-06",
        "endpointOnVendorDomain": true,
        "terms": "https://www.salsa.dev/terms-of-use",
        "privacy": "https://www.salsa.dev/privacy-policy",
        "statusPage": "",
        "changelog": "https://www.salsa.dev/blog-category/product-updates",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy (last modified 24 September 2025) names Salsa Software Inc., 169 Madison Ave #38368, New York, NY 10016, and says it doesn't cover data processed on behalf of platforms, which is governed by Salsa's agreements with them.",
          "The Terms of Use are dated 7 April 2022 and governed by California law. The partner agreement that covers API use isn't public.",
          "www.salsa.dev/.well-known/security.txt and docs.salsa.dev/.well-known/security.txt return 404.",
          "No status page is linked from salsa.dev or docs.salsa.dev. status.salsa.dev didn't connect. salsa.statuspage.io exists with two components marked \"(example)\" and a last update of 4 November 2022, and nothing ties it to this company.",
          "The changelog link is the product updates category of the blog, whose newest entry is 11 February 2026. docs.salsa.dev/changelog returns 404.",
          "RDAP for salsa.dev gives a registration date of 2021-08-06 and Squarespace Domains II LLC as registrar."
        ],
        "score": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/salsa.json",
      "live": {
        "slug": "salsa",
        "probe": {
          "target": "https://api.salsa.dev/api/rest/v1",
          "method": "get",
          "lastAt": "2026-10-08T19:08:57.777637758Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 488,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 452,
          "p95ms24h": 517,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@salsa-payroll/salsa-js",
            "version": "0.3.0",
            "seenAt": "2026-10-08T16:28:07.049435331Z"
          }
        ],
        "npmWeekly": 435,
        "securityTxt": {
          "url": "https://salsa.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:49.425969804Z"
        },
        "pages": [
          {
            "url": "https://www.salsa.dev/blog-category/product-updates",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:07.056601151Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6c036ec0ed44"
          },
          {
            "url": "https://www.salsa.dev/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:09.140715304Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "08a0e2898a35"
          },
          {
            "url": "https://www.salsa.dev/terms-of-use",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:11.191316869Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3bb24864bd0f"
          }
        ],
        "updatedAt": "2026-10-08T19:08:57.777637758Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Gusto, Inc.",
        "b": "Salsa Software Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.salsa.dev/api/rest/v1",
        "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 website Terms of Use are public and the partner agreement isn't. The browser library @salsa-payroll/salsa-js on npm is MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "2022-04-07",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2025-09-24",
        "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": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2 stars, 25k npm/wk",
        "b": "435 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Gusto scores 63.3 (B) on agent readiness against Salsa's 46.1 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, Gusto or Salsa?"
      },
      {
        "answer": "Gusto uses an OAuth sign-in. Salsa needs an API key.",
        "question": "Do Gusto and Salsa need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Gusto. Salsa has a hosted endpoint at https://api.salsa.dev/api/rest/v1.",
        "question": "Can an agent call Gusto and Salsa without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 58 against 36",
          "Schema \u0026 documentation, 86 against 73",
          "Agent ergonomics, 82 against 48",
          "Payments \u0026 pricing, 15 against 5",
          "Maintenance \u0026 community, 76 against 50",
          "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 software platform that wants to sell payroll to its own business customers and can sign a partner agreement, with Salsa handling tax filing and money movement.",
        "slug": "salsa",
        "watchFor": "API tokens come from Salsa after a sales contact. No self-serve signup, public price, free tier or trial was found"
      }
    ],
    "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-salsa.json",
        "title": "Check vs Salsa",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gusto-vs-zeal.json",
        "title": "Gusto vs Zeal",
        "url": "https://www.anchorterminal.com/compare/gusto-vs-zeal"
      },
      {
        "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-salsa.json",
        "title": "Finch vs Salsa",
        "url": "https://www.anchorterminal.com/compare/finch-vs-salsa"
      }
    ],
    "scores": [
      {
        "by": 22,
        "edge": "gusto",
        "gusto": 58,
        "key": "reliability",
        "name": "Reliability",
        "salsa": 36,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "gusto",
        "gusto": 86,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "salsa": 73,
        "weight": 13
      },
      {
        "by": 34,
        "edge": "gusto",
        "gusto": 82,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "salsa": 48,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "gusto",
        "gusto": 60,
        "key": "security",
        "name": "Security \u0026 auth",
        "salsa": 56,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "gusto",
        "gusto": 15,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "salsa": 5,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "edge": "gusto",
        "gusto": 76,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "salsa": 50,
        "weight": 7
      },
      {
        "by": 10,
        "edge": "gusto",
        "gusto": 61,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "salsa": 51,
        "weight": 7
      }
    ],
    "summary": "Gusto scores 63.3 (B) on agent readiness against Salsa's 46.1 (D), 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.",
      "salsa": "Salsa is reached as an embedded-payroll partner, not through an employer's existing payroll account. The REST API has a public OpenAPI 3.1 spec with 123 operations, a payroll preview, a separate confirm step and short-lived user tokens limited by role. Access starts with a sales conversation, and no public price, self-serve sandbox, status page or API changelog was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gusto-vs-salsa",
    "json": "https://www.anchorterminal.com/compare/gusto-vs-salsa.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gusto-vs-salsa.md",
    "slim": "https://www.anchorterminal.com/compare/gusto-vs-salsa.min.md"
  },
  "markdown": "Gusto scores 63.3 (B) on agent readiness against Salsa's 46.1 (D), 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- Salsa: grade D, 46.1/100, rank #565 of 629. Markdown https://www.anchorterminal.com/tools/salsa.md · JSON https://www.anchorterminal.com/api/v1/tools/salsa.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 36\n- Schema \u0026 documentation, 86 against 73\n- Agent ergonomics, 82 against 48\n- Payments \u0026 pricing, 15 against 5\n- Maintenance \u0026 community, 76 against 50\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### Salsa (D)\n\nGood for: A software platform that wants to sell payroll to its own business customers and can sign a partner agreement, with Salsa handling tax filing and money movement.\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: API tokens come from Salsa after a sales contact. No self-serve signup, public price, free tier or trial was found\n\n\n## Score by category\n\n| Category | Weight | Gusto | Salsa | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 36 | Gusto +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 73 | Gusto +13 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 48 | Gusto +34 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 56 | Gusto +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 5 | Gusto +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 76 | 50 | Gusto +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 51 | Gusto +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.3 · B** | **46.1 · D** | |\n\n## Facts side by side\n\n| Fact | Gusto | Salsa |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Gusto, Inc. | Salsa Software Inc. |\n| Hosted endpoint | no (local only) | `https://api.salsa.dev/api/rest/v1` |\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 website Terms of Use are public and the partner agreement isn't. The browser library @salsa-payroll/salsa-js on npm is MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-01 | 2026-10-07 |\n| Terms last updated | couldn't be read | 2022-04-07 |\n| Privacy policy last updated | no document linked | 2025-09-24 |\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 | yes |\n| Popularity | 2 stars, 25k npm/wk | 435 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**Salsa.** Salsa is reached as an embedded-payroll partner, not through an employer's existing payroll account. The REST API has a public OpenAPI 3.1 spec with 123 operations, a payroll preview, a separate confirm step and short-lived user tokens limited by role. Access starts with a sales conversation, and no public price, self-serve sandbox, status page or API 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### Salsa\n\n1. Use the sandbox token against https://api.sandbox.salsa.dev and the production token against https://api.salsa.dev. Each environment has its own token\n2. Call POST /payroll-runs/preview before creating a run, then confirm the PENDING run in a separate call. Confirming starts the employer debit\n3. Send your own externalId on every create. A repeat returns a uniqueness error, which is the only duplicate protection\n4. Make sure externalId values are unique across all employers, since each entity type has one namespace\n5. Mint a user token with the lowest role and the fewest employerIds the task needs, and keep the partner token on the server\n\n## Questions\n\n### Which is better for AI agents, Gusto or Salsa?\n\nGusto scores 63.3 (B) on agent readiness against Salsa's 46.1 (D), and leads in every scored category.\n\n### Do Gusto and Salsa need an API key?\n\nGusto uses an OAuth sign-in. Salsa needs an API key.\n\n### Can an agent call Gusto and Salsa without installing anything?\n\nNo hosted endpoint is listed for Gusto. Salsa has a hosted endpoint at https://api.salsa.dev/api/rest/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/gusto-vs-salsa.json, and with the fewest tokens: https://www.anchorterminal.com/compare/gusto-vs-salsa.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"gusto\", \"b\": \"salsa\"}`. From a terminal: `anchor compare gusto salsa`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/gusto.json and https://www.anchorterminal.com/api/v1/tools/salsa.json\n\n## Other comparisons with Gusto or Salsa\n\n- [Check vs Gusto](https://www.anchorterminal.com/compare/check-payroll-vs-gusto.md)\n- [Check vs Salsa](https://www.anchorterminal.com/compare/check-payroll-vs-salsa.md)\n- [Gusto vs Zeal](https://www.anchorterminal.com/compare/gusto-vs-zeal.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 Salsa](https://www.anchorterminal.com/compare/finch-vs-salsa.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 Salsa",
        "url": ""
      }
    ],
    "description": "Gusto scores 63.3 (B) on agent readiness against Salsa's 46.1 (D), 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",
      "Salsa D 46.1",
      "scores"
    ],
    "h1": "Gusto vs Salsa",
    "image": "https://www.anchorterminal.com/assets/og/compare-gusto-vs-salsa.png",
    "path": "/compare/gusto-vs-salsa",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Gusto vs Salsa for AI agents, B 63.3 vs D 46.1 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/gusto-vs-salsa"
  },
  "tokens": {
    "markdown": 1950,
    "slim": 680
  },
  "version": 1
}
