SearchPreferences
Good For
This array makes it quick and easy to get great results without having to use the genres, caters and establishment controls
The goodFor array is a powerful shortcut that combines multiple venue characteristics into simple, intuitive tags. Instead of manually configuring complex preference combinations, you can use these pre-defined tags to quickly get venues that match common use cases.
Basic usage
preferences: {
goodFor: ["date", "conversation"];
}Good For tags
You can specify one or more goodFor tags, and the search will take all provided preferences into account returning the best matches.
Good For filters
| Filter | Description |
|---|---|
| breakfast | Venues that serve breakfast |
| brunch | Venues that serve brunch |
| children | Venues that are good for children with kids' menus and family atmosphere |
| clubbing | Nightclubs and venues for dancing |
| coffee | Coffee shops and cafes |
| cocktails | Cocktail bars and venues serving cocktails |
| conversation | Venues with good acoustics and atmosphere for talking |
| cozy | Venues with a cosy, intimate atmosphere |
| date | Romantic venues perfect for dates and anniversaries |
| dinner | Venues that serve dinner |
| dogs | Venues that allow dogs |
| family | Venues that are family-oriented and kid-friendly |
| fresh | Farm-to-table restaurants with fresh, local ingredients |
| groups | Venues that can accommodate larger groups and parties |
| halal | Halal-certified venues and restaurants |
| homemade | Venues offering home-cooked style meals |
| innovative | Modern, innovative cuisine and dining experiences |
| jazz | Jazz clubs and venues with jazz music |
| live music | Venues that feature live music performances |
| local | Locally-sourced ingredients and farm-to-table dining |
| lunch | Venues that serve lunch |
| meetings | Venues good for business meetings and client lunches |
| modern | Contemporary, modern dining establishments |
| outdoor seating | Venues with outdoor seating areas |
| private | Venues that offer private events and private dining options |
| sports bar | Sports bars with TVs and sports atmosphere |
| vegan | Vegan restaurants and venues with vegan options |
| vegetarian | Vegetarian restaurants and venues with vegetarian options |
| watching sport | Sports bars and venues good for watching sports |
| wine | Wine bars and venues with extensive wine selections |
| working | Venues suitable for work meetings and professional dining |
Real-world examples
preferences: {
goodFor: ["date", "conversation"],
}preferences: {
goodFor: ["family", "children", "lunch", "fresh"],
openingConditions: { state: "OPEN" }
}preferences: {
goodFor: ["working", "conversation", "lunch"],
openingConditions: { state: "OPEN" }
}When to use goodFor vs. detailed preferences
Use goodFor when:
- You want quick, reliable results
- You're building a simple interface
- You need common use case coverage
- You want to avoid complex preference combinations
Use detailed preferences when:
- You need very specific venue characteristics
- You're building advanced filtering interfaces
- You want granular control over results
- You need to handle edge cases
Best practice
- Start with goodFor: Use these tags as your primary filtering method
- Combine tags thoughtfully: Don't use conflicting tags
- Consider user context: Different tags suit different situations
GoodFor vs. manual preferences
Using goodFor (simple)
preferences: {
goodFor: ["date", "conversation"],
openingConditions: { state: "OPEN" }
}Manual approach (more control)
preferences: {
chainPreference: "PREFER_INDEPENDENT",
establishmentFilters: ["goodForDate", "servesWine", "dineIn", "liveMusic", "servesDinner"],
openingConditions: { state: "OPEN" },
nonCompromise: ["establishmentFilters"],
catersFilters: ["vegetarian"]
}