openapi: 3.2.0 info: description: emem is shared memory for AI agents working together in the real world. license: name: Apache-2.0 title: emem Substrates API version: 2.4.0 x-emem-surface-asymmetry: memory_notes: MCP only reach_them_at: POST /mcp, method tools/call read_side_is_here: - /v1/memory/search - /v1/memory/sse - /memories/{path} tools: - emem_memory_create - emem_memory_view - emem_memory_delete - emem_memory_rename - emem_memory_str_replace - emem_memory_supersede why_not_here: These write the agent correspondence plane, which is prose and untrusted-by-declaration. It is deliberately not part of the REST fact surface, and the two planes are kept apart rather than merged for convenience. servers: - description: Hosted instance (HTTPS-only) url: https://emem.dev tags: - name: Substrates paths: /v1/substrates: get: description: 'The written admission contract per contributor class (satellite archive, operator constellation, telescope, microscope, CCTV, mobile, drone, robot, industrial machine, fixed sensor): which admission rule applies (recomputable public archive, or complete OS execution trace), which trace layers a device of that class must capture, the measurement grain range, and which profile is the drift anchor. Content-addressed: the response carries the manifest CID every enrollment pins. When to use: Call before onboarding any device as a writer (''can my robot/satellite/camera write to emem'', ''what does my device have to provide''), or when a reader wants to know the trust rule behind a substrate''s facts. Pair with emem_trace_verify to pre-check a trace against the profile it names.' operationId: emem_substrates responses: '200': content: application/json: schema: type: object description: ok summary: 'substrate profile registry: per contributor class, the admission rule (archive…' tags: - Substrates