# Form error: form-not-found (404)

> Formspree Docs · api-errors · Updated November 5, 2026

Your form submitted to an endpoint that doesn't exist on Formspree.

## What the response looks like

The response is JSON, sent as `application/json`. If your request asks for `application/problem+json`, that's what you get instead.

```json
{
  "type": "https://help.formspree.io/articles/api-errors/form-not-found",
  "title": "Form not found",
  "status": 404,
  "detail": "No form exists with ID \"YOUR_FORM_ID\". Formspree form IDs are issued when a form is created, not chosen by you.",
  "instance": "<request id>",
  "next_steps": [
    {"step": "Open your dashboard", "detail": "Your dashboard lists every live form endpoint.", "url": "https://formspree.io/forms"}
  ],
  "error": "Form not found",
  "errors": [{"code": "FORM_NOT_FOUND", "message": "Form not found"}]
}
```

`error` and `errors` are there for older clients like `@formspree/react` and `@formspree/ajax`, which read them. Everything else follows [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457).

## Common causes

- **A placeholder ID is still in the form's `action`.** Something like `https://formspree.io/f/YOUR_FORM_ID`. Formspree issues the ID when you create the form, so you can't make one up.
- **A typo in the ID, or the form was deleted.**
- **The dashboard URL is in the `action`.** `https://formspree.io/forms/<id>` is the form's page in your dashboard. Submissions go to `https://formspree.io/f/<id>`.
- **An email address is in the `action`.** Like `https://formspree.io/you@example.com`. These are [legacy forms](/articles/troubleshooting/phasing-out-legacy-forms-email-urls/), and they can't create new forms anymore.
- **A CLI project form that isn't in `formspree.json`.** If you submit to `https://formspree.io/p/<project>/f/<key>`, the form key has to be in the project's [`formspree.json` file](/articles/using-the-cli/the-formspree-json-file/).

We return the same 404 whether a form never existed or was deleted.

## How to fix it

1. Open your [dashboard](https://formspree.io/forms) and find the form.
2. Copy its endpoint, `https://formspree.io/f/<id>`. It's at the top of the form's **Integration** tab. See [Getting your form's "hashid"](/articles/the-forms-api/getting-your-form-s-hashid/) for where else to find it.
3. Paste it into your form's `action` attribute, or wherever your code submits to.

No form yet? Create one in the dashboard with **+ New Form**. If an AI agent is building your site, it can create the form for you and send you a link to claim it. Point it at the [create-form skill](https://formspree.io/skills/create-form/skill.md).

Using the CLI? Add the form to `formspree.json`, then deploy the project again with the [Formspree CLI](/articles/using-the-cli/the-formspree-cli/).
