API for managing enterprise context and memory items with authentication and user-specific data.
API for managing enterprise context and memory items with authentication and user-specific data.
This API supports three authentication methods:
X-API-Key headerX-API-Key: <your-api-key>X-Session-Token headerX-Session-Token: <your-session-token>Authorization headerAuthorization: Bearer <token>All endpoints require one of these authentication methods.
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'Namespace deleted
ID of deleted namespace
ID of deleted namespace
ID of deleted namespace
Human-readable message
Human-readable message
Human-readable message
Cascade deletion details
Cascade deletion details
Error message if failed
Error message if failed
Error message if failed
{ "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": {} }
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.
Human-readable name for the API key (shown in admin UIs).
Environment label: development, staging, or production.
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"
]
}'{ "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": {} }
Vector-store agnostic producer.
Returns everything you'd want to index in any vector DB -- base embedding, 14-band extracted signals, per-band SBERT/Qwen embeddings, phases, and optional rot_v3 / concat reconstructions.
Uses the SAME extraction + embedding path as /v1/graph/rerank uses for queries, so artifacts produced here can be scored by /v1/graph/rerank without any drift.
Optional caller-provided base embedding (Qwen 2560-d). If omitted, the server computes it.
Optional caller-provided base embedding (Qwen 2560-d). If omitted, the server computes it.
Domain shortname or full schema id controlling which frequency bands and extraction rules are used. Built-in shortnames: "general" (default), "code", "cosqa", "codetrans", "codetransocean", "codetransocean_hybrid", "text2sql", "scifact", "nfcorpus", "fiqa", "legal", "medical", "ecommerce", "coffee_shops". You can also pass a full schema id (e.g. "code_search:cosqa:2.0.0") or a custom domain_id registered via POST /v1/graph/domains.
Domain shortname or full schema id controlling which frequency bands and extraction rules are used. Built-in shortnames: "general" (default), "code", "cosqa", "codetrans", "codetransocean", "codetransocean_hybrid", "text2sql", "scifact", "nfcorpus", "fiqa", "legal", "medical", "ecommerce", "coffee_shops". You can also pass a full schema id (e.g. "code_search:cosqa:2.0.0") or a custom domain_id registered via POST /v1/graph/domains.
Domain shortname or full schema id controlling which frequency bands and extraction rules are used. Built-in shortnames: "general" (default), "code", "cosqa", "codetrans", "codetransocean", "codetransocean_hybrid", "text2sql", "scifact", "nfcorpus", "fiqa", "legal", "medical", "ecommerce", "coffee_shops". You can also pass a full schema id (e.g. "code_search:cosqa:2.0.0") or a custom domain_id registered via POST /v1/graph/domains.
Free-form user metadata to attach (optional, not used for scoring).
Free-form user metadata to attach (optional, not used for scoring).
Embedder for per-band signal vectors. 'sbert' (384d, default) is ~10x cheaper to store than 'qwen' (2560d, matched to base).
If true, include the rot_v3 vector in the response.
curl -i -X POST \
https://memory.papr.ai/v1/graph/transform \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-d '{
"text": "string",
"embedding": [
0
],
"domain_id": "string",
"metadata": {},
"signal_embedder": "sbert",
"return_rot_v3": false,
"return_concat": false
}'Successful Response
Signal band-name -> extracted text (e.g. {'docstring': '...', 'function_name': '...'}).
Signal band-name -> embedding vector (384-d sbert or 2560-d qwen).
Rotation v3 vector (only when return_rot_v3=true).
Rotation v3 vector (only when return_rot_v3=true).
Base + bands concatenation (only when return_concat=true).
Base + bands concatenation (only when return_concat=true).
{ "phases": [ 0 ], "embedding": [ 0 ], "signals": { "property1": "string", "property2": "string" }, "signal_embeddings": { "property1": [ … ], "property2": [ … ] }, "rot_v3": [ 0 ], "concat_embedding": [ 0 ], "id": "string", "domain_id": "string", "meta": {} }