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

v1

Operations

Delete Namespace

Request

Delete a namespace and optionally cascade-delete all memories, Neo4j nodes, and ACL references associated with it.

Path
namespace_idstring(Namespace Id)required
Query
delete_memoriesboolean(Delete Memories)

Delete all memories in this namespace

Default true
delete_neo4j_nodesboolean(Delete Neo4J Nodes)

Delete all Neo4j nodes in this namespace

Default true
remove_acl_referencesboolean(Remove Acl References)

Remove namespace from ACL arrays on remaining nodes

Default true
Headers
X-API-Keystring(X-Api-Key)required
curl -i -X DELETE \
  'https://memory.papr.ai/v1/namespace/{namespace_id}?delete_memories=true&delete_neo4j_nodes=true&remove_acl_references=true' \
  -H 'X-API-Key: string'

Responses

Namespace deleted

Bodyapplication/json
codeinteger(Code)

HTTP status code

Default 200
statusstring(Status)

'success' or 'error'

Default "success"
namespace_idNamespace Id (string) or Namespace Id (null)(Namespace Id)

ID of deleted namespace

Any of:

ID of deleted namespace

string(Namespace Id)

ID of deleted namespace

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

Human-readable message

Any of:

Human-readable message

string(Message)

Human-readable message

cascadeCascadeDeletionResult (object) or null

Cascade deletion details

Any of:

Cascade deletion details

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, "status": "success", "namespace_id": "string", "message": "string", "cascade": { "memories_deleted": 0, "memories_failed": 0, "neo4j_nodes_deleted": 0, "acl_read_cleaned": 0, "acl_write_cleaned": 0 }, "error": "string", "details": {} }

Create Namespace Api Key

Request

Mint a new API key bound to the given namespace. Caller must authenticate with any API key belonging to the same organization (typically the org-wide / default-namespace key).

Security: The full key is returned exactly once in this response. Store it immediately — it cannot be retrieved later. Subsequent reads expose only the masked key_prefix.

Path
namespace_idstring(Namespace Id)required
Headers
X-API-Keystring(X-Api-Key)required
Bodyapplication/jsonrequired
namestring(Name)[ 1 .. 128 ] charactersrequired

Human-readable name for the API key (shown in admin UIs).

Example: "Acme Production API Key"
environmentstring(Environment)

Environment label: development, staging, or production.

Default "production"
Enum"development""staging""production"
Example: "production"
permissionsArray of strings(Permissions)[ 1 .. 3 ] items

Permissions granted by this key. Must be a subset of ['read', 'write', 'delete'].

Items Enum"read""write""delete"
Example: ["read","write","delete"]
curl -i -X POST \
  'https://memory.papr.ai/v1/namespace/{namespace_id}/api-keys' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: string' \
  -d '{
    "environment": "production",
    "name": "Acme Production API Key",
    "permissions": [
      "read",
      "write",
      "delete"
    ]
  }'

Responses

API key created

Bodyapplication/json
codeinteger(Code)

HTTP status code

Default 200
statusstring(Status)

'success' or 'error'

Default "success"
dataNamespaceApiKeyItem (object) or null

The newly created API key, including the full key string (only on creation).

Any of:

The newly created API key, including the full key string (only on creation).

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. NEVER contains the API key.

Any of:

Additional error details. NEVER contains the API key.

any(Details)

Additional error details. NEVER contains the API key.

Response
application/json
{ "code": 200, "status": "success", "data": { "objectId": "string", "key": "string", "key_prefix": "string", "name": "string", "namespace_id": "string", "organization_id": "string", "environment": "string", "permissions": [], "is_active": true, "createdAt": "string" }, "error": "string", "details": {} }

List all frequency schemas

Request

Returns all built-in frequency schemas with their field definitions and operational configuration. Use the schema_id or a shorthand alias when adding or searching memories with holographic embedding enabled.

Headers
X-API-KeyX-Api-Key (string) or X-Api-Key (null)(X-Api-Key)
Any of:
string(X-Api-Key)
curl -i -X GET \
  https://memory.papr.ai/v1/frequencies \
  -H 'X-API-Key: string'

Responses

Successful Response

Bodyapplication/json
successboolean(Success)
Default true
schemasArray of objects(Schemas)required
schemas[].​schema_idstring(Schema Id)required

Unique schema ID (domain:name:version)

schemas[].​namestring(Name)required

Schema name

schemas[].​domainstring(Domain)required

Domain (e.g. code_search, biomedical)

schemas[].​versionstring(Version)required

Schema version

schemas[].​descriptionstring(Description)

Human-readable description

Default ""
schemas[].​num_frequenciesinteger(Num Frequencies)required

Number of frequency bands

schemas[].​frequenciesArray of objects(Frequencies)required

Frequency band definitions

schemas[].​frequencies[].​frequency_hznumber(Frequency Hz)required

Frequency in Hz (brain-inspired band)

schemas[].​frequencies[].​namestring(Name)required

Field name extracted at this frequency

schemas[].​frequencies[].​typestring(Type)required

Field type: ENUM, FREE_TEXT, NUMERIC, DATE, MULTI_VALUE

schemas[].​frequencies[].​descriptionstring(Description)

Human-readable field description

Default ""
schemas[].​frequencies[].​weightnumber(Weight)

Default weight for this frequency band

Default 1
schemas[].​configobject(SchemaConfigResponse)required

Operational configuration

schemas[].​config.​dspy_model_pathDspy Model Path (string) or Dspy Model Path (null)(Dspy Model Path)

Path to DSPy-optimized extractor model (null = use direct LLM)

Any of:

Path to DSPy-optimized extractor model (null = use direct LLM)

string(Dspy Model Path)

Path to DSPy-optimized extractor model (null = use direct LLM)

schemas[].​config.​llm_metadata_modelstring(Llm Metadata Model)

LLM model for metadata extraction

Default "gpt-5-mini"
schemas[].​config.​weight_modestring(Weight Mode)

Frequency weight mode (legacy_sparse, code_search_v2, hybrid_optimized_v2)

Default "legacy_sparse"
schemas[].​config.​contrast_gammanumber(Contrast Gamma)

Contrast enhancement gamma

Default 2
schemas[].​config.​use_sparse_weightsboolean(Use Sparse Weights)

Enable sparse frequency weights

Default true
schemas[].​config.​use_complex_interferenceboolean(Use Complex Interference)

Enable complex interference scoring (PDCI, SFI)

Default true
schemas[].​config.​use_adaptive_weightsboolean(Use Adaptive Weights)

Enable query-adaptive frequency weights

Default true
schemas[].​config.​cross_encoder_modelstring(Cross Encoder Model)

Cross-encoder reranking model

Default "Qwen/Qwen3-Reranker-4B"
schemas[].​config.​cross_encoder_topkinteger(Cross Encoder Topk)

Number of candidates for cross-encoder reranking

Default 25
schemas[].​config.​qdrant_topkinteger(Qdrant Topk)

Over-fetch count from Qdrant for reranking

Default 50
schemas[].​config.​enable_entailment_rerankboolean(Enable Entailment Rerank)

Enable entailment-gated reranking (EGR)

Default true
schemas[].​config.​default_scoring_methodstring(Default Scoring Method)

Default scoring method for this schema

Default "egr_rerank"
totalinteger(Total)required
shortcutsobject(Shortcuts)

Shorthand aliases (e.g. 'cosqa' -> 'code_search:cosqa:2.0.0')

Response
application/json
{ "success": true, "schemas": [ {} ], "total": 0, "shortcuts": { "property1": "string", "property2": "string" } }

Memory

Operations

Memory Status

Operations

User

Operations

Feedback

Operations

Schema Management

Operations

Messages

Operations

omo

Operations

Namespace

Operations

Frequency Schemas

Operations

Holographic Transform (Deprecated)

Operations

Graph (CAESAR-8)

Operations

Graph Domains

Operations

Instance Configuration

Operations

AI Proxy

Operations

Sync

Operations

Telemetry

Operations

Document

Operations

GraphQL

Operations

Authentication

Operations