ready status, you can expand individual nodes, update metadata, link additional research, and ship the entire tree to your preferred project management tool in a single request.
POST /build-graphs
Creates a new build graph and immediately returns agraph_id. Generation runs in the background — subscribe to the events stream to follow progress.
string
required
The product idea used to prime the LLM. Maximum 5,000 characters.
object[]
Features to include in the build graph. Each object must have
id, label, and source string fields. Required unless auto_select is true.boolean
default:"false"
When
true, ManticScore reads build_readiness from the linked research job and selects features automatically. You must provide either explicit features or set auto_select: true.number | null
default:"null"
Set to
1 to limit auto-selected features to phase_1 items only. Ignored when auto_select is false.string | null
UUID of the project to attach this graph to. Optional — you can link a graph to a project later via
PATCH /build-graphs/{graph_id}.string | null
UUID of a specific research job to use as context. Optional.
string | null
UUID of a feature research job whose results are injected into the LLM prompt. If omitted and a
project_id is supplied, ManticScore auto-detects the latest completed feature research for that project.201 response
string
required
UUID of the newly created graph. Use this to subscribe to the events stream and retrieve the graph once ready.
string
required
Always
"initializing" on creation. The graph transitions to generating and then ready as the background pipeline runs.GET /build-graphs//events
Stream NDJSON progress events for a build graph. Supports cursor-based replay so you can reconnect without missing events.This endpoint uses Stream auth — the same session token as other endpoints, but the server extends the TTL on connect to keep long-running streams alive.
number
default:"0"
Resume from this event sequence number. Pass the last
seq you received to replay only missed events after a disconnect.{"v": 1, "event": "<type>", "data": {...}}.
stream_start
stream_start
graph_created
graph_created
Fired once the graph row is persisted in the database.
stage
stage
node_created
node_created
graph_ready
graph_ready
Emitted when all root nodes have been created and the graph is ready for use.
expand_start / expand_done
expand_start / expand_done
Fired when a node expansion begins and completes during the initial generation sweep.
error
error
done
done
Always the final event on the stream, whether successful or not.
GET /build-graphs
List build graphs, optionally scoped to a project.string
Filter results to graphs attached to this project UUID.
number
default:"50"
Maximum number of graphs to return. Maximum value: 100.
number
default:"0"
Number of graphs to skip for pagination.
200 response
string
One of
"initializing", "generating", "ready", or "failed".GET /build-graphs/
Retrieve a specific graph with its full node tree.200 response
GET /build-graphs/{graph_id} returns the node tree under the key "nodes". The shortcut endpoint GET /projects/{project_id}/build-graph returns the same tree under "roots" instead.string
required
UUID of the graph.
string
required
Auto-generated graph title derived from the product idea.
string
required
Current graph status.
string
How the graph was created.
"user" for graphs created via POST /build-graphs, "research_auto_seeded" for graphs auto-created by the server when an attached research run completed with a quality score of 70 or higher. Auto-seeded graphs are pre-populated with the top 5 features from the research and start in status: "ready"; you can expand any node immediately or treat the graph as a starting point and edit it.object[]
The features used to generate this graph.
object[]
Root-level nodes of the build tree. Each node may contain nested
children. See Build nodes for the full node shape.PATCH /build-graphs/
Update a graph’s project association or title.string | null
New title for the graph. Pass
null to leave unchanged.string | null
UUID of the project to link, or
null to detach the graph from its current project.DELETE /build-graphs/
Permanently deletes the graph and all its nodes.200 response
POST /build-graphs//sources
Link an additional research job to a graph as a supplementary context source.string
required
UUID of the research job to link.
string
required
Relationship between the research and this graph. One of
"context", "supplement", or "external".201 response
POST /build-graphs//ship
Export the entire graph to an external platform in a single request. ManticScore uses your saved integration defaults — no extra configuration required after initial connection.string
required
Export destination. One of
"linear", "jira", "slack", "notion", or "github".boolean
default:"false"
When
true, only root-level nodes are exported. When false, all nodes in the tree are included.string | null
Linear team ID. Falls back to your saved Linear default when omitted.
string | null
Jira project key. Falls back to your saved Jira default when omitted.
string | null
Slack channel ID or name. Falls back to your saved Slack default when omitted.
string | null
GitHub repository in
owner/name format. Required for the "github" target.- Linear / Jira
- Slack
- Notion
- GitHub
GET /build-graphs//export
Downloads the build graph as a binary PDF file. The export flattens the recursive node tree into an indented bullet list and includes the build order rationale and overall graph status. The graph is scoped to the authenticated user. If WeasyPrint is unavailable on the server, the endpoint falls back to a plain-text export.string
default:"pdf"
Export format. Currently only
pdf is supported.Content-Type: application/pdf and a Content-Disposition: attachment header naming the file <idea>-build-plan.pdf. Sections rendered in order: build_order_rationale, nodes (indented hierarchy of titles + summaries), and status.