Search CKAN DataStore
ckan_datastore_searchQuery tabular data from a CKAN DataStore resource using SQL-like filters, full-text search, sorting, and pagination. Returns column names and records.
Instructions
Query data from a CKAN DataStore resource.
The DataStore allows SQL-like queries on tabular data. Not all resources have DataStore enabled.
The response always includes a Fields section listing all available column names and types. Use limit=0 to discover column names without fetching data — do this before using filters to avoid guessing column names and getting HTTP 400 errors.
Args:
server_url (string): Base URL of CKAN server
resource_id (string): ID of the DataStore resource
q (string): Full-text search query (optional)
filters (object): Key-value filters (e.g., { "anno": 2023 })
limit (number): Max rows to return (default: 100, max: 32000)
offset (number): Pagination offset (default: 0)
fields (array): Specific fields to return (optional)
sort (string): Sort field with direction (e.g., "anno desc")
distinct (boolean): Return distinct values (default: false)
response_format ('markdown' | 'json'): Output format
Returns: DataStore records matching query, always including available column names and types
Examples:
{ server_url: "...", resource_id: "abc-123", limit: 0 } ← discover columns first
{ server_url: "...", resource_id: "abc-123", limit: 50 }
{ server_url: "...", resource_id: "...", filters: { "regione": "Sicilia" } }
{ server_url: "...", resource_id: "...", sort: "anno desc", limit: 100 }
Typical workflow: ckan_package_search → ckan_package_show (find resource_id with datastore_active=true) → ckan_datastore_search (limit=0 to get columns) → ckan_datastore_search (with filters)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Full-text search across all fields | |
| sort | No | Sort expression (e.g., 'anno desc', 'nome asc') | |
| limit | No | Max rows to return (default 100, max 32000); use 0 to get only column names without data | |
| fields | No | Specific field names to return; omit to return all fields | |
| offset | No | Pagination offset | |
| filters | No | Key-value filters for exact matches (e.g., { "regione": "Sicilia", "anno": 2023 }) | |
| distinct | No | Return only distinct rows | |
| server_url | Yes | Base URL of the CKAN server (e.g., https://dati.gov.it/opendata) | |
| resource_id | Yes | UUID of the DataStore resource (from ckan_package_show resource.id where datastore_active is true) | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |