# Forms

Read [Forms](/concepts/forms) for the two halves of a form and the rule
about where mail goes.

## Declare one

| Call | What it does |
|---|---|
| `POST /v1/sites/{id}/forms` | declares a form |
| `GET /v1/sites/{id}/forms` | the site's forms |
| `GET /v1/forms/{id}` | one form |
| `PATCH /v1/forms/{id}` | changes its fields or where mail goes |
| `DELETE /v1/forms/{id}` | removes it |

The answer carries the form's `action_url`. Put that in the site's HTML.
That address is baked into published pages, so it keeps working whatever
else moves.

A delete takes what the form received with it. Send `?confirm=true` to
agree.

## Turn one off without losing it

| Call | What it does |
|---|---|
| `POST /v1/forms/{id}/disable` | stops taking submissions |
| `POST /v1/forms/{id}/enable` | starts again |

## Where mail goes

`notify_to` must be an address on the account: the owner's, or a
collaborator's.

Every surface reports `notify_options` with the legal values. A solo owner
has exactly one — the address they sign in with.

## Read the enquiries

`GET /v1/forms/{id}/submissions` lists what came through, newest first.
It is paginated; read [Pagination](/api/pagination).

`?format=csv` exports the same list as a file.

Submissions are kept for 180 days.

## What forms need

Forms need a Turnstile key on the deployment. Without one Clave advertises
no form tools at all.

Mail needs a configured sender. Without one an enquiry is stored and not
mailed, and Clave says so rather than pretend.

---

## Where this page sits

This is one page of the Clave documentation.
Read it as a web page at https://docs.heyclave.party/api/forms.
Every page has a `.md` address, and https://docs.heyclave.party/llms.txt lists them all.

- Previous: [Domains](https://docs.heyclave.party/api/domains.md)
- Next: [Bookings](https://docs.heyclave.party/api/bookings.md)
- Index: [Overview](https://docs.heyclave.party/index.md)
