Skip to main content
Glama

Search places

search_places
Read-only

Find places for an intent near a location

The core call. Give one or more categories (exact names like "Coffee", or ids from list_categories; all must match) and a location — a city name or an area_id from list_areas, or coordinates with a radius — and get places ranked by Atly's score for those categories, each with quotable reasons from real reviews, a link to cite, a Google Maps link, whether it is open now, and when Atly added and last refreshed it. The first three also carry hours, contact and good-to-know. Scores are 0–10 and relative to other places in the same country; a place with no score is unmeasured, not bad. If no place matches every category, trailing categories are dropped until something does (the first is never dropped), and dropped_categories says which. Ranking considers the strongest 100 candidates by Atly's base score (400 with place_type); dropped_categories lists the dropped ones as you sent them.

Input Schema

NameRequiredDescriptionDefault
latNo
lonNo
limitNoPlaces to return, at most 25; a larger value returns 25.
area_idNoAn id from `list_areas`; the search covers that area's viewport. A city name also works ("Austin", "Boise, ID"): it resolves to the matching area, or, for a city with no area, to the extent of the places whose address is in it; the response's `area` and doc_notes say what it resolved to. Give this or lat/lon, not both.
radius_kmNoUsed with lat/lon, in km. Held to 0.2-50 (doc_notes say so when it was).
categoriesYesCategory names or ids, most important first. Every result matches all of them (after any relaxation). A name that is not exact is refused, with the close matches in the error.
place_typeNoOptional. Keep only places whose Google place type contains one of these words, matched as whole words: "restaurant" keeps "Mexican restaurant" and "Pizza restaurant", "coffee" keeps "Coffee shop", "bar" keeps "Wine bar" but not "Barber shop". A place matches on its main type (`place_type` in results) or any of its other Google types. Use it when the user asks for a kind of venue ("gluten-free restaurants"), not a dish or a feature. Google's types are literal: "Cafe" and "Coffee shop" are different, so for cafes pass both ["cafe", "coffee"]. The filter is applied to the strongest 400 places for the categories and never relaxed.

Output Schema

NameRequiredDescriptionDefault
areaNoThe resolved search geometry — an area (id, name, level, center, bbox), a city known only from its places (name, level, region, country, center, bbox; no id), or a circle (center, radius_km).
placesNo
call_idNo
doc_notesNo
total_matchedNoHow many places match in this area, capped ("1000+"). Absent with `place_type` (the count cannot see place types) or when counting timed out.
dropped_categoriesNoCategories dropped to avoid an empty result, as you sent them (a name or an id).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / places / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": {},
      -      "properties": {
      -        "added_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "When Atly added the place. Not a freshness date."
      -        },
      -        "address": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "blurb": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "One-line editorial summary."
      -        },
      -        "business_status": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "category_scores": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": {},
      -                "properties": {
      -                  "category_id": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "name": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "reviews": {
      -                    "anyOf": [
      -                      {
      -                        "maximum": 9007199254740991,
      -                        "minimum": -9007199254740991,
      -                        "type": "integer"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Reviews that mention this category."
      -                  },
      -                  "score": {
      -                    "type": [
      -                      "number",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "data_refreshed_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "When Atly last refreshed the place's data from its sources. Absent when unknown."
      -        },
      -        "distance_km": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "From the search center: the coordinates given, or the area's center (the middle of its bounding box when it has one)."
      -        },
      -        "gluten_free": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": {},
      -              "properties": {
      -                "dedicated_fryer": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "dedicated_kitchen": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "menu": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "safety": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "100% dedicated gluten-free",
      -                        "celiac friendly (low risk of cross-contamination)",
      -                        "accommodating (some risk of cross-contamination)",
      -                        "discuss cross-contamination with staff"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "trained_staff": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "verified_by_atly": {
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Present only for places with a gluten-free identity."
      -        },
      -        "good_to_know": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "google_rating": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "hours": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": {},
      -                "properties": {
      -                  "close": {
      -                    "type": "string"
      -                  },
      -                  "close_day": {
      -                    "anyOf": [
      -                      {
      -                        "enum": [
      -                          "sun",
      -                          "mon",
      -                          "tue",
      -                          "wed",
      -                          "thu",
      -                          "fri",
      -                          "sat"
      -                        ],
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "day": {
      -                    "enum": [
      -                      "sun",
      -                      "mon",
      -                      "tue",
      -                      "wed",
      -                      "thu",
      -                      "fri",
      -                      "sat"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "open": {
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "day",
      -                  "open",
      -                  "close"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Weekly opening hours in the place's local time, one entry per opening (a day can have several). close 24:00 means it closes at midnight; close_day is set when it closes after midnight, on that day. In get_place and the first search results; absent when unknown."
      -        },
      -        "hours_updated_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "When the opening hours were last updated. Absent when there are no hours or no date. Over a year old (or absent with hours), say they may have changed and suggest checking with the place."
      -        },
      -        "id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "lat": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "lon": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "maps_url": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Google Maps link for the place (directions), from its Google place id. Not an Atly page: cite url for Atly."
      -        },
      -        "menu_url": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "name": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "open_now": {
      -          "anyOf": [
      -            {
      -              "type": "boolean"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Open at the time of the response, by its hours and timezone; false when the place is closed temporarily or for good. Absent when its hours or timezone are unknown. As fresh as the hours: see hours_updated_at."
      -        },
      -        "phone": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "place_type": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "price": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "reasons": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": {},
      -                "properties": {
      -                  "kind": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "sentiment": {
      -                    "anyOf": [
      -                      {
      -                        "enum": [
      -                          "positive",
      -                          "neutral",
      -                          "negative"
      -                        ],
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "text": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      -        },
      -        "reservation_url": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "review_count": {
      -          "anyOf": [
      -            {
      -              "maximum": 9007199254740991,
      -              "minimum": -9007199254740991,
      -              "type": "integer"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "score": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Atly score 0–10 — for the requested categories in search, the overall score in get_place — relative to other places in the same country. Absent when unmeasured (too few reviews, or closed)."
      -        },
      -        "timezone": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "IANA timezone of the place."
      -        },
      -        "url": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Canonical Atly page. Link it when you cite. Absent when the place has no page yet."
      -        },
      -        "website": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "added_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Atly added the place. Not a freshness date."
      +        },
      +        "address": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "blurb": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "One-line editorial summary."
      +        },
      +        "business_status": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "category_scores": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "category_id": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "name": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "reviews": {
      +                    "anyOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": -9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Reviews that mention this category."
      +                  },
      +                  "score": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "data_refreshed_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Atly last refreshed the place's data from its sources. Absent when unknown."
      +        },
      +        "distance_km": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "From the search center: the coordinates given, or the area's center (the middle of its bounding box when it has one)."
      +        },
      +        "gluten_free": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "dedicated_fryer": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "YES",
      +                        "NO",
      +                        "UNKNOWN",
      +                        "NOT_APPLICABLE"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "dedicated_kitchen": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "YES",
      +                        "NO",
      +                        "UNKNOWN",
      +                        "NOT_APPLICABLE"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "menu": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "DEDICATED_GF_MENU",
      +                        "GF_OPTIONS_MARKED",
      +                        "GF_OPTIONS_NOT_MARKED",
      +                        "UNKNOWN"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "safety": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "100% dedicated gluten-free",
      +                        "celiac friendly (low risk of cross-contamination)",
      +                        "accommodating (some risk of cross-contamination)",
      +                        "discuss cross-contamination with staff"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "trained_staff": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "YES",
      +                        "NO",
      +                        "UNKNOWN",
      +                        "NOT_APPLICABLE"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "verified_by_atly": {
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Present only for places with a gluten-free identity."
      +        },
      +        "good_to_know": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "google_rating": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "hours": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "close": {
      +                    "type": "string"
      +                  },
      +                  "close_day": {
      +                    "anyOf": [
      +                      {
      +                        "enum": [
      +                          "sun",
      +                          "mon",
      +                          "tue",
      +                          "wed",
      +                          "thu",
      +                          "fri",
      +                          "sat"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "day": {
      +                    "enum": [
      +                      "sun",
      +                      "mon",
      +                      "tue",
      +                      "wed",
      +                      "thu",
      +                      "fri",
      +                      "sat"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "open": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "day",
      +                  "open",
      +                  "close"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Weekly opening hours in the place's local time, one entry per opening (a day can have several). close 24:00 means it closes at midnight; close_day is set when it closes after midnight, on that day. In get_place and the first search results; absent when unknown."
      +        },
      +        "hours_updated_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When the opening hours were last updated. Absent when there are no hours or no date. Over a year old (or absent with hours), say they may have changed and suggest checking with the place."
      +        },
      +        "id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "lat": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "lon": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "maps_url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Google Maps link for the place (directions), from its Google place id. Not an Atly page: cite url for Atly."
      +        },
      +        "menu_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "name": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "open_now": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Open at the time of the response, by its hours and timezone; false when the place is closed temporarily or for good. Absent when its hours or timezone are unknown. As fresh as the hours: see hours_updated_at."
      +        },
      +        "phone": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "place_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "price": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "reasons": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "kind": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "sentiment": {
      +                    "anyOf": [
      +                      {
      +                        "enum": [
      +                          "positive",
      +                          "neutral",
      +                          "negative"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "text": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      +        },
      +        "reservation_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "review_count": {
      +          "anyOf": [
      +            {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "score": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Atly score 0–10 — for the requested categories in search, the overall score in get_place — relative to other places in the same country. Absent when unmeasured (too few reviews, or closed)."
      +        },
      +        "timezone": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "IANA timezone of the place."
      +        },
      +        "url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Canonical Atly page. Link it when you cite. Absent when the place has no page yet."
      +        },
      +        "website": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / categories / description
      Previous value: -"Category names or ids, most important first. Every result matches all of them (after any relaxation). A name that is not exact is refused (400) with the close matches in the error."New value: +"Category names or ids, most important first. Every result matches all of them (after any relaxation). A name that is not exact is refused, with the close matches in the error."
    • changedOutput schema / properties / places / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": {},
      -      "properties": {
      -        "added_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "When Atly added the place. Not a freshness date."
      -        },
      -        "address": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "blurb": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "One-line editorial summary."
      -        },
      -        "business_status": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "category_scores": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": {},
      -                "properties": {
      -                  "category_id": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "name": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "reviews": {
      -                    "anyOf": [
      -                      {
      -                        "maximum": 9007199254740991,
      -                        "minimum": -9007199254740991,
      -                        "type": "integer"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Reviews that mention this category."
      -                  },
      -                  "score": {
      -                    "type": [
      -                      "number",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "data_refreshed_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "When Atly last refreshed the place's data from its sources. Absent when unknown."
      -        },
      -        "distance_km": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "From the search center."
      -        },
      -        "gluten_free": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": {},
      -              "properties": {
      -                "dedicated_fryer": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "dedicated_kitchen": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "menu": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "safety": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "100% dedicated gluten-free",
      -                        "celiac friendly (low risk of cross-contamination)",
      -                        "accommodating (some risk of cross-contamination)",
      -                        "discuss cross-contamination with staff"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "trained_staff": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "verified_by_atly": {
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Present only for places with a gluten-free identity."
      -        },
      -        "good_to_know": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "google_rating": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "hours": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": {},
      -                "properties": {
      -                  "close": {
      -                    "type": "string"
      -                  },
      -                  "close_day": {
      -                    "anyOf": [
      -                      {
      -                        "enum": [
      -                          "sun",
      -                          "mon",
      -                          "tue",
      -                          "wed",
      -                          "thu",
      -                          "fri",
      -                          "sat"
      -                        ],
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "day": {
      -                    "enum": [
      -                      "sun",
      -                      "mon",
      -                      "tue",
      -                      "wed",
      -                      "thu",
      -                      "fri",
      -                      "sat"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "open": {
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "day",
      -                  "open",
      -                  "close"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Weekly opening hours in the place's local time, one entry per opening (a day can have several). close 24:00 means it closes at midnight; close_day is set when it closes after midnight, on that day. In get_place and the first search results; absent when unknown."
      -        },
      -        "hours_updated_at": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "When the opening hours were last updated. Absent when there are no hours or no date. Over a year old (or absent with hours), say they may have changed and suggest checking with the place."
      -        },
      -        "id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "lat": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "lon": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "maps_url": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Google Maps link for the place (directions), from its Google place id. Not an Atly page: cite url for Atly."
      -        },
      -        "menu_url": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "name": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "open_now": {
      -          "anyOf": [
      -            {
      -              "type": "boolean"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Open at the time of the response, by its hours and timezone; false when the place is closed temporarily or for good. Absent when its hours or timezone are unknown. As fresh as the hours: see hours_updated_at."
      -        },
      -        "phone": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "place_type": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "price": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "reasons": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": {},
      -                "properties": {
      -                  "kind": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "sentiment": {
      -                    "anyOf": [
      -                      {
      -                        "enum": [
      -                          "positive",
      -                          "neutral",
      -                          "negative"
      -                        ],
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "text": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      -        },
      -        "reservation_url": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "review_count": {
      -          "anyOf": [
      -            {
      -              "maximum": 9007199254740991,
      -              "minimum": -9007199254740991,
      -              "type": "integer"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "score": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Atly score 0–10 — for the requested categories in search, the overall score in get_place — relative to other places in the same country. Absent when unmeasured (too few reviews, or closed)."
      -        },
      -        "timezone": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "IANA timezone of the place."
      -        },
      -        "url": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Canonical Atly page. Link it when you cite. Absent when the place has no page yet."
      -        },
      -        "website": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "added_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Atly added the place. Not a freshness date."
      +        },
      +        "address": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "blurb": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "One-line editorial summary."
      +        },
      +        "business_status": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "category_scores": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "category_id": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "name": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "reviews": {
      +                    "anyOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": -9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Reviews that mention this category."
      +                  },
      +                  "score": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "data_refreshed_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Atly last refreshed the place's data from its sources. Absent when unknown."
      +        },
      +        "distance_km": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "From the search center: the coordinates given, or the area's center (the middle of its bounding box when it has one)."
      +        },
      +        "gluten_free": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "dedicated_fryer": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "dedicated_kitchen": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "menu": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "safety": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "100% dedicated gluten-free",
      +                        "celiac friendly (low risk of cross-contamination)",
      +                        "accommodating (some risk of cross-contamination)",
      +                        "discuss cross-contamination with staff"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "trained_staff": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "verified_by_atly": {
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Present only for places with a gluten-free identity."
      +        },
      +        "good_to_know": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "google_rating": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "hours": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "close": {
      +                    "type": "string"
      +                  },
      +                  "close_day": {
      +                    "anyOf": [
      +                      {
      +                        "enum": [
      +                          "sun",
      +                          "mon",
      +                          "tue",
      +                          "wed",
      +                          "thu",
      +                          "fri",
      +                          "sat"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "day": {
      +                    "enum": [
      +                      "sun",
      +                      "mon",
      +                      "tue",
      +                      "wed",
      +                      "thu",
      +                      "fri",
      +                      "sat"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "open": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "day",
      +                  "open",
      +                  "close"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Weekly opening hours in the place's local time, one entry per opening (a day can have several). close 24:00 means it closes at midnight; close_day is set when it closes after midnight, on that day. In get_place and the first search results; absent when unknown."
      +        },
      +        "hours_updated_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When the opening hours were last updated. Absent when there are no hours or no date. Over a year old (or absent with hours), say they may have changed and suggest checking with the place."
      +        },
      +        "id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "lat": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "lon": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "maps_url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Google Maps link for the place (directions), from its Google place id. Not an Atly page: cite url for Atly."
      +        },
      +        "menu_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "name": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "open_now": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Open at the time of the response, by its hours and timezone; false when the place is closed temporarily or for good. Absent when its hours or timezone are unknown. As fresh as the hours: see hours_updated_at."
      +        },
      +        "phone": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "place_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "price": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "reasons": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "kind": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "sentiment": {
      +                    "anyOf": [
      +                      {
      +                        "enum": [
      +                          "positive",
      +                          "neutral",
      +                          "negative"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "text": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      +        },
      +        "reservation_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "review_count": {
      +          "anyOf": [
      +            {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "score": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Atly score 0–10 — for the requested categories in search, the overall score in get_place — relative to other places in the same country. Absent when unmeasured (too few reviews, or closed)."
      +        },
      +        "timezone": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "IANA timezone of the place."
      +        },
      +        "url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Canonical Atly page. Link it when you cite. Absent when the place has no page yet."
      +        },
      +        "website": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / total_matched / description
      Previous value: -"How many places match in this area, capped (\"1000+\"). Absent when counting timed out."New value: +"How many places match in this area, capped (\"1000+\"). Absent with `place_type` (the count cannot see place types) or when counting timed out."
  3. Changed11 schema fields changed
    • changedInput schema / properties / categories / description
      Previous value: -"Category ids, most important first. Every result matches all of them (after any relaxation)."New value: +"Category names or ids, most important first. Every result matches all of them (after any relaxation). A name that is not exact is refused (400) with the close matches in the error."
    • addedInput schema / properties / limit / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / radius_km / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / radius_km / description
      Previous value: -"Used with lat/lon."New value: +"Used with lat/lon, in km. Held to 0.2-50 (doc_notes say so when it was)."
    • removedInput schema / properties / radius_km / type
      Removed value: -"number"
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +{}
    • changedOutput schema / properties / area / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "The resolved search geometry — an area (id, name, level, center, bbox), a city known only from its places (name, level, region, country, center, bbox; no id), or a circle (center, radius_km).",
      -    "properties": {},
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / dropped_categories / anyOf
      Previous value: -[
      -  {
      -    "description": "Category ids dropped to avoid an empty result.",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / dropped_categories / description
      Previous value: -"Category ids dropped to avoid an empty result."New value: +"Categories dropped to avoid an empty result, as you sent them (a name or an id)."
    • changedOutput schema / properties / places / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "address": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "blurb": {
      -          "description": "One-line editorial summary.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "category_scores": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "category_id": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "name": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "reviews": {
      -                    "anyOf": [
      -                      {
      -                        "description": "Reviews that mention this category.",
      -                        "type": "integer"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Reviews that mention this category."
      -                  },
      -                  "score": {
      -                    "type": [
      -                      "number",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "distance_km": {
      -          "description": "From the search center.",
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "gluten_free": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": false,
      -              "description": "Present only for places with a gluten-free identity.",
      -              "properties": {
      -                "dedicated_fryer": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "dedicated_kitchen": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "menu": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "safety": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "100% dedicated gluten-free",
      -                        "celiac friendly (low risk of cross-contamination)",
      -                        "accommodating (some risk of cross-contamination)",
      -                        "discuss cross-contamination with staff"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "trained_staff": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "verified_by_atly": {
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Present only for places with a gluten-free identity."
      -        },
      -        "google_rating": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "last_updated": {
      -          "description": "When Atly last refreshed this place's data from its sources. Absent when unknown; never the date the place was added.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "lat": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "lon": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "name": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "place_type": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "price": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "reasons": {
      -          "anyOf": [
      -            {
      -              "description": "Short first-person statements from real reviews, most useful first. Quote them.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "kind": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "sentiment": {
      -                    "anyOf": [
      -                      {
      -                        "enum": [
      -                          "positive",
      -                          "neutral",
      -                          "negative"
      -                        ],
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "text": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      -        },
      -        "review_count": {
      -          "anyOf": [
      -            {
      -              "type": "integer"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "score": {
      -          "description": "Atly score 0–10 — for the requested categories in search",
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "url": {
      -          "description": "Canonical Atly page. Link it when you cite.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "added_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Atly added the place. Not a freshness date."
      +        },
      +        "address": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "blurb": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "One-line editorial summary."
      +        },
      +        "business_status": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "category_scores": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "category_id": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "name": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "reviews": {
      +                    "anyOf": [
      +                      {
      +                        "maximum": 9007199254740991,
      +                        "minimum": -9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Reviews that mention this category."
      +                  },
      +                  "score": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "data_refreshed_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When Atly last refreshed the place's data from its sources. Absent when unknown."
      +        },
      +        "distance_km": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "From the search center."
      +        },
      +        "gluten_free": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "dedicated_fryer": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "dedicated_kitchen": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "menu": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "safety": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "100% dedicated gluten-free",
      +                        "celiac friendly (low risk of cross-contamination)",
      +                        "accommodating (some risk of cross-contamination)",
      +                        "discuss cross-contamination with staff"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "trained_staff": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "verified_by_atly": {
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Present only for places with a gluten-free identity."
      +        },
      +        "good_to_know": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "google_rating": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "hours": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "close": {
      +                    "type": "string"
      +                  },
      +                  "close_day": {
      +                    "anyOf": [
      +                      {
      +                        "enum": [
      +                          "sun",
      +                          "mon",
      +                          "tue",
      +                          "wed",
      +                          "thu",
      +                          "fri",
      +                          "sat"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "day": {
      +                    "enum": [
      +                      "sun",
      +                      "mon",
      +                      "tue",
      +                      "wed",
      +                      "thu",
      +                      "fri",
      +                      "sat"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "open": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "day",
      +                  "open",
      +                  "close"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Weekly opening hours in the place's local time, one entry per opening (a day can have several). close 24:00 means it closes at midnight; close_day is set when it closes after midnight, on that day. In get_place and the first search results; absent when unknown."
      +        },
      +        "hours_updated_at": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When the opening hours were last updated. Absent when there are no hours or no date. Over a year old (or absent with hours), say they may have changed and suggest checking with the place."
      +        },
      +        "id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "lat": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "lon": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "maps_url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Google Maps link for the place (directions), from its Google place id. Not an Atly page: cite url for Atly."
      +        },
      +        "menu_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "name": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "open_now": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Open at the time of the response, by its hours and timezone; false when the place is closed temporarily or for good. Absent when its hours or timezone are unknown. As fresh as the hours: see hours_updated_at."
      +        },
      +        "phone": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "place_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "price": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "reasons": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "kind": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "sentiment": {
      +                    "anyOf": [
      +                      {
      +                        "enum": [
      +                          "positive",
      +                          "neutral",
      +                          "negative"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "text": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      +        },
      +        "reservation_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "review_count": {
      +          "anyOf": [
      +            {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "score": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Atly score 0–10 — for the requested categories in search, the overall score in get_place — relative to other places in the same country. Absent when unmeasured (too few reviews, or closed)."
      +        },
      +        "timezone": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "IANA timezone of the place."
      +        },
      +        "url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Canonical Atly page. Link it when you cite. Absent when the place has no page yet."
      +        },
      +        "website": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / total_matched / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "string"
      -      }
      -    ],
      -    "description": "How many places match in this area, capped (\"1000+\"). Absent when counting timed out."
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      {
      +        "type": "string"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  4. Changed2 schema fields changed
    • addedInput schema / properties / place_type
      Added value: +{
      +  "description": "Optional. Keep only places whose Google place type contains one of these words, matched as whole words: \"restaurant\" keeps \"Mexican restaurant\" and \"Pizza restaurant\", \"coffee\" keeps \"Coffee shop\", \"bar\" keeps \"Wine bar\" but not \"Barber shop\". A place matches on its main type (`place_type` in results) or any of its other Google types. Use it when the user asks for a kind of venue (\"gluten-free restaurants\"), not a dish or a feature. Google's types are literal: \"Cafe\" and \"Coffee shop\" are different, so for cafes pass both [\"cafe\", \"coffee\"]. The filter is applied to the strongest 400 places for the categories and never relaxed.",
      +  "items": {
      +    "maxLength": 40,
      +    "minLength": 2,
      +    "type": "string"
      +  },
      +  "maxItems": 5,
      +  "type": "array"
      +}
    • changedOutput schema / properties / places / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "address": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "blurb": {
      -          "description": "One-line editorial summary.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "category_scores": {
      -          "anyOf": [
      -            {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "category_id": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "name": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "reviews": {
      -                    "anyOf": [
      -                      {
      -                        "description": "Reviews that mention this category.",
      -                        "type": "integer"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Reviews that mention this category."
      -                  },
      -                  "score": {
      -                    "type": [
      -                      "number",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "distance_km": {
      -          "description": "From the search center.",
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "gluten_free": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": false,
      -              "description": "Present only for places with a gluten-free identity.",
      -              "properties": {
      -                "dedicated_fryer": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "dedicated_kitchen": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "menu": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "safety": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "100% dedicated gluten-free",
      -                        "celiac friendly (low risk of cross-contamination)",
      -                        "accommodating (some risk of cross-contamination)",
      -                        "discuss cross-contamination with staff"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "trained_staff": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "verified_by_atly": {
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Present only for places with a gluten-free identity."
      -        },
      -        "google_rating": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "id": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "last_updated": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "lat": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "lon": {
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "name": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "place_type": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "price": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "reasons": {
      -          "anyOf": [
      -            {
      -              "description": "Short first-person statements from real reviews, most useful first. Quote them.",
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "kind": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "sentiment": {
      -                    "anyOf": [
      -                      {
      -                        "enum": [
      -                          "positive",
      -                          "neutral",
      -                          "negative"
      -                        ],
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "text": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      -        },
      -        "review_count": {
      -          "anyOf": [
      -            {
      -              "type": "integer"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "score": {
      -          "description": "Atly score 0–10 — for the requested categories in search",
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "url": {
      -          "description": "Canonical Atly page. Link it when you cite.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "address": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "blurb": {
      +          "description": "One-line editorial summary.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "category_scores": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "category_id": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "name": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "reviews": {
      +                    "anyOf": [
      +                      {
      +                        "description": "Reviews that mention this category.",
      +                        "type": "integer"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Reviews that mention this category."
      +                  },
      +                  "score": {
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "distance_km": {
      +          "description": "From the search center.",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "gluten_free": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "description": "Present only for places with a gluten-free identity.",
      +              "properties": {
      +                "dedicated_fryer": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "dedicated_kitchen": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "menu": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "safety": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "100% dedicated gluten-free",
      +                        "celiac friendly (low risk of cross-contamination)",
      +                        "accommodating (some risk of cross-contamination)",
      +                        "discuss cross-contamination with staff"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "trained_staff": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "verified_by_atly": {
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Present only for places with a gluten-free identity."
      +        },
      +        "google_rating": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "last_updated": {
      +          "description": "When Atly last refreshed this place's data from its sources. Absent when unknown; never the date the place was added.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "lat": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "lon": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "name": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "place_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "price": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "reasons": {
      +          "anyOf": [
      +            {
      +              "description": "Short first-person statements from real reviews, most useful first. Quote them.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "kind": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "sentiment": {
      +                    "anyOf": [
      +                      {
      +                        "enum": [
      +                          "positive",
      +                          "neutral",
      +                          "negative"
      +                        ],
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "text": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Short first-person statements from real reviews, most useful first. Quote them."
      +        },
      +        "review_count": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "score": {
      +          "description": "Atly score 0–10 — for the requested categories in search",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "url": {
      +          "description": "Canonical Atly page. Link it when you cite.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  5. Changed6 schema fields changed
    • changedInput schema / properties / area_id / description
      Previous value: -"An id from `list_areas`; the search covers that area's viewport. Give this or lat/lon, not both."New value: +"An id from `list_areas`; the search covers that area's viewport. A city name also works (\"Austin\", \"Boise, ID\"): it resolves to the matching area, or, for a city with no area, to the extent of the places whose address is in it; the response's `area` and doc_notes say what it resolved to. Give this or lat/lon, not both."
    • addedInput schema / properties / area_id / maxLength
      Added value: +120
    • addedInput schema / properties / limit / description
      Added value: +"Places to return, at most 25; a larger value returns 25."
    • removedInput schema / properties / limit / maximum
      Removed value: -25
    • changedOutput schema / properties / area / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "description": "The resolved search geometry — an area (id, name, level, center, bbox) or a circle (center, radius_km).",
      -    "properties": {},
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "description": "The resolved search geometry — an area (id, name, level, center, bbox), a city known only from its places (name, level, region, country, center, bbox; no id), or a circle (center, radius_km).",
      +    "properties": {},
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / area / description
      Previous value: -"The resolved search geometry — an area (id, name, level, center, bbox) or a circle (center, radius_km)."New value: +"The resolved search geometry — an area (id, name, level, center, bbox), a city known only from its places (name, level, region, country, center, bbox; no id), or a circle (center, radius_km)."
  6. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only annotations, the description discloses substantive behavior: ranking by Atly's score, review-derived reasons, returned links, open-now status, score scale and country-relative meaning, category relaxation rules, and candidate-pool behavior. These details materially help an agent understand what results mean and how to interpret partial matches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and efficiently organized around purpose, inputs, ranking, and relaxation behavior. It is somewhat long and repeats `dropped_categories` behavior, but the length is justified by the complexity of the search semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, output schema, and annotations, the description supplies the missing behavioral context an agent needs: ranking logic, score interpretation, category relaxation, dropped categories, and candidate limits. It does not need to restate every schema field or return shape because those are already structured.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds useful semantics for `categories`, including exact naming, id sourcing, ordering by importance, and category relaxation. It also clarifies location inputs and how `place_type` affects the candidate pool, though some schema-described parameters such as `limit` are not elaborated in the prose. With 71% schema coverage, this is meaningfully additive but not fully comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: find places for an intent near a location. It immediately distinguishes this as the core call and explicitly references sibling tools such as `list_categories` and `list_areas` for required inputs, so an agent can tell what this tool is for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: supply categories and a location, using category names or ids from `list_categories` and a city name, `area_id` from `list_areas`, or coordinates with radius. It also explains fallback behavior when no place matches every category. It does not explicitly contrast this tool with `get_place` for single-place detail lookups, so it is clear but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.