---
title: "Submit Feedback V1"
method: POST
path: "/v1/feedback"
tags: ["v1", "Feedback"]
---

# Submit Feedback V1

`POST /v1/feedback`

Submit feedback on search results to help improve model performance.
    
    This endpoint allows developers to provide feedback on:
    - Overall answer quality (thumbs up/down, ratings)
    - Specific memory relevance and accuracy
    - User engagement signals (copy, save, create document actions)
    - Corrections and improvements
    
    The feedback is used to train and improve:
    - Router model tier predictions
    - Memory retrieval ranking
    - Answer generation quality
    - Agentic graph search performance
    
    **Authentication Required**:
    One of the following authentication methods must be used:
    - Bearer token in `Authorization` header
    - API Key in `X-API-Key` header
    - Session token in `X-Session-Token` header
    
    **Required Headers**:
    - Content-Type: application/json
    - X-Client-Type: (e.g., 'papr_plugin', 'browser_extension')

## Request body

- FeedbackRequest — Request model for submitting feedback on search results
  - `search_id` string, required — The search_id from SearchResponse that this feedback relates to
  - `feedbackData` FeedbackData, required — Developer-friendly feedback data model for requests
    - `userMessage` ParsePointer — A pointer to a Parse object
      - `objectId` string, required
      - `__type` string
      - `className` string, required
    - `assistantMessage` ParsePointer — A pointer to a Parse object
      - `objectId` string, required
      - `__type` string
      - `className` string, required
    - `feedbackType` 'thumbs_up' | 'thumbs_down' | 'rating' | 'correction' | 'report' | 'copy_action' | 'save_action' | 'create_document' | 'memory_relevance' | 'answer_quality', required — Types of feedback that can be provided
    - `feedbackValue` string, nullable
    - `feedbackScore` number, nullable
    - `feedbackText` string, nullable
    - `feedbackSource` 'inline' | 'post_query' | 'session_end' | 'memory_citation' | 'answer_panel', required — Where the feedback was provided from
    - `citedMemoryIds` string[], nullable
    - `citedNodeIds` string[], nullable
    - `feedbackProcessed` boolean, nullable
    - `feedbackImpact` string, nullable
  - `user_id` string, nullable — Internal user ID (if not provided, will be resolved from authentication)
  - `external_user_id` string, nullable — External user ID for developer API keys acting on behalf of end users
  - `organization_id` string, nullable — Optional organization ID for multi-tenant feedback scoping. When provided, feedback is scoped to this organization.
  - `namespace_id` string, nullable — Optional namespace ID for multi-tenant feedback scoping. When provided, feedback is scoped to this namespace.

## Response `200`

Feedback submitted successfully

- FeedbackResponse — Response model for feedback submission
  - `code` integer, required — HTTP status code
  - `status` string, required — 'success' or 'error'
  - `feedback_id` string, nullable — Unique feedback ID
  - `message` string, required — Human-readable message
  - `error` string, nullable — Error message if status is 'error'
  - `details` object, nullable — Additional error details

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Search ID not found
- `422` — Validation Error
- `500` — Internal server error

---

[API](https://skmtc.net/papr-ai/apis/papr-memory-api.md) · [All operations](https://skmtc.net/papr-ai/apis/papr-memory-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/papr-ai/papr-memory-api/versions/b553be9aad37/schema)
