addedInput schema / additionalProperties
Added value: +false
removedInput schema / properties / criteria
Removed value: -{
- "description": "Simple demographic criteria; choose this or one other population input, not both",
- "properties": {
- "age_max": {
- "description": "Maximum age in years",
- "type": "number"
- },
- "age_min": {
- "description": "Minimum age in years",
- "type": "number"
- },
- "genders": {
- "description": "Gender labels to include",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "income_max": {
- "description": "Legacy input; ignored because household income is categorical. Use field-catalog filters instead.",
- "type": "number"
- },
- "income_min": {
- "description": "Legacy input; ignored because household income is categorical. Use field-catalog filters instead.",
- "type": "number"
- },
- "interests": {
- "description": "Interest labels to include",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "states": {
- "description": "US state abbreviations to include",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "zip_codes": {
- "description": "Five-digit ZIP codes to include",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
-}
changedInput schema / properties / filter_groups / items / additionalProperties
Previous value: -{}New value: +false
addedInput schema / properties / filter_groups / items / properties
Added value: +{
+ "combinator": {
+ "description": "Join to the preceding included group; ignored for the first group. AND binds before OR. Exclusion groups always subtract.",
+ "enum": [
+ "AND",
+ "OR"
+ ],
+ "type": "string"
+ },
+ "filters": {
+ "description": "All conditions in this group must match",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "description": "field_name from get_field_catalog; ZIP5 also accepts zip, zip_code or postal_code. Use published operators and enum_values",
+ "minLength": 1,
+ "type": "string"
+ },
+ "op": {
+ "enum": [
+ "=",
+ "!=",
+ "<",
+ "<=",
+ ">",
+ ">=",
+ "IN",
+ "NOT IN",
+ "BETWEEN",
+ "LIKE",
+ "ARRAY_CONTAINS",
+ "ARRAY_CONTAINS_ANY",
+ "IS NULL",
+ "IS NOT NULL"
+ ],
+ "type": "string"
+ },
+ "text_comparison": {
+ "description": "STRING =, !=, IN, NOT IN, LIKE and ARRAY<STRING> ARRAY_CONTAINS, ARRAY_CONTAINS_ANY. Default exact. case_insensitive applies Unicode case folding to stored text and the supplied value; use when capitalization is incidental.",
+ "enum": [
+ "exact",
+ "case_insensitive"
+ ],
+ "type": "string"
+ },
+ "trim_whitespace": {
+ "description": "Supported STRING or ARRAY<STRING> comparisons only. Trim leading/trailing whitespace on both sides; default false.",
+ "type": "boolean"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Scalar for comparisons; array for IN/NOT IN; ARRAY_CONTAINS_ANY matches any listed value; [lower, upper] inclusive for BETWEEN; LIKE uses % for any sequence and _ for one character; omit for IS NULL/IS NOT NULL. Use enum_values codes, not display labels"
+ }
+ },
+ "required": [
+ "field",
+ "op"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "id": {
+ "description": "Caller-chosen group ID, for example geography; prefix _exclude:: to subtract this group",
+ "minLength": 1,
+ "type": "string"
+ }
+}
removedInput schema / properties / filter_groups / items / propertyNames
Removed value: -{
- "type": "string"
-}
addedInput schema / properties / filter_groups / items / required
Added value: +[
+ "id",
+ "combinator",
+ "filters"
+]
changedInput schema / properties / filters / items / additionalProperties
Previous value: -{}New value: +false
addedInput schema / properties / filters / items / properties
Added value: +{
+ "field": {
+ "description": "field_name from get_field_catalog; ZIP5 also accepts zip, zip_code or postal_code. Use published operators and enum_values",
+ "minLength": 1,
+ "type": "string"
+ },
+ "op": {
+ "enum": [
+ "=",
+ "!=",
+ "<",
+ "<=",
+ ">",
+ ">=",
+ "IN",
+ "NOT IN",
+ "BETWEEN",
+ "LIKE",
+ "ARRAY_CONTAINS",
+ "ARRAY_CONTAINS_ANY",
+ "IS NULL",
+ "IS NOT NULL"
+ ],
+ "type": "string"
+ },
+ "text_comparison": {
+ "description": "STRING =, !=, IN, NOT IN, LIKE and ARRAY<STRING> ARRAY_CONTAINS, ARRAY_CONTAINS_ANY. Default exact. case_insensitive applies Unicode case folding to stored text and the supplied value; use when capitalization is incidental.",
+ "enum": [
+ "exact",
+ "case_insensitive"
+ ],
+ "type": "string"
+ },
+ "trim_whitespace": {
+ "description": "Supported STRING or ARRAY<STRING> comparisons only. Trim leading/trailing whitespace on both sides; default false.",
+ "type": "boolean"
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Scalar for comparisons; array for IN/NOT IN; ARRAY_CONTAINS_ANY matches any listed value; [lower, upper] inclusive for BETWEEN; LIKE uses % for any sequence and _ for one character; omit for IS NULL/IS NOT NULL. Use enum_values codes, not display labels"
+ }
+}
removedInput schema / properties / filters / items / propertyNames
Removed value: -{
- "type": "string"
-}
addedInput schema / properties / filters / items / required
Added value: +[
+ "field",
+ "op"
+]
changedInput schema / properties / group_by / description
Previous value: -"Field to group counts by; mutually exclusive with automatic breakdowns"New value: +"Field with groupable=true in get_field_catalog; mutually exclusive with automatic breakdowns"
removedOutput schema / properties / bytes_scanned
Removed value: -{
- "description": "Measured query bytes scanned",
- "type": "number"
-}
addedOutput schema / properties / count_state
Added value: +{
+ "description": "Unknown means no count; available does not guarantee freshness. Recount for a current value.",
+ "enum": [
+ "unknown",
+ "available"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / count_unit
Added value: +{
+ "const": "records",
+ "type": "string"
+}
removedOutput schema / properties / estimated_cost_usd
Removed value: -{
- "description": "Estimated query cost in US dollars",
- "type": "number"
-}
addedOutput schema / properties / guidance
Added value: +{
+ "description": "Interpretation or recovery guidance for this result",
+ "type": "string"
+}
addedOutput schema / properties / money_display
Added value: +{
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Currency amounts formatted once from source paths ending in _cents. Use verbatim; do not divide again. Null/missing source amounts are omitted, not zero.",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+}
addedOutput schema / properties / next_actions
Added value: +{
+ "description": "Suggested next calls using returned IDs and available scopes. Not executed and not user consent.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "arguments": {
+ "additionalProperties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "tool": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "tool",
+ "arguments",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / page_count
Added value: +{
+ "description": "Number of objects on this page, not the organization total",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+}
addedOutput schema / properties / population_input
Added value: +{
+ "additionalProperties": {},
+ "description": "Population input used for the preview; IDs refer to their current saved definitions",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+}
changedOutput schema / required
Previous value: -[
- "count",
- "bytes_scanned",
- "estimated_cost_usd"
-]New value: +[
+ "count"
+]