Skip to content

REST API Reference

  • Production: https://api.graphdb-labs.com (via edge-gateway)
  • Local dev: http://localhost:8787 (via graphdb dev)

In production, all requests require an API key:

Authorization: Bearer gdb_live_xxxxxxxx

In local dev (graphdb dev), include X-Tenant-Id header:

X-Tenant-Id: dev-tenant
GET /health
POST /v1/projects # Create project
GET /v1/projects # List projects
GET /v1/projects/{projectId} # Get project
POST /v1/projects/{projectId}/graphs # Create graph
GET /v1/projects/{projectId}/graphs # List graphs
GET /v1/graphs/{graphId} # Get graph
DELETE /v1/graphs/{graphId} # Delete graph
POST /v1/graphs/{graphId}/schema/node-types # Create node type
GET /v1/graphs/{graphId}/schema/node-types # List node types
POST /v1/graphs/{graphId}/schema/edge-types # Create edge type
GET /v1/graphs/{graphId}/schema/edge-types # List edge types
POST /v1/graphs/{graphId}/nodes # Create node
GET /v1/graphs/{graphId}/nodes # List nodes (?type=X&limit=100&offset=0)
GET /v1/graphs/{graphId}/nodes/{nodeId} # Get node
PUT /v1/graphs/{graphId}/nodes/{nodeId} # Update node properties
DELETE /v1/graphs/{graphId}/nodes/{nodeId} # Delete node
POST /v1/graphs/{graphId}/edges # Create edge
GET /v1/graphs/{graphId}/edges # List edges (?nodeId=X&direction=both)
GET /v1/graphs/{graphId}/edges/{edgeId} # Get edge
DELETE /v1/graphs/{graphId}/edges/{edgeId} # Delete edge
POST /v1/graphs/{graphId}/traverse # BFS traversal
POST /v1/graphs/{graphId}/agentic-query # Vector + graph hybrid query

All errors follow a consistent JSON format:

{
"error": "validation_error",
"details": {
"fieldErrors": { "type": ["Required"] },
"formErrors": []
}
}
HTTP StatusError codeMeaning
400validation_errorRequest body failed Zod validation
403UNTRUSTED_REQUESTMissing or invalid trust signature
404graph_not_foundGraph ID not found for this tenant
404node_not_foundNode ID not found in graph
500internal_server_errorUnexpected server error