{
  "properties": {
    "address": {
      "description": "Address, landmark or place name to use as the center when the center type is Address. Google resolves it to its own coordinates.",
      "editor": "textfield",
      "example": "350 5th Ave, New York, NY 10118",
      "title": "Address",
      "type": "string"
    },
    "centerType": {
      "default": "coordinates",
      "description": "How the center of the radius is supplied: exact latitude/longitude, a free-text address, or a Google Maps place URL / Place ID.",
      "editor": "select",
      "enum": [
        "coordinates",
        "address",
        "place"
      ],
      "enumTitles": [
        "Coordinates",
        "Address",
        "Place URL or Place ID"
      ],
      "prefill": "coordinates",
      "sectionCaption": "Search center",
      "title": "Search Center Type",
      "type": "string"
    },
    "excludeCategories": {
      "default": [],
      "description": "Skip places whose category contains any of these words, for example ['hotel', 'casino'].",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Exclude Categories",
      "type": "array"
    },
    "hasPhone": {
      "default": false,
      "description": "Only keep places that publish a phone number on their Google Maps listing.",
      "prefill": false,
      "title": "Must Have Phone",
      "type": "boolean"
    },
    "hasWebsite": {
      "default": false,
      "description": "Only keep places that publish a website on their Google Maps listing.",
      "prefill": false,
      "title": "Must Have Website",
      "type": "boolean"
    },
    "includeClosed": {
      "default": true,
      "description": "When off, places Google marks as permanently closed are skipped. This requires reading each place's preview panel.",
      "prefill": true,
      "title": "Include Permanently Closed",
      "type": "boolean"
    },
    "includeDetails": {
      "default": true,
      "description": "Add preview-panel fields such as plus code, price level, rating histogram, photos, description, attributes, service options, closing status and hotel/fuel/booking extras. Adds one request per place; listing fields and weekly hours are always collected.",
      "prefill": false,
      "sectionCaption": "Output",
      "title": "Include Place Details",
      "type": "boolean"
    },
    "language": {
      "default": "en",
      "description": "Language for place names, categories, addresses and hours.",
      "editor": "select",
      "enum": [
        "en",
        "af",
        "az",
        "id",
        "ms",
        "bs",
        "ca",
        "cs",
        "da",
        "de",
        "et",
        "es",
        "es-419",
        "eu",
        "fil",
        "fr",
        "gl",
        "hr",
        "zu",
        "is",
        "it",
        "sw",
        "lv",
        "lt",
        "hu",
        "nl",
        "no",
        "uz",
        "pl",
        "pt-BR",
        "pt-PT",
        "ro",
        "sq",
        "sk",
        "sl",
        "fi",
        "sv",
        "vi",
        "tr",
        "el",
        "bg",
        "ky",
        "kk",
        "mk",
        "mn",
        "ru",
        "sr",
        "uk",
        "ka",
        "hy",
        "iw",
        "ur",
        "ar",
        "fa",
        "am",
        "ne",
        "hi",
        "mr",
        "bn",
        "pa",
        "gu",
        "ta",
        "te",
        "kn",
        "ml",
        "si",
        "th",
        "lo",
        "my",
        "km",
        "ko",
        "ja",
        "zh-CN",
        "zh-TW"
      ],
      "enumTitles": [
        "English",
        "Afrikaans",
        "azərbaycan",
        "Bahasa Indonesia",
        "Bahasa Melayu",
        "bosanski",
        "català",
        "Čeština",
        "Dansk",
        "Deutsch",
        "eesti",
        "Español",
        "Español (Latinoamérica)",
        "euskara",
        "Filipino",
        "Français",
        "galego",
        "Hrvatski",
        "isiZulu",
        "íslenska",
        "Italiano",
        "Kiswahili",
        "latviešu",
        "lietuvių",
        "magyar",
        "Nederlands",
        "norsk",
        "oʻzbekcha",
        "polski",
        "Português (Brasil)",
        "Português (Portugal)",
        "română",
        "shqip",
        "Slovenčina",
        "slovenščina",
        "Suomi",
        "Svenska",
        "Tiếng Việt",
        "Türkçe",
        "Ελληνικά",
        "български",
        "кыргызча",
        "қазақ тілі",
        "македонски",
        "монгол",
        "Русский",
        "српски",
        "Українська",
        "ქართული",
        "հայերեն",
        "עברית",
        "اردو",
        "العربية",
        "فارسی",
        "አማርኛ",
        "नेपाली",
        "हिन्दी",
        "मराठी",
        "বাংলা",
        "ਪੰਜਾਬੀ",
        "ગુજરાતી",
        "தமிழ்",
        "తెలుగు",
        "ಕನ್ನಡ",
        "മലയാളം",
        "සිංහල",
        "ไทย",
        "ລາວ",
        "ဗမာ",
        "ខ្មែរ",
        "한국어",
        "日本語",
        "简体中文",
        "繁體中文"
      ],
      "prefill": "en",
      "sectionCaption": "Locale",
      "title": "Language",
      "type": "string"
    },
    "latitude": {
      "default": 40.7484,
      "description": "Latitude of the center when the center type is Coordinates.",
      "maximum": 90,
      "minimum": -90,
      "prefill": 40.7484,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "default": -73.9857,
      "description": "Longitude of the center when the center type is Coordinates.",
      "maximum": 180,
      "minimum": -180,
      "prefill": -73.9857,
      "title": "Longitude",
      "type": "number"
    },
    "maxRating": {
      "description": "Only keep places rated at or below this value. Places with no published rating are skipped.",
      "maximum": 5,
      "minimum": 1,
      "title": "Maximum Rating",
      "type": "number"
    },
    "maxResults": {
      "default": 50,
      "description": "Maximum places to return for each search term. Google's ranked window usually contains roughly 130-180 places inside a dense radius; when the source runs out the run stops honestly instead of padding.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 6,
      "title": "Max Results per Term",
      "type": "integer"
    },
    "maxReviews": {
      "description": "Only keep places with at most this many reviews. Places with no review count are skipped.",
      "maximum": 1000000000,
      "minimum": 0,
      "title": "Maximum Review Count",
      "type": "integer"
    },
    "minRating": {
      "description": "Only keep places rated at or above this value. Places with no published rating are skipped.",
      "maximum": 5,
      "minimum": 1,
      "sectionCaption": "Filters",
      "title": "Minimum Rating",
      "type": "number"
    },
    "minReviews": {
      "description": "Only keep places with at least this many reviews. Places with no review count are skipped.",
      "maximum": 1000000000,
      "minimum": 0,
      "title": "Minimum Review Count",
      "type": "integer"
    },
    "nameFilter": {
      "description": "Only keep places whose name contains this text, for example 'pizza'.",
      "editor": "textfield",
      "title": "Name Contains",
      "type": "string"
    },
    "openNow": {
      "default": false,
      "description": "Only keep places Google currently shows as open. A place whose open/closed state cannot be read is skipped, so this filter can return fewer rows.",
      "prefill": false,
      "title": "Open Now Only",
      "type": "boolean"
    },
    "place": {
      "description": "Google Maps place URL or canonical ChIJ Place ID to use as the center when the center type is Place.",
      "editor": "textfield",
      "title": "Place URL or Place ID",
      "type": "string"
    },
    "radiusKm": {
      "default": 1,
      "description": "Hard search radius in kilometres around the center. Places outside it are dropped; every returned row carries its exact distance from the center.",
      "maximum": 50,
      "minimum": 0.05,
      "prefill": 0.5,
      "sectionCaption": "Radius and result limit",
      "title": "Radius (km)",
      "type": "number"
    },
    "searchTerms": {
      "default": [
        "coffee shop"
      ],
      "description": "One or more categories or free-text keywords, for example ['coffee shop'], ['dentist', 'pharmacy'] or ['restaurant'].",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "prefill": [
        "coffee shop"
      ],
      "sectionCaption": "What to search for",
      "title": "Categories / Keywords",
      "type": "array"
    }
  },
  "required": [
    "searchTerms"
  ],
  "schemaVersion": 1,
  "title": "Google Maps Nearby Radius Search Input",
  "type": "object"
}
