Head to head · Forms create · October 2026 research run
Google Forms API vs Tally
Google Forms API scores 70.8 (BB) on agent readiness against Tally's 60.6 (C), and leads in 5 of 7 scored categories. Tally leads on maintenance & community. Both do forms create.
Which one, for what
Good for Agents that build forms and quizzes in a Google account and read the answers back, where people already use Google Forms.
Ahead on
- Reliability, 91 against 75
- Agent ergonomics, 72 against 50
- Security & auth, 66 against 47
- Payments & pricing, 35 against 30
- Transparency & trust, 80 against 73
Also in its favour
- Agent-ready, a grade of BB or better
Watch for
Push notifications go only to a Cloud Pub/Sub topic in the caller's project, which needs Cloud billing, and they carry no form or response data
Tally C
Good 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.
Ahead on
- Maintenance & community, 66 against 61
Watch for
An API key carries all of its user's access. The docs say fine-grained permissions are not available
Score by category
| Category | Weight this run | Google Forms API | Tally | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 91 | 75 | Google Forms API +16 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 78 | 82 | Tally +4 |
| Agent ergonomics | 13%16.2 | 72 | 50 | Google Forms API +22 |
| Security & auth | 14%17.5 | 66 | 47 | Google Forms API +19 |
| Payments & pricing | 10%12.5 | 35 | 30 | Google Forms API +5 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 61 | 66 | Tally +5 |
| Transparency & trust | 7%8.8 | 80 | 73 | Google Forms API +7 |
| Negative events | ≤15 | 0 | 0 | |
| Total | 70.8 · BB | 60.6 · C |
Facts side by side
| Fact | Google Forms API | Tally |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Tally BV | |
| Hosted endpoint | https://forms.googleapis.com/v1 | https://api.tally.so |
| Transports | HTTP | HTTP, Streamable HTTP |
| Auth | OAuth | OAuth or key |
| Pricing | Free | Freemium |
| x402 | no | no |
| Licence | Proprietary service under the Google APIs Terms of Service. The client libraries are Apache-2.0 | Proprietary service under Tally's terms and conditions. The OpenAPI spec names MIT as its own licence |
| Tools exposed | 0 | none |
| Read-only variant documented | yes | no |
| llms.txt | no | yes |
| Last release | 2026-09-24 | 2026-09-11 |
| Terms last updated | 2021-11-09 | no date given |
| Privacy policy last updated | 2026-10-01 | no date given |
| Customer content may train models | yes | not found in the text |
| Terms restrict automated access | yes | yes |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | not found in the text | not found in the text |
| Popularity | 32k npm/wk | none |
Verdicts
Google Forms API
Six OAuth scopes separate form structure from responses, and batchUpdate applies a batch atomically with a revision check. Notifications go only to a Cloud Pub/Sub topic and carry no response data, the API can't list forms or create file upload questions, and the release notes were last updated on 8 April 2025.
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.
Before you call either
Google Forms API
- Call forms.create with a title only, then add items with forms.batchUpdate. Any other field in the create body is disallowed
- Publish with forms.setPublishSettings before sharing. Google's notice says forms created through the API after 30 June 2026 start unpublished
- Pass pageSize on forms.responses.list. With none set a page can hold up to 5,000 responses. Use filter=timestamp > N to fetch only new ones
- After a Pub/Sub notification, call forms.responses.list yourself. The message holds only formId, watchId and eventType. Renew each watch within seven days
- Send writeControl.requiredRevisionId on forms.batchUpdate, and read the form before retrying a timed-out forms.create, which has no idempotency key
Tally
- Send
tally-versionon 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. Itspayload.titlebecomes 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
previewUrlandpdfUrlprivate. Each is a signed link with an access token and no expiry
Questions
Which is better for AI agents, Google Forms API or Tally?
Google Forms API scores 70.8 (BB) on agent readiness against Tally's 60.6 (C), and leads in 5 of 7 scored categories. Tally leads on maintenance & community.
Do Google Forms API and Tally need an API key?
Google Forms API uses an OAuth sign-in. Tally takes an API key or an OAuth sign-in.
Can an agent call Google Forms API and Tally without installing anything?
Yes. Google Forms API has a hosted endpoint at https://forms.googleapis.com/v1 and Tally at https://api.tally.so.
Other comparisons with Google Forms API or Tally
- Formstack vs Google Forms API
- Formstack vs Tally
- Google Forms API vs Jotform
- Google Forms API vs SurveyMonkey
- Google Forms API vs Typeform
- Jotform vs Tally
- SurveyMonkey vs Tally
- Tally vs Typeform
- Fillout vs Google Forms API
- Fillout vs Tally
- Google Forms API vs Paperform
- Paperform vs Tally
- Formbricks vs Google Forms API
- Formbricks vs Tally
Machine-readable
- This page as Markdown
/compare/google-forms-vs-tally.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/google-forms.json·/api/v1/tools/tally.json - From a terminal
anchor compare google-forms tally(the CLI) - Over MCP
compare_tools {"a": "google-forms", "b": "tally"}at/mcp, no key