Query a dataset (SoQL)
query_datasetRun read-only SoQL queries against NYC Open Data datasets by ID to filter, sort, group, search, and page results for analysis.
Instructions
Run a read-only SoQL query against any NYC Open Data dataset by id. Supports select / where / order / group / full-text q, with limit (max 500) and offset paging; the response says when more rows exist. Get the dataset id and column names from search_datasets first. For counts, prefer select="count(*)" or a group-by over pulling raw rows.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Full-text search across all text columns. | |
| group | No | SoQL $group, required when $select mixes aggregates and plain columns. | |
| limit | No | Rows to return (1-500, default 100). | |
| order | No | SoQL $order, e.g. "inspection_date DESC". | |
| where | No | SoQL $where, e.g. "zipcode = '10003' AND grade = 'A'". Single-quote string literals; double any quote inside ('O''Brien'). | |
| offset | No | Rows to skip; pass next_offset from a previous call to page. Use a stable order when paging. | |
| select | No | SoQL $select, e.g. "borough, count(*) as n". Default: all columns. | |
| dataset_id | Yes | Socrata dataset id, e.g. 43nn-pn8j (restaurant inspections) or erm2-nwe9 (311). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| rows | Yes | ||
| offset | Yes | ||
| has_more | Yes | ||
| returned | Yes | ||
| dataset_id | Yes | ||
| next_offset | Yes |