Architect

Run an Architect turn (Responses)

OpenAI Responses over one turn of the Architect on a project, with the same authentication, project header, models and files as chat completions. input is a string or message items, with input_text, input_image and input_file parts; instructions are instructions for this turn. The output is the reply as message items and the readable reasoning as reasoning items with summary_text parts. A turn that changed the scene is saved as one named version: metadata.pascal_version, pascal_version_label and pascal_version_url, and a url_citation annotation at the end of the reply. A turn that asked a question has metadata.pascal_waiting: "question"; the next request answers it (1, 2… picks an option). metadata.commit_message names the version; metadata.pascal_max_credits caps the credits the turn may spend, and a turn that reaches it ends incomplete (incomplete_details.reason: "max_credits"). previous_response_id continues the project’s conversation and must belong to the project’s active conversation. With stream: true the response is a text/event-stream of Responses events (response.created through response.completed, response.incomplete or response.failed), with : keepalive comments during silences. Without stream, the headers leave within 15 s and spaces keep the connection open until the JSON body. A turn that fails after it started answers 200 with status: "failed" ("cancelled" once stopped): it is never retried, since it may already have edited the scene. A synchronous request follows its turn for at most 13 minutes: a turn still running then is stopped (status: "failed"), except an architect-pro turn, which runs on and answers status: "in_progress" (a stream ends with an error event, turn_still_running): poll GET /api/v1/responses/{id}. A turn that may run longer is sent with background: true, at any model: the request answers status: "queued" at once, the turn runs to its end with nobody following (credits charged and the version saved as for a followed turn), and GET /api/v1/responses/{id} reads it; POST /api/v1/responses/{id}/cancel stops it.

post/api/v1/responses

Request

  • Base URL: https://editor.pascal.app
  • URL: https://editor.pascal.app/api/v1/responses
  • Auth: HTTP bearer

Headers

X-Pascal-Projectstring

Id of the project the Architect works on; it must be editable with the key. Required unless metadata.project_id is sent (for Responses, previous_response_id also supplies it).

Request body

model'architect' | 'architect-low' | 'architect-medium' | 'architect-high' | 'architect-pro' required
instructionsstring
previous_response_idstring
streamboolean
backgroundboolean

Return at once (status: "queued") and run the turn with nobody following; poll GET /api/v1/responses/{id}. Any model.

Example request

{
  "metadata": {
    "pascal_max_credits": "50"
  }
}

Response

Response object, or a server-sent event stream when stream is true

idstring required
object'response' required
created_atinteger
status'queued' | 'in_progress' | 'completed' | 'incomplete' | 'failed' | 'cancelled' required
modelstring required
outputobject[] required

reasoning items (summary of summary_text parts: the model’s thinking and one bold line per step) and message items (output_text with the version’s url_citation at the end).

output_textstring
metadataArchitectPascalMetadata

The turn’s outcome, beside the caller’s own string metadata: pascal_project_id; pascal_version, pascal_version_label and pascal_version_url when the turn saved a version; pascal_waiting: "question" when the next request answers the Architect’s question.

usageobject nullable

Changes

No recorded changes to this operation across all 1 revision of this API.