Developers
MCP available

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

graphql
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.