{"components":{"schemas":{"AddMemoryRequest":{"properties":{"action":{"example":"said","type":"string"},"actor":{"example":"user-42","type":"string"},"confidence":{"description":"Reliability signal [0.0, 1.0]. Default 1.0.","maximum":1,"minimum":0,"type":"number"},"metadata":{"type":"object"},"record_type":{"default":"Temporal","enum":["Temporal","Symbolic","Procedural","Reflexion","Perception"],"type":"string"},"source":{"description":"Who/what wrote this memory (e.g. 'user-input', 'claude-3-7')","nullable":true,"type":"string"},"target":{"example":"The meeting is at 3pm","type":"string"},"ttl_seconds":{"description":"Auto-expire after N seconds","nullable":true,"type":"integer"}},"required":["actor","action","target"],"type":"object"},"BulkAddRequest":{"properties":{"records":{"items":{"$ref":"#/components/schemas/AddMemoryRequest"},"type":"array"}},"required":["records"],"type":"object"},"EmbedAndAddRequest":{"properties":{"action":{"type":"string"},"actor":{"type":"string"},"embedding_model":{"description":"Format: ollama/<model> or openai/<model>","example":"ollama/nomic-embed-text","type":"string"},"metadata":{"type":"object"},"record_type":{"default":"Temporal","type":"string"},"target":{"type":"string"}},"required":["actor","action","target","embedding_model"],"type":"object"},"MemoryRecord":{"properties":{"action":{"type":"string"},"actor":{"type":"string"},"id":{"format":"uuid","type":"string"},"integrity":{"nullable":true,"type":"string"},"metadata":{"type":"object"},"record_type":{"type":"string"},"target":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"},"SearchRequest":{"properties":{"embedding":{"items":{"type":"number"},"nullable":true,"type":"array"},"limit":{"default":10,"type":"integer"},"query":{"type":"string"}},"required":["query"],"type":"object"}},"securitySchemes":{"ApiKeyAuth":{"description":"Required when HIPCORTEX_API_KEYS is set. Unset = open mode.","in":"header","name":"X-Api-Key","type":"apiKey"}}},"info":{"contact":{"url":"https://github.com/farmountain/HipCortex"},"description":"Persistent causal memory for AI agents. Sub-millisecond writes, temporal decay, causal world model, GDPR-compliant.","license":{"name":"Apache 2.0","url":"https://opensource.org/licenses/Apache-2.0"},"title":"HipCortex Memory Engine","version":"0.2.0"},"openapi":"3.0.3","paths":{"/coherence/status":{"get":{"operationId":"getCoherenceStatus","responses":{"200":{"description":"Coherence state"}},"summary":"Cross-module coherence metrics"}},"/graph":{"get":{"operationId":"getGraph","responses":{"200":{"description":"Nodes and edges"}},"security":[],"summary":"Full symbolic knowledge graph"}},"/health":{"get":{"operationId":"healthCheck","responses":{"200":{"description":"ok"}},"security":[],"summary":"Health check"}},"/memory/add":{"post":{"operationId":"addMemory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddMemoryRequest"}}},"required":true},"responses":{"200":{"description":"Success"}},"summary":"Store a memory record"}},"/memory/bulk":{"post":{"operationId":"bulkAddMemory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAddRequest"}}},"required":true},"responses":{"200":{"description":"Bulk result"}},"summary":"Store multiple records in one request"}},"/memory/embed":{"post":{"operationId":"embedAndStore","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedAndAddRequest"}}},"required":true},"responses":{"200":{"description":"Stored with embedding"}},"summary":"Auto-generate embedding then store memory"}},"/memory/export":{"get":{"operationId":"exportMemory","parameters":[{"description":"Filter by actor (optional)","in":"query","name":"actor","schema":{"type":"string"}}],"responses":{"200":{"description":"All records as JSON array"}},"summary":"Export all memory records as JSON (data portability)"}},"/memory/forget/{actor}":{"delete":{"operationId":"forgetActor","parameters":[{"in":"path","name":"actor","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deleted"}},"summary":"GDPR right-to-forget — delete all records for actor"}},"/memory/ingest":{"post":{"operationId":"ingestMemory","requestBody":{"content":{"application/json":{"schema":{"properties":{"actor":{"description":"Optional actor override","type":"string"},"context":{"enum":["meeting","code","chat","sensor","decision"],"type":"string"},"session_id":{"type":"string"},"text":{"description":"Plain text to remember","type":"string"}},"required":["text"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Stored with auto-classification result"}},"summary":"Zero-config smart ingest — auto-classifies record_type, priority, TTL, tags from plain text"}},"/memory/latest":{"get":{"operationId":"getLatestMemory","parameters":[{"in":"query","name":"actor","schema":{"type":"string"}},{"in":"query","name":"action","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":20,"type":"integer"}}],"responses":{"200":{"description":"Latest records"}},"security":[],"summary":"Most recent unique fact per actor+action (solves current-value queries)"}},"/memory/query":{"get":{"operationId":"queryMemory","parameters":[{"in":"query","name":"actor","schema":{"type":"string"}},{"in":"query","name":"action","schema":{"type":"string"}},{"in":"query","name":"record_type","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":100,"type":"integer"}}],"responses":{"200":{"description":"Records"}},"summary":"Query memory records"}},"/memory/search":{"post":{"operationId":"searchMemory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}},"required":true},"responses":{"200":{"description":"Search results"}},"summary":"Semantic + keyword search. Add embedding_model to auto-generate query embedding."}},"/memory/update/{id}":{"patch":{"operationId":"updateMemory","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action":{"type":"string"},"confidence":{"maximum":1,"minimum":0,"type":"number"},"metadata":{"type":"object"},"source":{"type":"string"},"target":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"description":"Updated"},"404":{"description":"Not found"}},"summary":"Versioned in-place update of a memory record"}},"/openapi.json":{"get":{"operationId":"getOpenApiSpec","responses":{"200":{"description":"OpenAPI 3.0 JSON"}},"security":[],"summary":"This OpenAPI spec"}},"/pricing":{"get":{"operationId":"getPricing","responses":{"200":{"description":"HTML"}},"security":[],"summary":"Pricing page HTML"}},"/stats":{"get":{"operationId":"getStats","responses":{"200":{"description":"Stats JSON"}},"security":[],"summary":"Live server statistics (public)"}},"/tier":{"get":{"operationId":"getTier","responses":{"200":{"description":"Tier + limits"}},"summary":"API key tier info and limits"}}},"security":[{"ApiKeyAuth":[]}],"servers":[{"description":"Managed SaaS (Frankfurt)","url":"https://hipcortex.fly.dev"},{"description":"Local self-hosted","url":"http://localhost:3030"}]}