Skip to main content
← Back to Docs

API Reference

The Unimatrix REST API — store and retrieve memory context across all LLMs and devices.

Authentication

Every request must include your Unimatrix API key in the Authorization header. Keys are generated in Settings → API Keys after signing in.

curl https://www.deployunimatrix.com/api/spaces \
  -H "Authorization: Bearer umx_your_api_key_here"

Endpoints

Base URL: https://www.deployunimatrix.com/api · Raw OpenAPI spec: /api/openapi.json

GEThttps://www.deployunimatrix.com/api/spaces

List memory workspaces

Returns all memory workspaces owned by the authenticated user.

Responses
  • 200List of spaces
  • 401Unauthorized
POSThttps://www.deployunimatrix.com/api/spaces

Create a memory workspace

Request Body (required)
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "isPublic": {
      "type": "boolean"
    }
  }
}
Responses
  • 201Space created
  • 400Invalid input
  • 401Unauthorized
GEThttps://www.deployunimatrix.com/api/spaces/{spaceId}

Get a space with its locations and memories

Path & Query Parameters
NameInSchema
spaceId *pathstring
Responses
  • 200Space detail
  • 404Not found
PATCHhttps://www.deployunimatrix.com/api/spaces/{spaceId}

Update a space

Path & Query Parameters
NameInSchema
spaceId *pathstring
Request Body (optional)
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "isPublic": {
      "type": "boolean"
    }
  }
}
Responses
  • 200Updated space
  • 404Not found
DELETEhttps://www.deployunimatrix.com/api/spaces/{spaceId}

Delete a space

Path & Query Parameters
NameInSchema
spaceId *pathstring
Responses
  • 200Deleted
  • 404Not found
GEThttps://www.deployunimatrix.com/api/memories

List memories

Path & Query Parameters
NameInSchema
spaceIdquerystring
Responses
  • 200List of memories
POSThttps://www.deployunimatrix.com/api/memories

Store a new memory

Request Body (required)
{
  "type": "object",
  "required": [
    "spaceId",
    "content"
  ],
  "properties": {
    "spaceId": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
Responses
  • 201Memory created
GEThttps://www.deployunimatrix.com/api/search

Full-text search across memories

Path & Query Parameters
NameInSchema
q *querystring
spaceIdquerystring
Responses
  • 200Search results
POSThttps://www.deployunimatrix.com/api/locations

Create a location (room) inside a space

Request Body (required)
{
  "type": "object",
  "required": [
    "spaceId",
    "name"
  ],
  "properties": {
    "spaceId": {
      "type": "string"
    },
    "parentId": {
      "type": "string",
      "nullable": true
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "position": {
      "type": "integer"
    }
  }
}
Responses
  • 201Location created
GEThttps://www.deployunimatrix.com/api/tools

Discover available Unimatrix tools

Returns all memory/context tools in OpenAI function calling format by default. Add ?format=mcp to receive the raw MCP tool definitions instead. This endpoint is public (no auth required) because tool schemas are not sensitive.

Path & Query Parameters
NameInSchema
formatquerystring · openai | mcp · default: openai
Responses
  • 200List of tools
  • 500Failed to load tools from MCP backend
POSThttps://www.deployunimatrix.com/api/tools/call

Execute a Unimatrix tool (MCP REST fallback)

Translates a simple {toolName, args} payload into an internal MCP tools/call invocation. Use the exact tool names returned by GET /api/tools. Requires a valid Unimatrix API key. FOR NON-MCP LLMs: ALWAYS pass top-level 'sourceLlm' (e.g. 'gemini', 'chatgpt') in the body root so conversations auto-file into the per-LLM history location auto-created when you connected the provider during onboarding. The store_memory tool description (from /api/tools) contains the full system-prompt text to paste into your LLM.

Request Body (required)
{
  "$ref": "#/components/schemas/ToolCallRequest"
}
Responses
  • 200Tool executed successfully
  • 400Bad request (missing toolName or malformed args)
  • 401Unauthorized (invalid or missing API key)
  • 404Unknown tool
  • 500Internal tool execution error

Universal Tool Endpoint

GET /api/tools and POST /api/tools/call translate between the REST API and the MCP tool surface for LLMs that support function calling but not MCP. Call GET /api/tools to discover schemas, then execute tools by name.

For non-MCP LLMs, always pass sourceLlm (e.g. "gemini", "chatgpt") at the top level of the /api/tools/call body so stored memories auto-file into the correct per-LLM history location.

Learn how MCP clients connect →