# Formspark > A form backend. You point an HTML form at a URL and Formspark stores the > submissions, emails you about them, and forwards them to your other tools. > You bring your own HTML. Two surfaces: - **submit-form.com** receives submissions from browsers. No credentials. - **api.formspark.io** creates and manages forms. Needs a token. ## Receiving submissions Point a form at its id: ```html
``` Give every field a `name`, or its value is not submitted. Submit with `Accept: application/json` to receive JSON instead of a redirect. Control fields go in the body, prefixed with an underscore. They are set per submission, not on the form: - `_redirect` sends the visitor to a URL afterwards - `_error` sends them somewhere else if something fails - `_append` set to `false` stops the submission's fields being appended to the redirect URL - `_email.subject`, `_email.from`, `_email.replyto` override the notification - `_language` picks the language of the feedback page and autoresponder - `_honeypot`, `_gotcha` are spam traps, always active ## Managing forms Base URL `https://api.formspark.io/public/v1`. The API is available on upgraded workspaces; `GET /me` and `GET /workspaces` stay open on any plan, and a free workspace answers `403` `upgrade_required`. Authenticate with a token from https://dashboard.formspark.io/account/api-tokens: ```sh curl https://api.formspark.io/public/v1/me \ -H "Authorization: Bearer $FORMSPARK_TOKEN" ``` Create a form and read what arrives: ```sh curl -X POST https://api.formspark.io/public/v1/forms \ -H "Authorization: Bearer $FORMSPARK_TOKEN" \ -H "Content-Type: application/json" \ -d '{"workspaceId":"WORKSPACE_ID","name":"Contact","notificationEmails":["you@example.com"]}' curl "https://api.formspark.io/public/v1/forms/FORM_ID/submissions?limit=50" \ -H "Authorization: Bearer $FORMSPARK_TOKEN" ``` Endpoints: `GET /me`, `GET|POST /workspaces`, `PATCH /workspaces/{id}`, `GET|POST /forms`, `GET|PATCH|DELETE /forms/{id}`, `GET|PUT|DELETE /forms/{id}/templates/{kind}`, `POST /forms/{id}/templates/{kind}/preview`, `GET /forms/{id}/submissions`, `GET /workspaces/{id}/submissions`, `DELETE /submissions/{id}`. Notes for writing against it: - `PATCH` applies the fields you send and keeps the rest. Send `null` to clear a field, except the booleans, which take `true` or `false`. - Submissions are cursor paginated. Branch on `hasMore`, pass `nextCursor` as `startingAfter`, treat cursors as opaque. - Errors are `application/problem+json`. Branch on `code`. - Check whether a `POST` landed before retrying it. - Scopes: `workspaces:read|write`, `forms:read|write`, `submissions:read|write`. - Form settings come back on the form. Captcha secret keys, the Slack token and the Zapier key live in the dashboard. OpenAPI 3.1: https://api.formspark.io/public/v1/openapi.json ## Plans and limits One free workspace per account with 250 submissions, 10 forms, and 5 team members. Upgrading a workspace is a $25 one-time payment for 50,000 submissions (no expiry, no subscription), 100 forms, 50 team members, the autoresponder, Google Sheets, Notion, feedback-page branding removal, and the REST API. Everything is per workspace. Details: https://documentation.formspark.io/troubleshooting/limits-and-plans.md ## Agent skill An Agent Skill that teaches a coding agent to integrate Formspark: https://documentation.formspark.io/skills/formspark/SKILL.md ## Documentation The links below are Markdown copies of the pages. For the HTML page, replace `.md` with `.html`, or drop `index.md`. Every page in one file: https://documentation.formspark.io/llms-full.txt - [Installation](https://documentation.formspark.io/setup/index.md): getting a form id - [Spam protection](https://documentation.formspark.io/setup/spam-protection.md) - [Redirection](https://documentation.formspark.io/customization/redirection.md) - [Feedback page](https://documentation.formspark.io/customization/feedback-page.md) - [Language](https://documentation.formspark.io/customization/language.md): `_language` for the feedback page and autoresponder - [Webhooks](https://documentation.formspark.io/integration/webhooks.md) - [API](https://documentation.formspark.io/api/index.md) - [Framework examples](https://documentation.formspark.io/examples/react.md)