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
http://memory.papr.ai/

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 chronological order (oldest 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 \
  'http://memory.papr.ai/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 \
  'http://memory.papr.ai/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 \
  'http://memory.papr.ai/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

User

Operations

Feedback

Operations

Schema Management

Operations

Messages

Operations

omo

Operations

Sync

Operations

Telemetry

Operations

Document

Operations

GraphQL

Operations

Authentication

Operations