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
Production server
https://memoryserver-staging-223473570766.us-west1.run.app/

v1

Operations

Delete User

Request

Delete user association with developer and the user itself by , assume external user_id is provided, and resolve to internal user_id (_User.objectId)

Path
user_idstring(User Id)required
Query
is_externalboolean(Is External)

Is this an external user ID?

Default false
Headers
X-API-Keystring(X-Api-Key)required
curl -i -X DELETE \
  'https://memoryserver-staging-223473570766.us-west1.run.app/v1/user/{user_id}?is_external=false' \
  -H 'X-API-Key: string'

Responses

Successful Response

Bodyapplication/json
codeinteger(Code)required

HTTP status code

Example: 200
statusstring(Status)required

'success' or 'error'

Example: "success"
user_idUser Id (string) or User Id (null)(User Id)

ID of the user attempted to delete

Example: "abc123"
Any of:

ID of the user attempted to delete

string(User Id)

ID of the user attempted to delete

messageMessage (string) or Message (null)(Message)

Success or error message

Example: "User and association deleted successfully"
Any of:

Success or error message

string(Message)

Success or error message

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

Error message if failed

Any of:

Error message if failed

string(Error)

Error message if failed

detailsDetails (any) or Details (null)(Details)

Additional error details or context

Any of:

Additional error details or context

any(Details)

Additional error details or context

Response
application/json
{ "code": 200, "message": "User and association deleted successfully", "status": "success", "user_id": "abc123" }

Create User Batch

Request

Create multiple users or link existing users to developer, and add each to the developer's workspace (if one exists).

Headers
X-API-Keystring(X-Api-Key)required
Bodyapplication/jsonrequired
usersArray of objects(Users)required
Example: [{"email":"user@example.com","external_id":"user123","metadata":{"name":"John Doe","preferences":{"theme":"dark"}},"type":"developerUser"}]
users[].​emailEmail (string) or Email (null)(Email)
Example: "user@example.com"
Any of:
string(email)(Email)
users[].​external_idstring(External Id)required
Example: "user123"
users[].​metadataMetadata (object) or Metadata (null)(Metadata)
Example: {"name":"John Doe","preferences":{"theme":"dark"}}
Any of:
users[].​typestring(UserType)
Default "developerUser"
Enum"developerUser""user""agent"
Example: "developerUser"
curl -i -X POST \
  https://memoryserver-staging-223473570766.us-west1.run.app/v1/user/batch \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: string' \
  -d '{
    "users": [
      {
        "email": "user@example.com",
        "external_id": "user123",
        "metadata": {
          "name": "John Doe",
          "preferences": {
            "theme": "dark"
          }
        },
        "type": "developerUser"
      }
    ]
  }'

Responses

Successful Response

Bodyapplication/json
codeinteger(Code)required

HTTP status code

Example: 200
statusstring(Status)required

'success' or 'error'

Example: "success"
dataArray of Data (objects) or Data (null)(Data)
Example: [{"created_at":"2024-03-20T10:00:00.000Z","email":"user1@example.com","external_id":"user123","metadata":{"name":"John Doe","preferences":{"theme":"dark"}},"updated_at":"2024-03-20T10:00:00.000Z","user_id":"abc123"}]
Any of:
totalTotal (integer) or Total (null)(Total)
Example: 1
Any of:
integer(Total)
pagePage (integer) or Page (null)(Page)
Example: 1
Any of:
integer(Page)
page_sizePage Size (integer) or Page Size (null)(Page Size)
Example: 10
Any of:
integer(Page Size)
errorError (string) or Error (null)(Error)
Any of:
string(Error)
detailsDetails (any) or Details (null)(Details)
Any of:
any(Details)
Response
application/json
{ "code": 200, "data": [ {} ], "page": 1, "page_size": 10, "status": "success", "total": 1 }

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

organization_idOrganization Id (string) or Organization Id (null)(Organization Id)

Optional organization ID for multi-tenant feedback scoping. When provided, feedback is scoped to this organization.

Any of:

Optional organization ID for multi-tenant feedback scoping. When provided, feedback is scoped to this organization.

string(Organization Id)

Optional organization ID for multi-tenant feedback scoping. When provided, feedback is scoped to this organization.

namespace_idNamespace Id (string) or Namespace Id (null)(Namespace Id)

Optional namespace ID for multi-tenant feedback scoping. When provided, feedback is scoped to this namespace.

Any of:

Optional namespace ID for multi-tenant feedback scoping. When provided, feedback is scoped to this namespace.

string(Namespace Id)

Optional namespace ID for multi-tenant feedback scoping. When provided, feedback is scoped to this namespace.

curl -i -X POST \
  https://memoryserver-staging-223473570766.us-west1.run.app/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" }

Memory

Operations

Memory Status

Operations

User

Operations

Feedback

Operations

Schema Management

Operations

Messages

Operations

omo

Operations

Namespace

Operations

Frequency Schemas

Operations

Holographic Transform

Operations

Instance Configuration

Operations

AI Proxy

Operations

Sync

Operations

Telemetry

Operations

Document

Operations

GraphQL

Operations

Authentication

Operations