# BAD_REQUEST

> BAD_REQUEST means the Bannerify API rejected a request with status 400, for example for a missing field or an invalid API key. The message names the problem.

Canonical: https://bannerify.co/docs/api-reference/errors/code/BAD_REQUEST

## Problem

The API rejected the request and sent status 400. The `message` says why.

| Message | Cause |
| --- | --- |
| `Validation error` followed by a field path, such as `modifications[0].text` | A field is missing or has the wrong type or value |
| `Invalid api key` | No API key matches the one you sent |
| `Project not found` | The info endpoint found no workspace for the key |
| `Missing apiKeyHashed` | A signed URL has no `apiKeyHashed` parameter |
| `Invalid sign` | The signature of a signed URL does not match its parameters |

## Solution

Read `message` and fix the field it names. For `Invalid api key`, copy the key again from the **API Keys** page. A key that you deleted stops working. POST endpoints take the key as `apiKey` in the JSON body, and GET endpoints take it as the `apiKey` query parameter.

For a signed URL error, see [Signed URLs](https://bannerify.co/docs/essentials/signed-urls#troubleshooting).

If that does not help, write to [an@bannerify.co](mailto:an@bannerify.co) with the `requestId`.

## Related

- [Previous: Handle errors](https://bannerify.co/docs/api-reference/errors/introduction)
- [Next: FETCH_IMAGE_ERROR](https://bannerify.co/docs/api-reference/errors/code/FETCH_IMAGE_ERROR)
- [Documentation index](https://bannerify.co/docs/llms.txt)
