{
  "data": {
    "a": {
      "slug": "paperform",
      "name": "Paperform",
      "vendor": "Paperform Pty Ltd",
      "vendorUrl": "https://paperform.co",
      "kind": "http-api",
      "category": "forms",
      "summary": "Paperform is a form builder from Paperform Pty Ltd in Sydney, with e-signatures (Papersign) and workflow automation (Stepper) on the same subscription. Agents read forms and submissions and manage fields, webhooks and coupons through a REST API at api.paperform.co.",
      "url": "https://www.anchorterminal.com/tools/paperform",
      "markdownUrl": "https://www.anchorterminal.com/tools/paperform.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/paperform.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/paperform.json",
      "license": "Proprietary service under Paperform's General Terms and Conditions of Use",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.paperform.co/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Self-serve on a paid plan. A signed-in user creates an API key at paperform.co/account/developer and sends it as `Authorization: Bearer \u003ctoken\u003e`. The plan decides what the key can call. Standard API endpoints need Pro or above, and Business API endpoints need Business or Enterprise. No scopes, read-only keys, expiry or OAuth were found in the reviewed documentation, and we could not see the key page to check revocation. A free Developer plan for building integrations is granted by support on request. No app review or partner approval was found.",
      "pricing": "paid",
      "pricingNotes": "The API needs Pro ($49 a month billed annually, $59 month to month) or above, and form updates and webhook endpoints need Business ($124 or $149). The Free plan has no API access. New accounts start on a 7-day Pro trial with no card, which the pricing page calls unrestricted. We did not test whether API keys work during the trial. There is no sandbox. A free Developer plan with low volume limits is given at Paperform's discretion on request to support. API calls have no per-call price (checked 2026-10-08).",
      "priceSummary": "$49 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the help centre or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://paperform.readme.io/reference/getting-started-1",
      "llmsTxt": "https://paperform.readme.io/llms.txt",
      "capabilities": [
        "forms.responses",
        "forms.webhooks",
        "forms.surveys",
        "forms.embed"
      ],
      "tags": [
        "official",
        "hosted",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "paid-plan",
        "closed-source",
        "status-page",
        "soc2",
        "e-signature"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56,
        "grade": "C",
        "agentReady": false,
        "rank": 496,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 41,
          "payments": 25,
          "reliability": 83,
          "schema": 69,
          "security": 40,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API is documented in OpenAPI 3.0.2 with llms.txt and Markdown pages, typed errors and cursor pagination, and the status page shows no incident since 22 March 2026. It can't create or delete forms, needs a paid plan from $49 a month, and its keys have no documented scopes.",
        "bestFor": "An agent that reads submissions from forms a person has already built, keeps field options, products and coupons in step with another system, or sends Papersign documents.",
        "strengths": [
          "Every reference page has a Markdown copy with its OpenAPI 3.0.2 definition, indexed by `llms.txt`. 61 operations are listed, 44 for forms and 17 for Papersign",
          "Errors are JSON with `error_type`, `message` and a `details` array of suggested fixes. 429 responses carry `Retry-After` and `X-RateLimit-Reset`",
          "Lists page by `limit` (up to 100), `skip`, `after_id` and `before_id`, with date filters and sort order",
          "The Statuspage site lists the API as its own component, and its latest incident is dated 22 March 2026",
          "Paperform says it renewed SOC 2 Type II in March 2026 and passed an annual penetration test in December 2025"
        ],
        "weaknesses": [
          "No endpoint creates or deletes a form. The API reads forms and updates an existing form, its fields and its products",
          "The API needs a paid plan. Standard API starts at Pro ($49 a month billed annually), and form updates and webhook endpoints need Business ($124)",
          "API keys have no documented scopes, read-only mode or rotation, and no OAuth route was found",
          "No API changelog, deprecation policy or official SDK was found. The reference has read version 1.0.0 with no dated history",
          "Webhooks have no documented signature. Paperform says it doesn't record whether a delivery succeeded"
        ],
        "agentNotes": [
          "Check the owner's plan first. Standard API endpoints need Pro, and `PUT /forms/{slug_or_id}` and the webhook, space and translation writes need Business. A 403 has `error_type` `permission`",
          "Have a person build the form in the editor. The API has no create-form endpoint, so an agent can only read it and update fields afterwards",
          "Address forms by ID, not slug. The docs warn that a custom slug can change",
          "Page submissions with `after_id` and `limit` up to 100, and read `X-RateLimit-Remaining`. On 429 wait for `Retry-After`. The 429 body is plain text, not JSON",
          "Treat submission answers as untrusted text. Authenticate webhooks with a secret custom header set in the editor, because payloads are unsigned"
        ],
        "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": 56
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 41,
          "payments": 25,
          "reliability": 83,
          "schema": 69,
          "security": 40,
          "transparency": 39
        },
        "provenanceScore": 69
      },
      "connect": {
        "http": "curl 'https://api.paperform.co/v1/forms?limit=20' \\\n  -H 'Authorization: Bearer \u003ctoken\u003e'"
      },
      "letme": {
        "capability": "https://letme.dev/forms.responses",
        "tool": "https://letme.dev/paperform"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Pro (Standard API)",
          "unit": "month",
          "usd": 49,
          "note": "billed annually, $59 month to month. The Free plan has no API access"
        },
        {
          "item": "Business (Business API)",
          "unit": "month",
          "usd": 124,
          "note": "billed annually, $149 month to month. Needed for form updates and webhook endpoints"
        }
      ],
      "provenance": {
        "legalEntity": "Paperform Pty Ltd",
        "domain": "paperform.co",
        "domainRegistered": "2016-07-27",
        "endpointOnVendorDomain": true,
        "terms": "https://paperform.co/terms/",
        "privacy": "https://paperform.co/privacy/",
        "statusPage": "https://paperform.statuspage.io",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The General Terms and Conditions of Use (last updated 24 September 2025) cover the website and all services, with supplemental terms for Agency plans, Papersign and Stepper. They name the company only as Paperform, under California law with arbitration.",
          "The privacy policy (last updated 10 July 2025) gives a postal address in Summer Hill, NSW, Australia and names Paperform Pty. Ltd. in its GDPR representative's address. It also says Paperform is domiciled in the United States.",
          "The API answers at api.paperform.co. The reference is hosted by ReadMe at paperform.readme.io.",
          "No changelog for the API or the product was found, so the field is left out. paperform.readme.io/changelog returns 404.",
          "paperform.co/.well-known/security.txt and paperform.co/security.txt both return 404.",
          "The data processing agreement page and the Trust Centre at trust.paperform.co are drawn by script as Paperform forms, and our reader got no text from either.",
          "RDAP at rdap.registry.co gives a registration date of 2016-07-27 for paperform.co."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/paperform.json",
      "live": {
        "slug": "paperform",
        "probe": {
          "target": "https://api.paperform.co/v1",
          "method": "get",
          "lastAt": "2026-10-08T21:53:29.907018684Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 282,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 345,
          "p95ms24h": 410,
          "samples24h": 28,
          "samples30d": 28,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 28,
              "ok": 28
            }
          ]
        },
        "vendorStatus": {
          "page": "https://paperform.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:58:09.351052942Z"
        },
        "updatedAt": "2026-10-08T21:58:09.351052942Z"
      }
    },
    "answer": "Tally scores 60.6 (C) on agent readiness against Paperform's 56 (C), and leads in 5 of 7 scored categories. Paperform leads on reliability and agent ergonomics.",
    "b": {
      "slug": "tally",
      "name": "Tally",
      "vendor": "Tally BV",
      "vendorUrl": "https://tally.so",
      "kind": "http-api",
      "category": "forms",
      "summary": "Tally is a form and survey builder from Tally BV in Ghent, Belgium. Agents create forms, read submissions and manage webhooks through a REST API at api.tally.so, or through a hosted MCP server that is in beta.",
      "url": "https://www.anchorterminal.com/tools/tally",
      "markdownUrl": "https://www.anchorterminal.com/tools/tally.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tally.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tally.json",
      "license": "Proprietary service under Tally's terms and conditions. The OpenAPI spec names MIT as its own licence",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.tally.so",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve. The REST API takes a Bearer API key that a signed-in user creates at tally.so/settings/api-keys. A key is tied to that user, carries all of the user's access, has no scopes and stops working when the user leaves the organisation. The MCP server takes the same key or OAuth 2 (authorisation code grant with PKCE S256, refresh tokens and dynamic client registration), where a person signs in to Tally and approves the client. The server metadata lists the scopes user, forms, responses, webhooks and mcp. No app review, partner approval or sales step was found.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with unlimited forms and submissions under a fair use policy, and the API and the MCP server are free on every plan, so an agent's owner can start without a contract. Pro and Business are shown at $24 and $74 a month, with a monthly and yearly toggle and two months off for yearly billing. We could not establish which billing period the displayed figures belong to. Workspace and folder endpoints need Pro. There is no sandbox or test mode in the reviewed documentation (checked 2026-10-08).",
      "priceSummary": "$24 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI spec or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.tally.so",
      "llmsTxt": "https://developers.tally.so/llms.txt",
      "openapi": "https://developers.tally.so/api-reference/openapi.json",
      "capabilities": [
        "forms.create",
        "forms.responses",
        "forms.webhooks",
        "forms.surveys",
        "forms.embed"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "free-tier",
        "closed-source",
        "eu-hosted",
        "status-page"
      ],
      "lastRelease": "2026-09-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.6,
        "grade": "C",
        "agentReady": false,
        "rank": 395,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 50,
          "maintenance": 66,
          "payments": 30,
          "reliability": 75,
          "schema": 82,
          "security": 47,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API is free on every plan, with a public OpenAPI 3.0 spec, llms.txt, date-based versions and typed block schemas for building forms. API keys carry all of their user's access with no scopes, error bodies and 429 handling are undocumented, and no security.txt, certification or bug bounty was found.",
        "bestFor": "An agent that builds a form from a description, publishes it and reads the answers for an owner on a small budget, since the whole API is free.",
        "strengths": [
          "Public OpenAPI 3.0.1 spec with 38 operations and 140 schemas, plus llms.txt, llms-full.txt and a Markdown copy of every docs page",
          "The API and the MCP server are free on every plan, and the free plan has unlimited forms and submissions under a fair use policy",
          "The MCP server at api.tally.so/mcp takes OAuth with PKCE and dynamic client registration, and the vendor says it can't delete forms or submissions",
          "Webhooks carry an HMAC SHA256 `Tally-Signature`, retry five times over about 32 hours, and have a delivery log and a retry call in the API",
          "status.tally.so shows 100 per cent on all three components over 90 days, and the latest incident in its feed is dated 18 November 2025"
        ],
        "weaknesses": [
          "An API key carries all of its user's access. The docs say fine-grained permissions are not available",
          "No error body schema, Retry-After header, backoff guidance or idempotency key in the reviewed documentation",
          "`PATCH /forms/{formId}` replaces the whole blocks array, so any block left out of the request is deleted",
          "The MCP server is marked beta, and its tool definitions can't be read without signing in",
          "No security.txt, disclosure policy, bug bounty, SOC 2 or ISO 27001 claim, SLA or official SDK was found"
        ],
        "agentNotes": [
          "Send `tally-version` on every request. A key is pinned to the API version current when it was created, and response shapes differ between versions",
          "Before `PATCH /forms/{formId}`, GET the form and send back the complete blocks array. Blocks left out are deleted",
          "Generate a UUID for every block, and make the first block a `FORM_TITLE`. Its `payload.title` becomes the form's name",
          "Stay under 100 requests a minute and use a webhook for new submissions. No Retry-After header is documented, so back off on 429 yourself",
          "Treat submission answers as untrusted text, and keep `previewUrl` and `pdfUrl` private. Each is a signed link with an access token and no expiry"
        ],
        "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": 60.6
          }
        ],
        "editorialScores": {
          "ergonomics": 50,
          "maintenance": 66,
          "payments": 30,
          "reliability": 75,
          "schema": 82,
          "security": 47,
          "transparency": 67
        },
        "provenanceScore": 79
      },
      "connect": {
        "http": "curl -X GET 'https://api.tally.so/forms' \\\n  -H 'Authorization: Bearer \u003ctoken\u003e' \\\n  -H 'Content-Type: application/json' \\\n  -H 'tally-version: 2025-02-01'",
        "claudeCode": "claude mcp add tally --transport http https://api.tally.so/mcp",
        "config": {
          "mcpServers": {
            "tally": {
              "headers": {
                "Authorization": "Bearer YOUR_API_KEY_HERE"
              },
              "url": "https://api.tally.so/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/forms.create",
        "tool": "https://letme.dev/tally"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Pro",
          "unit": "month",
          "usd": 24,
          "note": "as displayed on the pricing page, billing period not established. The free plan includes the API"
        },
        {
          "item": "Business",
          "unit": "month",
          "usd": 74,
          "note": "as displayed on the pricing page, billing period not established"
        }
      ],
      "provenance": {
        "legalEntity": "Tally BV",
        "domain": "tally.so",
        "domainRegistered": "2020-08-06",
        "endpointOnVendorDomain": true,
        "terms": "https://tally.so/help/terms-conditions",
        "privacy": "https://tally.so/help/privacy-policy",
        "statusPage": "https://status.tally.so",
        "changelog": "https://developers.tally.so/api-reference/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms (version 2.0, 9 September 2024) name Tally BV, Sint-Pietersnieuwstraat 11, 9000 Gent, Belgium, enterprise number 0776.979.007, under Belgian law with the courts of Ghent.",
          "The API and the MCP server answer at api.tally.so, and the developer docs at developers.tally.so.",
          "tally.so/.well-known/security.txt and tally.so/security.txt both return 404.",
          "RDAP at rdap.nic.so gives a registration date of 2020-08-06 for tally.so and NameCheap as registrar.",
          "A second changelog for the product as a whole is at tally.so/changelog."
        ],
        "score": 79
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tally.json",
      "live": {
        "slug": "tally",
        "probe": {
          "target": "https://api.tally.so",
          "method": "get",
          "lastAt": "2026-10-08T21:53:35.299961359Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 100,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 78,
          "p95ms24h": 201,
          "samples24h": 71,
          "samples30d": 71,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 71,
              "ok": 71
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tally.so",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T19:39:15.701831114Z"
        },
        "securityTxt": {
          "url": "https://tally.so/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:55.978667631Z"
        },
        "pages": [
          {
            "url": "https://developers.tally.so/api-reference/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:18:03.02632096Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cc08fa442aff"
          },
          {
            "url": "https://tally.so/help/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:05.667847097Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1d8b6671d903"
          },
          {
            "url": "https://tally.so/help/terms-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:07.91997507Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f67a529c212c"
          }
        ],
        "updatedAt": "2026-10-08T21:53:35.299961359Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Paperform Pty Ltd",
        "b": "Tally BV",
        "name": "Vendor"
      },
      {
        "a": "https://api.paperform.co/v1",
        "b": "https://api.tally.so",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Paperform's General Terms and Conditions of Use",
        "b": "Proprietary service under Tally's terms and conditions. The OpenAPI spec names MIT as its own licence",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-16",
        "b": "2026-09-11",
        "name": "Last release"
      },
      {
        "a": "2025-09-24",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2025-07-10",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Tally scores 60.6 (C) on agent readiness against Paperform's 56 (C), and leads in 5 of 7 scored categories. Paperform leads on reliability and agent ergonomics.",
        "question": "Which is better for AI agents, Paperform or Tally?"
      },
      {
        "answer": "Paperform needs an API key. Tally takes an API key or an OAuth sign-in.",
        "question": "Do Paperform and Tally need an API key?"
      },
      {
        "answer": "Yes. Paperform has a hosted endpoint at https://api.paperform.co/v1 and Tally at https://api.tally.so.",
        "question": "Can an agent call Paperform and Tally without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 83 against 75",
          "Agent ergonomics, 60 against 50"
        ],
        "also": null,
        "goodFor": "An agent that reads submissions from forms a person has already built, keeps field options, products and coupons in step with another system, or sends Papersign documents.",
        "slug": "paperform",
        "watchFor": "No endpoint creates or deletes a form. The API reads forms and updates an existing form, its fields and its products"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 82 against 69",
          "Security \u0026 auth, 47 against 40",
          "Payments \u0026 pricing, 30 against 25",
          "Maintenance \u0026 community, 66 against 41",
          "Transparency \u0026 trust, 73 against 54"
        ],
        "also": null,
        "goodFor": "An agent that builds a form from a description, publishes it and reads the answers for an owner on a small budget, since the whole API is free.",
        "slug": "tally",
        "watchFor": "An API key carries all of its user's access. The docs say fine-grained permissions are not available"
      }
    ],
    "job": {
      "capability": "forms.responses",
      "name": "Forms responses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/formstack-vs-tally.json",
        "title": "Formstack vs Tally",
        "url": "https://www.anchorterminal.com/compare/formstack-vs-tally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-forms-vs-tally.json",
        "title": "Google Forms API vs Tally",
        "url": "https://www.anchorterminal.com/compare/google-forms-vs-tally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jotform-vs-tally.json",
        "title": "Jotform vs Tally",
        "url": "https://www.anchorterminal.com/compare/jotform-vs-tally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/surveymonkey-vs-tally.json",
        "title": "SurveyMonkey vs Tally",
        "url": "https://www.anchorterminal.com/compare/surveymonkey-vs-tally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tally-vs-typeform.json",
        "title": "Tally vs Typeform",
        "url": "https://www.anchorterminal.com/compare/tally-vs-typeform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fillout-vs-paperform.json",
        "title": "Fillout vs Paperform",
        "url": "https://www.anchorterminal.com/compare/fillout-vs-paperform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fillout-vs-tally.json",
        "title": "Fillout vs Tally",
        "url": "https://www.anchorterminal.com/compare/fillout-vs-tally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/formstack-vs-paperform.json",
        "title": "Formstack vs Paperform",
        "url": "https://www.anchorterminal.com/compare/formstack-vs-paperform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-forms-vs-paperform.json",
        "title": "Google Forms API vs Paperform",
        "url": "https://www.anchorterminal.com/compare/google-forms-vs-paperform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jotform-vs-paperform.json",
        "title": "Jotform vs Paperform",
        "url": "https://www.anchorterminal.com/compare/jotform-vs-paperform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paperform-vs-surveymonkey.json",
        "title": "Paperform vs SurveyMonkey",
        "url": "https://www.anchorterminal.com/compare/paperform-vs-surveymonkey"
      },
      {
        "json": "https://www.anchorterminal.com/compare/paperform-vs-typeform.json",
        "title": "Paperform vs Typeform",
        "url": "https://www.anchorterminal.com/compare/paperform-vs-typeform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/formbricks-vs-paperform.json",
        "title": "Formbricks vs Paperform",
        "url": "https://www.anchorterminal.com/compare/formbricks-vs-paperform"
      },
      {
        "json": "https://www.anchorterminal.com/compare/formbricks-vs-tally.json",
        "title": "Formbricks vs Tally",
        "url": "https://www.anchorterminal.com/compare/formbricks-vs-tally"
      }
    ],
    "scores": [
      {
        "by": 8,
        "edge": "paperform",
        "key": "reliability",
        "name": "Reliability",
        "paperform": 83,
        "tally": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "tally",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "paperform": 69,
        "tally": 82,
        "weight": 13
      },
      {
        "by": 10,
        "edge": "paperform",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "paperform": 60,
        "tally": 50,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "tally",
        "key": "security",
        "name": "Security \u0026 auth",
        "paperform": 40,
        "tally": 47,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "tally",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "paperform": 25,
        "tally": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 25,
        "edge": "tally",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "paperform": 41,
        "tally": 66,
        "weight": 7
      },
      {
        "by": 19,
        "edge": "tally",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "paperform": 54,
        "tally": 73,
        "weight": 7
      }
    ],
    "summary": "Tally scores 60.6 (C) on agent readiness against Paperform's 56 (C), and leads in 5 of 7 scored categories. Paperform leads on reliability and agent ergonomics. Both do forms responses.",
    "verdicts": {
      "paperform": "The REST API is documented in OpenAPI 3.0.2 with llms.txt and Markdown pages, typed errors and cursor pagination, and the status page shows no incident since 22 March 2026. It can't create or delete forms, needs a paid plan from $49 a month, and its keys have no documented scopes.",
      "tally": "The REST API is free on every plan, with a public OpenAPI 3.0 spec, llms.txt, date-based versions and typed block schemas for building forms. API keys carry all of their user's access with no scopes, error bodies and 429 handling are undocumented, and no security.txt, certification or bug bounty was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/paperform-vs-tally",
    "json": "https://www.anchorterminal.com/compare/paperform-vs-tally.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/paperform-vs-tally.md",
    "slim": "https://www.anchorterminal.com/compare/paperform-vs-tally.min.md"
  },
  "markdown": "Tally scores 60.6 (C) on agent readiness against Paperform's 56 (C), and leads in 5 of 7 scored categories. Paperform leads on reliability and agent ergonomics. Both do forms responses.\n\n- Paperform: grade C, 56/100, rank #496 of 722. Markdown https://www.anchorterminal.com/tools/paperform.md · JSON https://www.anchorterminal.com/api/v1/tools/paperform.json\n- Tally: grade C, 60.6/100, rank #395 of 722. Markdown https://www.anchorterminal.com/tools/tally.md · JSON https://www.anchorterminal.com/api/v1/tools/tally.json\n\n## Which one, for what\n\n### Paperform (C)\n\nGood for: An agent that reads submissions from forms a person has already built, keeps field options, products and coupons in step with another system, or sends Papersign documents.\n\nAhead on:\n- Reliability, 83 against 75\n- Agent ergonomics, 60 against 50\n\nWatch for: No endpoint creates or deletes a form. The API reads forms and updates an existing form, its fields and its products\n\n### Tally (C)\n\nGood for: An agent that builds a form from a description, publishes it and reads the answers for an owner on a small budget, since the whole API is free.\n\nAhead on:\n- Schema \u0026 documentation, 82 against 69\n- Security \u0026 auth, 47 against 40\n- Payments \u0026 pricing, 30 against 25\n- Maintenance \u0026 community, 66 against 41\n- Transparency \u0026 trust, 73 against 54\n\nWatch for: An API key carries all of its user's access. The docs say fine-grained permissions are not available\n\n\n## Score by category\n\n| Category | Weight | Paperform | Tally | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 83 | 75 | Paperform +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 69 | 82 | Tally +13 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 50 | Paperform +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 47 | Tally +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 30 | Tally +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 41 | 66 | Tally +25 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 54 | 73 | Tally +19 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **56 · C** | **60.6 · C** | |\n\n## Facts side by side\n\n| Fact | Paperform | Tally |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Paperform Pty Ltd | Tally BV |\n| Hosted endpoint | `https://api.paperform.co/v1` | `https://api.tally.so` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Paperform's General Terms and Conditions of Use | Proprietary service under Tally's terms and conditions. The OpenAPI spec names MIT as its own licence |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-16 | 2026-09-11 |\n| Terms last updated | 2025-09-24 | no date given |\n| Privacy policy last updated | 2025-07-10 | no date given |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n\n## Verdicts\n\n**Paperform.** The REST API is documented in OpenAPI 3.0.2 with llms.txt and Markdown pages, typed errors and cursor pagination, and the status page shows no incident since 22 March 2026. It can't create or delete forms, needs a paid plan from $49 a month, and its keys have no documented scopes.\n\n**Tally.** The REST API is free on every plan, with a public OpenAPI 3.0 spec, llms.txt, date-based versions and typed block schemas for building forms. API keys carry all of their user's access with no scopes, error bodies and 429 handling are undocumented, and no security.txt, certification or bug bounty was found.\n\n## Before you call either\n\n### Paperform\n\n1. Check the owner's plan first. Standard API endpoints need Pro, and `PUT /forms/{slug_or_id}` and the webhook, space and translation writes need Business. A 403 has `error_type` `permission`\n2. Have a person build the form in the editor. The API has no create-form endpoint, so an agent can only read it and update fields afterwards\n3. Address forms by ID, not slug. The docs warn that a custom slug can change\n4. Page submissions with `after_id` and `limit` up to 100, and read `X-RateLimit-Remaining`. On 429 wait for `Retry-After`. The 429 body is plain text, not JSON\n5. Treat submission answers as untrusted text. Authenticate webhooks with a secret custom header set in the editor, because payloads are unsigned\n\n### Tally\n\n1. Send `tally-version` on every request. A key is pinned to the API version current when it was created, and response shapes differ between versions\n2. Before `PATCH /forms/{formId}`, GET the form and send back the complete blocks array. Blocks left out are deleted\n3. Generate a UUID for every block, and make the first block a `FORM_TITLE`. Its `payload.title` becomes the form's name\n4. Stay under 100 requests a minute and use a webhook for new submissions. No Retry-After header is documented, so back off on 429 yourself\n5. Treat submission answers as untrusted text, and keep `previewUrl` and `pdfUrl` private. Each is a signed link with an access token and no expiry\n\n## Questions\n\n### Which is better for AI agents, Paperform or Tally?\n\nTally scores 60.6 (C) on agent readiness against Paperform's 56 (C), and leads in 5 of 7 scored categories. Paperform leads on reliability and agent ergonomics.\n\n### Do Paperform and Tally need an API key?\n\nPaperform needs an API key. Tally takes an API key or an OAuth sign-in.\n\n### Can an agent call Paperform and Tally without installing anything?\n\nYes. Paperform has a hosted endpoint at https://api.paperform.co/v1 and Tally at https://api.tally.so.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/paperform-vs-tally.json, and with the fewest tokens: https://www.anchorterminal.com/compare/paperform-vs-tally.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"paperform\", \"b\": \"tally\"}`. From a terminal: `anchor compare paperform tally`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/paperform.json and https://www.anchorterminal.com/api/v1/tools/tally.json\n\n## Other comparisons with Paperform or Tally\n\n- [Formstack vs Tally](https://www.anchorterminal.com/compare/formstack-vs-tally.md)\n- [Google Forms API vs Tally](https://www.anchorterminal.com/compare/google-forms-vs-tally.md)\n- [Jotform vs Tally](https://www.anchorterminal.com/compare/jotform-vs-tally.md)\n- [SurveyMonkey vs Tally](https://www.anchorterminal.com/compare/surveymonkey-vs-tally.md)\n- [Tally vs Typeform](https://www.anchorterminal.com/compare/tally-vs-typeform.md)\n- [Fillout vs Paperform](https://www.anchorterminal.com/compare/fillout-vs-paperform.md)\n- [Fillout vs Tally](https://www.anchorterminal.com/compare/fillout-vs-tally.md)\n- [Formstack vs Paperform](https://www.anchorterminal.com/compare/formstack-vs-paperform.md)\n- [Google Forms API vs Paperform](https://www.anchorterminal.com/compare/google-forms-vs-paperform.md)\n- [Jotform vs Paperform](https://www.anchorterminal.com/compare/jotform-vs-paperform.md)\n- [Paperform vs SurveyMonkey](https://www.anchorterminal.com/compare/paperform-vs-surveymonkey.md)\n- [Paperform vs Typeform](https://www.anchorterminal.com/compare/paperform-vs-typeform.md)\n- [Formbricks vs Paperform](https://www.anchorterminal.com/compare/formbricks-vs-paperform.md)\n- [Formbricks vs Tally](https://www.anchorterminal.com/compare/formbricks-vs-tally.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": "Paperform vs Tally",
        "url": ""
      }
    ],
    "description": "Tally scores 60.6 (C) on agent readiness against Paperform's 56 (C), and leads in 5 of 7 scored categories. Paperform leads on reliability and agent ergonomics. Both do forms responses. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Paperform C 56",
      "Tally C 60.6",
      "scores"
    ],
    "h1": "Paperform vs Tally",
    "image": "https://www.anchorterminal.com/assets/og/compare-paperform-vs-tally.png",
    "path": "/compare/paperform-vs-tally",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Paperform vs Tally for AI agents, C 56 vs C 60.6 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/paperform-vs-tally"
  },
  "tokens": {
    "markdown": 2100,
    "slim": 680
  },
  "version": 1
}
