Skip to content

Studio API v1

Studio serves JSON beneath /api/v1 on the loopback address. Important resources include:

ResourceOperations
/bootstrap, /dashboardWorkspace readiness and production summary
/projectsCreate a series, book, opening chapter, and optional mystery ledger
/books/:idRead book, chapters, and revision history
/chapters/:idSave a chapter and immutable revision
/books/:id/graphRead graph entities, edges, obligations, and clues
/books/:id/mystery/workbenchRead policy, evidence matrices, hypotheses, deductions, and findings without the sealed solution
/books/:id/mystery/policyRead or update fair-play mode and policy
/books/:id/mystery/solutionRead or write sealed state with an explicit solution capability header
/books/:id/mystery/{suspects,evidence,timeline,access,knowledge,hypotheses,deductions}Add typed fair-play records
/books/:id/mystery/reader-projectionPreview evidence available through a chapter
/books/:id/mystery/validatePersist deterministic fair-play findings
/books/:id/mystery/findings/:findingId/waiveRecord a Rule-Breaking-mode author waiver
/prose-patterns/analyzeReturn advisory English prose-pattern locations and context
/books/:id/research, /books/:id/research/:researchId/approveCapture untrusted research and explicitly admit a cited claim
/books/:id/jobsStart a budgeted workflow
/jobs/:id, /jobs/:id/readyRead nodes, durable events, and capability-filtered ready work
/jobs/:id/nodes/:nodeId/{begin,complete,fail}Drive a node through the local worker contract with x-novelgraph-capabilities
/books/:id/reviewsRead persona feedback and approvals
/books/:id/closureEvaluate publication readiness
/books/:id/exportWrite the portable export bundle

The solution endpoint requires solution:read for GET and solution:write for PUT in x-novelgraph-capability; write permission never implies read permission. Ordinary book, graph, workbench, and reader-projection routes never return sealed solution content.

The API is local and currently unauthenticated, so it binds to loopback by default and refuses cross-origin browser access. Do not expose it to an untrusted network.