Getting Started
Get a working form endpoint in under 60 seconds.
For AI Agents
If you are an AI agent setting up formdata.dev for a user, follow these numbered steps exactly. Each step includes the expected output so you can verify success.
Prerequisites
Step 1 — Create Your Account
You will be prompted for three values:
| Prompt |
Example |
Description |
| Organization name |
acme |
Your team or company name |
| Owner email |
ops@acme.com |
Contact email for the account |
| Subdomain slug |
acme |
Creates acme.formdata.dev |
Expected output:
formdata.dev — Create Account
────────────────────────────
Organization name: acme
Owner email: ops@acme.com
Subdomain slug: acme
Creating account...
Account Created
───────────────
Organization: acme
Subdomain: acme.formdata.dev
Secret key: sk_a8f2c9e1b4d7...
Credentials saved to ~/.config/formdata/credentials
Warning: Your secret key is shown only once.
Your secret key (sk_) is stored at ~/.config/formdata/credentials. This is the only time the raw key is displayed — the server stores only a SHA-256 hash.
Step 2 — Create a Form
The CLI will prompt you to create your first form:
Create your first form now? (y/n): y
Create Form
───────────
Form name: Contact
Form slug: contact
Allowed origins (comma-separated, blank for any):
Enable captcha? (y/n): n
Done: Form created
ID: frm_928...
Public key: pk_live_a8f2c...
Endpoint: POST https://api.formdata.dev/v1/f/pk_live_a8f2c...
Step 3 — Add a Destination
Add a destination to this form? (y/n): y
Select destination type:
1. webhook
2. smtp
3. google_sheets_webhook
Select (1-3): 1
Webhook URL: https://hooks.slack.com/services/T.../B.../xxx
HTTP method [POST]:
Custom headers (key: value per line, blank to finish):
Done: Destination added
ID: dest_f47...
Type: webhook
Target: https://hooks.slack.com/services/T.../B.../xxx
Step 4 — Test It
Send a test submission using curl:
curl -X POST https://api.formdata.dev/v1/f/pk_live_a8f2c... \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Doe",
"email": "jane@example.com",
"message": "Hello from the form."
}'
Expected response (HTTP 202):
{
"ok": true,
"submissionId": "550e8400-e29b-41d4-a716-446655440000",
"queuedDestinations": 1
}
Your Slack channel should receive the submission within seconds.
Step 5 — Connect MCP (Optional)
Add formdata.dev to Claude Desktop or Cursor for AI-managed form operations:
{
"mcpServers": {
"formdata": {
"url": "https://api.formdata.dev/mcp",
"headers": {
"Authorization": "Bearer sk_your_secret_key_here"
}
}
}
}
Now you can tell Claude: "Add an email destination to my contact form" and it will call the MCP tools directly.
What's Next