---
title: Submit product feedback
description: Optional idempotency key.
---
# Submit product feedback

`POST https://api.releases.sh/v1/feedback`

Optional idempotency key. Reuse the same key only for an identical request; successful responses are replayable for 24 hours.

**Auth:** optional Bearer token.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Idempotency-Key` | header | string | no | Optional idempotency key. Reuse the same key only for an identical request; successful responses are replayable for 24 hours. |

**Request body** (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string | yes |  |
| `type` | "bug" \| "idea" \| "other" \| "general" | no |  |
| `contact` | string | no |  |
| `clientKind` | "external" \| "internal-agent" \| "internal-sandbox" \| "internal-ci" \| "internal-dev" \| "mcp-stdio" | no |  |
| `surface` | string | no |  |
| `cliVersion` | string | no |  |
| `anonId` | string | no |  |
| `os` | string | no |  |
| `arch` | string | no |  |
| `runtime` | string | no |  |

**Responses**

- `202` Accepted feedback identifier.
- `400` Missing/invalid JSON body, or message shorter than the minimum length
- `409` The key is already processing, or was reused with a different request fingerprint.
- `429` Rate limited
- `503` Feedback intake disabled (kill switch), or idempotency storage/response replay is temporarily unavailable

Full request and response schemas: [OpenAPI 3.1 spec](https://api.releases.sh/v1/openapi.json).
