JSON in. Beautiful forms out.
One API call.
Send a JSON form definition and get back a fully styled, accessible HTML form with client-side validation — ready to embed anywhere.
# Render a contact form with client-side validation curl -X POST https://formforge-api.vercel.app/api/json-to-form \ -H "Content-Type: application/json" \ -d '{ "title": "Contact Us", "theme": "modern", "submitUrl": "https://example.com/submit", "fields": [ { "name": "name", "type": "text", "label": "Full Name", "required": true }, { "name": "email", "type": "email", "label": "Email", "required": true }, { "name": "message", "type": "textarea", "label": "Message" } ] }' # Returns: { "html": "<!DOCTYPE html>...", "meta": { "theme": "modern", ... } }
Ten field types, no fuss
Everything you need to build any form or survey.
Single-line free text
Email with format validation
Numeric input with min/max
Multi-line free text
Dropdown from options list
Boolean toggle or multi-select
Single choice from options
Date picker
Phone number with validation
URL with format validation
Three themes. All beautiful.
Choose the theme that fits your product — or embed the HTML and override any CSS variable.
How it works
Define your fields
Describe your form fields in JSON — name, type, label, validation rules, and options.
Call the API
POST your schema to /api/json-to-form with your API key.
Embed the HTML
Use the returned HTML directly in an <iframe> or inject it into your page. No extra CSS needed.
Try it live
Edit the JSON on the left, click Render, and see your form appear instantly.
Try it now
Paste a JSON form definition and hit Generate — no signup required.
Simple, honest pricing
Free
- 20 forms per day
- 50 KB input limit
- All 10 field types
- All 3 themes
- No credit card needed
Builder
- 300 forms per day
- 512 KB input limit
- All field types & themes
- Rate-limit headers
- Email support
Enterprise
- Unlimited forms
- 5 MB input limit
- All field types & themes
- Priority support
- SLA guarantee
Why FormForge?
Zero dependencies
Every form is a single self-contained HTML file with embedded CSS and vanilla JS. No React, no jQuery, no CDN links. It just works.
Accessible by default
Every field gets proper aria-* attributes, role labels, and live error regions. Screen-reader friendly out of the box.
Validation included
Client-side validation for required fields, email format, URL format, phone numbers, number ranges, and text length — no extra JS needed.
Embed anywhere
Drop into an <iframe>, inject with innerHTML, or serve directly. The HTML is fully self-contained.
Async submit ready
Pass a submitUrl and the form handles the fetch call, loading state, success, and error banners automatically.
REST API, no SDK
One POST request with a JSON body. Works from any language, framework, or plain curl. No SDK installation needed.
Get your free API key
20 forms per day, no credit card required.
Your API key is ready!
Save this key — it won't be shown again. Pass it as Authorization: Bearer YOUR_KEY