Skip to main content
Surface: 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 200 instead of 201.
  • There is no job id in the response. Get it from GET /jobs?workflow_run_id={run_id} — and the field is job_id, where /nql/run returned it as id.
  • Datasets created by CREATE MATERIALIZED VIEW are 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