dokkaiv0.1.0
API Reference

Get a project's full graph

Normalized nodes and edges for a project, code entities by default.

GET/graph/{project}any

Returns normalized {id, kind, name, qualified_name, path, absolute_path, start_line, end_line} nodes and {source, target, type} edges.

By default only code-entity nodes (Class, Function, Method, Interface, Enum, Type) are returned. Pass include=structural to get every node (folders, files, modules, packages) and every edge. Edges never dangle.

Path parameters

projectstringrequired
The project_name.

Query parameters

includestring
Set to structural to include every node/edge instead of only code entities.
limitinteger
Maximum number of nodes to return. Default 5000, no upper bound.

Request

cURL
bash
curl "localhost:8000/graph/your-repo?include=structural&limit=1000" \
  -H "Authorization: Bearer $TOKEN"

Responses

200The project's graph
json
{
  "project": "your-repo",
  "generated_at": "2026-07-08T22:43:50Z",
  "nodes": [ { "id": 1, "kind": "Class", "name": "RequestHandler", "qualified_name": "src.http.RequestHandler", "path": "src/http/request_handler.py", "start_line": 10, "end_line": 80 } ],
  "edges": [ { "source": 1, "target": 2, "type": "CALLS" } ],
  "stats": { "total_nodes": 480, "total_edges": 900, "returned_nodes": 480, "returned_edges": 900, "truncated": false }
}
404No graph ingested
json
{ "detail": "no graph found for project 'your-repo' — run POST /instances/pipeline to ingest it" }