--- title: "POST /feedback: Send feedback | distribution.tech" description: "Tell the distribution team about a problem or an idea, with any valid key, without asking the user first." canonical: https://distribution.tech/docs/api/post-feedback generator: md-live-route generated: 2026-10-21T12:27:36.862Z --- # POST /feedback: Send feedback | distribution.tech - [Getting started](https://distribution.tech/docs) - [API reference](https://distribution.tech/docs/api) - [MCP and agents](https://distribution.tech/docs/agents) - [Changelog](https://distribution.tech/docs/changelog) Search the docs Docs - Using the API › - [API reference](https://distribution.tech/docs/api) - [Authentication](https://distribution.tech/docs/api/authentication) - [Scopes](https://distribution.tech/docs/api/scopes) - [Errors](https://distribution.tech/docs/api/errors) - Inventory and audience › - [GET /audience](https://distribution.tech/docs/api/get-audience) - [GET /inventory](https://distribution.tech/docs/api/get-inventory) - Creators › - [GET /creators](https://distribution.tech/docs/api/get-creators) - [GET /creators/{id}](https://distribution.tech/docs/api/get-creators-id) - [POST /creators/{id}/price-request](https://distribution.tech/docs/api/post-creators-id-price-request) - Campaigns › - [GET /campaigns](https://distribution.tech/docs/api/get-campaigns) - [POST /campaigns](https://distribution.tech/docs/api/post-campaigns) - [GET /campaigns/{id}](https://distribution.tech/docs/api/get-campaigns-id) - [PATCH /campaigns/{id}](https://distribution.tech/docs/api/patch-campaigns-id) - [DELETE /campaigns/{id}](https://distribution.tech/docs/api/delete-campaigns-id) - [POST /campaigns/{id}/archive](https://distribution.tech/docs/api/post-campaigns-id-archive) - [POST /campaigns/{id}/creator-guidelines](https://distribution.tech/docs/api/post-campaigns-id-creator-guidelines) - Plans › - [POST /plans/{id}/approve](https://distribution.tech/docs/api/post-plans-id-approve) - [POST /plans/{id}/dates](https://distribution.tech/docs/api/post-plans-id-dates) - [POST /plans/{id}/lines](https://distribution.tech/docs/api/post-plans-id-lines) - [GET /plans/{id}/quote](https://distribution.tech/docs/api/get-plans-id-quote) - [DELETE /plans/{id}/lines/{line\_id}](https://distribution.tech/docs/api/delete-plans-id-lines-line-id) - [POST /plans/{id}/lines/{line\_id}/swap](https://distribution.tech/docs/api/post-plans-id-lines-line-id-swap) - Proof and results › - [GET /evidence](https://distribution.tech/docs/api/get-evidence) - [GET /results](https://distribution.tech/docs/api/get-results) - Company context › - [GET /brain](https://distribution.tech/docs/api/get-brain) - Feedback › - [GET /feedback](https://distribution.tech/docs/api/get-feedback) - [POST /feedback](https://distribution.tech/docs/api/post-feedback) 1. [distribution](https://distribution.tech/) 2. / [Docs](https://distribution.tech/docs) 3. / [API reference](https://distribution.tech/docs#api) 4. / Feedback API reference, Feedback # Send feedback POST /feedback Tell the distribution team about a problem or an idea, with any valid key, without asking the user first. Copy page as markdown [View .md](https://distribution.tech/docs/api/post-feedback.md) ## Overview Tell the distribution team about a problem or an idea, with any valid key, without asking the user first. File one on your own when a call fails unexpectedly (anything but a missing scope, a mandate refusal or a rate limit), when a field comes back empty or wrong, when a capability the user needs is missing, or when the user voices an idea or a frustration. One report per issue: kind (bug, gap, idea, praise or other), a one-line title and details with what happened, how to repeat it and what you expected. Identifiers only: tool names, ids, error codes and statuses, never an API key, a secret, a whole payload or personal data beyond what the user wrote. context takes tool, request\_id, url, error\_code and status; anything else is dropped. Returns the feedback id; the report is queued for delivery to the team and retried if it fails. The same report from this key within 15 minutes returns the earlier id with duplicate true and is not sent again. 20 a brand an hour. Any valid key; no scope needed. MCP tool: feedback\_send. Endpoint `POST https://app.distribution.tech/api/v1/feedback` Scope `any valid key` Changes data Yes, send an Idempotency-Key header MCP tool [feedback\_send](https://distribution.tech/docs/mcp/tools/feedback-send) ## Parameters This endpoint takes no parameters beyond the API key. ## Request body | Name | Type | Required | Description | | --- | --- | --- | --- | | `kind` | one of "bug", "gap", "idea", "praise", "other" | Yes | bug, gap (a missing capability or an empty or wrong field), idea, praise or other. | | `title` | string | Yes | One line: what happened or what is missing. | | `details` | string | Yes | What happened (the exact error), how to repeat it, what you expected. Identifiers only: never an API key, a secret or a payload, and never personal data beyond what the user wrote. | | `context` | object | No | Identifiers only. Any other key is dropped; a url keeps only its origin and path. | JSON body, every field ``` { "kind": "bug", "title": "", "details": "", "context": { "tool": "", "request_id": "", "url": "", "error_code": "", "status": 100 } } ``` ## Request with curl Set `DISTRIBUTION_API_KEY` to a key from Developers with the `any valid key` scope, and each path variable to an id from an earlier answer. The body carries the required fields. curl ``` curl -X POST "https://app.distribution.tech/api/v1/feedback" \ -H "Authorization: Bearer $DISTRIBUTION_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "kind": "bug", "title": "", "details": "" }' ``` ## Response `201` Stored. The body has these fields: | Name | Type | Required | Description | | --- | --- | --- | --- | | `id` | string (uuid) | Yes | | | `notified` | one of "pending", "duplicate", "slack", "team", "not\_sent" | Yes | pending: stored and queued for delivery to the team; retried if it fails. duplicate: the same report from this key in the last 15 minutes, nothing new stored or sent. slack, team: where it was delivered. not\_sent: stored, delivery failed, and it is retried. | | `duplicate` | boolean | Yes | true: the same kind, title and details from your brand in the last 15 minutes; id is that report, nothing new was stored or posted, and it does not count against the hourly limit. | 201 response body, every field with its type ``` { "id": "", "notified": "pending", "duplicate": false } ``` ## Errors | Status | When | | --- | --- | | `400` | A parameter is not valid: details.problems names each field and what it accepts. | | `401` | No API key, an unknown one, or a revoked one. | | `422` | unprocessable: details.problems names each field to fix, each a field and a message (details.field was removed in 1.9.0). | | `429` | Too many requests for this key this minute, or 20 feedback reports from this brand in the last hour (rate\_limited, details.reason hourly\_feedback\_limit). Retry-After says when to try again. | | `500` | internal: the request failed on our side. Try again. | | `503` | unavailable: the service or this part of it is not reachable right now. Try again shortly. | ## Related endpoints - [`GET /feedback`](https://distribution.tech/docs/api/get-feedback): Your feedback ## Get access Keys are created in Developers once your brand is approved. [Connect an agent](https://distribution.tech/distribution#access) to ask for access, then read [the agent guide](https://distribution.tech/docs/agents) for the full flow. On this page - [Overview](#overview) - [Parameters](#parameters) - [Request body](#request-body) - [Request with curl](#curl) - [Response](#response) - [Errors](#errors) - [Related endpoints](#related) - [Get access](#access) [![distribution.tech](https://distribution.tech/brand/wordmark-light.svg)![distribution.tech](https://distribution.tech/brand/wordmark.svg)](https://distribution.tech/) Your agent buys your distribution. Distribution we run for - ClickUp - Gushwork - Tab Platform - [How it works](https://distribution.tech/how-it-works) - [Network](https://distribution.tech/network) - [Workspace](https://app.distribution.tech/login) - [For your agents](https://distribution.tech/distribution) Solutions - [Product launch](https://distribution.tech/solutions/product-launch) - [Funding announcement](https://distribution.tech/solutions/funding-announcement) - [Feature release](https://distribution.tech/solutions/feature-release) - [For brands](https://distribution.tech/for-brands) - [For creators](https://distribution.tech/for-creators) Resources - [Blog](https://distribution.tech/blog) - [Launch playbook](https://distribution.tech/playbook) - [X creator rates](https://distribution.tech/rates/x-creators) Company - [Customers](https://distribution.tech/customers) - [Pricing](https://distribution.tech/pricing) - [Changelog](https://distribution.tech/changelog) - [Build a distribution plan](https://app.distribution.tech/login) - [Join the creator network](https://distribution.tech/for-creators#apply) - [Log in](https://app.distribution.tech/login) Legal - [Privacy](https://distribution.tech/privacy) - [Terms](https://distribution.tech/terms) © 2026 distribution.tech [Contact: team@distribution.tech](mailto:team@distribution.tech)Cookie settings Light Dark System