FishMem

API Reference

Endpoints, request/response shapes, auth, and credits for the FishMem REST API.

The FishMem REST API uses familiar memory operations and mem0-style scope names, but clients should use this reference as the contract. Existing mem0 integrations may require response and behavior changes; see Migrate from mem0. Graph-memory users should start with Migrate from Zep or Graphiti; FishMem does not implement those SDK or context response contracts.

Base URL

https://fishmem.com

Authentication

Every request requires a Bearer token in the Authorization header. Keys look like fm_... — keep them server-side.

Authorization: Bearer fm_...

A missing or invalid key returns 401:

{
  "code": "INVALID_API_KEY",
  "message": "API key invalid",
  "request_id": "req_..."
}

The <memory> object

Reads and searches return memory objects with this shape:

{
  "id": "mem_…",
  "memory": "Prefers dark mode",
  "memory_type": "fact",
  "importance": 0.7,
  "user_id": "alex",
  "agent_id": null,
  "run_id": null,
  "metadata": null,
  "created_at": "2026-01-01T00:00:00.000Z",
  "updated_at": "2026-01-01T00:00:00.000Z",
  "event_date": null,
  "valid_from": null,
  "valid_to": null
}

Search results include an additional score field.

Errors

Any failure returns JSON with the same shape:

{
  "code": "MEMORY_NOT_FOUND",
  "message": "Memory not found",
  "request_id": "req_..."
}
FieldDescription
codeStable machine-readable error code
messageHuman-readable text
request_idRequest identifier, also returned as x-request-id
detailsOptional validation or conflict details

See Errors and idempotency for authentication, permission, validation, conflict, and hosted-credit behavior.

Credits

OperationCredits
Add with LLM extraction (infer: true)2
Add verbatim (infer: false)1
Search1
Direct document ingest1 per projected chunk
File extraction50 per started 5 MB, plus 1 per projected chunk
Document search1
List, Get, History, governed belief viewFree
Scope entity list, get, and removeFree
Document list, metadata, original content, deleteFree
Update, Delete, Delete all, Batch update/deleteFree

Endpoints

EndpointMethod & pathDescription
HealthGET /v1/healthInspect project readiness and durable backlog
Scope entities/v1/entities[/{type}/{id}]List, inspect, or remove structural user, agent, and run scopes
Documents and source RAG/v1/documents[/{id}]Version exact textual sources and retrieve citation-ready evidence
Asynchronous file extraction/v1/document-uploads[/{id}]Upload immutable files, queue extraction, and inspect status
Add memoriesPOST /v1/memoriesExtract refined records or store submitted records verbatim
Memory inference eventsGET /v1/events[/{id}]Poll queued extraction, retries, timing, and refined results
List memoriesGET /v1/memoriesList memories in a scope
Search memoriesPOST /v1/memories/searchSemantic search within a scope
Batch memory mutationsPUT/DELETE /v1/memories/batchQueue retry-safe updates or deletes for up to 1,000 IDs
Get a memoryGET /v1/memories/{id}Fetch a single memory
Update a memoryPUT /v1/memories/{id}Edit a memory's content or metadata
Delete a memoryDELETE /v1/memories/{id}Delete a single memory
Delete memories by scopeDELETE /v1/memoriesDelete all memories in a scope
Memory historyGET /v1/memories/{id}/historyAudit trail for a memory
StateGET /v1/state and /v1/state/historyQuery current or historical derived state
Governed beliefsGET /v1/beliefsAudit supported, contested, and superseded inferred beliefs
ProfileGET /v1/profileRead a profile or relevant profile sections
OperationsGET /v1/operations[/{id}], POST /v1/operations/{id}/retryInspect and redrive durable asynchronous work
Export and importPOST /v1/exports and /v1/importsQueue portable snapshot operations
OpenAPIGET /v1/openapi.jsonDownload the machine-readable contract

On this page