Objective
Equity analysts spend hours reading transcripts to map who-acquired-whom, who-partners-with-whom,
and which executives moved where. The POST /v2/graph/extract endpoint asks an LLM to pull
(subject, predicate, object) triples from any text and materializes them as nodes and edges in
your tenant graph. The wow moment: paste one paragraph, get back a queryable graph of companies,
people, and partnerships that you can join with anything else you already store.
Step 1: Send the transcript paragraph
curl -X POST https://localhost:8443/v2/graph/extract \
-H "Authorization: Bearer $AIDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "On the Q1 2026 call, Northwind Logistics CEO Marisol Guerrero confirmed the acquisition of Cascade Freight for $480M, closing in May. CFO Devon Park said the merged entity will operate under the Northwind brand and will partner with Tessera Robotics on autonomous yard tractors. Former Cascade COO Lin Hao will lead the integration. Northwind also disclosed a five-year supply agreement with Helia Energy for renewable diesel.",
"default_node_label": "Entity",
"node_provenance": {"source": "earnings_q1_2026", "sector": "logistics"},
"edge_provenance": {"source": "earnings_q1_2026"},
"min_confidence": 0.6
}'
The response gives back nodes_created, edges_created, the entities map (entity text →
node id), and the committed triples. You can also see what was dropped (low confidence,
self-loop, etc.) under discarded.
Step 2: Query the materialized graph
// "Who took what role at the post-merger Northwind entity?"
MATCH (person)-[r]->(target)
WHERE target.name IN ["Northwind Logistics", "Cascade Freight"]
OR (target)-[:ACQUIRED|MERGED_WITH]-(:Entity {name: "Cascade Freight"})
RETURN person.name AS person,
type(r) AS role_or_action,
target.name AS target,
r.confidence AS llm_confidence
ORDER BY llm_confidence DESC;
// "Show every partnership and supply agreement disclosed on the call."
MATCH (a)-[r:PARTNERS_WITH|SUPPLIES|HAS_SUPPLY_AGREEMENT_WITH]-(b)
WHERE r.source = "earnings_q1_2026"
RETURN a.name AS party_a,
type(r) AS relation,
b.name AS party_b,
r.confidence AS confidence;