Documentation

Get started in 30 seconds.

1. Create a project

Sign up and create a project from your dashboard. You'll get a unique endpoint URL instantly — no configuration needed.

2. Point your form

Set your HTML form's action attribute to your Postix endpoint URL.

<form action="https://postix.app/f/YOUR_PROJECT_ID" method="POST">
  <input name="name" placeholder="Name" required />
  <input name="email" type="email" placeholder="Email" required />
  <textarea name="message" placeholder="Message"></textarea>
  <button type="submit">Send</button>
</form>

3. Or use JavaScript

You can also submit via fetch or any HTTP client. Send JSON with the appropriate content type header.

fetch("https://postix.app/f/YOUR_PROJECT_ID", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    name: "Jane Doe",
    email: "jane@example.com",
    message: "Hello from JavaScript!"
  })
})

Redirects

After a form submission, the user is redirected based on this priority:

  1. _redirect hidden field in the form (per-submission override)
  2. Success/Error redirect URL configured in project settings
  3. Back to the page the form was on, with #form-submitted or #form-error appended
  4. JSON response (for fetch / API callers with no Referer)

Add a hidden field to override the redirect per form:

<input type="hidden" name="_redirect" value="https://yoursite.com/thanks" />

Detecting submission status

When no redirect is configured, the user is sent back to the form page with a URL hash. Use JavaScript to show a success or error message:

if (window.location.hash === "#form-submitted") {
  alert("Thanks! Your message was sent.")
}
if (window.location.hash === "#form-error") {
  alert("Something went wrong. Please try again.")
}

Allowed origins

By default, any domain can submit to your endpoint. Restrict this in your project settings by adding specific allowed origins. The server checks the Origin and Referer headers on each request. Use *.example.com to allow all subdomains.

Submission metadata

Every submission automatically captures metadata from the request headers:

IP Address

From X-Forwarded-For or X-Real-IP headers

Location

City, region, country — via IP geolocation (ip-api.com)

Timezone

Inferred from IP geolocation

ISP

Internet service provider name

User Agent

Browser and OS information

Referer

The page the form was submitted from

Language

From the Accept-Language header

Supported content types

application/x-www-form-urlencoded

Standard HTML form submissions

multipart/form-data

File upload forms

application/json

JavaScript / API clients

Webhooks

Configure webhooks in your project settings to receive a POST request every time a form is submitted. Each webhook receives a JSON payload with the submission data and project info.

{
  "event": "submission.created",
  "project": { "id": "psx_abc123", "name": "My Project" },
  "submission": {
    "id": 1,
    "data": { "name": "John", "email": "john@example.com" },
    "meta": { "ip": "1.2.3.4", "country": "US" },
    "createdAt": "2026-03-19T12:00:00.000Z"
  }
}

If you set a webhook secret, each request includes an X-Postix-Signature header with an HMAC-SHA256 signature for verification.

Ready to go?

Create your first project and start collecting submissions.

Get Started Free →