/recommend endpoint returns up to five restaurant recommendations tailored to a specific user. For existing users in the dataset, pass their user_id and the API infers preferences from their review history. For new users with no history, pass cold_start_signals — a city, food preference, and price range — to get sensible recommendations right away. You can also provide an optional free-text query or GPS coordinates to further refine results.
Request
user_id or cold_start_signals. The API returns 422 if neither is present.
Body
An ID from the built-in review dataset. The API derives preferences from this user’s review history. Use this or
cold_start_signals, not both. For new users or custom integrations, use cold_start_signals instead.Preference signals for a new user with no review history. Use this or
user_id, not both.An optional free-text search query to further narrow results (e.g.
"suya near Wuse").Optional GPS latitude of the user’s current location (e.g.
6.4281). Used to prioritize nearby restaurants.Optional GPS longitude of the user’s current location (e.g.
3.4219). Used together with user_lat.Response
The response is an array of up to five recommendation objects.The name of the recommended restaurant.
The Google Places
place_id for this restaurant (e.g. "ChIJxxxxxxx"). May be null if no Places match was found.A short explanation of why this restaurant was recommended, taking the user’s preferences into account.
The predicted star rating this user would give the restaurant, on a 1–5 scale.
An optional tip about visiting this restaurant — for example, the best time to go or crowds to expect.
Example
Errors
| Status | Cause |
|---|---|
422 | Neither user_id nor cold_start_signals was provided, or required cold_start_signals fields are missing. |
502 | The Gemini AI layer returned an unexpected or unparseable response. |
503 | The Gemini AI service is unavailable or not configured. |