{
  "data": {
    "a": {
      "slug": "argyle",
      "name": "Argyle",
      "vendor": "Argyle Systems Inc.",
      "vendorUrl": "https://www.argyle.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Argyle is a consumer-permissioned verification API run by Argyle Systems Inc. A worker connects a payroll account through Argyle Link, and applications read identity, employment, paystub and document records or order income and employment reports.",
      "url": "https://www.anchorterminal.com/tools/argyle",
      "markdownUrl": "https://www.anchorterminal.com/tools/argyle.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/argyle.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/argyle.json",
      "repo": "https://github.com/argyle-systems/argyle-link-react-native",
      "license": "Proprietary service under Argyle's Open Payroll Customer Terms. The React Native Link SDK on npm is Apache 2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.argyle.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@argyleio/argyle-plugin-react-native"
        }
      ],
      "auth": "api-key",
      "authNotes": "A person signs up for Console with a work email, Google or Microsoft account and creates an API key ID and secret for Sandbox or Production. Every request uses HTTP Basic auth with that pair. Access to a worker's payroll data then needs that worker to sign in to the payroll account through Argyle Link. Keys have no per-key scopes in the reviewed documentation, and a 403 means the key lacks a permission enabled for the account. The Customer Terms grant a licence for the platform to legal entities only, and Production fees are set in a Service Order.",
      "pricing": "paid",
      "pricingNotes": "No public prices. argyle.com/pricing lands on the home page, whose buttons are Sign in and Contact sales, and the Customer Terms put fees in a Service Order. A Sandbox with sample users comes with a Console sign-up, so an agent's owner can test without a contract. The sign-up page says Start your trial today. The docs list a `trial_connections_exhausted` error for a limit on free account connections in trial mode, with no number given (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the documentation index, the OpenAPI specification or the vendor's site (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 481,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.argyle.com",
      "llmsTxt": "https://docs.argyle.com/llms.txt",
      "openapi": "https://docs.argyle.com/openAPI/argyle-all.yaml",
      "capabilities": [
        "payroll.employees",
        "payroll.contractors"
      ],
      "tags": [
        "hosted",
        "payroll-data",
        "income-verification",
        "employment-verification",
        "api-key",
        "openapi",
        "llms-txt",
        "sandbox",
        "webhooks",
        "status-page",
        "sla",
        "security-txt",
        "sales-led"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.7,
        "grade": "B",
        "agentReady": false,
        "rank": 297,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 58,
          "maintenance": 75,
          "payments": 15,
          "reliability": 81,
          "schema": 86,
          "security": 48,
          "transparency": 83
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Graded on the REST API. One OpenAPI file covers 91 operations, llms.txt indexes Markdown docs, and a Sandbox with sample users comes with a Console sign-up. Every payroll connection needs the worker to sign in through Link. No prices are published, no idempotency keys were found, and API keys carry no per-key scopes.",
        "bestFor": "A lender, tenant screener, benefits agency or background checker whose applicant can sign in to a payroll or gig account, and who needs paystubs, employment records or an income report.",
        "strengths": [
          "One OpenAPI 3.0 file covers 91 operations and 119 schemas, and llms.txt indexes the documentation with every page served as Markdown",
          "Each payroll connection is made by the worker through Argyle Link, and the worker can remove it through Link or Argyle Passport",
          "A Sandbox at `https://api-sandbox.argyle.com/v2` has three sample users, simulated refreshes and its own API keys",
          "The rate limit is published as 50 requests a second, and Service Levels commit to 99 per cent monthly availability with credits",
          "The sub-processor list names 20 vendors with processing locations, and the DPA promises 30 days' notice before a new one is used",
          "Twelve dated changelog entries between 14 July and 1 October 2026, with a written definition of breaking changes"
        ],
        "weaknesses": [
          "No price is published. The site has no pricing page, and fees are set in a Service Order agreed with sales",
          "No idempotency keys were found for `POST /users` or `POST /verifications`, and no `Retry-After` header is documented on 429 responses",
          "API keys are an ID and secret pair with no per-key scopes or read-only mode found in the reviewed documentation",
          "The OpenAPI file documents an error response on 2 of 91 operations, and general errors carry a `detail` string with no machine code",
          "No server-side SDK was found. The official SDKs are Link front ends for web, iOS, Android, React Native and Flutter",
          "The trust centre is drawn by script and could not be read, so no certification could be confirmed on the day"
        ],
        "agentNotes": [
          "Send HTTP Basic auth with `api_key_id` as the username and `api_key_secret` as the password. Sandbox keys fail with 401 on Production and the reverse",
          "Create the user with `POST /v2/users` and an `external_id`, then look it up by `external_id` before retrying. No idempotency key was found",
          "Do not read data straight after an account connects. Wait for the account and data webhooks, or for the verification status, before fetching records",
          "Follow the full URL in `next` when paging. Do not build cursor values or fetch pages in parallel. `limit` defaults to 10 and stops at 200",
          "Stay under 50 requests a second. On 429, queue the request and retry later, not at once",
          "Treat `DELETE /v2/users/{id}` as permanent. It removes every resource tied to that user, with no confirmation step"
        ],
        "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.7
          }
        ],
        "editorialScores": {
          "ergonomics": 58,
          "maintenance": 75,
          "payments": 15,
          "reliability": 81,
          "schema": 86,
          "security": 48,
          "transparency": 68
        },
        "provenanceScore": 97
      },
      "connect": {
        "http": "curl https://api-sandbox.argyle.com/v2/accounts \\\n  -u api_key_id:api_key_secret"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.employees",
        "tool": "https://letme.dev/argyle"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Argyle Systems Inc.",
        "domain": "argyle.com",
        "domainRegistered": "1997-06-08",
        "endpointOnVendorDomain": true,
        "terms": "https://www.argyle.com/legal/open-payroll/customer-terms",
        "privacy": "https://www.argyle.com/legal/consumers/privacy-notice",
        "statusPage": "https://status.argyle.com",
        "changelog": "https://changelog.argyle.com",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Open Payroll Customer Terms (last updated 1 October 2026) name Argyle Systems Inc. and, with a Service Order, form the agreement for the API. Disputes go to the courts of New York, New York.",
          "The Privacy Notice (last updated 1 October 2026) covers the records a worker shares through the platform. Argyle describes itself there as a financial institution under the Gramm-Leach-Bliley Act. No separate privacy policy for business customers was found. Customer data is covered by the Data Protection Addendum at /legal/open-payroll/data-protection-addendum.",
          "The site also publishes Service Levels, a Support Policy, a sub-processor list and a Messaging Policy for Open Payroll, separate Open Banking Customer Terms, and Security Measures dated 6 June 2025.",
          "argyle.com/.well-known/security.txt gives security@argyle.com, a PGP key and an expiry of 7 May 2027.",
          "The API answers at api.argyle.com and api-sandbox.argyle.com. changelog.argyle.com redirects to docs.argyle.com/changelog.",
          "RDAP for argyle.com gives a registration date of 1997-06-08. The company's own llms.txt says it was founded in 2018."
        ],
        "score": 97
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/argyle.json",
      "live": {
        "slug": "argyle",
        "probe": {
          "target": "https://api.argyle.com/v2",
          "method": "get",
          "lastAt": "2026-10-08T21:12:04.288999451Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 195,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 220,
          "p95ms24h": 315,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.argyle.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:05:51.399996556Z"
        },
        "updatedAt": "2026-10-08T21:12:04.288999451Z"
      }
    },
    "answer": "Argyle scores 63.7 (B) on agent readiness against Salsa's 46.1 (D), and leads in 6 of 7 scored categories. Salsa leads on security \u0026 auth.",
    "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": 651,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 7,
        "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-08T21:12:20.70344865Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 448,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 454,
          "p95ms24h": 517,
          "samples24h": 64,
          "samples30d": 64,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 64,
              "ok": 64
            }
          ]
        },
        "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-08T21:12:20.70344865Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Argyle Systems Inc.",
        "b": "Salsa Software Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.argyle.com/v2",
        "b": "https://api.salsa.dev/api/rest/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Argyle's Open Payroll Customer Terms. The React Native Link SDK on npm is 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": "2026-10-01",
        "b": "2022-04-07",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-01",
        "b": "2025-09-24",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "481 npm/wk",
        "b": "435 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Argyle scores 63.7 (B) on agent readiness against Salsa's 46.1 (D), and leads in 6 of 7 scored categories. Salsa leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Argyle or Salsa?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Argyle and Salsa need an API key?"
      },
      {
        "answer": "Yes. Argyle has a hosted endpoint at https://api.argyle.com/v2 and Salsa at https://api.salsa.dev/api/rest/v1.",
        "question": "Can an agent call Argyle and Salsa without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 81 against 36",
          "Schema \u0026 documentation, 86 against 73",
          "Agent ergonomics, 58 against 48",
          "Payments \u0026 pricing, 15 against 5",
          "Maintenance \u0026 community, 75 against 50",
          "Transparency \u0026 trust, 83 against 51"
        ],
        "also": null,
        "goodFor": "A lender, tenant screener, benefits agency or background checker whose applicant can sign in to a payroll or gig account, and who needs paystubs, employment records or an income report.",
        "slug": "argyle",
        "watchFor": "No price is published. The site has no pricing page, and fees are set in a Service Order agreed with sales"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 56 against 48"
        ],
        "also": null,
        "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.employees",
      "name": "Payroll employees"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-check-payroll.json",
        "title": "Argyle vs Check",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-check-payroll"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-employment-hero.json",
        "title": "Argyle vs Employment Hero Payroll",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-employment-hero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-everee.json",
        "title": "Argyle vs Everee",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-everee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-finch.json",
        "title": "Argyle vs Finch",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-finch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-gusto.json",
        "title": "Argyle vs Gusto",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-gusto"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-paychex.json",
        "title": "Argyle vs Paychex",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-paychex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-zeal.json",
        "title": "Argyle vs Zeal",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-zeal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-salsa.json",
        "title": "Finch vs Salsa",
        "url": "https://www.anchorterminal.com/compare/finch-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paychex-vs-salsa.json",
        "title": "Paychex vs Salsa",
        "url": "https://www.anchorterminal.com/compare/paychex-vs-salsa"
      },
      {
        "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/employment-hero-vs-salsa.json",
        "title": "Employment Hero Payroll vs Salsa",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everee-vs-salsa.json",
        "title": "Everee vs Salsa",
        "url": "https://www.anchorterminal.com/compare/everee-vs-salsa"
      },
      {
        "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"
      }
    ],
    "scores": [
      {
        "argyle": 81,
        "by": 45,
        "edge": "argyle",
        "key": "reliability",
        "name": "Reliability",
        "salsa": 36,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "argyle": 86,
        "by": 13,
        "edge": "argyle",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "salsa": 73,
        "weight": 13
      },
      {
        "argyle": 58,
        "by": 10,
        "edge": "argyle",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "salsa": 48,
        "weight": 13
      },
      {
        "argyle": 48,
        "by": 8,
        "edge": "salsa",
        "key": "security",
        "name": "Security \u0026 auth",
        "salsa": 56,
        "weight": 14
      },
      {
        "argyle": 15,
        "by": 10,
        "edge": "argyle",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "salsa": 5,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "argyle": 75,
        "by": 25,
        "edge": "argyle",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "salsa": 50,
        "weight": 7
      },
      {
        "argyle": 83,
        "by": 32,
        "edge": "argyle",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "salsa": 51,
        "weight": 7
      }
    ],
    "summary": "Argyle scores 63.7 (B) on agent readiness against Salsa's 46.1 (D), and leads in 6 of 7 scored categories. Salsa leads on security \u0026 auth. Both do payroll employees.",
    "verdicts": {
      "argyle": "Graded on the REST API. One OpenAPI file covers 91 operations, llms.txt indexes Markdown docs, and a Sandbox with sample users comes with a Console sign-up. Every payroll connection needs the worker to sign in through Link. No prices are published, no idempotency keys were found, and API keys carry no per-key scopes.",
      "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/argyle-vs-salsa",
    "json": "https://www.anchorterminal.com/compare/argyle-vs-salsa.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/argyle-vs-salsa.md",
    "slim": "https://www.anchorterminal.com/compare/argyle-vs-salsa.min.md"
  },
  "markdown": "Argyle scores 63.7 (B) on agent readiness against Salsa's 46.1 (D), and leads in 6 of 7 scored categories. Salsa leads on security \u0026 auth. Both do payroll employees.\n\n- Argyle: grade B, 63.7/100, rank #297 of 722. Markdown https://www.anchorterminal.com/tools/argyle.md · JSON https://www.anchorterminal.com/api/v1/tools/argyle.json\n- Salsa: grade D, 46.1/100, rank #651 of 722. 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### Argyle (B)\n\nGood for: A lender, tenant screener, benefits agency or background checker whose applicant can sign in to a payroll or gig account, and who needs paystubs, employment records or an income report.\n\nAhead on:\n- Reliability, 81 against 36\n- Schema \u0026 documentation, 86 against 73\n- Agent ergonomics, 58 against 48\n- Payments \u0026 pricing, 15 against 5\n- Maintenance \u0026 community, 75 against 50\n- Transparency \u0026 trust, 83 against 51\n\nWatch for: No price is published. The site has no pricing page, and fees are set in a Service Order agreed with sales\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\nAhead on:\n- Security \u0026 auth, 56 against 48\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 | Argyle | Salsa | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 81 | 36 | Argyle +45 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 73 | Argyle +13 |\n| Agent ergonomics | 13% (16.2 this run) | 58 | 48 | Argyle +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 48 | 56 | Salsa +8 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 5 | Argyle +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 50 | Argyle +25 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 83 | 51 | Argyle +32 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.7 · B** | **46.1 · D** | |\n\n## Facts side by side\n\n| Fact | Argyle | Salsa |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Argyle Systems Inc. | Salsa Software Inc. |\n| Hosted endpoint | `https://api.argyle.com/v2` | `https://api.salsa.dev/api/rest/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Argyle's Open Payroll Customer Terms. The React Native Link SDK on npm is 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 | 2026-10-01 | 2022-04-07 |\n| Privacy policy last updated | 2026-10-01 | 2025-09-24 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 481 npm/wk | 435 npm/wk |\n\n## Verdicts\n\n**Argyle.** Graded on the REST API. One OpenAPI file covers 91 operations, llms.txt indexes Markdown docs, and a Sandbox with sample users comes with a Console sign-up. Every payroll connection needs the worker to sign in through Link. No prices are published, no idempotency keys were found, and API keys carry no per-key scopes.\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### Argyle\n\n1. Send HTTP Basic auth with `api_key_id` as the username and `api_key_secret` as the password. Sandbox keys fail with 401 on Production and the reverse\n2. Create the user with `POST /v2/users` and an `external_id`, then look it up by `external_id` before retrying. No idempotency key was found\n3. Do not read data straight after an account connects. Wait for the account and data webhooks, or for the verification status, before fetching records\n4. Follow the full URL in `next` when paging. Do not build cursor values or fetch pages in parallel. `limit` defaults to 10 and stops at 200\n5. Stay under 50 requests a second. On 429, queue the request and retry later, not at once\n6. Treat `DELETE /v2/users/{id}` as permanent. It removes every resource tied to that user, with no confirmation step\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, Argyle or Salsa?\n\nArgyle scores 63.7 (B) on agent readiness against Salsa's 46.1 (D), and leads in 6 of 7 scored categories. Salsa leads on security \u0026 auth.\n\n### Do Argyle and Salsa need an API key?\n\nBoth need an API key.\n\n### Can an agent call Argyle and Salsa without installing anything?\n\nYes. Argyle has a hosted endpoint at https://api.argyle.com/v2 and Salsa at https://api.salsa.dev/api/rest/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/argyle-vs-salsa.json, and with the fewest tokens: https://www.anchorterminal.com/compare/argyle-vs-salsa.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"argyle\", \"b\": \"salsa\"}`. From a terminal: `anchor compare argyle salsa`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/argyle.json and https://www.anchorterminal.com/api/v1/tools/salsa.json\n\n## Other comparisons with Argyle or Salsa\n\n- [Argyle vs Check](https://www.anchorterminal.com/compare/argyle-vs-check-payroll.md)\n- [Argyle vs Employment Hero Payroll](https://www.anchorterminal.com/compare/argyle-vs-employment-hero.md)\n- [Argyle vs Everee](https://www.anchorterminal.com/compare/argyle-vs-everee.md)\n- [Argyle vs Finch](https://www.anchorterminal.com/compare/argyle-vs-finch.md)\n- [Argyle vs Gusto](https://www.anchorterminal.com/compare/argyle-vs-gusto.md)\n- [Argyle vs Paychex](https://www.anchorterminal.com/compare/argyle-vs-paychex.md)\n- [Argyle vs Zeal](https://www.anchorterminal.com/compare/argyle-vs-zeal.md)\n- [Finch vs Salsa](https://www.anchorterminal.com/compare/finch-vs-salsa.md)\n- [Paychex vs Salsa](https://www.anchorterminal.com/compare/paychex-vs-salsa.md)\n- [Check vs Salsa](https://www.anchorterminal.com/compare/check-payroll-vs-salsa.md)\n- [Employment Hero Payroll vs Salsa](https://www.anchorterminal.com/compare/employment-hero-vs-salsa.md)\n- [Everee vs Salsa](https://www.anchorterminal.com/compare/everee-vs-salsa.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",
  "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": "Argyle vs Salsa",
        "url": ""
      }
    ],
    "description": "Argyle scores 63.7 (B) on agent readiness against Salsa's 46.1 (D), and leads in 6 of 7 scored categories. Salsa leads on security \u0026 auth. Both do payroll employees. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Argyle B 63.7",
      "Salsa D 46.1",
      "scores"
    ],
    "h1": "Argyle vs Salsa",
    "image": "https://www.anchorterminal.com/assets/og/compare-argyle-vs-salsa.png",
    "path": "/compare/argyle-vs-salsa",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Argyle vs Salsa for AI agents, B 63.7 vs D 46.1 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/argyle-vs-salsa"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 680
  },
  "version": 1
}
