Skip to content
Median
Esc
↑↓navigate↵open⌘Jpreview

File a signal

Files one by hand. A title already on the list is refused out loud with signal_exists, naming the twin.

POST/signals
Authorization
AuthorizationBearer token · headerrequired
`MEDIAN_KEY` from Settings under API, or an MCP OAuth access token. A key acts as the organization; a token acts as the person who approved it.
Request body
requiredapplication/json
kindstringrequired
Allowed:bugsuggestion
titlestringrequired
bodystring
prioritystringrequired
Allowed:urgenthighmediumlow
conversationIdstring
The inbox conversation it came out of, when it did. The customer in that thread becomes the signal's first reporter and is told when it ships.
Responses
200Created.
idstring
400The request is malformed, and the message names the field.
errorobject
Show properties
codestring
messagestring
401The bearer token is missing, revoked, or expired.
errorobject
Show properties
codestring
messagestring
409It already exists, or it was already settled.
errorobject
Show properties
codestring
messagestring
429Too many requests. Wait the seconds in `Retry-After`. Limits depend on the plan. See [rate limits](/api/errors-and-limits#rate-limits).
errorobject
Show properties
codestring
messagestring
Request
curl -X POST "https://api.median.sh/v1/signals" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "bug",
  "title": "Export breaks past 10k rows",
  "body": "The CSV export times out for large workspaces.",
  "priority": "high"
}'
Response
{
  "id": "string"
}