Docs

Everything you need to wire JustForms into your site, app, or service. Skim time: 5 minutes.

Quickstart

Three steps. Total time: under 5 minutes.

  1. Sign up → verify email → land in dashboard with one form pre-created
  2. Copy the embed snippet from the form's detail panel
  3. Paste anywhere on your HTML site. Test by submitting.

Embed snippet

<form data-justforms="YOUR_FORM_ID" data-redirect="/thanks">
  <input name="name" required>
  <input name="email" type="email" required>
  <textarea name="message" required></textarea>
  <button>Send</button>
</form>
<script src="https://justforms.rightnode.workers.dev/embed.js" defer></script>

Optional data-* attributes

Conversion tracking

On every successful submit the embed auto-detects analytics platforms on your page and fires the right event. No setup needed if your pixels are already installed.

Configure event name + conversion value per form in the dashboard.

Iframe embed (zero setup)

If you can't add JavaScript, use the iframe drop-in. Fully styled, auto-resizing.

<iframe src="https://justforms.rightnode.workers.dev/iframe/YOUR_FORM_ID"
        width="100%" height="600" style="border:0"></iframe>

POST /submit (web3forms-compatible)

Submit without a pre-created form. Recipient is locked to your access key's verified list.

<form action="https://justforms.rightnode.workers.dev/submit" method="POST">
  <input type="hidden" name="access_key" value="jf_live_...">
  <input type="hidden" name="subject" value="New lead">
  <input name="name" required>
  <input name="email" type="email" required>
  <button>Send</button>
</form>

Access keys

Mint keys in the dashboard. Each key has:

Manage forms via REST

curl -X POST https://justforms.rightnode.workers.dev/api/v1/forms \
  -H "Authorization: Bearer jf_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Contact","recipient_email":"you@yourdomain.com"}'

Returns { id, embed: { js, iframe, submit_url } } — ready-to-paste embed code.

Webhooks

Set webhook_url per form. JustForms POSTs JSON on every submission. With WEBHOOK_SIGNING_KEY set, requests include X-JustForms-Signature header (HMAC-SHA256 hex).

File uploads

Add enctype="multipart/form-data" and any type="file" input. Files go to a private R2 bucket. Max size: Starter 25 MB, Pro 100 MB, Business 500 MB.

Cloudflare Turnstile

Free, privacy-friendly CAPTCHA. Add data-turnstile-key="YOUR_SITE_KEY" to your form — the embed auto-renders the widget and loads the script.

More on GitHub →