Query data model

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
table_idstringNo
database_idstringNo
queryobjectNo
query.sqlstringNoRaw SQL – when set, executed directly (table_id optional)
query.selectstring[]No
query.expandmap<DatastoreQueryExpand>No
query.expand{}.selectstring[]No
query.expand{}.filterDatastoreQueryExpand_filterNo
query.expand{}.filter.typeenumYesValues: FILTER, AND, OR
query.expand{}.filter.filtersDatastoreFilter[]No
query.expand{}.filter.filters[].fieldstringYes
query.expand{}.filter.filters[].conditionDatastoreFilter_conditionYes
query.expand{}.filter.filters[].condition.eqDatastoreFilter_condition_eqNo
query.expand{}.filter.filters[].condition.neqDatastoreFilter_condition_neqNo
query.expand{}.filter.filters[].condition.gtDatastoreFilter_condition_gtNo
query.expand{}.filter.filters[].condition.gteDatastoreFilter_condition_gteNo
query.expand{}.filter.filters[].condition.ltDatastoreFilter_condition_ltNo
query.expand{}.filter.filters[].condition.lteDatastoreFilter_condition_lteNo
query.expand{}.filter.filters[].condition.likeDatastoreFilter_condition_likeNo
query.expand{}.filter.filters[].condition.ilikeDatastoreFilter_condition_ilikeNo
query.expand{}.filter.filters[].condition.inDatastoreFieldValue[]No
query.expand{}.filter.filters[].condition.containsDatastoreFilter_condition_containsNo
query.expand{}.filter.filters[].condition.not_containsDatastoreFilter_condition_not_containsNo
query.expand{}.filter.filters[].condition.is_nullbooleanNo
query.expand{}.filter.filters[].condition.is_not_nullbooleanNo
query.expand{}.filter.andobjectNo
query.expand{}.filter.orobjectNo
query.expand{}.limitnumberNo
query.expand{}.expandmap<any>No
query.filterDatastoreQuery_query_filterNo
query.filter.typeenumYesValues: FILTER, AND, OR
query.filter.filtersDatastoreFilter[]No
query.filter.filters[].fieldstringYes
query.filter.filters[].conditionDatastoreFilter_conditionYes
query.filter.filters[].condition.eqDatastoreFilter_condition_eqNo
query.filter.filters[].condition.eq.stringstringNo
query.filter.filters[].condition.eq.numbernumberNo
query.filter.filters[].condition.eq.booleanbooleanNo
query.filter.filters[].condition.eq.datestringNo
query.filter.filters[].condition.eq.selectionstring[]No
query.filter.filters[].condition.eq.is_nullbooleanNo
query.filter.filters[].condition.neqDatastoreFilter_condition_neqNo
query.filter.filters[].condition.neq.stringstringNo
query.filter.filters[].condition.neq.numbernumberNo
query.filter.filters[].condition.neq.booleanbooleanNo
query.filter.filters[].condition.neq.datestringNo
query.filter.filters[].condition.neq.selectionstring[]No
query.filter.filters[].condition.neq.is_nullbooleanNo
query.filter.filters[].condition.gtDatastoreFilter_condition_gtNo
query.filter.filters[].condition.gt.stringstringNo
query.filter.filters[].condition.gt.numbernumberNo
query.filter.filters[].condition.gt.booleanbooleanNo
query.filter.filters[].condition.gt.datestringNo
query.filter.filters[].condition.gt.selectionstring[]No
query.filter.filters[].condition.gt.is_nullbooleanNo
query.filter.filters[].condition.gteDatastoreFilter_condition_gteNo
query.filter.filters[].condition.gte.stringstringNo
query.filter.filters[].condition.gte.numbernumberNo
query.filter.filters[].condition.gte.booleanbooleanNo
query.filter.filters[].condition.gte.datestringNo
query.filter.filters[].condition.gte.selectionstring[]No
query.filter.filters[].condition.gte.is_nullbooleanNo
query.filter.filters[].condition.ltDatastoreFilter_condition_ltNo
query.filter.filters[].condition.lt.stringstringNo
query.filter.filters[].condition.lt.numbernumberNo
query.filter.filters[].condition.lt.booleanbooleanNo
query.filter.filters[].condition.lt.datestringNo
query.filter.filters[].condition.lt.selectionstring[]No
query.filter.filters[].condition.lt.is_nullbooleanNo
query.filter.filters[].condition.lteDatastoreFilter_condition_lteNo
query.filter.filters[].condition.lte.stringstringNo
query.filter.filters[].condition.lte.numbernumberNo
query.filter.filters[].condition.lte.booleanbooleanNo
query.filter.filters[].condition.lte.datestringNo
query.filter.filters[].condition.lte.selectionstring[]No
query.filter.filters[].condition.lte.is_nullbooleanNo
query.filter.filters[].condition.likeDatastoreFilter_condition_likeNo
query.filter.filters[].condition.like.stringstringNo
query.filter.filters[].condition.like.numbernumberNo
query.filter.filters[].condition.like.booleanbooleanNo
query.filter.filters[].condition.like.datestringNo
query.filter.filters[].condition.like.selectionstring[]No
query.filter.filters[].condition.like.is_nullbooleanNo
query.filter.filters[].condition.ilikeDatastoreFilter_condition_ilikeNo
query.filter.filters[].condition.ilike.stringstringNo
query.filter.filters[].condition.ilike.numbernumberNo
query.filter.filters[].condition.ilike.booleanbooleanNo
query.filter.filters[].condition.ilike.datestringNo
query.filter.filters[].condition.ilike.selectionstring[]No
query.filter.filters[].condition.ilike.is_nullbooleanNo
query.filter.filters[].condition.inDatastoreFieldValue[]No
query.filter.filters[].condition.in[].stringstringNo
query.filter.filters[].condition.in[].numbernumberNo
query.filter.filters[].condition.in[].booleanbooleanNo
query.filter.filters[].condition.in[].datestringNo
query.filter.filters[].condition.in[].selectionstring[]No
query.filter.filters[].condition.in[].is_nullbooleanNo
query.filter.filters[].condition.containsDatastoreFilter_condition_containsNo
query.filter.filters[].condition.contains.stringstringNo
query.filter.filters[].condition.contains.numbernumberNo
query.filter.filters[].condition.contains.booleanbooleanNo
query.filter.filters[].condition.contains.datestringNo
query.filter.filters[].condition.contains.selectionstring[]No
query.filter.filters[].condition.contains.is_nullbooleanNo
query.filter.filters[].condition.not_containsDatastoreFilter_condition_not_containsNo
query.filter.filters[].condition.not_contains.stringstringNo
query.filter.filters[].condition.not_contains.numbernumberNo
query.filter.filters[].condition.not_contains.booleanbooleanNo
query.filter.filters[].condition.not_contains.datestringNo
query.filter.filters[].condition.not_contains.selectionstring[]No
query.filter.filters[].condition.not_contains.is_nullbooleanNo
query.filter.filters[].condition.is_nullbooleanNo
query.filter.filters[].condition.is_not_nullbooleanNo
query.filter.andobjectNo
query.filter.orobjectNo
query.sort_fieldsstring[]No
query.sort_orderenumNoValues: asc, desc
query.limitnumberNo
query.offsetnumberNo
query.aggregateDatastoreQuery_query_aggregateNo
query.aggregate.countbooleanNo
query.aggregate.sumDatastoreQuery_query_aggregate_sumNo
query.aggregate.sum.fieldstringYes
query.aggregate.sum.aliasstringNo
query.aggregate.avgDatastoreQuery_query_aggregate_avgNo
query.aggregate.avg.fieldstringYes
query.aggregate.avg.aliasstringNo
query.aggregate.minDatastoreQuery_query_aggregate_minNo
query.aggregate.min.fieldstringYes
query.aggregate.min.aliasstringNo
query.aggregate.maxDatastoreQuery_query_aggregate_maxNo
query.aggregate.max.fieldstringYes
query.aggregate.max.aliasstringNo
query.aggregate.group_bystring[]No
query.is_count_onlybooleanNo
responseobjectNo
response.itemsDatastoreRecord[]No
response.items[].idstringNo
response.items[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
response.items[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
response.items[].database_idstringNosource Database ID
response.items[].table_idstringNosource Database Table ID
response.items[].fieldsobjectYes
response.items[].fields.stringstringNo
response.items[].fields.numbernumberNo
response.items[].fields.booleanbooleanNo
response.items[].fields.datestringNo
response.items[].fields.selectionstring[]No
response.items[].fields.is_nullbooleanNo
response.items[].row_numbernumberNo
response.aggregatesDatastoreQuery_response_aggregatesNo
response.aggregates.countnumberNo
response.aggregates.summap<number>No
response.aggregates.avgmap<number>No
response.aggregates.minmap<number>No
response.aggregates.maxmap<number>No
response.aggregates.groupsmap<DatastoreFieldValue>[]No
response.aggregates.groups[].stringstringNo
response.aggregates.groups[].numbernumberNo
response.aggregates.groups[].booleanbooleanNo
response.aggregates.groups[].datestringNo
response.aggregates.groups[].selectionstring[]No
response.aggregates.groups[].is_nullbooleanNo
response.total_countnumberNo

TypeScript

TypeScript
export type DatastoreQuery = {
	table_id?: string;
	database_id?: string;
	query?: {
		sql?: string; // Raw SQL – when set, executed directly (table_id optional) 
		select?: any; 
		expand?: any; 
		filter?: any; 
		sort_fields?: any; 
		sort_order?: 'asc' | 'desc'; 
		limit?: number; 
		offset?: number; 
		aggregate?: any; 
		is_count_only?: boolean; 
	};
	response?: {
		items?: []; 
		aggregates?: any; 
		total_count?: number; 
	};
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodDatastoreQuery = z.object({
	table_id: z.string().optional(),
	database_id: z.string().optional(),
	query: z.object({
			sql: z.string().optional().describe("Raw SQL – when set, executed directly (table_id optional)"),
			select: z.unknown().optional(),
			expand: z.unknown().optional(),
			filter: z.unknown().optional(),
			sort_fields: z.unknown().optional(),
			sort_order: z.enum("asc", "desc").optional(),
			limit: z.number().optional(),
			offset: z.number().optional(),
			aggregate: z.unknown().optional(),
			is_count_only: z.boolean().optional()
}).optional(),
	response: z.object({
			items: z.array().optional(),
			aggregates: z.unknown().optional(),
			total_count: z.number().optional()
}).optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class DatastoreQueryQuerySort_order(str, Enum):
	asc = 'asc'
	desc = 'desc'

@dataclasses.dataclass
class PropertyDatastoreQueryQuery:
	"""Raw SQL – when set, executed directly (table_id optional)"""
	sql: Optional[str]
	select: Optional[PropertyDatastoreQuerySelect]
	expand: Optional[PropertyDatastoreQueryExpand]
	filter: Optional[PropertyDatastoreQueryFilter]
	sort_fields: Optional[PropertyDatastoreQuerySort_fields]
	sort_order: Optional[DatastoreQueryQuerySort_order]
	limit: Optional[int]
	offset: Optional[int]
	aggregate: Optional[PropertyDatastoreQueryAggregate]
	is_count_only: Optional[bool]

@dataclasses.dataclass
class PropertyDatastoreQueryResponse:
	items: Optional[PropertyDatastoreQueryItems]
	aggregates: Optional[PropertyDatastoreQueryAggregates]
	total_count: Optional[int]

@dataclasses.dataclass
class DatastoreQuery:
	table_id: Optional[str]
	database_id: Optional[str]
	query: Optional[PropertyDatastoreQueryQuery]
	response: Optional[PropertyDatastoreQueryResponse]
Are we missing anything? Let us know
Was this page helpful?