search-consumer-insights + fetch-consumer-insights reference
What this pair wraps
Statista’s own primary survey and panel research, not a citation of someone else’s data and not a modeled estimate. Statista fields proprietary online surveys across 50+ countries, up to 60,000 respondents per country, asking real people directly about their attitudes, purchases, media habits, and brand interactions, using professional online panel providers, split-questionnaire design, quota sampling, and rolling waves. Because it’s original polling rather than a citation or a model, results come back as crosstabs of actual respondent answers, and the correct citation is “Statista Consumer Insights” itself. Never an external publisher, that’s the Statistics pair, and never “Statista’s model”, that’s Market Insights.When to use this pair
Use this pair when the user wants to know what a population or segment believes, does, owns, or intends to do, the who and why behind a market rather than the market-size number. It’s built for questions like “what % of Gen Z in Germany already use X” or “how does attitude toward Y differ by income level”, and for narrowing to a target audience by combining a topic question with demographic filters to get a base rate for a niche segment. It’s the wrong tool when the user wants an aggregate market-size or forecast figure, which issearch-market-insights, or a single citable published chart, which is search-statistics. It’s also not a general-purpose demographics database. Coverage is limited to the questions Statista’s survey program actually fielded, in the countries and waves it ran in, so a very specific attitude question may not exist even when the broader topic does.
Data structure
search-consumer-insights(query) returns question IDs like v0463a_digi_streamoffers with nested answer IDs like v0463a_digi_streamoffers#4, plus year coverage and a short label for each. One search surfaces only a subset of the full answer-option space for a concept. Searching the same concept with different wording turns up a different subset of valid answer IDs, so don’t assume one search caught everything when you need a specific option that didn’t show up.
fetch-consumer-insights(rows, columns?, filters?, country?, year?) returns a crosstab. Percentages and counts live under chart.data, and the response includes a sources field, which is what you cite. Never cite survey_id, e.g. gcs_usa_202601, which is purely an internal reference. The response title describes exactly what configuration ran, and it’s worth reading closely, because the same fields mean structurally different things depending on how you combined rows, columns, and filters. See the interpretation notes.
Parameter roles:
rowsis required and takes exactly one question or answer ID. This is the primary variable being measured.columnsis optional and usually takes a demographic answer ID, or another topic ID, see gotchas. It produces a real breakdown, one crosstab column per answer option.filtersis an optional list of answer IDs that narrows the respondent base without adding a breakdown column. Multiple filters combine with AND logic, so the base is the intersection of all conditions.countryis a 3-letter ISO alpha-3 code, e.g.USA,DEU,BRA.yearrestricts to a specific survey wave.
How to query
rowstakes exactly one ID. Never comma-separate IDs into it, or intocolumns. A strict pattern validator enforces this server-side, it isn’t just a style convention.- Default pattern: pair one topic question with one demographic
columnsorfiltersID. Usecolumnswhen you need the answer broken out by a demographic,filterswhen you just need the topic’s rate within one demographic slice, a single number with no breakdown. - For a narrow audience, e.g. “Gen Z women with a college degree”, stack multiple filter IDs in the
filterslist. They intersect correctly, but watch the base shrinking to where the number stops meaning anything. The response doesn’t warn you about small samples. - Pass an explicit
countrywhenever the user cares about a specific market or wants one clean number. Omittingcountrydoesn’t give you broad global coverage, it returns an array of crosstabs auto-picked across a small default set of countries. - If the first search for a demographic concept doesn’t turn up the answer option you expect, re-search with different wording, e.g. try both “age” and “generation” framings, or both “income” and “earnings”, rather than concluding the concept isn’t covered.
How to interpret results
- Read the
titleto know what kind of result you got. “X by Y” phrasing means a true breakdown viacolumns, “X with target group Y” means a filtered base rate viafilters, and a “Fusion Data Notice” means the result is a statistically imputed estimate from statistical-twin matching across demographics rather than a directly measured joint response. Treat that as lower confidence than a direct crosstab, and flag it when you present the number. - Check the wave date or
survey_idin the response before citing ayear. If the question wasn’t fielded in the year you asked for, the tool silently substitutes the earliest available wave instead of erroring, so the response’s year may not match your request. - A demographic answer ID’s meaning and label can be country-specific. Income bands are denominated in local currency and vary by country, and education categories follow each country’s own schooling labels. Don’t reuse an income or education answer ID across countries, re-search per country when you need the same cut in several markets.
- If a
columnsbreakdown across two topic-level questions looks unusually smooth or precise, check for a Fusion Data Notice before treating it as an observed relationship.
Gotchas
- “At most one non-demographic split” is a rule of thumb, not a uniformly enforced limit. Pairing two genuinely different topic questions, one in
rowsand one incolumns, doesn’t always error. Sometimes it returns a real joint crosstab, sometimes it silently falls back to the Fusion Data Notice behavior above. Only a third non-demographic split, e.g. two topic questions plus a topic-based filter, reliably hard-errors:400 - "Incompatible splits detected between the selected questions, answers, and filters... unless they share the same split value, or are demographic (split \"demo\")...". - An invented ID, a plain English word like
"age"or a guessed sequential-looking ID, returns a 404:Question or answer not found: <id>. Only use IDs copied verbatim from a search result. - A well-formed ID plus a country the question wasn’t fielded in produces a different error:
404 - "No crosstab solution found, try a different combination of questions/answers/filters". This isn’t about the market being small or unsupported, it’s specific to whether that question ran in that country, so a less-common country works fine when the question happened to run there. - Answer IDs get retired or replaced between survey waves. An option present in one year can disappear in a later wave, replaced by a differently worded one. If results for a given
yearlook off, re-search to check the current answer set.