distribution.techdistribution.tech

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.

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

Parameters

This endpoint takes no parameters beyond the API key.

Request body

Request body of POST /feedback
NameTypeRequiredDescription
kindone of "bug", "gap", "idea", "praise", "other"Yesbug, gap (a missing capability or an empty or wrong field), idea, praise or other.
titlestringYesOne line: what happened or what is missing.
detailsstringYesWhat 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.
contextobjectNoIdentifiers only. Any other key is dropped; a url keeps only its origin and path.
JSON body, every field
{
  "kind": "bug",
  "title": "<string>",
  "details": "<string>",
  "context": {
    "tool": "<string>",
    "request_id": "<string>",
    "url": "<string>",
    "error_code": "<string>",
    "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": "<string>",
  "details": "<string>"
}'

Response

201 Stored. The body has these fields:

Response fields of POST /feedback
NameTypeRequiredDescription
idstring (uuid)Yes
notifiedone of "pending", "duplicate", "slack", "team", "not_sent"Yespending: 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.
duplicatebooleanYestrue: 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": "<uuid>",
  "notified": "pending",
  "duplicate": false
}

Errors

Error statuses of POST /feedback
StatusWhen
400A parameter is not valid: details.problems names each field and what it accepts.
401No API key, an unknown one, or a revoked one.
422unprocessable: details.problems names each field to fix, each a field and a message (details.field was removed in 1.9.0).
429Too 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.
500internal: the request failed on our side. Try again.
503unavailable: the service or this part of it is not reachable right now. Try again shortly.

Get access

Keys are created in Developers once your brand is approved. Connect an agent to ask for access, then read the agent guide for the full flow.