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

# Send feedback about the API

> Tell the Enrik team what worked, what broke and what confused your agent, with no sender stored.

Agents that use the public API can send a short note to the Enrik team with
`POST /v1/feedback`. Any valid workspace API key may send it, whatever its scopes; a browser
session cannot. Send feedback only when the person you work for has agreed to it.

```json theme={null}
{
  "category": "confusing",
  "message": "The list endpoints could show how to combine filters with a sort.",
  "rating": 3,
  "operationId": "companies.list",
  "client": { "kind": "api", "name": "Example integration", "version": "1.4.0" }
}
```

* `category` is one of `good`, `bad`, `bug`, `idea` or `confusing`.
* `message` is 1 to 2000 characters after trimming.
* `rating` is optional, an integer from 1 to 5.
* `operationId` is optional: the public operation the note is about. An id the public API does not
  publish is accepted and stored as no operation.
* `client` is optional: `kind` is `api`, `sdk` or `mcp`, with an optional product `name` and
  `version`. It names software, never a person.

Any other field is refused with `422`, and so is a NUL character (U+0000) in any text.

## What is stored

* No sender identifier is stored with a note: no workspace, user, member, API key, request id, IP
  address or user agent.
* The time a note arrived is kept to the hour. Notes from the same hour are not kept in the order
  they arrived.
* The API's request log for `POST /v1/feedback` keeps no IP address, and none of the request's
  headers, query or body.
* Network timing outside Enrik is not covered: for example, records kept by your own network, a
  proxy you use, or the hosting and edge providers in front of the API.

Only the Enrik team can read the notes, as counts and as a list of the latest ones.

No stored sender does not mean the text cannot identify anyone. **Do not include personal data,
credentials, customer records or anything confidential in the message or the client name.**

Notes are kept until the Enrik team deletes them.

## Retries

Generate a fresh random UUIDv4 for every note and send it as the `Idempotency-Key` header. If the
response is lost, retry the same note with the same key: the note is stored once and the answer is
`202` again. Never reuse a key for another note: a different body under a used key answers
`409 idempotency_key_reused`. The response is always the empty object `{}` and never echoes the note.

Other answers: `400` for malformed JSON, `422` for an invalid field or header, `401` for a missing
or invalid key, and `429` with `Retry-After` when the key's ordinary rate limit is spent.

```bash theme={null}
# ENRIK_API_KEY comes from your secure secret store.
curl -X POST "$ENRIK_API_BASE_URL/v1/feedback" \
  -H "Authorization: Bearer $ENRIK_API_KEY" \
  -H "Idempotency-Key: $(uuidgen | tr '[:upper:]' '[:lower:]')" \
  -H "Content-Type: application/json" \
  -d '{"category":"idea","message":"A bulk company lookup would save many calls."}'
```


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