Forms2sheet
Connect a sheet, generate a POST URL, and watch submissions appear as rows.
Forms2sheet is a lightweight submission backend that writes straight to your spreadsheet.
01
Pick any spreadsheet with Google Picker. No Zapier. No CSV exports.
02
Every form gets a stable POST URL you can drop into any site or backend.
03
JSON or multipart. Field names become columns. File inputs upload to Drive.
04
Rows append instantly. Headers are created when the sheet is empty.
From spam controls to webhooks, built in so you can ship forms without standing up a backend.
Each form gets a permanent POST URL. Point HTML forms, fetch calls, or server-side code at it. No API keys to rotate or leak.
Connect any spreadsheet with Google Picker. New fields become columns; empty sheets get headers on the first submission.
Accept application/json or multipart/form-data. Text names map 1:1 to sheet columns; file fields upload to Google Drive with links in the sheet.
File inputs upload to a Drive folder per form. Sheet cells get clickable links; multiple files on one field land as newline-separated links.
Lock submissions to trusted Origin or Referer hosts. Leave empty for quick testing; tighten before you go live.
Turn on reCAPTCHA or Cloudflare Turnstile when spam shows up. Tokens via form fields or the X-Captcha-Token header.
Get submission.created, submission.failed, and form.updated with delivery history, retries, and a hosted portal.
Send HTML posts to your own URL, or show a custom success message on /thanks. JSON clients still get a clean success payload.
Wire up SMTP per form and get an email when someone submits, so you don’t have to watch the sheet.
Send a custom HTML reply to the submitter with {{field}} placeholders for any submitted value, plus form and submission metadata.
See volume over time in the dashboard so you know which forms are active, without opening the spreadsheet.
Abuse is rate-limited automatically. Unlimited forms with fair-use unlimited submissions. See Fair Usage for the details.
Drop in a plain HTML form. Field names become sheet columns.
<form action="https://forms2sheet.com/api/forms/frm_abc123/submit" method="POST" > <input name="name" placeholder="Name" required /> <input name="email" type="email" placeholder="Email" required /> <button type="submit">Send</button> </form>
One plan. Everything included - current and future features. No feature gating. 14 days free (no card), then $49/year.
Annual
$49/year
14-day free trial on signup · no card required
No. Your form ID is the endpoint. Lock it down with allowed domains and optional CAPTCHA.
$49/year after a 14-day free trial (no card required). After the trial you need a subscription or lifetime code to keep using the product.
Unlimited forms and fair-use unlimited submissions on every plan. Abuse is rate-limited. See Fair Usage.
Redeem a lifetime code in Settings after signing in. Lifetime access has the same features as the annual plan.
We write through your Google account. Sheets API quotas and row limits still apply. See Google Limits.
Yes. Svix delivers submission.created, submission.failed, and form.updated with delivery history and retries.