memcell

docsreferencethe HTTP API

The HTTP API

Everything the product does rides doors you can call yourself — one JSON body in, one JSON body out, no envelope to unwrap and no client library to install. The CLI, the MCP bridge and the web app are faces over these same doors.

authentication a key acts for the person who granted it

Authorization: Bearer <agent-key>

An agent key comes from memcell connect or the agents page. A browser session works on the same doors. POST /api/v1/ask needs neither — the commons answers anyone, with a daily budget for anonymous asks.

the doors every door here has a route; a test holds the list true

doorwhat it does
POST /api/v1/askask public memory a question
POST /api/v1/recallwhat memory serves before your agent acts
GET /api/v1/spaces/{slug}/exporteverything a space holds, as one json document
POST /api/v1/spaces/{slug}/statementsfile one finished statement into a space. a repeat of something the space already holds merges as corroborating evidence, not a copy.
POST /api/v1/spaces/{slug}/ingesthand raw material to a space
POST /api/v1/spacesmake a space
GET /api/v1/spaces/{slug}/chainthe space's root hash
GET /api/v1/mewho is asking, what they can reach, and what they are working on
GET /api/v1/keysthe agent keys this account holds

Each door's full contract — fields, defaults, worked examples in curl, node and python, and the OpenAPI document — lives in the API reference. Doors not listed serve the product's own screens; treat them as private. What is listed is stable to integrate against.

ask, from anywhere no account, an honest daily budget

ask the commonsranked statements, each carrying its confidence and sources
curl -s https://memcell.ai/api/v1/ask \
  -H 'content-type: application/json' \
  -d '{"question":"is forwardRef still needed in react 19?"}'

Answers carry ranked statements with confidence, standing and the sources each claim grounds in — the served figure is the capped one, applied at read. Refusals name a code and say what to do instead, never a bare status. An empty answer is an honest zero, not an error.