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

Get Session History

Request

Retrieve message history for a specific conversation session.

Authentication Required: Bearer token, API key, or session token

Pagination:

  • Use limit and skip parameters for pagination
  • Messages are returned in reverse chronological order (newest first)
  • total_count indicates total messages in the session

Summaries (if available):

  • Returns hierarchical conversation summaries (short/medium/long-term)
  • Includes context_for_llm field with pre-compressed context
  • Summaries are automatically generated every 15 messages
  • Use /sessions/{session_id}/compress endpoint to retrieve on-demand

Access Control:

  • Only returns messages for the authenticated user
  • Workspace scoping is applied if available
Path
session_idstring(Session Id)required
Query
limitinteger(Limit)[ 1 .. 100 ]

Maximum number of messages to return

Default 50
skipinteger(Skip)>= 0

Number of messages to skip for pagination

Default 0
curl -i -X GET \
  'https://memoryserver-staging-223473570766.us-west1.run.app/v1/messages/sessions/{session_id}?limit=50&skip=0' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Message history retrieved

Bodyapplication/json
sessionIdstring(Sessionid)required

Session ID of the conversation

Example: "session_123"
messagesArray of objects(Messages)required

List of messages in chronological order

Example: [{"content":"Can you help me plan the Q4 product roadmap?","createdAt":"2024-01-15T10:30:00Z","objectId":"msg_abc123","processing_status":"completed","role":"user","sessionId":"session_123"},{"content":"I'd be happy to help you plan your Q4 roadmap. Let's start by identifying your key objectives.","createdAt":"2024-01-15T10:31:00Z","objectId":"msg_def456","processing_status":"completed","role":"assistant","sessionId":"session_123"}]
messages[].​objectIdstring(Objectid)required

Parse Server objectId of the stored message

Example: "msg_abc123"
messages[].​sessionIdstring(Sessionid)required

Session ID of the conversation

Example: "session_123"
messages[].​rolestring(MessageRole)required

Role of the message sender

Enum"user""assistant"
Example: "user"
messages[].​contentContent (string) or Array of Content (objects)(Content)required

Content of the message - can be a simple string or structured content objects

Example: "Can you help me plan the Q4 product roadmap?"
Any of:

Content of the message - can be a simple string or structured content objects

string(Content)

Content of the message - can be a simple string or structured content objects

messages[].​createdAtstring(date-time)(Createdat)required

When the message was created

Example: "2024-01-15T10:30:00Z"
messages[].​processing_statusstring(Processing Status)

Status of background processing (queued, analyzing, completed, failed)

Default "queued"
Example: "queued"
total_countinteger(Total Count)required

Total number of messages in the session

Example: 2
summariesConversationSummaryResponse (object) or null

Hierarchical conversation summaries for context compression

Example: {"long_term":"Product planning and strategy conversation","medium_term":"Ongoing product planning discussion for Q4","short_term":"User requested help planning Q4 product roadmap","topics":["product","roadmap","planning","Q4"]}
Any of:

Hierarchical conversation summaries for context compression

context_for_llmContext For Llm (string) or Context For Llm (null)(Context For Llm)

Pre-formatted compressed context ready for LLM consumption (summaries + recent messages)

Example: "FULL SESSION: Product planning and strategy conversation\nRECENT (last ~100): Ongoing product planning discussion for Q4\nCURRENT (last 15): User requested help planning Q4 product roadmap"
Any of:

Pre-formatted compressed context ready for LLM consumption (summaries + recent messages)

string(Context For Llm)

Pre-formatted compressed context ready for LLM consumption (summaries + recent messages)

Response
application/json
{ "context_for_llm": "FULL SESSION: Product planning and strategy conversation\nRECENT (last ~100): Ongoing product planning discussion for Q4\nCURRENT (last 15): User requested help planning Q4 product roadmap", "messages": [ {}, {} ], "sessionId": "session_123", "summaries": { "long_term": "Product planning and strategy conversation", "medium_term": "Ongoing product planning discussion for Q4", "short_term": "User requested help planning Q4 product roadmap", "topics": [] }, "total_count": 2 }

Update Session

Request

Update session properties (e.g., title, metadata).

Authentication Required: Bearer token, API key, or session token

Updatable Fields:

  • title: Update the conversation title
  • metadata: Update session metadata (merged with existing)

Example Request:

{
    "title": "Updated Session Title",
    "metadata": {"custom_field": "value"}
}
Path
session_idstring(Session Id)required
Bodyapplication/jsonrequired
titleTitle (string) or Title (null)(Title)

New title for the session

Any of:

New title for the session

string(Title)

New title for the session

metadataMetadata (object) or Metadata (null)(Metadata)

Metadata to merge with existing session metadata

Any of:

Metadata to merge with existing session metadata

curl -i -X PATCH \
  'https://memoryserver-staging-223473570766.us-west1.run.app/v1/messages/sessions/{session_id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "string",
    "metadata": {}
  }'

Responses

Session updated successfully

Bodyapplication/json
any
Response
application/json
null

Get Session Status

Request

Get processing status for messages in a session.

Authentication Required: Bearer token, API key, or session token

Status Information:

  • Total messages in session
  • Processing status breakdown (queued, analyzing, completed, failed)
  • Any messages with processing errors
Path
session_idstring(Session Id)required
curl -i -X GET \
  'https://memoryserver-staging-223473570766.us-west1.run.app/v1/messages/sessions/{session_id}/status' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Session processing status

Bodyapplication/json
any
Response
application/json
null

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