Menu

Plain HTML

A working HTML form that posts to gopigeon. Zero JavaScript, zero dependencies — the simplest possible integration.

One-liner

<!-- Create the endpoint once (agent-time, not request-time):
     curl -X POST https://api.gopigeon.dev/new -d '[email protected]'
     → returns { "endpoint_url": "https://api.gopigeon.dev/f/f_abc123def456xyz0", ... } -->
<form action="https://api.gopigeon.dev/f/f_abc123def456xyz0" method="POST">
  <input type="text" name="name" placeholder="Name" required>
  <input type="email" name="email" placeholder="Email" required>
  <textarea name="message" placeholder="Message" required></textarea>
  <!-- Honeypot: DO NOT include a field named _gotcha in real forms -->
  <button type="submit">Send</button>
</form>

How it works

Point the action of a native <form> at your endpoint URL and pick method="POST". The browser form-encodes every named input and sends it as application/x-www-form-urlencoded. gopigeon accepts it, relays to the destination(s), and returns a JSON body or a 303 redirect depending on whether a redirect_url is configured.

Create the endpoint once (agent-time, not request-time) via the curl shown in the comment block above. That curl response is where the endpoint_url you paste into action comes from — do not try to synthesize or rewrite the form ID.

The email you passed as recipient above gets a one-click claim link on the first real submission — that is how you become the authenticated owner. See the claim flow for the full sequence.

Configure a thank-you redirect

Without a redirect_url, the submitter lands on raw JSON after submission. To send them to a thank-you page instead, claim the endpoint (above), then set redirect_url on the endpoint’s detail page in the dashboard. Once set, every successful submission responds with HTTP 303 to that URL — no change to your <form> markup needed.

Suppress spam bots with a honeypot

Drop this hidden field anywhere inside your <form>. Real users can’t see or focus it; most spam bots fill every input they find. Gopigeon silently drops any submission where _gotcha is non-empty:

<input type="text" name="_gotcha" tabindex="-1" autocomplete="off"
       style="position:absolute;left:-9999px" aria-hidden="true">

Not what you're looking for? See the full surface at /llms.txt.