Query data model
View field support, webhooks, and list parameters for each integration on the Supported Integrations page.
| Field | Type | Required | Description |
|---|---|---|---|
table_id | string | No | |
database_id | string | No | |
query | object | No | What to run: a raw `sql` statement, or a structured query (select, filter, sort, limit/offset, aggregate) |
query.sql | string | No | Raw SQL – when set, executed directly (table_id optional) |
query.select | string[] | No | |
query.expand | map<DatastoreQueryExpand> | No | |
query.expand{}.select | string[] | No | |
query.expand{}.filter | DatastoreQueryExpand_filter | No | |
query.expand{}.filter.type | enum | Yes | Values: FILTER, AND, OR |
query.expand{}.filter.filters | DatastoreFilter[] | No | |
query.expand{}.filter.filters[].field | string | Yes | |
query.expand{}.filter.filters[].condition | DatastoreFilter_condition | Yes | |
query.expand{}.filter.filters[].condition.eq | DatastoreFilter_condition_eq | No | |
query.expand{}.filter.filters[].condition.neq | DatastoreFilter_condition_neq | No | |
query.expand{}.filter.filters[].condition.gt | DatastoreFilter_condition_gt | No | |
query.expand{}.filter.filters[].condition.gte | DatastoreFilter_condition_gte | No | |
query.expand{}.filter.filters[].condition.lt | DatastoreFilter_condition_lt | No | |
query.expand{}.filter.filters[].condition.lte | DatastoreFilter_condition_lte | No | |
query.expand{}.filter.filters[].condition.like | DatastoreFilter_condition_like | No | |
query.expand{}.filter.filters[].condition.ilike | DatastoreFilter_condition_ilike | No | |
query.expand{}.filter.filters[].condition.in | DatastoreFieldValue[] | No | |
query.expand{}.filter.filters[].condition.contains | DatastoreFilter_condition_contains | No | |
query.expand{}.filter.filters[].condition.not_contains | DatastoreFilter_condition_not_contains | No | |
query.expand{}.filter.filters[].condition.is_null | boolean | No | |
query.expand{}.filter.filters[].condition.is_not_null | boolean | No | |
query.expand{}.filter.and | object | No | |
query.expand{}.filter.or | object | No | |
query.expand{}.limit | number | No | |
query.expand{}.expand | map<any> | No | |
query.filter | DatastoreQuery_query_filter | No | |
query.filter.type | enum | Yes | Values: FILTER, AND, OR |
query.filter.filters | DatastoreFilter[] | No | |
query.filter.filters[].field | string | Yes | |
query.filter.filters[].condition | DatastoreFilter_condition | Yes | |
query.filter.filters[].condition.eq | DatastoreFilter_condition_eq | No | |
query.filter.filters[].condition.eq.string | string | No | |
query.filter.filters[].condition.eq.number | number | No | |
query.filter.filters[].condition.eq.boolean | boolean | No | |
query.filter.filters[].condition.eq.date | string | No | |
query.filter.filters[].condition.eq.selection | string[] | No | |
query.filter.filters[].condition.eq.is_null | boolean | No | |
query.filter.filters[].condition.neq | DatastoreFilter_condition_neq | No | |
query.filter.filters[].condition.neq.string | string | No | |
query.filter.filters[].condition.neq.number | number | No | |
query.filter.filters[].condition.neq.boolean | boolean | No | |
query.filter.filters[].condition.neq.date | string | No | |
query.filter.filters[].condition.neq.selection | string[] | No | |
query.filter.filters[].condition.neq.is_null | boolean | No | |
query.filter.filters[].condition.gt | DatastoreFilter_condition_gt | No | |
query.filter.filters[].condition.gt.string | string | No | |
query.filter.filters[].condition.gt.number | number | No | |
query.filter.filters[].condition.gt.boolean | boolean | No | |
query.filter.filters[].condition.gt.date | string | No | |
query.filter.filters[].condition.gt.selection | string[] | No | |
query.filter.filters[].condition.gt.is_null | boolean | No | |
query.filter.filters[].condition.gte | DatastoreFilter_condition_gte | No | |
query.filter.filters[].condition.gte.string | string | No | |
query.filter.filters[].condition.gte.number | number | No | |
query.filter.filters[].condition.gte.boolean | boolean | No | |
query.filter.filters[].condition.gte.date | string | No | |
query.filter.filters[].condition.gte.selection | string[] | No | |
query.filter.filters[].condition.gte.is_null | boolean | No | |
query.filter.filters[].condition.lt | DatastoreFilter_condition_lt | No | |
query.filter.filters[].condition.lt.string | string | No | |
query.filter.filters[].condition.lt.number | number | No | |
query.filter.filters[].condition.lt.boolean | boolean | No | |
query.filter.filters[].condition.lt.date | string | No | |
query.filter.filters[].condition.lt.selection | string[] | No | |
query.filter.filters[].condition.lt.is_null | boolean | No | |
query.filter.filters[].condition.lte | DatastoreFilter_condition_lte | No | |
query.filter.filters[].condition.lte.string | string | No | |
query.filter.filters[].condition.lte.number | number | No | |
query.filter.filters[].condition.lte.boolean | boolean | No | |
query.filter.filters[].condition.lte.date | string | No | |
query.filter.filters[].condition.lte.selection | string[] | No | |
query.filter.filters[].condition.lte.is_null | boolean | No | |
query.filter.filters[].condition.like | DatastoreFilter_condition_like | No | |
query.filter.filters[].condition.like.string | string | No | |
query.filter.filters[].condition.like.number | number | No | |
query.filter.filters[].condition.like.boolean | boolean | No | |
query.filter.filters[].condition.like.date | string | No | |
query.filter.filters[].condition.like.selection | string[] | No | |
query.filter.filters[].condition.like.is_null | boolean | No | |
query.filter.filters[].condition.ilike | DatastoreFilter_condition_ilike | No | |
query.filter.filters[].condition.ilike.string | string | No | |
query.filter.filters[].condition.ilike.number | number | No | |
query.filter.filters[].condition.ilike.boolean | boolean | No | |
query.filter.filters[].condition.ilike.date | string | No | |
query.filter.filters[].condition.ilike.selection | string[] | No | |
query.filter.filters[].condition.ilike.is_null | boolean | No | |
query.filter.filters[].condition.in | DatastoreFieldValue[] | No | |
query.filter.filters[].condition.in[].string | string | No | |
query.filter.filters[].condition.in[].number | number | No | |
query.filter.filters[].condition.in[].boolean | boolean | No | |
query.filter.filters[].condition.in[].date | string | No | |
query.filter.filters[].condition.in[].selection | string[] | No | |
query.filter.filters[].condition.in[].is_null | boolean | No | |
query.filter.filters[].condition.contains | DatastoreFilter_condition_contains | No | |
query.filter.filters[].condition.contains.string | string | No | |
query.filter.filters[].condition.contains.number | number | No | |
query.filter.filters[].condition.contains.boolean | boolean | No | |
query.filter.filters[].condition.contains.date | string | No | |
query.filter.filters[].condition.contains.selection | string[] | No | |
query.filter.filters[].condition.contains.is_null | boolean | No | |
query.filter.filters[].condition.not_contains | DatastoreFilter_condition_not_contains | No | |
query.filter.filters[].condition.not_contains.string | string | No | |
query.filter.filters[].condition.not_contains.number | number | No | |
query.filter.filters[].condition.not_contains.boolean | boolean | No | |
query.filter.filters[].condition.not_contains.date | string | No | |
query.filter.filters[].condition.not_contains.selection | string[] | No | |
query.filter.filters[].condition.not_contains.is_null | boolean | No | |
query.filter.filters[].condition.is_null | boolean | No | |
query.filter.filters[].condition.is_not_null | boolean | No | |
query.filter.and | object | No | |
query.filter.or | object | No | |
query.sort_fields | string[] | No | |
query.sort_order | enum | No | Values: asc, desc |
query.limit | number | No | |
query.offset | number | No | |
query.aggregate | DatastoreQuery_query_aggregate | No | |
query.aggregate.count | boolean | No | |
query.aggregate.sum | DatastoreQuery_query_aggregate_sum | No | |
query.aggregate.sum.field | string | Yes | |
query.aggregate.sum.alias | string | No | |
query.aggregate.avg | DatastoreQuery_query_aggregate_avg | No | |
query.aggregate.avg.field | string | Yes | |
query.aggregate.avg.alias | string | No | |
query.aggregate.min | DatastoreQuery_query_aggregate_min | No | |
query.aggregate.min.field | string | Yes | |
query.aggregate.min.alias | string | No | |
query.aggregate.max | DatastoreQuery_query_aggregate_max | No | |
query.aggregate.max.field | string | Yes | |
query.aggregate.max.alias | string | No | |
query.aggregate.group_by | string[] | No | |
query.is_count_only | boolean | No | |
response | object | No | |
response.items | DatastoreRecord[] | No | |
response.items[].id | string | No | |
response.items[].created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
response.items[].updated_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
response.items[].database_id | string | No | source Database ID |
response.items[].table_id | string | No | source Database Table ID |
response.items[].fields | object | Yes | The record's values, keyed by the table's field (column) names; each value is a typed value object (e.g. { "string": "Acme" } or { "number": 3 }) |
response.items[].fields.string | string | No | |
response.items[].fields.number | number | No | |
response.items[].fields.boolean | boolean | No | |
response.items[].fields.date | string | No | |
response.items[].fields.selection | string[] | No | |
response.items[].fields.is_null | boolean | No | |
response.items[].row_number | number | No | |
response.items[].metadata | DatastoreMetadata[] | No | |
response.items[].metadata[].id | string | No | The ID of the custom field definition (from the metadata/metadata endpoint). |
response.items[].metadata[].slug | string | No | The integration's API name (key) of an existing custom field. List valid slugs for this object with the metadata/metadata endpoint; unknown slugs are rejected by the integration. |
response.items[].metadata[].value | object | No | The field's value, typed by `format`: DATE as ISO-8601 (`YYYY-MM-DD`, or `YYYY-MM-DDTHH:MM:SSZ` for date-times); NUMBER, PRICE and CURRENCY as a number; BOOLEAN and YES_NO as true/false; MULTIPLE_SELECT as an array of option values; otherwise a string. |
response.items[].metadata[].namespace | string | No | |
response.items[].metadata[].format | enum | No | The data type of the custom field, which determines how `value` is formatted. Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL |
response.items[].metadata[].extra_data | object | No | |
response.aggregates | DatastoreQuery_response_aggregates | No | |
response.aggregates.count | number | No | |
response.aggregates.sum | map<number> | No | |
response.aggregates.avg | map<number> | No | |
response.aggregates.min | map<number> | No | |
response.aggregates.max | map<number> | No | |
response.aggregates.groups | object | No | Each item is one group row: a map of field name to value |
response.total_count | number | No | |
metadata | DatastoreMetadata[] | No | |
metadata[].id | string | No | The ID of the custom field definition (from the metadata/metadata endpoint). |
metadata[].slug | string | No | The integration's API name (key) of an existing custom field. List valid slugs for this object with the metadata/metadata endpoint; unknown slugs are rejected by the integration. |
metadata[].value | object | No | The field's value, typed by `format`: DATE as ISO-8601 (`YYYY-MM-DD`, or `YYYY-MM-DDTHH:MM:SSZ` for date-times); NUMBER, PRICE and CURRENCY as a number; BOOLEAN and YES_NO as true/false; MULTIPLE_SELECT as an array of option values; otherwise a string. |
metadata[].namespace | string | No | |
metadata[].format | enum | No | The data type of the custom field, which determines how `value` is formatted. Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL |
metadata[].extra_data | object | No |
Are we missing anything? Let us know