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

# Submit Batch Feedback V1

`POST /v1/feedback/batch`

Submit multiple feedback items in a single request.
    
    Useful for submitting session-end feedback or bulk feedback collection.
    Each feedback item is processed independently, so partial success is possible.
    
    **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

- BatchFeedbackRequest — Request model for submitting multiple feedback items
  - `feedback_items` FeedbackRequest[], required — List of feedback items to submit
    - `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.
  - `session_context` object, nullable — Session-level context for batch feedback

## Response `200`

Batch feedback processed successfully

- BatchFeedbackResponse — Response model for batch feedback submission
  - `code` integer, required — HTTP status code
  - `status` string, required — 'success' or 'error'
  - `feedback_ids` string[] — List of feedback IDs
  - `successful_count` integer — Number of successfully processed feedback items
  - `failed_count` integer — Number of failed feedback items
  - `errors` object[] — List of error details
  - `message` string, required — Human-readable message
  - `error` string, nullable — Error message if status is 'error'

## Other responses

- `207` — Partial success - some feedback items failed
- `400` — Bad request
- `401` — Unauthorized
- `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/revisions/b553be9aad37/schema)
