GraphQL filtering
The search, childrenOf and descendantsOf connection operations support extensive server-side filtering. Argument and value names are case-sensitive and must match the schema exactly.
Exact keyword filters
Examples include category, price_level, country_code, address_city, location_type, environment, root_city_id, address_region, plan_type, and place_id. These accept one string value apiece.
Multi-value filters (AND)
amenities, ambience, audience, experience, sustainability, weather_suitability, access, additional_categories, category_ids and the style_* fields accept arrays. The result must match every value listed. Filters across different fields are ANDed as well.
Numeric/date ranges and booleans
Use _gte and _lte on fields such as rating, rating_votes, duration_min, ranking_score, total_photos, and last_updated. Boolean filters include is_folder, subscription_status and is_claimed. Use place_score_gte / place_score_lte for Place Score.
Geographic filters
For lexical search, pass ancestor_id (subtree) or parent_id (immediate children) to separate place names from search terms. lat and lon together with optional radius filter proximity; default is "5km", maximum "50km".
Example: multiple constraints
query {
descendantsOf(
ancestorId: "27799"
nodeType: "Restaurants"
category: "Italian"
price_level: "moderate"
rating_gte: 4.3
rating_votes_gte: 50
amenities: ["Wifi", "Parking"]
first: 15
) {
edges { node { id title category rating rating_votes amenities } }
pageInfo { hasNextPage endCursor }
}
}Useful references: Exhaustive argument catalog, known filter values, end-to-end recipes. Note that no "free" price_level value is documented.