Start a run
sessionId (to continue) right away; files live on that conversation automatically (no workspace id to handle — see Files). The browser is provisioned in the background — its browserId is not in this response; it appears on GET /runs/{id} once ready. Then watch the run until status is completed and read result (the answer string; output is only populated for structured output). The SDK run() waits for you and returns the finished run.
Run body
Common fields (full list in the API reference):A run provisions its browser. It does not accept an existing
browser_id. If you want to drive a browser yourself over CDP, create a standalone browser instead — that’s a different flow.Structured output
There is nostructured_output request parameter yet — sending one returns 422 "Extra inputs are not permitted". Until it ships, get structured data by describing the exact JSON shape in the task text and parsing result:
The run response reserves a typed
output field for native structured output; it is null until the request-side schema parameter is released.