---
title: feedback
description: Free tool that sends the looot team a bug, idea, praise or question, same as POST /v1/feedback and looot feedback.
---

<WorksIn />

Tell the looot team what went wrong or what would help. It is free and never charged, and it
does the same as `POST /v1/feedback` and `looot feedback`. Call it when a run returned a wrong,
empty or oversized answer, when a doc or an error message was unclear, when a provider or job you
needed is missing (`kind: "idea"`), or when something worked well (`kind: "praise"`).

## Inputs

| Argument | Type | Required | Default | Limits | Meaning |
| --- | --- | --- | --- | --- | --- |
| `kind` | string | Yes | - | `bug`, `idea`, `praise` or `question` | What sort of note this is. |
| `message` | string | Yes | - | 1-4000 chars | What you did, what you expected and what happened. Leave out secrets and customer personal data. |
| `runId` | string | No | - | letters, digits and `_ . : / -`, up to 200 chars | The run the note is about. A run id from another workspace is ignored. |
| `endpointId` | string | No | - | same shape as `runId` | The endpoint the note is about. |
| `rating` | integer | No | - | 1 to 5 | How useful the answer was. |

A workspace may send 20 notes a day. At the limit the call fails with `feedback_rate_limited`, so
put the most important points into one message.

## Example call

```json
{
  "kind": "bug",
  "message": "email.verify returned an empty result for a valid address. I expected a status field.",
  "runId": "run_abc123",
  "rating": 2
}
```

## Example answer

```json
{
  "feedbackId": "7d1f0c52-4a38-4d63-9d0e-0f6f2b6a4c11",
  "status": "new"
}
```

## Errors

A missing or wrong-typed field returns [`validation_error`](/errors/rest-errors#validation_error)
naming it, for example a `kind` outside the four values. Past 20 notes in a day the call returns
`feedback_rate_limited`.

## REST and CLI

- REST: `POST /v1/feedback`
- CLI: `looot feedback`

<Related />
