Overview

REST API

Call HyperMemory over plain HTTP and JSON

Every HyperMemory tool except hm_get_chat_context has a REST route. REST and MCP run the same implementation, so parameters, limits and results are identical — see each tool’s page for its fields.

Base URL and authentication

https://api.hypermemory.io/api/v1/memory

Send the same credentials as MCP, as a Bearer token:

Authorization: Bearer hm_YOUR_KEY

An API key is the usual choice for servers. An OAuth access token works too.

HeaderPurpose
AuthorizationRequired. Bearer <api key or access token>.
Content-Typeapplication/json on POST requests. Bodies are JSON objects of at most 16 MiB.
X-Request-IDOptional, up to 128 characters. Echoed on the response; reuse it to retry a write safely.
X-Graph-IDOptional. If sent, it must match the graph the credential is bound to.

Memory routes

MethodPathTool
POST/recallhm_recall
POST/storehm_store
POST/updatehm_update
POST/forgethm_forget — answers 202 when a large node is deleted in the background
POST/nodeshm_get_nodes
POST/find-relatedhm_find_related
POST/relationshipshm_add_relationships
GET/relationships/{key}A node’s edges and hyperedges: {key, binary_edges, hyperedges, truncated}
GET/overviewhm_get_overview
POST/ingesthm_ingest
GET/orphanshm_list_orphans — ?limit=&cursor=
POST/timelinehm_timeline
POST/timeline/writehm_timeline_write
POST/upload-filehm_upload_file
GET/fileshm_list_files — ?file_type=&search=&limit=
POST/tabular/outline, /tabular/range, /tabular/search, /tabular/tracehm_tabular — the body still includes mode
GET, POST/skillshm_skill
POST/hm_tokenshm_tokens

GET routes take their parameters as query-string values.

Export your graph

Exports run as background jobs.

MethodPathDescription
POST/exportsStart an export. Returns the export’s id.
GET/exports/{id}The export’s status.
GET/exports/{id}/downloadDownload the finished export as JSON.

The old GET /export route answers 410 export_moved. The CLI’s hm export -o backup.json starts an export, waits for it and downloads it.

Health

MethodPathDescription
GET/healthAlways 200, with status ok or degraded and the result of each check.
GET/ready200 when the service and its dependencies are ready, 503 when not.

Examples

curl -X POST https://api.hypermemory.io/api/v1/memory/store \
  -H "Authorization: Bearer $HYPERMEMORY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Request-ID: store-launch-date-1" \
  -d '{
    "key": "fact_launch_date",
    "node_type": "fact",
    "description": "Product launches on 2026-11-02 after the security review sign-off.",
    "relationships": [
      { "to_key": "project_web", "relationship": "launch date of the web project" }
    ]
  }'

Errors use a consistent JSON envelope — see Errors & limits.