# SubmissionBuddy > SubmissionBuddy is a form backend for static sites and apps that don't want to run their own server. Point any HTML form or `fetch()` call at `POST https://api.submissionbuddy.io/f/{form_slug}` and the submission is stored, queued, processed, and emailed to you — no API key, no SDK, no schema to register first. This file follows the [llms.txt](https://llmstxt.org/) convention, for AI assistants and coding agents that need machine-readable context about SubmissionBuddy fast. ## What it is - A hosted ingestion endpoint for HTML forms: `POST https://api.submissionbuddy.io/f/{form_slug}`. - Not a form builder, not a CMS. It accepts whatever fields your form sends — there's no field schema to configure. - Every submission is written to durable storage before the response is returned, then processed asynchronously and shown in a web dashboard. ## Minimal integration Plain HTML — no JavaScript required: ```html
``` JSON via `fetch()`: ```js const res = await fetch('https://api.submissionbuddy.io/f/your-form', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Ada', email: 'ada@example.com', message: 'Hi' }), }) const data = await res.json() // { ok: true, submission_id: "..." } ``` Both examples hit the same endpoint. Pick whichever fits the site. ## Key facts for agents - **Accepted content types**: `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data` (text fields, plus file attachments on Pro and Business plans — JSON and url-encoded requests can't carry files). Anything else returns `400`. - **File uploads (Pro and Business only)**: add a plain `` to a multipart form, no JavaScript or SDK needed. Up to 5 files per submission, 5 MB per file, ~5 MB total. Allowed: images (JPEG, PNG, GIF, WebP), PDF, plain text, CSV, and common office documents (Word, Excel, PowerPoint, OpenDocument) — verified server-side by content, not extension. Executables and archives are rejected. Files are stored encrypted at rest and downloadable from the dashboard via secure, time-limited links; notification emails list filenames and a dashboard link rather than attaching the files. - **Success**: `202 Accepted` with body `{"ok": true, "submission_id": ""}` by default. If the request includes a `_redirect` field, the response is `303 See Other` with a `Location` header instead. - **Control fields** (reserved, stripped before storage): `_redirect` — send the browser to a URL after success; `_honeypot` — a hidden spam-trap field name configured per form (bots that fill it get a fake success, nothing is stored); `_captcha_token` / `altcha` — CAPTCHA proof-of-work token, if enabled on the form. - **No SDK needed.** No API key in the request. Any HTML `
` or JSON `fetch()` works as-is. - **Limits**: 1 MB request body, 100 fields per submission, 10,000 characters per field value. - **Rate limits**: 10 requests/minute per form per IP (overridable), 60 requests/minute per IP globally. Over the limit returns `429`. - **Free plan**: $0, 100 submissions/month, 2 forms, honeypot + rate limiting, dashboard with Excel export. No credit card required. Sign up at https://app.submissionbuddy.io/signup. - **Errors** are always `{"ok": false, "error": ""}` with an appropriate 4xx status (400/404/422/429 — see /docs/ for the full table). ## Learn more - [Docs](https://submissionbuddy.io/docs/) — full endpoint reference: request/response formats, control fields, rate limits, spam protection, plans. - [Guides](https://submissionbuddy.io/guides/) — comparisons and how-tos for putting reliable forms on static sites. - [Pricing](https://submissionbuddy.io/pricing/) — plan details and quotas. - [Sign up](https://app.submissionbuddy.io/signup) — create a form and get a `form_slug` in minutes.