> ## Documentation Index
> Fetch the complete documentation index at: https://docs.memory.anonalabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Feedback

> Send us a bug report or an idea from your own code, without leaving it.

`POST /v1/feedback` files a report straight into our inbox. It is the same
endpoint behind the **Send feedback** button in the dashboard, and it accepts an
API key as well as a dashboard session, so an agent or a script can report the
thing it just hit.

Feedback costs no credits. An organization that has run out is exactly the one
most likely to have something to tell us.

## Send feedback

```http theme={null}
POST /v1/feedback
Authorization: Bearer anona_live_...
```

```json Request theme={null}
{
  "category": "bug",
  "message": "Retrieve returns nothing for a document I uploaded 10 minutes ago.",
  "page": "/dashboard/spaces/notes"
}
```

```json Response theme={null}
{ "status": "received" }
```

```bash cURL theme={null}
curl -X POST https://api.anonalabs.com/v1/feedback \
  -H "Authorization: Bearer anona_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category": "bug", "message": "Retrieve missed a fresh upload."}'
```

```python Python theme={null}
import httpx

httpx.post(
    "https://api.anonalabs.com/v1/feedback",
    headers={"Authorization": f"Bearer {ANONA_API_KEY}"},
    json={"category": "bug", "message": "Retrieve missed a fresh upload."},
)
```

```typescript TypeScript theme={null}
await fetch("https://api.anonalabs.com/v1/feedback", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${ANONA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    category: "bug",
    message: "Retrieve missed a fresh upload.",
  }),
});
```

Neither memory SDK wraps this endpoint — it is a plain HTTP call from any language.

| Field | Type | Notes |
| - | - | - |
| `category` | `"bug"` · `"idea"` · `"other"` | Optional, defaults to `"other"`. |
| `message` | string | Required. 1 to 4000 characters, and not only whitespace. |
| `page` | string | Optional, up to 200 characters. Where you were when it happened. Send a path, not a full URL. |

Any other field is rejected with `422`, including `email`. We never take the
sender from the body: the address we reply to is read from your account, so a
report always comes from someone we can actually answer. On an API key that is
whoever created the key.

The response is `202`, not `200`. The mail is dispatched in the background, so
a `200` would be claiming a delivery we have not yet watched happen.

## Limits

Ten reports an hour per member. Past that the endpoint answers `429` with
`too_many_attempts`. A missing or invalid credential is `401`.

## What we do with it

It goes to our support inbox and nowhere else. Nothing is echoed back to you,
and nothing is stored as a memory in any of your spaces.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.