# Feedback

Retrieve message ratings from your AVCodex agent's consumers.

---

Feedback captures consumer ratings on individual messages. Consumers (techs, programmers, end-clients) can rate messages as positive (+1), neutral (0), or negative (-1).

## List feedback

```
GET /api/v1/apps/{appId}/feedback
```

Returns a paginated list of feedback entries, newest first. Uses offset-based pagination.

### Query parameters

| Parameter        | Type     | Default | Description                                  |
|------------------|----------|---------|----------------------------------------------|
| `limit`          | integer  | 25      | Results per page (1-100).                    |
| `offset`         | integer  | 0       | Number of results to skip.                   |
| `rating`         | integer  | -       | Filter by rating: `-1`, `0`, or `1`.         |
| `session_id`     | UUID     | -       | Filter by session.                           |
| `created_after`  | ISO 8601 | -       | Feedback created after this date.            |
| `created_before` | ISO 8601 | -       | Feedback created before this date.           |

### Example

```bash
curl "https://app.avcodex.com/api/v1/apps/YOUR_APP_ID/feedback?limit=20" \
  -H "Authorization: Bearer avcodex_YOUR_API_KEY"
```

### Response

```json
{
  "data": [
    {
      "id": "fb-001",
      "session_id": "550e8400-e29b-41d4-a716-446655440000",
      "message_id": "msg-002",
      "consumer_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "rating": 1,
      "message_preview": "Here's the recovery procedure for the Q-SYS Core...",
      "created_at": "2025-06-15T14:45:00Z"
    },
    {
      "id": "fb-002",
      "session_id": "660f9511-f30c-52e5-b827-557766551111",
      "message_id": "msg-014",
      "consumer_id": "8d0f7780-8536-51f6-c928-668877662222",
      "rating": -1,
      "message_preview": "I'm not sure about that. Let me...",
      "created_at": "2025-06-14T09:20:00Z"
    }
  ],
  "pagination": {
    "has_more": true,
    "total": 87,
    "limit": 20,
    "offset": 0
  }
}
```

### Response fields

| Field             | Type           | Description                                                                                       |
|-------------------|----------------|---------------------------------------------------------------------------------------------------|
| `id`              | string         | Unique feedback identifier.                                                                        |
| `session_id`      | UUID           | The session this feedback belongs to.                                                              |
| `message_id`      | string         | The message that was rated.                                                                        |
| `consumer_id`     | UUID           | The consumer who submitted the feedback.                                                           |
| `rating`          | integer        | `-1` (negative), `0` (neutral), or `1` (positive).                                                 |
| `message_preview` | string or null | Truncated preview of the rated message (max 200 chars). Null when the message no longer exists.    |
| `created_at`      | ISO 8601       | When the feedback was submitted.                                                                   |

### Filtering negative feedback

To find messages worth tuning (a great signal for improving your agent's grasp of programming guides or commissioning steps):

```bash
curl "https://app.avcodex.com/api/v1/apps/YOUR_APP_ID/feedback?rating=-1" \
  -H "Authorization: Bearer avcodex_YOUR_API_KEY"
```

### Feedback for a specific session

```bash
curl "https://app.avcodex.com/api/v1/apps/YOUR_APP_ID/feedback?session_id=550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer avcodex_YOUR_API_KEY"
```

*AVCodex · Your AV expertise. Amplified by AI.*
