The single‑table Graph API powering AI, ML, IoT, Finance & Accounting, and Corporate Data Insights
Store nodes and edges in one table. Query neighbors in microseconds. From sustainable cities and AI/ML/IoT to finance & accounting and corporate data insights.
{
"nodes": [
{ "id": "n1", "label": "Substation" },
{ "id": "n2", "label": "Sensor" },
{ "id": "n3", "label": "Account" }
],
"links": [
{ "source": "n1", "target": "n2", "rel_type": "MONITORS" },
{ "source": "n3", "target": "n1", "rel_type": "ALLOCATES" }
]
}
Built for speed and simplicity
Everything you need to query and visualize relationships at scale.
Edges & nodes in one self‑referential table: fewer joins, faster reads.
Hot‑path indexes for neighbor & 2‑hop queries. Stream results instantly.
Native nodes/links output for D3, Cytoscape, and more.
JWT, row‑level scoping, audit trails, optional private VPC.
REST & GraphQL with typed schemas, pagination, and rate‑limits.
Metrics, tracing, and slow‑query insights built‑in.
Who we power
From sustainable cities and AI/ML/IoT to finance & accounting and corporate data insights.
Force‑directed maps of assets, permits, transit and energy flows for greener, smarter cities.
Connect devices, telemetry and domain knowledge into one graph for real‑time reasoning & anomaly detection.
Model accounts, mappings and eliminations as relationships to generate PL/BS/CF/NWC views on demand.
How it works
A compact schema with precise indexes yields predictable performance.
CREATE TABLE items (
id BIGSERIAL PRIMARY KEY,
kind TEXT CHECK (kind IN ('node','edge')) NOT NULL,
from_id BIGINT REFERENCES items(id),
to_id BIGINT REFERENCES items(id),
rel_type TEXT,
label TEXT,
props JSONB DEFAULT '{}'::jsonb,
created_at TIMESTAMPTZ DEFAULT now()
);
CREATE INDEX ON items (from_id) WHERE kind='edge';
CREATE INDEX ON items (to_id) WHERE kind='edge';
CREATE UNIQUE INDEX ON items (from_id, to_id, rel_type) WHERE kind='edge';
CREATE INDEX ON items USING GIN (props);
GET /v1/graph/nodes/:id/neighbors?limit=200
→ 200 OK
{
"nodes": [...],
"links": [...],
"page": { "next": "cursor_abc" }
}
fetch('/v1/graph/nodes/n1/neighbors')
.then(r => r.json())
.then(({nodes, links}) => renderForceGraph(nodes, links));
Where it shines
Entities & relationships for search, enrichment and reasoning.
Spot suspicious clusters and short paths between actors.
Track dependencies, lineage and impact radius instantly.
Build feeds, recommendations and influence maps.
Simple, transparent pricing
Start free. Scale as you grow.
FAQs
It's a hosted graph service backed by Postgres or MySQL. We manage schema, indexes, scaling and APIs.
Use /neighbors and /subgraph endpoints to fetch nodes/links and feed them to D3, ForceGraph or Cytoscape.
Yes. Query nodes, edges, paths and subscribe to change streams via WebSocket.
JWT + row‑level ownership and optional dedicated clusters. SOC2 roadmap available.
Ship your first force‑graph in minutes
Create a project, POST your edges and fetch neighbors with one call.