Skip to main content
POST
/
api
/
v1
/
signals
/
{id}
/
feedback
Submit feedback on a signal
curl --request POST \
  --url https://app.puffle.ai/api/v1/signals/{id}/feedback \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "feedback": "positive"
}
'
{
  "success": true
}

Overview

Records quality feedback on a single signal as training data. Each call overwrites any previous feedback on the same signal — there is no history, just the latest value. Feedback values:
  • positive — this signal was useful; reinforce scoring rules that surfaced it
  • negative — this signal was noise; penalize scoring rules that surfaced it
The actual scoring impact is applied offline by the evaluation pipeline — feedback doesn’t immediately change future signals. Over weeks of feedback, prompts and scoring thresholds drift toward matching the caller’s preferences.

AI agent notes

Dismiss vs. feedback — different axes. Dismissing hides the signal from your feed but is a personal preference. negative feedback tells the system the signal was actually incorrect. An agent filtering by confidence threshold should dismiss without feedback; a human marking “this isn’t relevant” should submit negative feedback.Body shape. JSON body with exactly one field: feedback: "positive" | "negative". Any other value returns 400.Overwrite semantics. Calling negative then positive on the same signal leaves it as positive. There’s no “clear feedback” — if you need to retract, submit the opposite.This is the public partner API — rate-limited at 100 req/min. Use this rather than the internal /api/signals/feed/{id}/feedback endpoint.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

Signal UUID.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Body

application/json

Overwrites any previous feedback on this signal — there is no history, just the latest value.

feedback
enum<string>
required

positive — this signal was useful; negative — this signal was noise. Feedback improves scoring over time.

Available options:
positive,
negative

Response

Feedback recorded.

success
enum<boolean>
required
Available options:
true