Filter Catalog
Complete catalog of available filters and endpoints for browsing filter options.
Geographic
| Slug | Type | Description |
|---|---|---|
multi_select--country | multi_select | Country of residence |
multi_select--country_of_ip | multi_select | Country from IP geolocation |
multi_select--state | multi_select | State or province |
multi_select--city | multi_select | City |
Demographic
| Slug | Type | Description |
|---|---|---|
integer--age | integer | Age range ($gte / $lte, 18-99) |
single_select--sex | single_select | Sex |
multi_select--gender | multi_select | Gender identity |
multi_select--language | multi_select | Primary language |
multi_select--household_income | multi_select | Household income bracket |
multi_select--level_of_education | multi_select | Highest education level |
multi_select--marital_status | multi_select | Marital status |
multi_select--children | multi_select | Children by age group |
single_select--home_owner | single_select | Homeownership status |
Professional
| Slug | Type | Description |
|---|---|---|
multi_select--job_function | multi_select | Job function / role |
multi_select--industry | multi_select | Industry |
multi_select--seniority | multi_select | Seniority level |
multi_select--company_size | multi_select | Company size by headcount |
multi_select--work_setting | multi_select | Remote, hybrid, or in-office |
multi_select--employment_status | multi_select | Employment status |
Participation History
| Slug | Type | Description |
|---|---|---|
reference--has_taken_study | reference | Has completed specific study(s) |
reference--has_not_taken_study | reference | Has NOT completed specific study(s) |
Endpoints
Get Filter Catalog
Returns all available filters with their types, operators, and option metadata.
GET /v2/filtersResponse
{
"data": [
{
"slug": "integer--age",
"name": "Age",
"type": "integer",
"category": "demographic",
"operators": ["$gte", "$lte"],
"min": 18,
"max": 99
},
{
"slug": "multi_select--country",
"name": "Country of Residence",
"type": "multi_select",
"category": "geographic",
"operators": ["$eq", "$in", "$nin"],
"options_url": "/api/external/v2/filters/multi_select--country/options"
}
]
}The full catalog is returned. The example above is truncated for brevity.
min/max-- only present onintegertype filters. Defines the valid range for$gteand$lteoperators.options_url-- only present onsingle_selectandmulti_selectfilters. Fetch to get enumerable values.
Get Filter Options
Returns available values for a specific filter.
GET /v2/filters/{filter_slug}/optionsQuery Parameters
| Param | Type | Default | Description |
|---|---|---|---|
search | string | -- | Search options by name |
page | integer | 1 | Page number |
per_page | integer | 50 | Items per page (max 100) |
country_id | string | -- | ISO 3166-1 alpha-2 country code. Required for state and city filters. |
state_id | string | -- | State ISO code (e.g. CA). Narrows city results to a single state. |
Cascading Geographic Filters
State and city filters require parent context via query parameters:
- State options (
multi_select--state): passcountry_idto get states for that country. Returns empty without it. - City options (
multi_select--city): passcountry_id(required) and optionallystate_idto narrow results. Returns empty withoutcountry_id.
Geographic IDs encode their parent hierarchy so each value is unambiguous:
- State IDs:
{country}-{state}(e.g.US-CAfor California) - City IDs:
{country}-{state}-{city}(e.g.US-CA-Los Angeles)
The state_id parameter accepts both bare ISO codes (CA) and composite state IDs (US-CA), so you can feed a state option ID directly into the city endpoint.
GET /v2/filters/multi_select--state/options?country_id=US
GET /v2/filters/multi_select--city/options?country_id=US&state_id=US-CAExample: State Options Response
{
"data": [
{ "id": "US-CA", "name": "California" },
{ "id": "US-TX", "name": "Texas" }
],
"meta": { "total": 51, "page": 1, "per_page": 50 }
}Example: City Options Response
{
"data": [
{ "id": "US-CA-Los Angeles", "name": "Los Angeles" },
{ "id": "US-CA-San Francisco", "name": "San Francisco" }
],
"meta": { "total": 1200, "page": 1, "per_page": 50 }
}Applying Hierarchical Filters
Use composite IDs when setting filters on an opportunity:
{
"filters": [
{ "multi_select--country": { "$in": ["US", "BR"] } },
{ "multi_select--state": { "$in": ["US-CA", "BR-SP"] } },
{
"multi_select--city": { "$in": ["US-CA-Los Angeles", "BR-SP-São Paulo"] }
}
]
}