Papr Memory API (1.0.0)

API for managing personal memory items with authentication and user-specific data.

Authentication

This API supports three authentication methods:

  • API Key: Include your API key in the X-API-Key header
    X-API-Key: <your-api-key>
  • Session Token: Include your session token in the X-Session-Token header
    X-Session-Token: <your-session-token>
  • Bearer Token: Include your OAuth2 token from Auth0 in the Authorization header
    Authorization: Bearer <token>

All endpoints require one of these authentication methods.

Download OpenAPI description
Languages
Servers
Papr Memory API
https://platform.papr.ai/_mock/apis/
Production server
https://memory.papr.ai/

v1

Operations

User

Operations

Memory

Operations

Feedback

Operations

Submit Feedback V1

Request

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')
Bodyapplication/jsonrequired
search_idstring(Search Id)required

The search_id from SearchResponse that this feedback relates to

Example: "abc123def456"
feedbackDataobject(FeedbackData)required

The feedback data containing all feedback information

Example: {"assistantMessage":{"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"},"citedMemoryIds":["mem_123","mem_456"],"citedNodeIds":["node_123","node_456"],"feedbackImpact":"positive","feedbackProcessed":true,"feedbackScore":1,"feedbackSource":"inline","feedbackText":"This answer was very helpful and accurate","feedbackType":"thumbs_up","feedbackValue":"helpful","userMessage":{"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"}}
feedbackData.​userMessageParsePointer (object) or null
Example: {"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"}
Any of:

A pointer to a Parse object

feedbackData.​assistantMessageParsePointer (object) or null
Example: {"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"}
Any of:

A pointer to a Parse object

feedbackData.​feedbackTypestring(FeedbackType)required

Types of feedback that can be provided

Enum"thumbs_up""thumbs_down""rating""correction""report""copy_action""save_action""create_document""memory_relevance""answer_quality"
Example: "thumbs_up"
feedbackData.​feedbackValueFeedbackvalue (string) or Feedbackvalue (null)(Feedbackvalue)
Example: "helpful"
Any of:
string(Feedbackvalue)
feedbackData.​feedbackScoreFeedbackscore (number) or Feedbackscore (null)(Feedbackscore)
Example: 1
Any of:
number(Feedbackscore)
feedbackData.​feedbackTextFeedbacktext (string) or Feedbacktext (null)(Feedbacktext)
Example: "This answer was very helpful and accurate"
Any of:
string(Feedbacktext)
feedbackData.​feedbackSourcestring(FeedbackSource)required

Where the feedback was provided from

Enum"inline""post_query""session_end""memory_citation""answer_panel"
Example: "inline"
feedbackData.​citedMemoryIdsArray of Citedmemoryids (strings) or Citedmemoryids (null)(Citedmemoryids)
Example: ["mem_123","mem_456"]
Any of:
feedbackData.​citedNodeIdsArray of Citednodeids (strings) or Citednodeids (null)(Citednodeids)
Example: ["node_123","node_456"]
Any of:
feedbackData.​feedbackProcessedFeedbackprocessed (boolean) or Feedbackprocessed (null)(Feedbackprocessed)
Example: true
Any of:
boolean(Feedbackprocessed)
feedbackData.​feedbackImpactFeedbackimpact (string) or Feedbackimpact (null)(Feedbackimpact)
Example: "positive"
Any of:
string(Feedbackimpact)
user_idUser Id (string) or User Id (null)(User Id)

Internal user ID (if not provided, will be resolved from authentication)

Example: "abc123def456"
Any of:

Internal user ID (if not provided, will be resolved from authentication)

string(User Id)

Internal user ID (if not provided, will be resolved from authentication)

external_user_idExternal User Id (string) or External User Id (null)(External User Id)

External user ID for developer API keys acting on behalf of end users

Example: "dev_api_key_123"
Any of:

External user ID for developer API keys acting on behalf of end users

string(External User Id)

External user ID for developer API keys acting on behalf of end users

curl -i -X POST \
  https://platform.papr.ai/_mock/apis/v1/feedback \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "external_user_id": "dev_api_key_123",
    "feedbackData": {
      "assistantMessage": {
        "__type": "Pointer",
        "className": "PostMessage",
        "objectId": "abc123def456"
      },
      "citedMemoryIds": [
        "mem_123",
        "mem_456"
      ],
      "citedNodeIds": [
        "node_123",
        "node_456"
      ],
      "feedbackImpact": "positive",
      "feedbackProcessed": true,
      "feedbackScore": 1,
      "feedbackSource": "inline",
      "feedbackText": "This answer was very helpful and accurate",
      "feedbackType": "thumbs_up",
      "feedbackValue": "helpful",
      "userMessage": {
        "__type": "Pointer",
        "className": "PostMessage",
        "objectId": "abc123def456"
      }
    },
    "search_id": "abc123def456",
    "user_id": "abc123def456"
  }'

Responses

Feedback submitted successfully

Bodyapplication/json
codeinteger(Code)required

HTTP status code

statusstring(Status)required

'success' or 'error'

feedback_idFeedback Id (string) or Feedback Id (null)(Feedback Id)

Unique feedback ID

Any of:

Unique feedback ID

string(Feedback Id)

Unique feedback ID

messagestring(Message)required

Human-readable message

errorError (string) or Error (null)(Error)

Error message if status is 'error'

Any of:

Error message if status is 'error'

string(Error)

Error message if status is 'error'

detailsDetails (object) or Details (null)(Details)

Additional error details

Any of:

Additional error details

Response
application/json
{ "code": 200, "status": "success", "feedback_id": "fb_123456789", "message": "Feedback submitted successfully and will be processed for model improvement" }

Submit Batch Feedback V1

Request

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')
Bodyapplication/jsonrequired
feedback_itemsArray of objects(Feedback Items)[ 1 .. 100 ] itemsrequired

List of feedback items to submit

Example: [{"external_user_id":"dev_api_key_123","feedbackData":{"assistantMessage":{"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"},"citedMemoryIds":["mem_123","mem_456"],"citedNodeIds":["node_123","node_456"],"feedbackImpact":"positive","feedbackProcessed":true,"feedbackScore":1,"feedbackSource":"inline","feedbackText":"This answer was very helpful and accurate","feedbackType":"thumbs_up","feedbackValue":"helpful","userMessage":{"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"}},"search_id":"abc123def456","user_id":"abc123def456"}]
feedback_items[].​search_idstring(Search Id)required

The search_id from SearchResponse that this feedback relates to

Example: "abc123def456"
feedback_items[].​feedbackDataobject(FeedbackData)required

The feedback data containing all feedback information

Example: {"assistantMessage":{"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"},"citedMemoryIds":["mem_123","mem_456"],"citedNodeIds":["node_123","node_456"],"feedbackImpact":"positive","feedbackProcessed":true,"feedbackScore":1,"feedbackSource":"inline","feedbackText":"This answer was very helpful and accurate","feedbackType":"thumbs_up","feedbackValue":"helpful","userMessage":{"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"}}
feedback_items[].​feedbackData.​userMessageParsePointer (object) or null
Example: {"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"}
Any of:

A pointer to a Parse object

feedback_items[].​feedbackData.​assistantMessageParsePointer (object) or null
Example: {"__type":"Pointer","className":"PostMessage","objectId":"abc123def456"}
Any of:

A pointer to a Parse object

feedback_items[].​feedbackData.​feedbackTypestring(FeedbackType)required

Types of feedback that can be provided

Enum"thumbs_up""thumbs_down""rating""correction""report""copy_action""save_action""create_document""memory_relevance""answer_quality"
Example: "thumbs_up"
feedback_items[].​feedbackData.​feedbackValueFeedbackvalue (string) or Feedbackvalue (null)(Feedbackvalue)
Example: "helpful"
Any of:
string(Feedbackvalue)
feedback_items[].​feedbackData.​feedbackScoreFeedbackscore (number) or Feedbackscore (null)(Feedbackscore)
Example: 1
Any of:
number(Feedbackscore)
feedback_items[].​feedbackData.​feedbackTextFeedbacktext (string) or Feedbacktext (null)(Feedbacktext)
Example: "This answer was very helpful and accurate"
Any of:
string(Feedbacktext)
feedback_items[].​feedbackData.​feedbackSourcestring(FeedbackSource)required

Where the feedback was provided from

Enum"inline""post_query""session_end""memory_citation""answer_panel"
Example: "inline"
feedback_items[].​feedbackData.​citedMemoryIdsArray of Citedmemoryids (strings) or Citedmemoryids (null)(Citedmemoryids)
Example: ["mem_123","mem_456"]
Any of:
feedback_items[].​feedbackData.​citedNodeIdsArray of Citednodeids (strings) or Citednodeids (null)(Citednodeids)
Example: ["node_123","node_456"]
Any of:
feedback_items[].​feedbackData.​feedbackProcessedFeedbackprocessed (boolean) or Feedbackprocessed (null)(Feedbackprocessed)
Example: true
Any of:
boolean(Feedbackprocessed)
feedback_items[].​feedbackData.​feedbackImpactFeedbackimpact (string) or Feedbackimpact (null)(Feedbackimpact)
Example: "positive"
Any of:
string(Feedbackimpact)
feedback_items[].​user_idUser Id (string) or User Id (null)(User Id)

Internal user ID (if not provided, will be resolved from authentication)

Example: "abc123def456"
Any of:

Internal user ID (if not provided, will be resolved from authentication)

string(User Id)

Internal user ID (if not provided, will be resolved from authentication)

feedback_items[].​external_user_idExternal User Id (string) or External User Id (null)(External User Id)

External user ID for developer API keys acting on behalf of end users

Example: "dev_api_key_123"
Any of:

External user ID for developer API keys acting on behalf of end users

string(External User Id)

External user ID for developer API keys acting on behalf of end users

session_contextSession Context (object) or Session Context (null)(Session Context)

Session-level context for batch feedback

Any of:

Session-level context for batch feedback

curl -i -X POST \
  https://platform.papr.ai/_mock/apis/v1/feedback/batch \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "feedback_items": [
      {
        "external_user_id": "dev_api_key_123",
        "feedbackData": {
          "assistantMessage": {
            "__type": "Pointer",
            "className": "PostMessage",
            "objectId": "abc123def456"
          },
          "citedMemoryIds": [
            "mem_123",
            "mem_456"
          ],
          "citedNodeIds": [
            "node_123",
            "node_456"
          ],
          "feedbackImpact": "positive",
          "feedbackProcessed": true,
          "feedbackScore": 1,
          "feedbackSource": "inline",
          "feedbackText": "This answer was very helpful and accurate",
          "feedbackType": "thumbs_up",
          "feedbackValue": "helpful",
          "userMessage": {
            "__type": "Pointer",
            "className": "PostMessage",
            "objectId": "abc123def456"
          }
        },
        "search_id": "abc123def456",
        "user_id": "abc123def456"
      }
    ],
    "session_context": {}
  }'

Responses

Batch feedback processed successfully

Bodyapplication/json
codeinteger(Code)required

HTTP status code

statusstring(Status)required

'success' or 'error'

feedback_idsArray of strings(Feedback Ids)

List of feedback IDs

successful_countinteger(Successful Count)

Number of successfully processed feedback items

Default 0
failed_countinteger(Failed Count)

Number of failed feedback items

Default 0
errorsArray of objects(Errors)

List of error details

messagestring(Message)required

Human-readable message

errorError (string) or Error (null)(Error)

Error message if status is 'error'

Any of:

Error message if status is 'error'

string(Error)

Error message if status is 'error'

Response
application/json
{ "code": 200, "status": "success", "feedback_ids": [ "fb_123", "fb_456" ], "successful_count": 2, "failed_count": 0, "errors": [], "message": "Processed 2 feedback items successfully" }

Get Feedback By Id V1

Request

Retrieve feedback by ID.

This endpoint allows developers to fetch feedback details by feedback ID. Only the user who created the feedback or users with appropriate permissions can access it.

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:

  • X-Client-Type: (e.g., 'papr_plugin', 'browser_extension')
Path
feedback_idstring(Feedback Id)required
curl -i -X GET \
  'https://platform.papr.ai/_mock/apis/v1/feedback/{feedback_id}' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Feedback retrieved successfully

Bodyapplication/json
codeinteger(Code)required

HTTP status code

statusstring(Status)required

'success' or 'error'

feedback_idFeedback Id (string) or Feedback Id (null)(Feedback Id)

Unique feedback ID

Any of:

Unique feedback ID

string(Feedback Id)

Unique feedback ID

messagestring(Message)required

Human-readable message

errorError (string) or Error (null)(Error)

Error message if status is 'error'

Any of:

Error message if status is 'error'

string(Error)

Error message if status is 'error'

detailsDetails (object) or Details (null)(Details)

Additional error details

Any of:

Additional error details

Response
application/json
{ "code": 200, "status": "success", "feedback_id": "fb_123456789", "message": "Feedback retrieved successfully", "details": { "feedback_type": "thumbs_up", "feedback_score": 1, "feedback_text": "This was helpful!", "search_id": "search_123", "created_at": "2024-01-17T17:30:45.123456Z" } }