Stores
Named, updatable collections of document encodings. Create, list, get, and delete stores.
Stores are named, updatable collections of document encodings. Cheap to create — use one
per corpus or tenant. All endpoints require Authorization: Bearer <key>.
Create a store
Creates a named store. Names are unique per project, 1–64 chars, [a-z0-9-_].
Request body
Prop
Type
Response 201
Returns the Store object.
curl -X POST https://api.rekall.sh/v1/stores \
-H "Authorization: Bearer $REKALL_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "contracts" }'const store = await rekall.stores.create("contracts");
// or simply: const store = await rekall.store("contracts"); // get-or-createstore = rekall.stores.create("contracts")
# or simply: store = rekall.store("contracts") # get-or-create{
"id": "st_8c2hd0",
"name": "contracts",
"n_docs": 0,
"size_bytes": 0,
"created_at": "2026-07-04T12:00:00Z"
}409 — store already exists
{ "error": {
"type": "store_already_exists",
"message": "A store named 'contracts' already exists.",
"fix": "Use it directly — stores are addressable by name: POST /v1/stores/contracts/search — or pick a new name."
}}The SDK helper rekall.store(name) is get-or-create and never raises this.
Other errors: 400 invalid_request, 401 unauthorized. See Errors.
List stores
Returns stores newest first.
Query parameters
Prop
Type
curl https://api.rekall.sh/v1/stores?limit=20 \
-H "Authorization: Bearer $REKALL_API_KEY"const { stores, nextCursor } = await rekall.stores.list({ limit: 20 });page = rekall.stores.list(limit=20)
for s in page.stores:
print(s.name, s.n_docs){
"stores": [
{ "id": "st_8c2hd0", "name": "contracts", "n_docs": 287, "size_bytes": 5242880, "created_at": "2026-07-04T12:00:00Z" }
],
"next_cursor": null
}Get a store
Returns the store's details and live stats. {store} is a name or id.
curl https://api.rekall.sh/v1/stores/contracts \
-H "Authorization: Bearer $REKALL_API_KEY"const info = await rekall.stores.get("contracts");
console.log(info.nDocs, info.sizeBytes);info = rekall.stores.get("contracts")
print(info.n_docs, info.size_bytes){
"id": "st_8c2hd0",
"name": "contracts",
"n_docs": 287,
"size_bytes": 5242880,
"created_at": "2026-07-04T12:00:00Z"
}Errors: 404 store_not_found, 401 unauthorized.
Delete a store
Deletes the store and all documents in it. Irreversible.
curl -X DELETE https://api.rekall.sh/v1/stores/contracts \
-H "Authorization: Bearer $REKALL_API_KEY"await rekall.stores.delete("contracts");rekall.stores.delete("contracts")Returns 204 No Content on success. Errors: 404 store_not_found, 401 unauthorized.