Skip to content
forecraft
Sign in Get an API key
Menu
Get an API key Sign in
Prototype · REST API + MCP server

Forms your agent can build.

forecraft is a form platform whose first user is an agent. It creates the form, previews it, publishes it and reads the answers, through one API. People fill it in.

Free while it is a prototype. Or run it locally: npm run seed prints a key.

curl -s "$FORECRAFT_URL/api/v1/forms" \
  -H "Authorization: Bearer $FORECRAFT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "beta-waitlist",
    "definition": {
      "schema": {
        "title": "Beta waitlist",
        "type": "object",
        "properties": {
          "email": { "type": "string", "format": "email" },
          "plan": { "type": "string", "enum": ["Solo", "Team"] }
        },
        "required": ["email", "plan"]
      },
      "appearance": { "theme": "aurora" }
    }
  }'
One request creates a form. The same definition is what the designer edits and what people see.

Agents at these (fictional) teams ship forms with forecraft

  • Halden Studio
  • Quayside
  • Parcelbot
  • Lumen Labs
  • Atlas Freight
  • Orbitkit
  • Tessellate

One definition. Three faces. Any client.

A form is one JSON document. Your agent sends it over the API, a person edits it in the designer, and the public page renders it. Nothing is translated, so nothing drifts.

  • API and MCP first

    A REST API with problem details that name the field, and an MCP server with eight tools. The dashboard is just one more client of the same routes.

  • The server re-checks the browser's verdict

    The rules the page enforces are the rules the server runs: same definition, same evaluator. A 422 names the field and the rule.

  • 31 themes

    A theme, an accent, a layout and a cover. Every form looks designed.

  • Audit-clean

    Preview returns the HTML and its accessibility audit, so the agent checks its own work.

  • Drafts and versions

    Edit freely; publish snapshots a version. The public URL always serves the latest one, and every answer remembers which version it saw.

  • Submissions out, any way

    List, search and filter by version or date. Export CSV or JSON in one call.

From prompt to published in four calls

Each step answers in JSON an agent can act on. No browser, no screenshots, no guessing.

  • Create

    POST /forms with a JSON Schema, a UI schema and an appearance.

  • Preview

    POST /forms/:id/preview returns the HTML and its audit.

  • Publish

    POST /forms/:id/publish returns the public URL.

  • Read

    GET /forms/:id/submissions or export them as CSV.

New · Documents

And the paper goes out

The agent that built the form can now issue the invoice, the confirmation, the board report. One JSON definition becomes an A4 or US Letter PDF that looks like it came from a good accountant: exact money, gapless numbers, a SEPA payment code, page numbers in the reader's language.

  • POST /reports from a starter, with your company and one accent.
  • POST /reports/:id/preview returns the findings and the pages themselves.
  • POST /reports/:id/documents returns the number, the PDF and a link to share.
Page 1 of an invoice issued by forecraft: letterhead, line items, VAT per rate, the amount due and a SEPA payment code
A real page: the seed invoice, printed by the renderer.

Reviewed by its first users

Some of them are agents. All of them are fictional.

  • I created the onboarding survey, previewed it, read zero errors in the audit and published it. Three calls. My operator found out from the first submission.

    Support agent Runs on Claude, Quayside
  • We stopped writing forms. We write one sentence to our agent and review the preview link it sends back.

    Ines Okafor Head of operations, Halden Studio
  • The 422 told me the field and the rule. I fixed the payload without asking anyone.

    Intake agent MCP client, Parcelbot
  • Our agent builds the form, our designer tweaks the spacing in the drag-and-drop editor, and neither overwrites the other. It is the same JSON.

    Tomás Reyes Product lead, Lumen Labs
  • A nightly job exports every submission as CSV to our warehouse. One GET, no scraping.

    Data agent Scheduled task, Atlas Freight

Questions, answered

The short version. The docs have the long one.

Still unsure? Start with the getting-started guide

What does my agent need to start?
An API key and the base URL. Sign up, open API keys in the dashboard and create one; it is shown once. Locally, npm run seed prints a demo key.
Which agents can use it?
Anything that speaks HTTP, and any MCP host: Claude Code, Claude Desktop, or your own client over stdio. The MCP server wraps the same REST API.
Does the server trust what the browser checked?
No. Every submission is validated again on the server with the same rules definition the page enforced. A broken rule is a 422 that names the field and the rule.
Can a person do everything an agent can?
Yes. The dashboard and the drag-and-drop designer are clients of the same API. The designer's JSON tab shows the exact definition the API returns.
How do forms look?
Like you chose a designer: 31 themes, an accent, card, split or page layouts, an optional cover, and a thank-you screen or redirect. Every public form is audited for accessibility.
What does it cost?
Nothing. forecraft is a prototype with one free tier and no billing. See pricing for what might come later.

Prototype

Hand your agent a key.

It can have its first form live before you finish reading the docs.

Get an API key Read /for-agents

No card. No billing. 240 requests a minute per key.