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.
| Header | Purpose |
|---|---|
Authorization | Required. Bearer <api key or access token>. |
Content-Type | application/json on POST requests. Bodies are JSON objects of at most 16 MiB. |
X-Request-ID | Optional, up to 128 characters. Echoed on the response; reuse it to retry a write safely. |
X-Graph-ID | Optional. If sent, it must match the graph the credential is bound to. |
Memory routes
| Method | Path | Tool |
|---|---|---|
| POST | /recall | hm_recall |
| POST | /store | hm_store |
| POST | /update | hm_update |
| POST | /forget | hm_forget — answers 202 when a large node is deleted in the background |
| POST | /nodes | hm_get_nodes |
| POST | /find-related | hm_find_related |
| POST | /relationships | hm_add_relationships |
| GET | /relationships/{key} | A node’s edges and hyperedges: {key, binary_edges, hyperedges, truncated} |
| GET | /overview | hm_get_overview |
| POST | /ingest | hm_ingest |
| GET | /orphans | hm_list_orphans — ?limit=&cursor= |
| POST | /timeline | hm_timeline |
| POST | /timeline/write | hm_timeline_write |
| POST | /upload-file | hm_upload_file |
| GET | /files | hm_list_files — ?file_type=&search=&limit= |
| POST | /tabular/outline, /tabular/range, /tabular/search, /tabular/trace | hm_tabular — the body still includes mode |
| GET, POST | /skills | hm_skill |
| POST | /hm_tokens | hm_tokens |
GET routes take their parameters as query-string values.
Export your graph
Exports run as background jobs.
| Method | Path | Description |
|---|---|---|
| POST | /exports | Start an export. Returns the export’s id. |
| GET | /exports/{id} | The export’s status. |
| GET | /exports/{id}/download | Download 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
| Method | Path | Description |
|---|---|---|
| GET | /health | Always 200, with status ok or degraded and the result of each check. |
| GET | /ready | 200 when the service and its dependencies are ready, 503 when not. |
Examples
Errors use a consistent JSON envelope — see Errors & limits.