Documentation

Code Examples

Code Examples Reference

Copy-paste-ready snippets for common operations.

REST API — Full Workflow

bash — full REST workflow
BASE=http://localhost:8080 ### 1. Register schema curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"CALL db.registerNodeType(\"CARD\",\"string\") YIELD node_type_id RETURN node_type_id","parameters":{}}' curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"CALL db.registerNodeType(\"MERCHANT\",\"string\") YIELD node_type_id RETURN node_type_id","parameters":{}}' curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"CALL db.registerEdgeType({name:\"TRANSACTS_AT\",from_node_type:\"CARD\",to_node_type:\"MERCHANT\"}) YIELD edge_type_id RETURN edge_type_id","parameters":{}}' curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"CALL db.finalizeSchema() YIELD schema_version RETURN schema_version","parameters":{}}' ### 2. Create nodes curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"CREATE (c:CARD {external_id:$id}) RETURN c.external_id","parameters":{"id":"card-001"}}' curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"CREATE (m:MERCHANT {external_id:$id}) RETURN m.external_id","parameters":{"id":"merchant-42"}}' ### 3. Create relationship curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"MATCH (c:CARD {external_id:$cid}),(m:MERCHANT {external_id:$mid}) CREATE (c)-[:TRANSACTS_AT {amount:$amt}]->(m) RETURN true","parameters":{"cid":"card-001","mid":"merchant-42","amt":49.99}}' ### 4. Query the graph curl -sS -X POST $BASE/cypher -H 'Content-Type: application/json' \ -d '{"query":"MATCH (c:CARD {external_id:$id})-[:TRANSACTS_AT]->(m:MERCHANT) RETURN m.external_id AS merchant","parameters":{"id":"card-001"}}'

Bolt — Python

python
from neo4j import GraphDatabase driver = GraphDatabase.driver("bolt://localhost:7687", auth=("", "")) def get_merchants_for_card(tx, card_id): result = tx.run( "MATCH (c:CARD {external_id: $id})-[:TRANSACTS_AT]->(m:MERCHANT) RETURN m.external_id AS merchant", id=card_id ) return [r["merchant"] for r in result] with driver.session() as session: merchants = session.execute_read(get_merchants_for_card, "card-001") print(merchants) driver.close()

Rust Client — Complete Scoring Loop

rust
use jetgraph_client::{ GraphClient, CreateEdgeRequest, VelocityQuery, FraudContextQuery, FlagRequest, prop, }; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let graph = GraphClient::connect("http://localhost:50051").await?; let card_id = graph.lookup_node("CARD", "card-001").await?; let merchant_id = graph.lookup_node("MERCHANT", "merchant-42").await?; let txn_1h = graph.get_velocity_count(VelocityQuery { node: card_id, edge_type: "TRANSACTS_AT".into(), window_secs: 3600, }).await?.count; let is_new = !graph.edge_exists(card_id, merchant_id, "TRANSACTS_AT").await?; let ctx = graph.get_fraud_context(FraudContextQuery { node: card_id }).await?; let mut risk: f32 = 0.0; if is_new { risk += 0.15; } if txn_1h > 30 { risk += 0.25; } risk += 0.5 * ctx.max_neighbor_fraud_score; graph.create_edge(CreateEdgeRequest { edge_type_name: "TRANSACTS_AT".into(), src: card_id, dst: merchant_id, properties: vec![prop("risk", risk)], }).await?; println!("Risk score: {:.2}", risk); Ok(()) }