{
  "data": {
    "a": {
      "slug": "check-payroll",
      "name": "Check",
      "vendor": "Check Technologies, Inc.",
      "vendorUrl": "https://www.checkhq.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Check is an embedded payroll API from Check Technologies in New York. Software platforms build US payroll on it for their own customers, with tax calculation, payment and filing handled by Check. Access is by partner agreement.",
      "url": "https://www.anchorterminal.com/tools/check-payroll",
      "markdownUrl": "https://www.anchorterminal.com/tools/check-payroll.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/check-payroll.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/check-payroll.json",
      "repo": "https://github.com/check-technologies/mcp-server-check",
      "license": "Proprietary service under Check's terms of service and partner agreement. The MCP server and CLI on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.checkhq.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "A partner API key sent as `Authorization: Bearer`, one for sandbox and one for production, issued by Check after a request through its sales contact. The key carries the whole partner account, with no per-key scopes found. Check says unused keys expire, last activity is shown and IP restrictions can be set through the account team. Integration partners get OAuth tokens (authorisation code grant, with refresh tokens) limited to one employer and one permission level, after a Check partner authorises them. The hosted MCP server accepts the API key or a Console OAuth login that runs with the Console user's permissions. This listing grades embedded-payroll partner access. Check has no route to an existing employer's payroll account outside a partner platform.",
      "pricing": "paid",
      "pricingNotes": "No public prices. checkhq.com/pricing returns 404 and the site's buttons open a sales contact form. A sandbox exists at sandbox.checkhq.com under a Sandbox User Agreement, but the documentation says to request an API key from Check, so an agent can't start without a person contacting sales. Production needs a partner agreement. The Usage API reports billable companies, employees and contractors each month, with no unit price published (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the documentation index, the API reference pages read or the website (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 18,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.checkhq.com",
      "llmsTxt": "https://docs.checkhq.com/llms.txt",
      "capabilities": [
        "payroll.run",
        "payroll.employees",
        "payroll.embedded",
        "payroll.tax-filing",
        "payroll.contractors"
      ],
      "tags": [
        "hosted",
        "embedded-payroll",
        "us-payroll",
        "api-key",
        "oauth",
        "mcp",
        "llms-txt",
        "sandbox",
        "webhooks",
        "sales-led",
        "partner-approval",
        "status-page",
        "bug-bounty",
        "soc2"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.5,
        "grade": "B",
        "agentReady": false,
        "rank": 233,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 72,
          "payments": 5,
          "reliability": 80,
          "schema": 78,
          "security": 74,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Graded as embedded payroll through a partner API key, not access to an existing employer's payroll account. The API has idempotency keys on writes, a required preview before approval and queryable request logs. No price is public, a sandbox key comes through Check's sales team, and one API key carries the whole partner account.",
        "bestFor": "A software platform that wants to sell US payroll inside its own product and can sign a partnership, with Check handling tax calculation, money movement and filings.",
        "strengths": [
          "`X-Idempotency-Key` is accepted on writes and stored for 24 hours, and a 429 carries `Retry-After` with `RateLimit-Limit` and `RateLimit-Remaining` on every authenticated response",
          "A payroll must have a succeeded preview before approval, and `preview_started_at` makes approval fail with 409 `preview_superseded` if the preview is stale",
          "Every response carries `X-Request-Log-Id`, and GET /logs returns request logs with SSNs, bank account numbers and the `Authorization` header redacted",
          "The MCP server starts with three meta-tools over 270 tools, with read-only mode, toolset filters and optional confirmation for destructive tools",
          "llms.txt indexes the documentation, and each page is served as Markdown with an OpenAPI 3.1 fragment per operation"
        ],
        "weaknesses": [
          "No public price and no self-serve signup. The documentation says to request an API key through Check's sales contact",
          "An API key carries the whole partner account. No per-key scopes or read-only keys were found in the reviewed documentation",
          "No official SDK in a general programming language was found. The CLI and MCP server install from a git clone, not from PyPI",
          "No SLA is published. The terms of service make no representation about uptime unless agreed in writing",
          "No sub-processor list, hosting location or published DPA text was found, and the privacy policy states no retention periods"
        ],
        "agentNotes": [
          "Use https://sandbox.checkhq.com with the sandbox key and https://api.checkhq.com with the production key. A key is not valid across environments",
          "Preview a payroll before approving it, then pass `preview_started_at` to POST /payrolls/{id}/approve so a stale preview fails with 409",
          "Send `X-Idempotency-Key` on every write. Keys expire after 24 hours, so list the resource before retrying later than that",
          "On 429 wait for `Retry-After`. The limit is 10 requests a second in sandbox and for partners paying fewer than 1,000 payees a month, with 100 concurrent requests",
          "Connect the MCP server with `?read_only=true` or `X-MCP-Readonly: true` unless writes are intended. In production, approving a payroll moves money"
        ],
        "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": 67.5
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 72,
          "payments": 5,
          "reliability": 80,
          "schema": 78,
          "security": 74,
          "transparency": 38
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl -X POST https://sandbox.checkhq.com/companies \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer \u003cAPI_KEY\u003e' \\\n  -d '{\"address\": {\"line1\": \"20 W 34th St\", \"postal_code\": \"10001\", \"city\": \"New York\", \"state\": \"NY\"}, \"start_date\": \"2020-05-20\", \"trade_name\": \"Good Web Design\", \"legal_name\": \"Good Web Design, Inc.\"}'",
        "claudeCode": "claude mcp add --transport http check https://mcp.sandbox.checkhq.com/check/mcp \\\n  --header \"Authorization: Bearer your-api-key-here\"",
        "config": {
          "mcpServers": {
            "check": {
              "type": "url",
              "url": "https://mcp.sandbox.checkhq.com/check/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/check-payroll"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Check Technologies, Inc.",
        "domain": "checkhq.com",
        "domainRegistered": "2006-10-28",
        "endpointOnVendorDomain": true,
        "terms": "https://www.checkhq.com/company/terms",
        "privacy": "https://www.checkhq.com/company/privacy",
        "statusPage": "https://status.checkhq.com",
        "changelog": "https://www.checkhq.com/resources/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy (effective 18 April 2024) names Check Technologies, Inc., 228 Park Ave. S, PMB 14961, New York, NY 10003. The site footer also names Check Payments LLC (NMLS #2103307).",
          "The terms of service are dated 3 September 2021. Sandbox use is also governed by a Sandbox User Agreement at checkhq.com/company/sandbox-user-agreement.",
          "www.checkhq.com/.well-known/security.txt and checkhq.com/.well-known/security.txt return 404. The security page sends vulnerability reports to a bug bounty at federacy.com/check.",
          "The API answers at api.checkhq.com and sandbox.checkhq.com, and the hosted MCP server at mcp.checkhq.com and mcp.sandbox.checkhq.com.",
          "RDAP for checkhq.com gives a registration date of 2006-10-28 and Squarespace Domains II LLC as registrar."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/check-payroll.json",
      "live": {
        "slug": "check-payroll",
        "probe": {
          "target": "https://api.checkhq.com",
          "method": "get",
          "lastAt": "2026-10-09T11:28:57.09763056Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 621,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 658,
          "p95ms24h": 1040,
          "samples24h": 215,
          "samples30d": 215,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 122,
              "ok": 122
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.checkhq.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T11:26:01.105821814Z"
        },
        "githubStars": 18,
        "securityTxt": {
          "url": "https://checkhq.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:31.878118114Z"
        },
        "pages": [
          {
            "url": "https://www.checkhq.com/resources/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:02.804039275Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ada7be68b809"
          },
          {
            "url": "https://www.checkhq.com/company/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:58.734249468Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2d782586e2af"
          },
          {
            "url": "https://www.checkhq.com/company/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:00.809006213Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c2d2a944fcea"
          }
        ],
        "updatedAt": "2026-10-09T11:28:57.09763056Z"
      }
    },
    "answer": "Check scores 67.5 (B) on agent readiness against Worklio's 38.6 (E), and leads in 6 of 7 scored categories. Worklio leads on payments \u0026 pricing.",
    "b": {
      "slug": "worklio",
      "name": "Worklio",
      "vendor": "Worklio, Inc.",
      "vendorUrl": "https://www.worklio.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Embedded US payroll from Worklio, Inc. for software platforms, PEOs and payroll bureaus. A partner's backend creates companies and workers, runs payroll in steps and reads tax forms through a REST API, with white-label screens as an alternative.",
      "url": "https://www.anchorterminal.com/tools/worklio",
      "markdownUrl": "https://www.anchorterminal.com/tools/worklio.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/worklio.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/worklio.json",
      "license": "Proprietary service. The public Terms of Use date from 2014 and the partner agreement isn't public. The front-end library sits in a private repository",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.worklio.com",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Every call takes a bearer JWT from `POST https://api.worklio.com/connect/token`. In the sandbox a developer registers at apiweb.worklio.com/RegisterDeveloper and uses the password grant with the account's username and password, scope `api`, and a client secret the docs print and describe as shared by all sandbox users. Tokens last 24 hours. Browser apps use an OpenID Connect redirect flow through `@worklio/sdk`, which isn't published and is requested from support. Production credentials, single sign-on and allowed origins are set up by Worklio. A System user has full rights over every company it created. This is embedded-payroll partner access, with no route into an employer's payroll account elsewhere.",
      "pricing": "paid",
      "pricingNotes": "A partner's price is set in its agreement and isn't public. The partner pages publish retail list prices per person per month ($10 for Full-Service Payroll, $81 for all 19 modules) and call them illustrative, not a quote, with base, setup and per-use fees excluded. The sandbox is self-serve after developer registration, so an agent's owner can start without a contract. Whether registration asks for a card was not read, because apiweb.worklio.com disallows crawlers (checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the reference pages read or the website (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://apidocs.worklio.com/docs/overview",
      "llmsTxt": "https://apidocs.worklio.com/llms.txt",
      "capabilities": [
        "payroll.run",
        "payroll.embedded",
        "payroll.employees",
        "payroll.tax-filing",
        "payroll.contractors"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "partner-access",
        "soc2",
        "iso27001"
      ],
      "lastRelease": "2026-06-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 38.6,
        "grade": "E",
        "agentReady": false,
        "rank": 812,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 44,
          "maintenance": 25,
          "payments": 25,
          "reliability": 25,
          "schema": 71,
          "security": 48,
          "transparency": 48
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -3,
        "negativeNotes": [
          "30 June 2026. The changelog entry that announces the reworked Time-Off Requests API says the older `timeoffrequests` routes were replaced by hyphenated routes and tells integrators to update, in the same note and with no earlier notice found. Whether partners were told privately is unknown, so the smallest deduction applies (-3). https://apidocs.worklio.com/changelog/v1-api-updates"
        ],
        "verdict": "Worklio documents 853 REST operations with an OpenAPI fragment on every reference page, and a developer can register for the sandbox without a sales call. No rate limits or public SDK were found, the status page is password protected, and the payroll guide tells callers to treat an HTTP 500 as the signal to finalise.",
        "bestFor": "A software platform, PEO or payroll bureau that wants to sell US payroll under its own brand and can sign a partner agreement, with Worklio handling tax filing and money movement.",
        "strengths": [
          "853 documented operations across 17 API groups, each reference page carrying an OpenAPI 3.0.4 fragment, plus llms.txt and a Markdown copy of every docs page",
          "Sandbox access is self-serve. A developer registers, uses a shared sandbox client secret printed in the docs and gets a bearer token",
          "A payroll run moves through steps with next, previous, discard, lock and finalise calls, and starting a scheduled run twice returns the same run",
          "Every operation states which user levels may call it (System, Admin, ClientAdmin, Employee, or anonymous with a link token)",
          "The security page claims SOC 2 Type 2, ISO 27001, ISO 27018 and ISO 9001, with third-party penetration testing"
        ],
        "weaknesses": [
          "No rate limits, 429 handling or idempotency keys were found in the reviewed documentation",
          "status.worklio.com asks for a password, so no public incident history exists",
          "The Run Payroll guide says the `next` call answers HTTP 500 with an untranslated message when a run is ready to finalise",
          "No public SDK. `@worklio/sdk` and the component library sit in a private repository granted through support",
          "The public Terms of Use are dated 21 December 2014 and describe a small-business HR site. The partner agreement and production prices aren't public"
        ],
        "agentNotes": [
          "Send `api-version: 2.0` on `/wep` calls. The reference marks the header as required",
          "Get a token from `POST https://api.worklio.com/connect/token` with the password grant and scope `api`. It lasts 24 hours, so fetch a new one daily",
          "Run payroll as start, `next` until it answers 500 with \"Next step operation is not allowed\", then `finalize`. Don't treat that 500 as a failure",
          "Don't retry bonus, off-cycle, void or termination payroll starts blindly. The reference says those calls are not idempotent",
          "Most `/wep` list endpoints return the whole result set. Paging, `filter` and `sort` work only under `/api/public`, and a `DataToken` expires after 60 seconds"
        ],
        "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": 38.6
          }
        ],
        "editorialScores": {
          "ergonomics": 44,
          "maintenance": 25,
          "payments": 25,
          "reliability": 25,
          "schema": 71,
          "security": 48,
          "transparency": 28
        },
        "provenanceScore": 67
      },
      "connect": {
        "http": "curl -s -X POST \"https://api.worklio.com/connect/token\" \\\n  -H \"accept: application/json\" \\\n  -H \"content-type: application/x-www-form-urlencoded\" \\\n  --data-urlencode \"grant_type=password\" \\\n  --data-urlencode \"username=$WORKLIO_USERNAME\" \\\n  --data-urlencode \"password=$WORKLIO_PASSWORD\" \\\n  --data-urlencode \"scope=api\" \\\n  --data-urlencode \"client_id=wep_resourceowner.public.api\" \\\n  --data-urlencode \"client_secret=$WORKLIO_CLIENT_SECRET\""
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/worklio"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Worklio, Inc.",
        "domain": "worklio.com",
        "domainRegistered": "2015-03-10",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "https://www.worklio.com/privacy",
        "statusPage": "",
        "changelog": "https://apidocs.worklio.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The site footer reads \"© 2026 Worklio, Inc.\". The about page says Worklio LLC was established in 2017. No postal address was found on the pages read.",
          "No terms link is given. The only public terms are the Terms of Use at www.worklio.com/terms, last updated 21 December 2014, which describe an HR site for small businesses and predate the embedded API. The partner agreement that governs API use isn't public.",
          "www.worklio.com/privacy embeds a policy hosted at www.iubenda.com/privacy-policy/25719508. iubenda's robots.txt disallows that path, so the policy text was not read.",
          "status.worklio.com exists (an UptimeRobot page) and answers \"This status page is password protected\", so it is not recorded as a public status page.",
          "www.worklio.com/.well-known/security.txt returns 404.",
          "The changelog holds two entries, both dated 30 June 2026.",
          "RDAP for worklio.com gives a registration date of 2015-03-10."
        ],
        "score": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/worklio.json",
      "live": {
        "slug": "worklio",
        "probe": {
          "target": "https://api.worklio.com",
          "method": "get",
          "lastAt": "2026-10-09T11:29:20.674813621Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 464,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 472,
          "p95ms24h": 528,
          "samples24h": 41,
          "samples30d": 41,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 41,
              "ok": 41
            }
          ]
        },
        "updatedAt": "2026-10-09T11:29:20.674813621Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Check Technologies, Inc.",
        "b": "Worklio, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.checkhq.com",
        "b": "https://api.worklio.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Check's terms of service and partner agreement. The MCP server and CLI on GitHub are MIT",
        "b": "Proprietary service. The public Terms of Use date from 2014 and the partner agreement isn't public. The front-end library sits in a private repository",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-07",
        "b": "2026-06-30",
        "name": "Last release"
      },
      {
        "a": "2021-09-03",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2024-04-18",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "18 stars",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Check scores 67.5 (B) on agent readiness against Worklio's 38.6 (E), and leads in 6 of 7 scored categories. Worklio leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Check or Worklio?"
      },
      {
        "answer": "Check takes an API key or an OAuth sign-in. Worklio uses an OAuth sign-in.",
        "question": "Do Check and Worklio need an API key?"
      },
      {
        "answer": "Yes. Check has a hosted endpoint at https://api.checkhq.com and Worklio at https://api.worklio.com.",
        "question": "Can an agent call Check and Worklio without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 25",
          "Schema \u0026 documentation, 78 against 71",
          "Agent ergonomics, 83 against 44",
          "Security \u0026 auth, 74 against 48",
          "Maintenance \u0026 community, 72 against 25",
          "Transparency \u0026 trust, 62 against 48"
        ],
        "also": [
          "No incidents deducted, where Worklio loses 3 points for them"
        ],
        "goodFor": "A software platform that wants to sell US payroll inside its own product and can sign a partnership, with Check handling tax calculation, money movement and filings.",
        "slug": "check-payroll",
        "watchFor": "No public price and no self-serve signup. The documentation says to request an API key through Check's sales contact"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 25 against 5"
        ],
        "also": null,
        "goodFor": "A software platform, PEO or payroll bureau that wants to sell US payroll under its own brand and can sign a partner agreement, with Worklio handling tax filing and money movement.",
        "slug": "worklio",
        "watchFor": "No rate limits, 429 handling or idempotency keys were found in the reviewed documentation"
      }
    ],
    "job": {
      "capability": "payroll.run",
      "name": "Payroll run"
    },
    "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-worklio.json",
        "title": "Argyle vs Worklio",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-finch.json",
        "title": "Check vs Finch",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-finch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-paychex.json",
        "title": "Check vs Paychex",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-paychex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-worklio.json",
        "title": "Finch vs Worklio",
        "url": "https://www.anchorterminal.com/compare/finch-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paychex-vs-worklio.json",
        "title": "Paychex vs Worklio",
        "url": "https://www.anchorterminal.com/compare/paychex-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-employment-hero.json",
        "title": "Check vs Employment Hero Payroll",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-employment-hero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/check-payroll-vs-everee.json",
        "title": "Check vs Everee",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-everee"
      },
      {
        "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/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/employment-hero-vs-worklio.json",
        "title": "Employment Hero Payroll vs Worklio",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everee-vs-worklio.json",
        "title": "Everee vs Worklio",
        "url": "https://www.anchorterminal.com/compare/everee-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gusto-vs-worklio.json",
        "title": "Gusto vs Worklio",
        "url": "https://www.anchorterminal.com/compare/gusto-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/salsa-vs-worklio.json",
        "title": "Salsa vs Worklio",
        "url": "https://www.anchorterminal.com/compare/salsa-vs-worklio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/worklio-vs-zeal.json",
        "title": "Worklio vs Zeal",
        "url": "https://www.anchorterminal.com/compare/worklio-vs-zeal"
      }
    ],
    "scores": [
      {
        "by": 55,
        "check-payroll": 80,
        "edge": "check-payroll",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "worklio": 25
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "check-payroll": 78,
        "edge": "check-payroll",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "worklio": 71
      },
      {
        "by": 39,
        "check-payroll": 83,
        "edge": "check-payroll",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "worklio": 44
      },
      {
        "by": 26,
        "check-payroll": 74,
        "edge": "check-payroll",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "worklio": 48
      },
      {
        "by": 20,
        "check-payroll": 5,
        "edge": "worklio",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "worklio": 25
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 47,
        "check-payroll": 72,
        "edge": "check-payroll",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "worklio": 25
      },
      {
        "by": 14,
        "check-payroll": 62,
        "edge": "check-payroll",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "worklio": 48
      }
    ],
    "summary": "Check scores 67.5 (B) on agent readiness against Worklio's 38.6 (E), and leads in 6 of 7 scored categories. Worklio leads on payments \u0026 pricing. Both do payroll run.",
    "verdicts": {
      "check-payroll": "Graded as embedded payroll through a partner API key, not access to an existing employer's payroll account. The API has idempotency keys on writes, a required preview before approval and queryable request logs. No price is public, a sandbox key comes through Check's sales team, and one API key carries the whole partner account.",
      "worklio": "Worklio documents 853 REST operations with an OpenAPI fragment on every reference page, and a developer can register for the sandbox without a sales call. No rate limits or public SDK were found, the status page is password protected, and the payroll guide tells callers to treat an HTTP 500 as the signal to finalise."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/check-payroll-vs-worklio",
    "json": "https://www.anchorterminal.com/compare/check-payroll-vs-worklio.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/check-payroll-vs-worklio.md",
    "slim": "https://www.anchorterminal.com/compare/check-payroll-vs-worklio.min.md"
  },
  "markdown": "Check scores 67.5 (B) on agent readiness against Worklio's 38.6 (E), and leads in 6 of 7 scored categories. Worklio leads on payments \u0026 pricing. Both do payroll run.\n\n- Check: grade B, 67.5/100, rank #233 of 842. Markdown https://www.anchorterminal.com/tools/check-payroll.md · JSON https://www.anchorterminal.com/api/v1/tools/check-payroll.json\n- Worklio: grade E, 38.6/100, rank #812 of 842. Markdown https://www.anchorterminal.com/tools/worklio.md · JSON https://www.anchorterminal.com/api/v1/tools/worklio.json\n\n## Which one, for what\n\n### Check (B)\n\nGood for: A software platform that wants to sell US payroll inside its own product and can sign a partnership, with Check handling tax calculation, money movement and filings.\n\nAhead on:\n- Reliability, 80 against 25\n- Schema \u0026 documentation, 78 against 71\n- Agent ergonomics, 83 against 44\n- Security \u0026 auth, 74 against 48\n- Maintenance \u0026 community, 72 against 25\n- Transparency \u0026 trust, 62 against 48\n\nAlso in its favour:\n- No incidents deducted, where Worklio loses 3 points for them\n\nWatch for: No public price and no self-serve signup. The documentation says to request an API key through Check's sales contact\n\n### Worklio (E)\n\nGood for: A software platform, PEO or payroll bureau that wants to sell US payroll under its own brand and can sign a partner agreement, with Worklio handling tax filing and money movement.\n\nAhead on:\n- Payments \u0026 pricing, 25 against 5\n\nWatch for: No rate limits, 429 handling or idempotency keys were found in the reviewed documentation\n\n\n## Score by category\n\n| Category | Weight | Check | Worklio | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 25 | Check +55 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 78 | 71 | Check +7 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 44 | Check +39 |\n| Security \u0026 auth | 14% (17.5 this run) | 74 | 48 | Check +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 5 | 25 | Worklio +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 25 | Check +47 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 48 | Check +14 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **67.5 · B** | **38.6 · E** | |\n\n## Facts side by side\n\n| Fact | Check | Worklio |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Check Technologies, Inc. | Worklio, Inc. |\n| Hosted endpoint | `https://api.checkhq.com` | `https://api.worklio.com` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Check's terms of service and partner agreement. The MCP server and CLI on GitHub are MIT | Proprietary service. The public Terms of Use date from 2014 and the partner agreement isn't public. The front-end library sits in a private repository |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-07 | 2026-06-30 |\n| Terms last updated | 2021-09-03 | no document linked |\n| Privacy policy last updated | 2024-04-18 | couldn't be read |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | yes |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 18 stars | none |\n\n## Verdicts\n\n**Check.** Graded as embedded payroll through a partner API key, not access to an existing employer's payroll account. The API has idempotency keys on writes, a required preview before approval and queryable request logs. No price is public, a sandbox key comes through Check's sales team, and one API key carries the whole partner account.\n\n**Worklio.** Worklio documents 853 REST operations with an OpenAPI fragment on every reference page, and a developer can register for the sandbox without a sales call. No rate limits or public SDK were found, the status page is password protected, and the payroll guide tells callers to treat an HTTP 500 as the signal to finalise.\n\n## Before you call either\n\n### Check\n\n1. Use https://sandbox.checkhq.com with the sandbox key and https://api.checkhq.com with the production key. A key is not valid across environments\n2. Preview a payroll before approving it, then pass `preview_started_at` to POST /payrolls/{id}/approve so a stale preview fails with 409\n3. Send `X-Idempotency-Key` on every write. Keys expire after 24 hours, so list the resource before retrying later than that\n4. On 429 wait for `Retry-After`. The limit is 10 requests a second in sandbox and for partners paying fewer than 1,000 payees a month, with 100 concurrent requests\n5. Connect the MCP server with `?read_only=true` or `X-MCP-Readonly: true` unless writes are intended. In production, approving a payroll moves money\n\n### Worklio\n\n1. Send `api-version: 2.0` on `/wep` calls. The reference marks the header as required\n2. Get a token from `POST https://api.worklio.com/connect/token` with the password grant and scope `api`. It lasts 24 hours, so fetch a new one daily\n3. Run payroll as start, `next` until it answers 500 with \"Next step operation is not allowed\", then `finalize`. Don't treat that 500 as a failure\n4. Don't retry bonus, off-cycle, void or termination payroll starts blindly. The reference says those calls are not idempotent\n5. Most `/wep` list endpoints return the whole result set. Paging, `filter` and `sort` work only under `/api/public`, and a `DataToken` expires after 60 seconds\n\n## Questions\n\n### Which is better for AI agents, Check or Worklio?\n\nCheck scores 67.5 (B) on agent readiness against Worklio's 38.6 (E), and leads in 6 of 7 scored categories. Worklio leads on payments \u0026 pricing.\n\n### Do Check and Worklio need an API key?\n\nCheck takes an API key or an OAuth sign-in. Worklio uses an OAuth sign-in.\n\n### Can an agent call Check and Worklio without installing anything?\n\nYes. Check has a hosted endpoint at https://api.checkhq.com and Worklio at https://api.worklio.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/check-payroll-vs-worklio.json, and with the fewest tokens: https://www.anchorterminal.com/compare/check-payroll-vs-worklio.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"check-payroll\", \"b\": \"worklio\"}`. From a terminal: `anchor compare check-payroll worklio`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/check-payroll.json and https://www.anchorterminal.com/api/v1/tools/worklio.json\n\n## Other comparisons with Check or Worklio\n\n- [Argyle vs Check](https://www.anchorterminal.com/compare/argyle-vs-check-payroll.md)\n- [Argyle vs Worklio](https://www.anchorterminal.com/compare/argyle-vs-worklio.md)\n- [Check vs Finch](https://www.anchorterminal.com/compare/check-payroll-vs-finch.md)\n- [Check vs Paychex](https://www.anchorterminal.com/compare/check-payroll-vs-paychex.md)\n- [Finch vs Worklio](https://www.anchorterminal.com/compare/finch-vs-worklio.md)\n- [Paychex vs Worklio](https://www.anchorterminal.com/compare/paychex-vs-worklio.md)\n- [Check vs Employment Hero Payroll](https://www.anchorterminal.com/compare/check-payroll-vs-employment-hero.md)\n- [Check vs Everee](https://www.anchorterminal.com/compare/check-payroll-vs-everee.md)\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- [Check vs Zeal](https://www.anchorterminal.com/compare/check-payroll-vs-zeal.md)\n- [Employment Hero Payroll vs Worklio](https://www.anchorterminal.com/compare/employment-hero-vs-worklio.md)\n- [Everee vs Worklio](https://www.anchorterminal.com/compare/everee-vs-worklio.md)\n- [Gusto vs Worklio](https://www.anchorterminal.com/compare/gusto-vs-worklio.md)\n- [Salsa vs Worklio](https://www.anchorterminal.com/compare/salsa-vs-worklio.md)\n- [Worklio vs Zeal](https://www.anchorterminal.com/compare/worklio-vs-zeal.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "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": "Check vs Worklio",
        "url": ""
      }
    ],
    "description": "Check scores 67.5 (B) on agent readiness against Worklio's 38.6 (E), and leads in 6 of 7 scored categories. Worklio leads on payments \u0026 pricing. Both do payroll run. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Check B 67.5",
      "Worklio E 38.6",
      "scores"
    ],
    "h1": "Check vs Worklio",
    "image": "https://www.anchorterminal.com/assets/og/compare-check-payroll-vs-worklio.png",
    "path": "/compare/check-payroll-vs-worklio",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Check vs Worklio for AI agents, B 67.5 vs E 38.6 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/check-payroll-vs-worklio"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 730
  },
  "version": 1
}
