POST /nql/run — deprecated, replaced by POST /v1/nql/execute
/nql/run continues to work. The removal timeline will be announced separately.
Porting a caller means changing the request path and how you read the response. The migration guide walks through it with the old and new response bodies side by side.
What’s different
- The response is a workflow and a run, not a job. Success is
200instead of201. - There is no job id in the response. Get it from
GET /jobs?workflow_run_id={run_id}— and the field isjob_id, where/nql/runreturned it asid. - Datasets created by
CREATE MATERIALIZED VIEWare resolved after the run instead of arriving in the response body. - Cancellation is
POST /workflows/{workflow_id}/runs/{run_id}/cancel. - The request body, the supported statements, and the error bodies are unchanged apart from
instance. Error handling needs no changes.
Learn more
Migration Guide
Step-by-step port from /nql/run, with a worked example
Executing NQL via the API
Full guide to /v1/nql/execute — parameters, tracking, and errors

