Skip to content

describe_onfire_schema

describe_onfire_schema is the authoritative answer to “does this field exist on this entity, and can I filter on it”. It returns the semantic model behind ask_onfire — the shape you author a QueryIR against.

  • Before querying an entity whose fields you haven’t seen. Batch every such entity into one call.
  • After a FIELD_NOT_FOUND validation error, to get the exact names.
  • To list the queryable entities when the inlined catalog isn’t available to your client (show_catalog=True).
ParameterTypeRequiredDescription
idsstring[]NoEntity identifiers, e.g. ["contact", "company"]. Omit for the catalog.
show_catalogbooleanNoReturn the routing catalog as text instead of JSON. Default false.
  • With ids — {"schemas": {id: {...}}}: the full schema per entity.
  • With show_catalog=True — the routing catalog as text.
  • With no arguments — the same catalog as JSON ({"catalog": [...]}).
  • Unknown identifier — {"error", "valid", "did_you_mean"}.

Each entity schema separates three field kinds:

KindFilterableSelectableExample
DimensionYes (when flagged filterable)Yeslocation_country, size_band, linkedin_url
AttributeNoYesfull_name, summary, start_date
Measuren/aYesPre-aggregated counts

Dimensions carry closed-list values where they have them. The schema also carries the entity’s insight-search capability, joins, worked examples, and per-entity rules.

  • Filter only on dimensions flagged filterable, or via insight_filters. Filtering an attribute is rejected at validation time.
  • The catalog is loaded from the warehouse and refreshed periodically, so new entities appear without a server deploy — treat this tool, not any static list, as the source of truth.
  • This is the only data-query surface: there is no raw-SQL tool against the data lake. (SQL over your own saved results is query_datasets.)
  • Read-only, free, and static within a server version.