Generate Cypher and an execution explanation for a question, without running it
const url = 'http://localhost:11044/api/v1/admin/kg/generate';const options = { method: 'POST', headers: {'X-Embabel-Api-Key': '<X-Embabel-Api-Key>', 'Content-Type': 'application/json'}, body: '{"preferViews":true,"question":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:11044/api/v1/admin/kg/generate \ --header 'Content-Type: application/json' \ --header 'X-Embabel-Api-Key: <X-Embabel-Api-Key>' \ --data '{ "preferViews": true, "question": "example" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Optional, and never needed: the call always acts as the signed-in principal. Naming the principal changes nothing; naming anyone else is refused with 403.
The ask scope to use, as GET /ask/scopes lists them. Omitted means the whole graph.
Request Bodyrequired
Section titled “Request Bodyrequired”The question, in question, and preferViews (default true): a question a saved view answers comes back as that view’s invocation with view set, and no model is asked. The catalogue is skipped under scope or with preferViews: false, and Cypher is then generated and validated, never run
A question to write Cypher for, and whether a saved view that answers it may stand in.
object
Consult the saved-view catalogue first (default true): a question a curated view already answers comes back as that view’s invocation, with view set. False generates regardless.
The natural-language question to write Cypher for.
Example generated
{ "preferViews": true, "question": "example"}Responses
Section titled “Responses”The generated cypher, its verdict, and what the engine will do
Generated cypher and what the engine will do with it, without running it.
object
How many generate-validate rounds it took.
The Cypher written for the question — or, when view is set, that view’s invocation. Nothing has been executed.
Wall-clock milliseconds the call took, view matching or generation plus the explanation.
What the engine will do when this runs. Best-effort; never fails the call.
What the user typed, echoed back: the question, or for /refine the instruction.
Whether the final attempt passed the strict preflight.
Present when a saved view already answers the question: cypher is then that view’s invocation, attempts is 0, and nothing was generated. Absent when the Cypher was written for this question.
object
The arguments the selector bound from the question, by parameter name.
object
The saved view’s name, as GET /views lists it.
The selector’s one line on why this view.
What the strict preflight objected to in the final attempt, one entry per defect.
Example generated
{ "attempts": 1, "cypher": "example", "durationMs": 1, "explain": "example", "question": "example", "valid": true, "view": { "args": { "additionalProperty": "example" }, "name": "example", "reason": "example" }, "violations": [ "example" ]}No authenticated principal
A refusal carrying only a human-readable reason.
object
What went wrong, in the terms the caller can act on.
Example generated
{ "error": "example"}username names someone other than the signed-in principal
A refusal carrying only a human-readable reason.
object
What went wrong, in the terms the caller can act on.
Example generated
{ "error": "example"}Generation failed
A refusal carrying only a human-readable reason.
object
What went wrong, in the terms the caller can act on.
Example generated
{ "error": "example"}
