Knowledge Memory Pricing Docs

Memory Signup

POST /v1/memory/signup

Register for the Memory API. Your API key will be sent to the provided email address. If you already have an account, your existing key will be resent.

https://api.ragionex.com/v1/memory/signup
No Authentication Required

This endpoint does not require an API key.

Request Body

Parameter Type Required Description
email string required Your email address (5-256 characters)

Example Request

curl
curl -X POST https://api.ragionex.com/v1/memory/signup \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]"
  }'

Response

200 OK
{
  "success": true,
  "message": "API key sent to your email. If you don't see it, check your spam folder."
}

Memory Write

POST /v1/memory/write

Store a new memory. The content is indexed asynchronously in the background. Use the /v1/memory/status/{id} endpoint to check when indexing is complete.

https://api.ragionex.com/v1/memory/write

Request Body

Parameter Type Required Description
content string required The memory content to store (max 50,000 characters)
project string required Organizational label for the memory. Lowercase letters, digits, hyphens only. 1-50 characters. Pattern: ^[a-z0-9-]+$. New project names are created automatically on first write.

Example Request

curl
curl -X POST https://api.ragionex.com/v1/memory/write \
  -H "Content-Type: application/json" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx" \
  -d '{
    "content": "User prefers TypeScript over JavaScript. Always use strict mode and explicit types.",
    "project": "acme-app"
  }'
Python
import requests

response = requests.post(
    "https://api.ragionex.com/v1/memory/write",
    headers={"X-API-Key": "rgx_dp_xxxxxxxxxxxxxxxx"},
    json={
        "content": "User prefers TypeScript over JavaScript. Always use strict mode and explicit types.",
        "project": "acme-app"
    }
)
data = response.json()
print(f"Memory ID: {data['id']} (project: {data['project']})")

Response

200 OK
{
  "success": true,
  "id": "mem_K7X2P9Q4R1",
  "status": "processing",
  "project": "acme-app"
}
400 - Invalid Project Name
{
  "success": false,
  "error": "Invalid project name. Allowed: lowercase letters, digits, hyphens; 1-50 chars."
}
400 - Quota Exceeded
{
  "success": false,
  "error": "Free tier limit reached (1000 total memories). Upgrade to Pro for higher limits."
}
Async Processing

The memory is indexed in the background. The status field will be "processing" until indexing completes, then changes to "ready".

Memory List

GET /v1/memory/list

List all memories for the authenticated user, ordered by creation date (newest first). Returns a preview of each memory (first 200 characters).

https://api.ragionex.com/v1/memory/list

Query Parameters

Parameter Type Required Description
project string optional Filter to one project. Omit to list memories across all projects.

Example Request

curl
curl -X GET "https://api.ragionex.com/v1/memory/list?project=acme-app" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx"

Response

200 OK
{
  "success": true,
  "memories": [
    {
      "id": "mem_K7X2P9Q4R1",
      "preview": "User prefers TypeScript over JavaScript. Always use strict mode...",
      "status": "ready",
      "project": "acme-app",
      "created_at": 1712880000
    },
    {
      "id": "mem_A1B2C3D4E5",
      "preview": "Project uses PostgreSQL for the main database...",
      "status": "processing",
      "project": "acme-app",
      "created_at": 1712876400
    }
  ]
}

Memory View

POST /v1/memory/view

Retrieve the full content of specific memories by their IDs. Non-owned IDs are silently ignored.

https://api.ragionex.com/v1/memory/view

Request Body

Parameter Type Required Description
ids array required Array of memory IDs to retrieve (1-50 IDs)

Example Request

curl
curl -X POST https://api.ragionex.com/v1/memory/view \
  -H "Content-Type: application/json" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx" \
  -d '{
    "ids": ["mem_K7X2P9Q4R1", "mem_A1B2C3D4E5"]
  }'

Response

200 OK
{
  "success": true,
  "memories": [
    {
      "id": "mem_K7X2P9Q4R1",
      "content": "User prefers TypeScript over JavaScript. Always use strict mode and explicit types.",
      "status": "ready",
      "project": "acme-app",
      "created_at": 1712880000
    }
  ]
}

Memory Update

PUT /v1/memory/update

Update an existing memory. Supports partial updates: you can change the content only, the project only, or both. Content changes trigger re-indexing; project-only changes update metadata in place without re-indexing.

https://api.ragionex.com/v1/memory/update

Request Body

Parameter Type Required Description
id string required The memory ID to update
content string optional New memory content (max 50,000 characters). Triggers full re-index.
project string optional Move the memory to a different project. No re-index - only metadata is updated.
At least one required

You must provide content, project, or both. Providing only id returns a 400 error.

Example - Content Only (triggers re-index)

curl
curl -X PUT https://api.ragionex.com/v1/memory/update \
  -H "Content-Type: application/json" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx" \
  -d '{
    "id": "mem_K7X2P9Q4R1",
    "content": "User now prefers Python over TypeScript for data science projects."
  }'

Example - Project Only (fast, no re-index)

curl
curl -X PUT https://api.ragionex.com/v1/memory/update \
  -H "Content-Type: application/json" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx" \
  -d '{
    "id": "mem_K7X2P9Q4R1",
    "project": "acme-mobile"
  }'

Example - Both

curl
curl -X PUT https://api.ragionex.com/v1/memory/update \
  -H "Content-Type: application/json" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx" \
  -d '{
    "id": "mem_K7X2P9Q4R1",
    "content": "Updated content for the mobile project context.",
    "project": "acme-mobile"
  }'

Response - Content Changed

200 OK
{
  "success": true,
  "id": "mem_K7X2P9Q4R1",
  "status": "processing",
  "project": "acme-app"
}

Response - Project Only

200 OK
{
  "success": true,
  "id": "mem_K7X2P9Q4R1",
  "status": "ready",
  "project": "acme-mobile"
}
400 - Quota Exceeded
{
  "success": false,
  "error": "Free tier limit reached (500 writes per month). Resets on 2026-05-01. Upgrade to Pro for higher limits."
}
Writes Counter

A content update counts as one write (same indexing cost as a fresh write). A project-only update does NOT count toward the writes-per-month quota.

Memory Delete

DELETE /v1/memory/delete

Delete one or more memories permanently. This action cannot be undone.

https://api.ragionex.com/v1/memory/delete

Request Body

Parameter Type Required Description
ids array required Array of memory IDs to delete (1-50 IDs)

Example Request

curl
curl -X DELETE https://api.ragionex.com/v1/memory/delete \
  -H "Content-Type: application/json" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx" \
  -d '{
    "ids": ["mem_K7X2P9Q4R1"]
  }'

Response

200 OK
{
  "success": true,
  "deleted": 1
}

Memory Status

GET /v1/memory/status/{memory_id}

Check the processing status of a specific memory.

https://api.ragionex.com/v1/memory/status/{memory_id}

Path Parameters

Parameter Type Required Description
memory_id string required The memory ID to check

Example Request

curl
curl -X GET https://api.ragionex.com/v1/memory/status/mem_K7X2P9Q4R1 \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx"

Response

200 OK
{
  "success": true,
  "id": "mem_K7X2P9Q4R1",
  "status": "ready"
}

Status Values

Status Description
processing Memory is being indexed. Not yet searchable.
ready Memory is fully indexed and searchable.
failed Indexing failed. Contact support.

Memory Projects

GET /v1/memory/projects

List all distinct projects for the authenticated user, including the memory count for each project. Useful for AI agents to self-discover available project names before writing or searching.

https://api.ragionex.com/v1/memory/projects

Example Request

curl
curl -X GET https://api.ragionex.com/v1/memory/projects \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx"

Response

200 OK
{
  "success": true,
  "projects": [
    { "name": "acme-app", "memory_count": 45 },
    { "name": "blog-backend", "memory_count": 12 },
    { "name": "mobile-app", "memory_count": 8 }
  ]
}

Rename Project

PATCH /v1/memory/projects/{name}

Bulk-rename a project. All memories with the current project name, plus their vector metadata, are updated atomically. No re-indexing - this is fast even for projects with thousands of memories.

https://api.ragionex.com/v1/memory/projects/{name}

Path Parameters

Parameter Type Required Description
name string required Current project name (the one being renamed)

Request Body

Parameter Type Required Description
new_name string required New project name. Same format as project field (lowercase alphanumeric + hyphen, 1-50 chars).

Example Request

curl
curl -X PATCH https://api.ragionex.com/v1/memory/projects/acme-app \
  -H "Content-Type: application/json" \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx" \
  -d '{
    "new_name": "acme-mobile"
  }'

Response

200 OK
{
  "success": true,
  "renamed": 45,
  "from": "acme-app",
  "to": "acme-mobile"
}
404 - Project Not Found
{
  "success": false,
  "error": "Project 'acme-app' does not exist for this user"
}

Delete Project

DELETE /v1/memory/projects/{name}

Delete a project and all its memories. This removes every memory with the given project name, along with their vector embeddings. This action cannot be undone.

https://api.ragionex.com/v1/memory/projects/{name}
Destructive operation

This endpoint permanently deletes all memories in the project. Agents should confirm with the user before calling it.

Path Parameters

Parameter Type Required Description
name string required Project name to delete

Example Request

curl
curl -X DELETE https://api.ragionex.com/v1/memory/projects/acme-app \
  -H "X-API-Key: rgx_dp_xxxxxxxxxxxxxxxx"

Response

200 OK
{
  "success": true,
  "deleted_memories": 45,
  "deleted_vectors": 320
}
404 - Project Not Found
{
  "success": false,
  "error": "Project 'acme-app' does not exist for this user"
}