{
  "info": {
    "_postman_id": "63e8a13d-9e79-4137-b6c0-901a021f9fb2",
    "name": "Chordian Memory Service",
    "description": "Postman collection for the Chordian-GraphRAG API (v0.1.0).\n\n**Setup:**\n- Set the `baseUrl` collection variable (default: `http://localhost:8000`).\n- For `/memory/*` public endpoints, set `apiKey` and enable the `X-API-Key` header.\n- Path variables (e.g. `:graph_id`, `:conflict_id`) can be filled in the request's URL or Path Variables tab.\n",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Root & Health",
      "item": [
        {
          "name": "Root",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": []
            },
            "description": "Service root."
          },
          "response": []
        },
        {
          "name": "Health Check",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "health"
              ]
            },
            "description": "Health probe."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Ingest",
      "item": [
        {
          "name": "Ingest File",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ingest",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ingest"
              ]
            },
            "description": "Upload a file (PDF/DOCX/PPTX/XLSX/TXT/MD/CSV/JSON) and run the graph pipeline in the background. Returns a job ID for polling via GET /status.",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "file",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "list_id",
                  "value": "default",
                  "type": "text"
                },
                {
                  "key": "graph_name",
                  "value": "my-graph",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Ingest From Connectors",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ingest/connectors",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ingest",
                "connectors"
              ]
            },
            "description": "Trigger graph generation from Enterprise Search connector documents.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"list_id\": \"connectors\",\n  \"source_types\": [\n    \"google_drive\",\n    \"notion\"\n  ],\n  \"mode\": \"incremental\",\n  \"graph_name\": \"connectors-graph\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Chat",
      "item": [
        {
          "name": "Chat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/chat",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "chat"
              ]
            },
            "description": "Conversational endpoint over the graph.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"message\": \"Who are the board members of Vonterra AG?\",\n  \"tenantId\": \"default\",\n  \"listId\": \"default\",\n  \"question\": \"Who are the board members of Vonterra AG?\",\n  \"conversationHistory\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Graphs",
      "item": [
        {
          "name": "List Graphs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graphs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graphs"
              ]
            },
            "description": "List all GraphInstance nodes for the tenant."
          },
          "response": []
        },
        {
          "name": "Create Graph",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graphs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graphs"
              ]
            },
            "description": "Create a new empty GraphInstance.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"My Graph\",\n  \"description\": \"Optional description\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Update Graph",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graphs/:graph_id?graph_id=:graph_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graphs",
                ":graph_id"
              ],
              "query": [
                {
                  "key": "graph_id",
                  "value": ":graph_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "graph_id",
                  "value": ""
                }
              ]
            },
            "description": "Update graph metadata (name, description).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Updated name\",\n  \"description\": \"Updated description\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Delete Graph",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graphs/:graph_id?graph_id=:graph_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graphs",
                ":graph_id"
              ],
              "query": [
                {
                  "key": "graph_id",
                  "value": ":graph_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "graph_id",
                  "value": ""
                }
              ]
            },
            "description": "Delete a GraphInstance and all its associated graph data."
          },
          "response": []
        },
        {
          "name": "Graph Instance Stats",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graphs/:graph_id/stats?graph_id=:graph_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graphs",
                ":graph_id",
                "stats"
              ],
              "query": [
                {
                  "key": "graph_id",
                  "value": ":graph_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "graph_id",
                  "value": ""
                }
              ]
            },
            "description": "Node/edge counts and entity type breakdown for a specific graph."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Graph",
      "item": [
        {
          "name": "Get Graph",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph?entity_types=Person,Company&source_types=google_drive,notion&limit=400&offset=0&listId=default",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph"
              ],
              "query": [
                {
                  "key": "entity_types",
                  "value": "Person,Company",
                  "disabled": false
                },
                {
                  "key": "source_types",
                  "value": "google_drive,notion",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "400",
                  "disabled": false
                },
                {
                  "key": "offset",
                  "value": "0",
                  "disabled": false
                },
                {
                  "key": "listId",
                  "value": "default",
                  "disabled": false
                }
              ]
            },
            "description": "Return graph nodes and links, with optional filtering."
          },
          "response": []
        },
        {
          "name": "Graph Stats",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/stats",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "stats"
              ]
            },
            "description": "Entity and relationship counts plus source distribution."
          },
          "response": []
        },
        {
          "name": "Graph Schema",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/schema",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "schema"
              ]
            },
            "description": "Return the current schema registry (entity & relation types)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Generate & Status",
      "item": [
        {
          "name": "Generate Graph",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/generate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "generate"
              ]
            },
            "description": "Start background graph generation for a tenant list.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tenantId\": \"default\",\n  \"listId\": \"default\",\n  \"workflowCategory\": \"people\",\n  \"records\": [\n    {\n      \"name\": \"Stefan Meier\",\n      \"company\": \"Altikon GmbH\"\n    }\n  ],\n  \"columns\": [\n    {\n      \"id\": \"name\",\n      \"header\": \"Name\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Job Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/status?listId=default",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "status"
              ],
              "query": [
                {
                  "key": "listId",
                  "value": "default",
                  "disabled": false
                }
              ]
            },
            "description": "Poll the progress of a background generation job."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Sync",
      "item": [
        {
          "name": "Sync Full",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/sync/full",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "sync",
                "full"
              ]
            },
            "description": "Trigger a full sync from Enterprise Search. Streams progress via SSE.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"source_types\": [\n    \"slack\",\n    \"confluence\"\n  ],\n  \"tenant_id\": \"default\",\n  \"list_id\": \"default\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sync Incremental",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/sync/incremental",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "sync",
                "incremental"
              ]
            },
            "description": "Trigger an incremental sync (only new/updated docs). Streams progress via SSE.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"source_types\": [\n    \"slack\",\n    \"confluence\"\n  ],\n  \"tenant_id\": \"default\",\n  \"list_id\": \"default\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sync Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/sync/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "sync",
                "status"
              ]
            },
            "description": "Sync statistics: documents processed, source breakdown, last sync times."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Coherence",
      "item": [
        {
          "name": "List Conflicts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coherence/conflicts?resolved=false&severity=HIGH&rule=&skip=0&limit=50",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coherence",
                "conflicts"
              ],
              "query": [
                {
                  "key": "resolved",
                  "value": "false",
                  "disabled": false
                },
                {
                  "key": "severity",
                  "value": "HIGH",
                  "disabled": false
                },
                {
                  "key": "rule",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "skip",
                  "value": "0",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "50",
                  "disabled": false
                }
              ]
            },
            "description": "List ConflictReport nodes from Neo4j, newest first."
          },
          "response": []
        },
        {
          "name": "Get Conflict",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coherence/conflicts/:conflict_id?conflict_id=:conflict_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coherence",
                "conflicts",
                ":conflict_id"
              ],
              "query": [
                {
                  "key": "conflict_id",
                  "value": ":conflict_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "conflict_id",
                  "value": ""
                }
              ]
            },
            "description": "Fetch a single conflict by ID."
          },
          "response": []
        },
        {
          "name": "Resolve Conflict",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coherence/conflicts/:conflict_id/resolve?conflict_id=:conflict_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coherence",
                "conflicts",
                ":conflict_id",
                "resolve"
              ],
              "query": [
                {
                  "key": "conflict_id",
                  "value": ":conflict_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "conflict_id",
                  "value": ""
                }
              ]
            },
            "description": "Mark a conflict as resolved with optional notes.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"resolution_notes\": \"Verified with compliance team \\u2014 accepted.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get Canonical Entity",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coherence/entities/:canonical_id?canonical_id=:canonical_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coherence",
                "entities",
                ":canonical_id"
              ],
              "query": [
                {
                  "key": "canonical_id",
                  "value": ":canonical_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "canonical_id",
                  "value": ""
                }
              ]
            },
            "description": "Fetch a canonical entity by its stable ID, across all labels."
          },
          "response": []
        },
        {
          "name": "Coherence Stats",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/coherence/stats",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "coherence",
                "stats"
              ]
            },
            "description": "Graph-wide coherence statistics for the dashboard."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Memory",
      "item": [
        {
          "name": "Write Memory",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/memory",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "memory"
              ]
            },
            "description": "Write an agent observation to the knowledge graph. Synchronous: entity extraction, relationship detection, conflict rules, audit MemoryEvent.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event_id\": \"mem_006\",\n  \"event_type\": \"CONFLICT\",\n  \"source\": \"AGENT\",\n  \"agent_id\": \"conflict-detector-v1\",\n  \"observation\": \"Stefan Meier holds a board seat at Altikon GmbH. Vonterra AG is currently evaluating a joint venture with Altikon. This creates a potential conflict of interest.\",\n  \"entities_referenced\": [\n    \"Stefan Meier\",\n    \"Altikon GmbH\",\n    \"Vonterra AG\"\n  ],\n  \"confidence\": 0.94,\n  \"metadata\": {\n    \"conflict_severity\": \"HIGH\"\n  },\n  \"tenant_id\": \"chordian-demo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Write Memory Batch",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/memory/batch",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "memory",
                "batch"
              ]
            },
            "description": "Write up to 50 agent observations in one call.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"events\": [\n    {\n      \"event_id\": \"mem_001\",\n      \"event_type\": \"OBSERVATION\",\n      \"observation\": \"First observation text...\",\n      \"entities_referenced\": [\n        \"Entity A\"\n      ],\n      \"confidence\": 0.9\n    },\n    {\n      \"event_id\": \"mem_002\",\n      \"event_type\": \"OBSERVATION\",\n      \"observation\": \"Second observation text...\",\n      \"entities_referenced\": [\n        \"Entity B\"\n      ],\n      \"confidence\": 0.85\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "List Memory Events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/memory/events?event_type=OBSERVATION&agent_id=&since_hours=72&skip=0&limit=50",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "memory",
                "events"
              ],
              "query": [
                {
                  "key": "event_type",
                  "value": "OBSERVATION",
                  "disabled": false
                },
                {
                  "key": "agent_id",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "since_hours",
                  "value": "72",
                  "disabled": false
                },
                {
                  "key": "skip",
                  "value": "0",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "50",
                  "disabled": false
                }
              ]
            },
            "description": "List MemoryEvent nodes, newest first."
          },
          "response": []
        },
        {
          "name": "Get Memory Event",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/memory/events/:event_id?event_id=:event_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "memory",
                "events",
                ":event_id"
              ],
              "query": [
                {
                  "key": "event_id",
                  "value": ":event_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "event_id",
                  "value": ""
                }
              ]
            },
            "description": "Single memory event with linked entities and triggered conflicts."
          },
          "response": []
        },
        {
          "name": "Soft Delete Memory Event",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/memory/events/:event_id?event_id=:event_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "memory",
                "events",
                ":event_id"
              ],
              "query": [
                {
                  "key": "event_id",
                  "value": ":event_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "event_id",
                  "value": ""
                }
              ]
            },
            "description": "Soft-delete a memory event (sets deleted=true on the MemoryEvent node)."
          },
          "response": []
        },
        {
          "name": "Brain State",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/memory/brain-state?graph_id=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "memory",
                "brain-state"
              ],
              "query": [
                {
                  "key": "graph_id",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Full brain health snapshot \u2014 entity counts, conflict health, recent events."
          },
          "response": []
        },
        {
          "name": "Replay Entity Memory",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/graph/memory/replay?canonical_id=entity-canonical-id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "graph",
                "memory",
                "replay"
              ],
              "query": [
                {
                  "key": "canonical_id",
                  "value": "entity-canonical-id",
                  "disabled": false
                }
              ]
            },
            "description": "All memory events that referenced an entity, ordered chronologically."
          },
          "response": []
        }
      ]
    },
    {
      "name": "v1 API",
      "item": [
        {
          "name": "Hybrid Search",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "search"
              ]
            },
            "description": "Hybrid graph search: NL-to-Cypher + Graphiti semantic search. p50 < 400ms.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"query\": \"Who is on the board of Vonterra AG?\",\n  \"tenant_id\": \"default\",\n  \"limit\": 25\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Enrich (Write Observation)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/enrich",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "enrich"
              ]
            },
            "description": "Write an agent observation in real time. Full memory pipeline. p50 < 400ms.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"observation\": \"Stefan Meier was promoted to CEO of Vonterra AG.\",\n  \"event_type\": \"OBSERVATION\",\n  \"source\": \"AGENT\",\n  \"agent_id\": \"watcher-v2\",\n  \"tenant_id\": \"default\",\n  \"entities_referenced\": [\n    \"Stefan Meier\",\n    \"Vonterra AG\"\n  ],\n  \"confidence\": 0.92,\n  \"metadata\": {}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Graph Export",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/graph?graph_id=&entity_types=&limit=500",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "graph"
              ],
              "query": [
                {
                  "key": "graph_id",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "entity_types",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "500",
                  "disabled": false
                }
              ]
            },
            "description": "Full graph export for visualization. p50 < 900ms."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Templates",
      "item": [
        {
          "name": "List Templates",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/templates",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "templates"
              ]
            },
            "description": "List available templates."
          },
          "response": []
        },
        {
          "name": "Get Template",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/templates/:template_id?template_id=:template_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "templates",
                ":template_id"
              ],
              "query": [
                {
                  "key": "template_id",
                  "value": ":template_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "template_id",
                  "value": ""
                }
              ]
            },
            "description": "Get a template by ID."
          },
          "response": []
        },
        {
          "name": "Apply Template",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/templates/:template_id/apply?template_id=:template_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "templates",
                ":template_id",
                "apply"
              ],
              "query": [
                {
                  "key": "template_id",
                  "value": ":template_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "template_id",
                  "value": ""
                }
              ]
            },
            "description": "Apply a template (creates graph structure / runs workflow)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Scans & Merge History",
      "item": [
        {
          "name": "List Scans",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/scans?limit=50&skip=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "scans"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50",
                  "disabled": false
                },
                {
                  "key": "skip",
                  "value": "0",
                  "disabled": false
                }
              ]
            },
            "description": "Paginated list of scans."
          },
          "response": []
        },
        {
          "name": "Get Scan",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/scans/:scan_id?scan_id=:scan_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "scans",
                ":scan_id"
              ],
              "query": [
                {
                  "key": "scan_id",
                  "value": ":scan_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "scan_id",
                  "value": ""
                }
              ]
            },
            "description": "Fetch a scan by ID."
          },
          "response": []
        },
        {
          "name": "Get Scan By Job",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/scans/by-job/:job_id?job_id=:job_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "scans",
                "by-job",
                ":job_id"
              ],
              "query": [
                {
                  "key": "job_id",
                  "value": ":job_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "job_id",
                  "value": ""
                }
              ]
            },
            "description": "Fetch a scan by its job ID."
          },
          "response": []
        },
        {
          "name": "Merge History (by Canonical ID)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/merge-history/canonical/:canonical_id?canonical_id=:canonical_id&limit=100",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "merge-history",
                "canonical",
                ":canonical_id"
              ],
              "query": [
                {
                  "key": "canonical_id",
                  "value": ":canonical_id",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "100",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "canonical_id",
                  "value": ""
                }
              ]
            },
            "description": "List merge history events for a canonical entity."
          },
          "response": []
        },
        {
          "name": "Merge History (by Job ID)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/merge-history/job/:job_id?job_id=:job_id&limit=1000",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "merge-history",
                "job",
                ":job_id"
              ],
              "query": [
                {
                  "key": "job_id",
                  "value": ":job_id",
                  "disabled": false
                },
                {
                  "key": "limit",
                  "value": "1000",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "job_id",
                  "value": ""
                }
              ]
            },
            "description": "List merge history events created in a given job."
          },
          "response": []
        },
        {
          "name": "Rollback Merge",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/merge-history/:history_id/rollback?history_id=:history_id&actor=system",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "merge-history",
                ":history_id",
                "rollback"
              ],
              "query": [
                {
                  "key": "history_id",
                  "value": ":history_id",
                  "disabled": false
                },
                {
                  "key": "actor",
                  "value": "system",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "history_id",
                  "value": ""
                }
              ]
            },
            "description": "Roll back a merge using its history record."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Memory Public API",
      "item": [
        {
          "name": "List Departments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/memory/departments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "memory",
                "departments"
              ]
            },
            "description": "List all departments (graphs) for the authenticated tenant."
          },
          "response": []
        },
        {
          "name": "Get Department",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/memory/departments/:department_id?department_id=:department_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "memory",
                "departments",
                ":department_id"
              ],
              "query": [
                {
                  "key": "department_id",
                  "value": ":department_id",
                  "disabled": false
                }
              ],
              "variable": [
                {
                  "key": "department_id",
                  "value": ""
                }
              ]
            },
            "description": "Get a specific department (graph) by ID."
          },
          "response": []
        },
        {
          "name": "Create Department",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/memory/departments/create",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "memory",
                "departments",
                "create"
              ]
            },
            "description": "Create a new department (graph) for the authenticated tenant.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Engineering\",\n  \"description\": \"Engineering team graph\",\n  \"source_type\": \"department\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Upload Memory Document",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/memory/upload",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "memory",
                "upload"
              ]
            },
            "description": "Upload a document for graph ingestion (authenticated via API key).",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "file",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "list_id",
                  "value": "default",
                  "type": "text"
                },
                {
                  "key": "graph_name",
                  "value": "my-graph",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Memory Chat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/memory/chat",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "memory",
                "chat"
              ]
            },
            "description": "Chat with the knowledge graph (authenticated via API key).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question\": \"Who are the senior engineers in the Engineering department?\",\n  \"list_id\": \"default\",\n  \"conversation_history\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ingest Connectors (Memory)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/memory/ingest/connectors",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "memory",
                "ingest",
                "connectors"
              ]
            },
            "description": "Trigger graph generation from Enterprise Search connector documents.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"list_id\": \"connectors\",\n  \"source_types\": [\n    \"google_drive\",\n    \"notion\"\n  ],\n  \"mode\": \"full\",\n  \"graph_name\": \"connectors-graph\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Generate Memory Graph",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{apiKey}}",
                "type": "text",
                "disabled": true
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/memory/generate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "memory",
                "generate"
              ]
            },
            "description": "Generate a knowledge graph from list data (people/company records).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"listId\": \"default\",\n  \"workflowCategory\": \"people\",\n  \"records\": [\n    {\n      \"name\": \"Stefan Meier\",\n      \"company\": \"Altikon GmbH\"\n    }\n  ],\n  \"columns\": [\n    {\n      \"id\": \"name\",\n      \"header\": \"Name\",\n      \"type\": \"string\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:8000",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string"
    }
  ]
}