{
  "data": {
    "a": {
      "slug": "payfit",
      "name": "PayFit",
      "vendor": "PayFit SAS",
      "vendorUrl": "https://payfit.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "PayFit is payroll and HR software for small and mid-sized employers in France, the United Kingdom and Spain. Its Partner API reads employees, contracts, payslips, absences and accounting exports, with a customer API key or partner OAuth.",
      "url": "https://www.anchorterminal.com/tools/payfit",
      "markdownUrl": "https://www.anchorterminal.com/tools/payfit.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/payfit.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/payfit.json",
      "license": "Proprietary service under PayFit's general terms of service",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Two routes. A customer's company admin creates an API key in the PayFit app at app.payfit.com/integrations/hub/api, picks its scopes, and sees it once. It is sent as a Bearer token and reaches that company only. Partners use the OAuth 2.0 authorisation code grant at oauth.payfit.com with a client ID and secret that PayFit issues after reviewing the use case, and the scopes a partner may request are fixed at approval. The partner guides say PayFit is temporarily not accepting new integration requests.",
      "pricing": "paid",
      "pricingNotes": "No charge for API calls was found. Access comes with a PayFit subscription. In France the API is included from the Paie avancée plan, listed at 27 € a collaborator a month plus a 49 € monthly subscription for 1 to 3 collaborators, before tax. The UK site lists no prices and sends buyers to a demo, and its contract appendix includes API access in the Payroll Core plan. The French site links a free signup and a first month free until 31 October 2026. Whether signup needs a card was not established. A sandbox company is given only to accepted partners (checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API guides, the OpenAPI file or the French pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://developers.payfit.io/",
      "llmsTxt": "https://developers.payfit.io/llms.txt",
      "openapi": "https://developers.payfit.io/openapi/partner-api.json",
      "capabilities": [
        "payroll.employees",
        "hr.time-off",
        "hr.employees"
      ],
      "tags": [
        "hosted",
        "payroll",
        "hr",
        "api-key",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "france",
        "uk",
        "spain",
        "status-page",
        "iso-27001"
      ],
      "lastRelease": "2026-07-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.5,
        "grade": "C",
        "agentReady": false,
        "rank": 656,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 28,
          "payments": 10,
          "reliability": 79,
          "schema": 78,
          "security": 51,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.0 file, llms.txt and scoped keys let a paying customer's agent read payroll outputs and write absences. The API cannot run or approve a payroll, new partner integrations are not being accepted, and no idempotency keys or SDKs were found.",
        "bestFor": "An agent working for an employer that already runs payroll on PayFit in France, the UK or Spain and needs employees, contracts, payslips, absences or the payroll journal.",
        "strengths": [
          "Public OpenAPI 3.0 file with 31 operations, each documenting 400, 401, 403 and 404 responses with an example",
          "llms.txt and a Markdown twin for every guide, reference and changelog page",
          "Customer API keys and partner OAuth tokens are limited to chosen scopes from 22, with read and write separate",
          "Rate limits are published as 50 read and 20 write requests a second, with `X-RateLimit` headers on responses",
          "The contract appendix of 15 June 2026 lists sub-processors by purpose and region, and the security page states hosting in France"
        ],
        "weaknesses": [
          "No operation runs, previews or approves a payroll. The API reads payroll status, payslips and accounting exports",
          "The partner guides say PayFit is temporarily not accepting new integration requests, with no reopening date",
          "The webhook guide documents a call that sends `clientSecret` and `clientId` in the URL query string",
          "No idempotency keys, no official SDK and no MCP server were found in the reviewed documentation",
          "Fifteen of 31 operations are France-only and two are UK-only, including contract creation and both accounting exports"
        ],
        "agentNotes": [
          "Have a company admin create the key at app.payfit.com/integrations/hub/api with only the scopes the task needs. The key is shown once",
          "POST the key to `https://oauth.payfit.com/introspect` to get `company_id`, then call `https://partner-api.payfit.com/companies/{companyId}/...`",
          "Page lists with `nextPageToken` and `maxResults`, which defaults to 10 and stops at 50",
          "Check before repeating a failed POST. There is no idempotency key, and `POST /absences` creates an absence that is already validated",
          "A collaborator or contract created through the API stays incomplete until an HR admin finishes it in the PayFit app, and a new contract takes 2 to 5 minutes to appear"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.5
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 28,
          "payments": 10,
          "reliability": 79,
          "schema": 78,
          "security": 51,
          "transparency": 56
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "curl --request GET --url https://partner-api.payfit.com/companies/{companyId} --header 'Authorization: Bearer YOUR-API-KEY'"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.employees",
        "tool": "https://letme.dev/payfit"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "PayFit SAS",
        "domain": "payfit.com",
        "domainRegistered": "2006-11-17",
        "endpointOnVendorDomain": true,
        "terms": "https://payfit.com/general-terms-of-service/",
        "privacy": "https://payfit.com/privacy-policy/",
        "statusPage": "https://status.payfit.com",
        "changelog": "https://developers.payfit.io/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The French general conditions (last updated 8 September 2026) name Payfit, a société par actions simplifiée registered in Paris under number 813 487 899, at 37-39 avenue Trudaine, 75009 Paris.",
          "The linked terms and privacy policy are the English ones, both last updated 15 June 2026. They name Payfit Ltd, registered in England and Wales under number 11623900, which contracts with UK clients. French clients contract under https://payfit.com/fr/conditions-generales-de-services/.",
          "No separate API terms were found. Clause 1.4 of the terms covers third-party services connected through the Payfit API, and the appendix lists access to the API as a plan item.",
          "The API answers at partner-api.payfit.com and OAuth at oauth.payfit.com. The documentation is on developers.payfit.io, a second domain.",
          "https://payfit.com/.well-known/security.txt returned 404. The security contact page gives security@payfit.com and a PGP key whose stated expiry is 27 August 2026.",
          "RDAP for payfit.com gives a registration date of 2006-11-17 and Gandi SAS as registrar."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/payfit.json",
      "live": {
        "slug": "payfit",
        "vendorStatus": {
          "page": "https://status.payfit.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:07.656388577Z"
        },
        "pages": [
          {
            "url": "https://developers.payfit.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:36:07.999420808Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1d2fd9ebd502"
          },
          {
            "url": "https://payfit.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:03.382729135Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "99ea5438a60b"
          },
          {
            "url": "https://payfit.com/general-terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:01.261262581Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "816c4583c340"
          }
        ],
        "updatedAt": "2026-10-10T00:51:07.656388577Z"
      }
    },
    "answer": "PayFit scores 55.5 (C) on agent readiness against Zeal's 45.4 (E), and leads in 5 of 7 scored categories. Zeal leads on agent ergonomics and maintenance \u0026 community.",
    "b": {
      "slug": "zeal",
      "name": "Zeal",
      "vendor": "Puzzl Group Inc.",
      "vendorUrl": "https://www.zeal.com",
      "kind": "http-api",
      "category": "payroll",
      "summary": "Zeal is an embedded payroll API for US staffing platforms, labour marketplaces and workforce software. Partners create employer companies, onboard W-2 employees and 1099 contractors, create pay cheques and contractor payments, preview payroll and pull reports.",
      "url": "https://www.anchorterminal.com/tools/zeal",
      "markdownUrl": "https://www.anchorterminal.com/tools/zeal.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zeal.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zeal.json",
      "repo": "https://github.com/zeal-corp/typescript-sdk",
      "license": "Proprietary service. The npm SDK declares MIT. The SDK repositories on GitHub carry no licence file",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.zeal.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@zeal-api/sdk"
        },
        {
          "registry": "pypi",
          "name": "zeal-api-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "API keys, issued only to Zeal partners. Zeal's team creates the partner account after a demo request, then the Partner Dashboard at app.zeal.com shows one Test API key, one Production API key and the `partnerID`. Every call sends `Authorization: Bearer {apiKey}`, and most also need a `companyID`. A key covers every employer company under the partner, has no scopes, and is rolled from the dashboard, which invalidates the old key at once. Production payroll is switched on by Zeal (error code 0 until then). The agent chat and MCP endpoints need a key that Zeal has Agent-enabled. This is embedded-payroll partner access. An employer has no separate API route into its own Zeal payroll account.",
      "pricing": "paid",
      "pricingNotes": "No public prices. www.zeal.com/pricing returns 404 and every call to action asks for a demo. A test environment that moves no money exists, but its key comes only after Zeal creates a partner account, so an agent cannot start without a sales contact. No free tier or self-serve trial was found (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms-full.txt, the OpenAPI specs or the marketing site (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 8,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.zeal.com",
      "llmsTxt": "https://docs.zeal.com/llms.txt",
      "openapi": "https://docs.zeal.com/openapi/zeal-api.json",
      "capabilities": [
        "payroll.run",
        "payroll.embedded",
        "payroll.employees",
        "payroll.contractors",
        "payroll.tax-filing",
        "hr.onboarding"
      ],
      "tags": [
        "hosted",
        "api-key",
        "openapi",
        "llms-txt",
        "typescript",
        "python",
        "webhooks",
        "sandbox",
        "sales-led",
        "partner-only",
        "us-only",
        "soc2",
        "mcp"
      ],
      "lastRelease": "2026-07-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.4,
        "grade": "E",
        "agentReady": false,
        "rank": 865,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 61,
          "payments": 0,
          "reliability": 42,
          "schema": 68,
          "security": 34,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Graded on the partner REST API at api.zeal.com, which is the only access route. Three OpenAPI specs, llms.txt, a test environment that moves no money, a preview endpoint and a per-cheque approval flag are documented. Access starts with a demo request, prices are not published, each environment has one unscoped key, and no status page or working changelog was found.",
        "bestFor": "A US staffing platform, marketplace or workforce product that will sign a partnership and run payroll for many employers under its own brand, including daily and on-demand pay.",
        "strengths": [
          "Public OpenAPI 3.1 specs with 177 operations, plus llms.txt, llms-full.txt and a Markdown copy of every docs page",
          "Test keys run payroll end to end with no money moved and no tax filings, in an environment separate from production",
          "Preview endpoints return the gross-to-net breakdown before processing, and `approval_required` holds a cheque until `approved` is set",
          "`x-idempotency-key` header honoured for 24 hours, and 116 numbered error codes with messages",
          "Fern-generated TypeScript and Python SDKs (0.2.1, July 2026) that retry 408, 429 and 5xx with backoff"
        ],
        "weaknesses": [
          "No self-serve signup. Zeal's team creates the partner account after a demo request, and no price is published",
          "One test key and one production key per partner account, with no scopes and no read-only key",
          "No status page found, and the changelog linked from the home page and llms.txt returns 404",
          "The API has no version in the path or a header, and the main spec has 18 operations with no summary",
          "Webhooks carry the shared secret itself in `Puzzl-Signature`, not a signature of the payload",
          "No security.txt, disclosure policy, sub-processor list or DPA found on the public site"
        ],
        "agentNotes": [
          "Use the Test API key until a person has approved live payroll. Error code 0 (403) means the account has no production access",
          "Send `companyID` on almost every call and `partnerID` on partner-level calls, in the body for POST and PATCH and the query for GET",
          "Create cheques with `approval_required: true`, run POST /preview/checks, then PATCH /employeeCheck with `approved: true`. Without the flag Zeal processes pending cheques automatically",
          "Send `x-idempotency-key` on every create so a retry within 24 hours doesn't pay twice",
          "Previews and reports are jobs. Keep the `job_id` and poll GET /preview or GET /reports, or wait for the Job Queue webhook",
          "Check dates must be bank days and submitted before 2 PM Pacific two bank days ahead, or the call fails with code 89"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.4
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 61,
          "payments": 0,
          "reliability": 42,
          "schema": 68,
          "security": 34,
          "transparency": 38
        },
        "provenanceScore": 64
      },
      "connect": {
        "install": "npm i -s @zeal-api/sdk",
        "http": "curl --request GET \\\n     --url 'https://api.zeal.com/companies?partnerID=YOUR_PARTNER_ID' \\\n     --header 'Accept: application/json' \\\n     --header 'Authorization: Bearer YOUR_API_KEY'"
      },
      "letme": {
        "capability": "https://letme.dev/payroll.run",
        "tool": "https://letme.dev/zeal"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Puzzl Group Inc.",
        "domain": "zeal.com",
        "domainRegistered": "1995-07-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zeal.com/legal?tab=terms-of-service",
        "privacy": "https://www.zeal.com/legal?tab=privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The legal page names Puzzl Group Inc., a Delaware corporation, 80 Langton Street, San Francisco, CA 94103. Its privacy notice was last updated on 16 January 2026.",
          "The API answers at https://api.zeal.com and docs at docs.zeal.com (hosted on Mintlify). The help centre at support.zeal.com runs on Pylon.",
          "www.zeal.com/.well-known/security.txt and docs.zeal.com/.well-known/security.txt return 404.",
          "No status page is linked from the site, the docs or the help centre. status.zeal.com did not complete a TLS handshake on 8 October 2026.",
          "The changelog URL the site advertises, https://docs.zeal.com/changelog, returns 404, so the field is left empty.",
          "The legal page says banking services come from Bangor Savings Bank, Member FDIC.",
          "RDAP for zeal.com gives a registration date of 1995-07-03 and GoDaddy.com, LLC as registrar."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zeal.json",
      "live": {
        "slug": "zeal",
        "probe": {
          "target": "https://api.zeal.com",
          "method": "get",
          "lastAt": "2026-10-10T02:55:16.72547736Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 627,
          "authRequired": false,
          "uptime24h": 99.6,
          "uptime30d": 99.46,
          "p50ms24h": 595,
          "p95ms24h": 670,
          "samples24h": 249,
          "samples30d": 373,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 92
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 249
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@zeal-api/sdk",
            "version": "0.2.1",
            "seenAt": "2026-10-09T17:29:29.188040388Z"
          },
          {
            "registry": "pypi",
            "name": "zeal-api-sdk",
            "version": "0.2.1",
            "released": "2026-07-31",
            "seenAt": "2026-10-09T17:29:31.788368088Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 6,
        "pypiWeekly": 8,
        "securityTxt": {
          "url": "https://zeal.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:11.803910967Z"
        },
        "llmsTxt": {
          "url": "https://docs.zeal.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:03:02.881497924Z"
        },
        "pages": [
          {
            "url": "https://www.zeal.com/legal?tab=privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-09T18:55:56.659588524Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca2c8021bf60"
          },
          {
            "url": "https://www.zeal.com/legal?tab=terms-of-service",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:55:58.729912623Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ca2c8021bf60"
          }
        ],
        "updatedAt": "2026-10-10T02:55:16.72547736Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "PayFit SAS",
        "b": "Puzzl Group Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.zeal.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under PayFit's general terms of service",
        "b": "Proprietary service. The npm SDK declares MIT. The SDK repositories on GitHub carry no licence file",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-07-23",
        "b": "2026-07-31",
        "name": "Last release"
      },
      {
        "a": "2026-06-15",
        "b": "2026-01-16",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-15",
        "b": "2026-01-16",
        "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": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "0 stars, 8 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "PayFit scores 55.5 (C) on agent readiness against Zeal's 45.4 (E), and leads in 5 of 7 scored categories. Zeal leads on agent ergonomics and maintenance \u0026 community.",
        "question": "Which is better for AI agents, PayFit or Zeal?"
      },
      {
        "answer": "PayFit takes an API key or an OAuth sign-in. Zeal needs an API key.",
        "question": "Do PayFit and Zeal need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for PayFit. Zeal has a hosted endpoint at https://api.zeal.com.",
        "question": "Can an agent call PayFit and Zeal without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 79 against 42",
          "Schema \u0026 documentation, 78 against 68",
          "Security \u0026 auth, 51 against 34",
          "Payments \u0026 pricing, 10 against 0",
          "Transparency \u0026 trust, 70 against 51"
        ],
        "also": null,
        "goodFor": "An agent working for an employer that already runs payroll on PayFit in France, the UK or Spain and needs employees, contracts, payslips, absences or the payroll journal.",
        "slug": "payfit",
        "watchFor": "No operation runs, previews or approves a payroll. The API reads payroll status, payslips and accounting exports"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 63 against 51",
          "Maintenance \u0026 community, 61 against 28"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A US staffing platform, marketplace or workforce product that will sign a partnership and run payroll for many employers under its own brand, including daily and on-demand pay.",
        "slug": "zeal",
        "watchFor": "No self-serve signup. Zeal's team creates the partner account after a demo request, and no price is published"
      }
    ],
    "job": {
      "capability": "payroll.employees",
      "name": "Payroll records"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/argyle-vs-payfit.json",
        "title": "Argyle vs PayFit",
        "url": "https://www.anchorterminal.com/compare/argyle-vs-payfit"
      },
      {
        "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/check-payroll-vs-payfit.json",
        "title": "Check vs PayFit",
        "url": "https://www.anchorterminal.com/compare/check-payroll-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/employment-hero-vs-payfit.json",
        "title": "Employment Hero Payroll vs PayFit",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everee-vs-payfit.json",
        "title": "Everee vs PayFit",
        "url": "https://www.anchorterminal.com/compare/everee-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-payfit.json",
        "title": "Finch vs PayFit",
        "url": "https://www.anchorterminal.com/compare/finch-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finch-vs-zeal.json",
        "title": "Finch vs Zeal",
        "url": "https://www.anchorterminal.com/compare/finch-vs-zeal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gusto-vs-payfit.json",
        "title": "Gusto vs PayFit",
        "url": "https://www.anchorterminal.com/compare/gusto-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paychex-vs-payfit.json",
        "title": "Paychex vs PayFit",
        "url": "https://www.anchorterminal.com/compare/paychex-vs-payfit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paychex-vs-zeal.json",
        "title": "Paychex vs Zeal",
        "url": "https://www.anchorterminal.com/compare/paychex-vs-zeal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payfit-vs-salsa.json",
        "title": "PayFit vs Salsa",
        "url": "https://www.anchorterminal.com/compare/payfit-vs-salsa"
      },
      {
        "json": "https://www.anchorterminal.com/compare/payfit-vs-worklio.json",
        "title": "PayFit vs Worklio",
        "url": "https://www.anchorterminal.com/compare/payfit-vs-worklio"
      },
      {
        "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-zeal.json",
        "title": "Employment Hero Payroll vs Zeal",
        "url": "https://www.anchorterminal.com/compare/employment-hero-vs-zeal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/everee-vs-zeal.json",
        "title": "Everee vs Zeal",
        "url": "https://www.anchorterminal.com/compare/everee-vs-zeal"
      },
      {
        "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/worklio-vs-zeal.json",
        "title": "Worklio vs Zeal",
        "url": "https://www.anchorterminal.com/compare/worklio-vs-zeal"
      }
    ],
    "scores": [
      {
        "by": 37,
        "edge": "payfit",
        "key": "reliability",
        "name": "Reliability",
        "payfit": 79,
        "weight": 16,
        "zeal": 42
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "payfit",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "payfit": 78,
        "weight": 13,
        "zeal": 68
      },
      {
        "by": 12,
        "edge": "zeal",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "payfit": 51,
        "weight": 13,
        "zeal": 63
      },
      {
        "by": 17,
        "edge": "payfit",
        "key": "security",
        "name": "Security \u0026 auth",
        "payfit": 51,
        "weight": 14,
        "zeal": 34
      },
      {
        "by": 10,
        "edge": "payfit",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "payfit": 10,
        "weight": 10,
        "zeal": 0
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 33,
        "edge": "zeal",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "payfit": 28,
        "weight": 7,
        "zeal": 61
      },
      {
        "by": 19,
        "edge": "payfit",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "payfit": 70,
        "weight": 7,
        "zeal": 51
      }
    ],
    "summary": "PayFit scores 55.5 (C) on agent readiness against Zeal's 45.4 (E), and leads in 5 of 7 scored categories. Zeal leads on agent ergonomics and maintenance \u0026 community. Both do payroll records.",
    "verdicts": {
      "payfit": "A public OpenAPI 3.0 file, llms.txt and scoped keys let a paying customer's agent read payroll outputs and write absences. The API cannot run or approve a payroll, new partner integrations are not being accepted, and no idempotency keys or SDKs were found.",
      "zeal": "Graded on the partner REST API at api.zeal.com, which is the only access route. Three OpenAPI specs, llms.txt, a test environment that moves no money, a preview endpoint and a per-cheque approval flag are documented. Access starts with a demo request, prices are not published, each environment has one unscoped key, and no status page or working changelog was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/payfit-vs-zeal",
    "json": "https://www.anchorterminal.com/compare/payfit-vs-zeal.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/payfit-vs-zeal.md",
    "slim": "https://www.anchorterminal.com/compare/payfit-vs-zeal.min.md"
  },
  "markdown": "PayFit scores 55.5 (C) on agent readiness against Zeal's 45.4 (E), and leads in 5 of 7 scored categories. Zeal leads on agent ergonomics and maintenance \u0026 community. Both do payroll records.\n\n- PayFit: grade C, 55.5/100, rank #656 of 950. Markdown https://www.anchorterminal.com/tools/payfit.md · JSON https://www.anchorterminal.com/api/v1/tools/payfit.json\n- Zeal: grade E, 45.4/100, rank #865 of 950. Markdown https://www.anchorterminal.com/tools/zeal.md · JSON https://www.anchorterminal.com/api/v1/tools/zeal.json\n- Best payroll APIs and embedded payroll for AI agents: https://www.anchorterminal.com/best/payroll/index.md\n- All 55 payroll comparisons: https://www.anchorterminal.com/compare/payroll/index.md\n\n## Which one, for what\n\n### PayFit (C)\n\nGood for: An agent working for an employer that already runs payroll on PayFit in France, the UK or Spain and needs employees, contracts, payslips, absences or the payroll journal.\n\nAhead on:\n- Reliability, 79 against 42\n- Schema \u0026 documentation, 78 against 68\n- Security \u0026 auth, 51 against 34\n- Payments \u0026 pricing, 10 against 0\n- Transparency \u0026 trust, 70 against 51\n\nWatch for: No operation runs, previews or approves a payroll. The API reads payroll status, payslips and accounting exports\n\n### Zeal (E)\n\nGood for: A US staffing platform, marketplace or workforce product that will sign a partnership and run payroll for many employers under its own brand, including daily and on-demand pay.\n\nAhead on:\n- Agent ergonomics, 63 against 51\n- Maintenance \u0026 community, 61 against 28\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: No self-serve signup. Zeal's team creates the partner account after a demo request, and no price is published\n\n\n## Score by category\n\n| Category | Weight | PayFit | Zeal | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 79 | 42 | PayFit +37 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 78 | 68 | PayFit +10 |\n| Agent ergonomics | 13% (16.2 this run) | 51 | 63 | Zeal +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 51 | 34 | PayFit +17 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 0 | PayFit +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 28 | 61 | Zeal +33 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 51 | PayFit +19 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **55.5 · C** | **45.4 · E** | |\n\n## Facts side by side\n\n| Fact | PayFit | Zeal |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | PayFit SAS | Puzzl Group Inc. |\n| Hosted endpoint | no (local only) | `https://api.zeal.com` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under PayFit's general terms of service | Proprietary service. The npm SDK declares MIT. The SDK repositories on GitHub carry no licence file |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-07-23 | 2026-07-31 |\n| Terms last updated | 2026-06-15 | 2026-01-16 |\n| Privacy policy last updated | 2026-06-15 | 2026-01-16 |\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 | yes | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 0 stars, 8 npm/wk |\n\n## Verdicts\n\n**PayFit.** A public OpenAPI 3.0 file, llms.txt and scoped keys let a paying customer's agent read payroll outputs and write absences. The API cannot run or approve a payroll, new partner integrations are not being accepted, and no idempotency keys or SDKs were found.\n\n**Zeal.** Graded on the partner REST API at api.zeal.com, which is the only access route. Three OpenAPI specs, llms.txt, a test environment that moves no money, a preview endpoint and a per-cheque approval flag are documented. Access starts with a demo request, prices are not published, each environment has one unscoped key, and no status page or working changelog was found.\n\n## Before you call either\n\n### PayFit\n\n1. Have a company admin create the key at app.payfit.com/integrations/hub/api with only the scopes the task needs. The key is shown once\n2. POST the key to `https://oauth.payfit.com/introspect` to get `company_id`, then call `https://partner-api.payfit.com/companies/{companyId}/...`\n3. Page lists with `nextPageToken` and `maxResults`, which defaults to 10 and stops at 50\n4. Check before repeating a failed POST. There is no idempotency key, and `POST /absences` creates an absence that is already validated\n5. A collaborator or contract created through the API stays incomplete until an HR admin finishes it in the PayFit app, and a new contract takes 2 to 5 minutes to appear\n\n### Zeal\n\n1. Use the Test API key until a person has approved live payroll. Error code 0 (403) means the account has no production access\n2. Send `companyID` on almost every call and `partnerID` on partner-level calls, in the body for POST and PATCH and the query for GET\n3. Create cheques with `approval_required: true`, run POST /preview/checks, then PATCH /employeeCheck with `approved: true`. Without the flag Zeal processes pending cheques automatically\n4. Send `x-idempotency-key` on every create so a retry within 24 hours doesn't pay twice\n5. Previews and reports are jobs. Keep the `job_id` and poll GET /preview or GET /reports, or wait for the Job Queue webhook\n6. Check dates must be bank days and submitted before 2 PM Pacific two bank days ahead, or the call fails with code 89\n\n## Questions\n\n### Which is better for AI agents, PayFit or Zeal?\n\nPayFit scores 55.5 (C) on agent readiness against Zeal's 45.4 (E), and leads in 5 of 7 scored categories. Zeal leads on agent ergonomics and maintenance \u0026 community.\n\n### Do PayFit and Zeal need an API key?\n\nPayFit takes an API key or an OAuth sign-in. Zeal needs an API key.\n\n### Can an agent call PayFit and Zeal without installing anything?\n\nNo hosted endpoint is listed for PayFit. Zeal has a hosted endpoint at https://api.zeal.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/payfit-vs-zeal.json, and with the fewest tokens: https://www.anchorterminal.com/compare/payfit-vs-zeal.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"payfit\", \"b\": \"zeal\"}`. From a terminal: `anchor compare payfit zeal`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/payfit.json and https://www.anchorterminal.com/api/v1/tools/zeal.json\n\n## Other comparisons with PayFit or Zeal\n\n- [Argyle vs PayFit](https://www.anchorterminal.com/compare/argyle-vs-payfit.md)\n- [Argyle vs Zeal](https://www.anchorterminal.com/compare/argyle-vs-zeal.md)\n- [Check vs PayFit](https://www.anchorterminal.com/compare/check-payroll-vs-payfit.md)\n- [Employment Hero Payroll vs PayFit](https://www.anchorterminal.com/compare/employment-hero-vs-payfit.md)\n- [Everee vs PayFit](https://www.anchorterminal.com/compare/everee-vs-payfit.md)\n- [Finch vs PayFit](https://www.anchorterminal.com/compare/finch-vs-payfit.md)\n- [Finch vs Zeal](https://www.anchorterminal.com/compare/finch-vs-zeal.md)\n- [Gusto vs PayFit](https://www.anchorterminal.com/compare/gusto-vs-payfit.md)\n- [Paychex vs PayFit](https://www.anchorterminal.com/compare/paychex-vs-payfit.md)\n- [Paychex vs Zeal](https://www.anchorterminal.com/compare/paychex-vs-zeal.md)\n- [PayFit vs Salsa](https://www.anchorterminal.com/compare/payfit-vs-salsa.md)\n- [PayFit vs Worklio](https://www.anchorterminal.com/compare/payfit-vs-worklio.md)\n- [Check vs Zeal](https://www.anchorterminal.com/compare/check-payroll-vs-zeal.md)\n- [Employment Hero Payroll vs Zeal](https://www.anchorterminal.com/compare/employment-hero-vs-zeal.md)\n- [Everee vs Zeal](https://www.anchorterminal.com/compare/everee-vs-zeal.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- [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-10",
    "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": "PayFit vs Zeal",
        "url": ""
      }
    ],
    "description": "PayFit scores 55.5 (C) to Zeal's 45.4 (E) for payroll records. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "PayFit C 55.5",
      "Zeal E 45.4",
      "scores"
    ],
    "h1": "PayFit vs Zeal",
    "image": "https://www.anchorterminal.com/assets/og/compare-payfit-vs-zeal.png",
    "path": "/compare/payfit-vs-zeal",
    "published": "2026-10-01",
    "section": "tools",
    "title": "PayFit vs Zeal for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/payfit-vs-zeal"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 630
  },
  "version": 1
}
