Form infrastructure for headless webshops

Your form. Your design. Every response in your inbox.

Form infrastructure for headless webshops. You build the form in the dashboard, your developer connects it with one API key, and every response lands in your inbox. You reply from your own mail client.

Free plan with one form. Paid plans start with a 14-day trial.

One request per response
POST /api/v1/forms/{formId}/entries
Authorization: Bearer sk_live_…
Content-Type: application/json

{ "values": { "first_name": "Anna", "email": "anna@example.com", "message": "…" } }
201 Created
{ "id": "5cb7d22d-…", "createdAt": "2026-09-23T14:24:56Z" }

Three steps

  1. 1

    Build the form

    Add fields in the dashboard: text, email, phone, number, dropdown, checkbox. Mark the required ones.

  2. 2

    Connect the shop

    Your developer reads the fields and posts responses with one API key. The form uses the components and the theme of your shop.

  3. 3

    Get every response

    sendplane.app stores each response and sends it to your inbox. Reply goes to the customer.

Everything a shop form needs

Form builder
Seven field types, required flags, dropdown options and placeholders. Changes are live at once.
Native integration
A JSON API with two endpoints. Your developer renders the fields with the components of the shop.
Email notifications
Each response arrives as a mail with all fields. The Reply-To is the address of the customer.
Response inbox
All responses in the dashboard, with detail view, bulk delete and CSV export.
Validation and limits
sendplane.app validates each field, blocks floods per key and per visitor and escapes all content.
Data in the EU
Responses are stored in Frankfurt. Mail leaves from an EU region. You delete responses at any time.

Built for your developer

  • GET /api/v1/forms/{id} returns the fields as JSON.
  • POST /api/v1/forms/{id}/entries stores a response.
  • Validation errors come back per field, ready for the form.
  • The key is server-side only. The browser never sees it.
  • Fits a GraphQL Mesh: one resolver exposes the form and the submit mutation to the shop's own GraphQL schema.
GET /api/v1/forms/{formId}
{
  "id": "1793cfac-…",
  "name": "Contact",
  "fields": [
    { "id": "first_name", "type": "text",  "label": "First name", "required": true },
    { "id": "email",      "type": "email", "label": "Email address", "required": true },
    { "id": "message",    "type": "textarea", "label": "Message", "required": false }
  ]
}

Pricing

Prices per month, excluding VAT. Cancel at any time.

Free
The free forever plan to experience sendplane.app and create beautiful forms.
0 EUR/month
  • 1 form
  • 10 MB file storage
  • 100 responses/mo
  • sendplane.app branding
Start for free
BasicMost popular
The go-to plan for starters and small businesses.
19 EUR/month
  • Everything in free
  • 5 forms
  • 5 GB file storage
  • Unlimited responses/mo
  • Remove sendplane.app branding
Start with Basic
Pro
The ideal plan for most businesses and organizations.
27 EUR/month
  • Everything in basic
  • 15 forms
  • 20 GB file storage
Start with Pro

Questions

Start with one form for free

Log in with your email address. Build the form, generate the API key and send it to your developer.

Start for free