# Claiming a form

> Take ownership of an unclaimed form. Held submissions are released and forwarding turns on.

Claiming is how an `unclaimed` form becomes a real, owned form in a dashboard. Everything it collected while unclaimed comes with it.

## Who can claim

Possession of the claim link is the authorization. Whoever opens it and signs in becomes the owner. The account they sign in with does **not** need to match any of the form's `recipients`, which is deliberate: it lets you provision a form for a colleague and hand them the link.

## The claim link

The link points at the frontend, not the API:

```text
https://lanes.sh/claim/{token}
```

You get it in one of two ways, depending on how the form was [provisioned](/docs/forms/provisioning):

- If the form had recipients, a claim email is sent to the first one.
- If it did not, provisioning returns a single-use `claim_url` for you to deliver yourself.

## Preview before claiming

`GET /v1/claim/{token}/preview` is a public, non-consuming peek. It never burns the single-use token, so an email scanner prefetching the link cannot spend it. It returns enough to render a claim page:

```json
{
  "status": "claimable",
  "frozen": false,
  "form_name": "Contact form",
  "claim_email_masked": "o***@acme.com",
  "submissions_waiting": 3,
  "token_expires_at": "2026-07-20T09:00:00Z"
}
```

`status` is one of `claimable`, `already_claimed`, `deleted`, or `invalid_or_expired`.

## Redeeming

`POST /v1/claim/{token}` is the actual redeem. It is authenticated: the caller signs in (Firebase) and the token is consumed for that account. The redeem is race-safe and single-use, so only one caller can ever win a given token.

**This runs in the browser**

Claiming happens on the site, not through raw API calls you script. Send the owner to the claim link and let them sign in. There is no way to claim a form on another person's behalf through the API.

## What claiming changes

A successful claim does all of this in one transaction:

1. The claimer's **default workspace and project are created** if they do not have one yet.
2. The form moves to **`claimed`**: `claimed_at` is stamped, it is filed under the workspace's project, and if it was `frozen` it is **restored**.
3. **Every held submission is released**, spam included, and becomes visible in the dashboard.
4. If the form had recipients, the first one is **pre-verified** in the new workspace, which **turns email forwarding on**.

**No recipients means no forwarding yet**

A form claimed with no recipients has nothing to verify, so forwarding stays off until the owner adds and verifies one in the dashboard. See [Integrating a form](/docs/forms/integrating) for how delivery works.

## After claiming

The form now lives in the dashboard. From there the owner can manage recipients, origins, schema, and delivery, and can create [API keys](/docs/forms/api-keys) to manage or submit to it programmatically.

Next: [Submitting data](/docs/forms/submitting).
