Read the session's scratch composition
Pure read: returns the composition currently held in the session's SCRATCH (what the author LLM has been editing over this session), NOT the project's active composition. The Director ensemble reads this back per candidate and returns it as the authored composition — the winner is saved downstream, so a candidate never commits its scratch to active. 404 when the session is unknown/foreign or has never written a scratch.
API key auth. Prefix cf_live_ for production orgs, cf_test_ for sandbox.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/projects/string/compose-session/string/composition"{ "composition": null}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}Commit the session scratch onto the project's active composition POST
Required permission: projects:write
Poll compose-session readiness (is the warm box bound yet?) GET
Pure read: reports whether the session's warm render box has booted and bound its sandbox. `ready` flips to true once the sandbox is attached; until then render / verify / component-preview hard-fail 'no sandbox yet'. Poll this after openComposeSession before driving the box — boot is async, so expect a few not-ready polls on a cold box. Boots nothing.