Getting Started

Quick Start

A receipt for what passed between a person and an AI. Capture what mattered as a schema-bound record, seal it, verify it — when someone asks what your AI did, a sealed record answers.

Install

Memory Platform Adapter

Enrich Mem0, Zep, or LangChain

npm install deepadata-mem0-adapter

MCP Server

For Claude Desktop and AI agents

npx -y deepadata-edm-mcp-server

Authenticate

Add your API key to your environment.

DEEPADATA_API_KEY=dda_live_your_key

For scopes and key management, see Authentication →

First call

One function. Returns a structured significance artifact.

Set DEEPADATA_API_KEY in your .env file before running.

import { enrichWithEDM } from 'deepadata-mem0-adapter'

// DEEPADATA_API_KEY is read automatically from your environment variables
const { edmArtifact } = await enrichWithEDM(
  "Had a long call with mum today. She remembered the kookaburra joke from my childhood.",
  { profile: 'extended' }
)

Extended profile (62 fields) is the recommended default. Essential for lightweight capture. Full for clinical/regulated contexts. Set default per API key at /platform/api-access-keys.

Building for a specific vertical? Partner profiles let you select exactly the fields your use case needs. See the Profiles documentation.

What came back

The artifact encodes what mattered — not just what was said.

{
  "constellation": {
    "emotion_primary": "warmth",
    "arc_type": "bond",
    "narrative_arc": "reconnection"
  },
  "gravity": {
    "emotional_weight": 0.82,
    "recall_triggers": ["kookaburra", "childhood", "mum's voice"],
    "identity_thread": "relationship with mother"
  },
  "milky_way": {
    "associated_people": ["mum"],
    "tether_type": "familial"
  }
}

What the typed surface gives you

The query "when was I happiest with mum" shares no words with the stored text — nothing lexical or semantic to match. The typed record carries what the text alone cannot: emotional weight, arc, recurrence, and identity threads, addressable as fields rather than prose.

Prose alone

  • Holds: what was said
  • Queryable by: words and their neighbors

EDM typed fields

  • Holds: what mattered
  • Queryable by: weight, arc, state, recurrence

Query by significance

Call /v1/activate to translate a natural language query into significance field filters. Your memory system applies these alongside its existing semantic search.

// Step 1: Get significance field filters from /v1/activate
const { data } = await fetch(
  'https://deepadata.com/api/v1/activate',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer dda_live_...',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: 'when was I happiest with mum',
      subject_vp_id: 'user_123', // Replace with your user ID
    }),
  }
).then(r => r.json())

// data.field_filters contains:
// [
//   { field: 'emotional_weight',
//     operator: 'gte', value: 0.6,
//     weight: 0.82 },
//   { field: 'tether_type',
//     operator: 'not_null',
//     weight: 0.74 },
//   { field: 'identity_thread',
//     operator: 'not_null',
//     weight: 0.69 }
// ]

// Step 2: Apply filters to your
// memory system query alongside
// semantic search

The significance channel runs alongside your existing semantic search — it finds what similarity misses.

Next steps