Feedback

Submit feedback

Record feedback from an AI agent or integration. Accepts a write-only feedback token (Authorization: Bearer nfb_...) or an API key with the feedback.write scope.

post/v1/feedback

Request body

messagestring required

The feedback itself.

titlestring

Short summary. When omitted, Notra writes one.

kind'bug' | 'feature' | 'praise' | 'question' | 'other'

What kind of feedback this is. When omitted, Notra classifies it.

sentiment'negative' | 'neutral' | 'positive'

Overall sentiment. When omitted, Notra classifies it from the message.

source'mcp' | 'api' | 'sdk'

Channel the feedback arrived through.

projectIdstring

Project to file the feedback under. Ignored for project-scoped feedback tokens.

agentClientstring

The agent or client that submitted the feedback.

agentModelstring
toolVersionstring
userAgentstring
contextUrlstring uri

Page or resource the feedback is about.

externalIdstring

Your own identifier for the user or session.

idempotencyKeystring

Submitting the same key twice returns the original feedback instead of creating a duplicate.

metadataobject

Arbitrary JSON attached to the feedback, up to 8 KB.

Example request

{
  "message": "The search tool times out when the query has quotes.",
  "title": "Search times out on quoted queries",
  "kind": "bug",
  "sentiment": "negative",
  "source": "mcp",
  "agentClient": "claude-code",
  "agentModel": "claude-opus-5",
  "toolVersion": "1.2.0",
  "contextUrl": "https://docs.example.com/api/search"
}

Response

Feedback accepted

deduplicatedboolean required

True when an existing feedback with the same idempotencyKey was returned.

Example response

{
  "feedback": {
    "source": "mcp",
    "kind": "bug",
    "sentiment": "negative",
    "status": "new"
  }
}

Changes