Market Expansion Agent avatar
Market Expansion Agent

Pricing

Pay per event

Go to Store
Market Expansion Agent

Market Expansion Agent

Developed by

Apify

Apify

Maintained by Apify

Plan your market expansion with AI. This agent analyzes Google Maps & social media data to map competitors, find market gaps, and suggest 1-3 optimal locations for your new business. Get data-driven site selection insights. Just provide a search term and location to start.

0.0 (0)

Pricing

Pay per event

0

Total users

1

Monthly users

1

Runs succeeded

>99%

Last modified

2 days ago

🔍 Search term(s)

searchStringsArrayarrayOptional

Type what you’d normally search for in the Google Maps search bar, like English breakfast or pet shelter. Aim for unique terms for faster processing. Using similar terms (e.g., bar vs. restaurant vs. cafe) may slightly increase your capture rate but is less efficient.

⚠️ Heads up: Adding a location directly to the search, e.g., restaurant Pittsburgh, can limit you to a maximum of 120 results per search term due to Google Maps' scrolling limit.

You can also use direct place IDs here in the format place_id:ChIJ8_JBApXMDUcRDzXcYUPTGUY.See the detailed description.

📍 Location (use only one location per run)

locationQuerystringOptional

Define location using free text. Simpler formats work best; e.g., use City + Country rather than City + Country + State. Verify with the OpenStreetMap webapp for visual validation of the exact area you want to cover.

⚠️ Automatically defined City polygons may be smaller than expected (e.g., they don't include agglomeration areas). If you need to define the whole city area, head over to the 📡 Geolocation parameters* section instead to select Country, State, US County, City, or Postal code.
For an even more precise location definition (especially when using City name as a starting point), head over to 🛰 Custom search area section to create polygon shapes of the areas you want to scrape. Note that 📍 Location settings always take priority over 📡 Geolocation* (so use either section but not both at the same time).

For guidance and tricks on location definition, check our tutorial.

💯 Number of places to extract (per each search term or URL)

maxCrawledPlacesPerSearchintegerOptional

Number of results you expect to get per each Search term, Category or URL. The higher the number, the longer it will take.

If you want to scrape all the places available, leave this field empty or use this section 🧭 Scrape all places on the map*.

Default value of this property is 20

🌍 Language

languageEnumOptional

Results details will show in this language.

Value options:

"en": string"af": string"az": string"id": string"ms": string"bs": string"ca": string"cs": string"da": string"de": string"et": string"es": string"es-419": string"eu": string"fil": string"fr": string"gl": string"hr": string"zu": string"is": string"it": string"sw": string"lv": string"lt": string"hu": string"nl": string"no": string"uz": string"pl": string"pt-BR": string"pt-PT": string"ro": string"sq": string"sk": string"sl": string"fi": string"sv": string"vi": string"tr": string"el": string"bg": string"ky": string"kk": string"mk": string"mn": string"ru": string"sr": string"uk": string"ka": string"hy": string"iw": string"ur": string"ar": string"fa": string"am": string"ne": string"hi": string"mr": string"bn": string"pa": string"gu": string"ta": string"te": string"kn": string"ml": string"si": string"th": string"lo": string"my": string"km": string"ko": string"ja": string"zh-CN": string"zh-TW": string

Default value of this property is "en"

🎢 Place categories ($)

categoryFilterWordsarrayOptional

You can limit the places that are scraped based on the Category filter; you can choose as many categories for one flat fee for the whole field. ⚠️ Using categories can sometimes lead to false negatives, as many places do not properly categorize themselves, and there are over 4,000 available categories which Google Maps has. Using categories might filter out places that you’d like to scrape. To avoid this problem, you must list all categories that you want to scrape, including synonyms, e.g., divorce lawyer, divorce attorney, divorce service, etc. See the detailed description.

Get exact name matches (no similar results)($)

searchMatchingEnumOptional

Restrict what places are scraped based on matching their name with provided 🔍 Search term. E.g., all places that have chicken in their name vs. places called Kentucky Fried Chicken.

Value options:

"all": string"only_includes": string"only_exact": string

Default value of this property is "all"

Set a minimum star rating ($)

placeMinimumStarsEnumOptional

Scrape only places with a rating equal to or above the selected stars. Places without reviews will also be skipped. Keep in mind, filtering by reviews reduces the number of places found per credit spent, as many will be excluded.

Value options:

"two": string"twoAndHalf": string"three": string"threeAndHalf": string"four": string"fourAndHalf": string

Default value of this property is ""

⏩ Skip closed places ($)

skipClosedPlacesbooleanOptional

Skip places that are marked as temporary or permanently closed. Ideal for focusing on currently open places.

Default value of this property is false

🗺 Country

countryCodeEnumOptional

Set the country where the data extraction should be carried out, e.g., United States.

Value options:

"us": string"af": string"al": string"dz": string"as": string"ad": string"ao": string"ai": string"aq": string"ag": string"ar": string"am": string"aw": string"au": string"at": string"az": string"bs": string"bh": string"bd": string"bb": string"by": string"be": string"bz": string"bj": string"bm": string"bt": string"bo": string"ba": string"bw": string"bv": string"br": string"io": string"bn": string"bg": string"bf": string"bi": string"kh": string"cm": string"ca": string"cv": string"ky": string"cf": string"td": string"cl": string"cn": string"cx": string"cc": string"co": string"km": string"cg": string"cd": string"ck": string"cr": string"ci": string"hr": string"cu": string"cy": string"cz": string"dk": string"dj": string"dm": string"do": string"ec": string"eg": string"sv": string"gq": string"er": string"ee": string"et": string"fk": string"fo": string"fj": string"fi": string"fr": string"gf": string"pf": string"tf": string"ga": string"gm": string"ge": string"de": string"gh": string"gi": string"gr": string"gl": string"gd": string"gp": string"gu": string"gt": string"gn": string"gw": string"gy": string"ht": string"hm": string"va": string"hn": string"hk": string"hu": string"is": string"in": string"id": string"ir": string"iq": string"ie": string"il": string"it": string"jm": string"jp": string"jo": string"kz": string"ke": string"ki": string"kp": string"kr": string"kw": string"kg": string"la": string"lv": string"lb": string"ls": string"lr": string"ly": string"li": string"lt": string"lu": string"mo": string"mk": string"mg": string"mw": string"my": string"mv": string"ml": string"mt": string"mh": string"mq": string"mr": string"mu": string"yt": string"mx": string"fm": string"md": string"mc": string"mn": string"me": string"ms": string"ma": string"mz": string"mm": string"na": string"nr": string"np": string"nl": string"an": string"nc": string"nz": string"ni": string"ne": string"ng": string"nu": string"nf": string"mp": string"no": string"om": string"pk": string"pw": string"ps": string"pa": string"pg": string"py": string"pe": string"ph": string"pn": string"pl": string"pt": string"pr": string"qa": string"re": string"ro": string"ru": string"rw": string"sh": string"kn": string"lc": string"pm": string"vc": string"ws": string"sm": string"st": string"sa": string"sn": string"rs": string"sc": string"sl": string"sg": string"sk": string"si": string"sb": string"so": string"za": string"gs": string"ss": string"es": string"lk": string"sd": string"sr": string"sj": string"sz": string"se": string"ch": string"sy": string"tw": string"tj": string"tz": string"th": string"tl": string"tg": string"tk": string"to": string"tt": string"tn": string"tr": string"tm": string"tc": string"tv": string"ug": string"ua": string"ae": string"gb": string"um": string"uy": string"uz": string"vu": string"ve": string"vn": string"vg": string"vi": string"wf": string"eh": string"ye": string"zm": string"zw": string

🌇 City

citystringOptional

Enter the city where the data extraction should be carried out, e.g., Pittsburgh.

⚠️ Do not include State or Country names here.

⚠️ Automatic City polygons may be smaller than expected (e.g., they don't include agglomeration areas). If you need that, set up the location using Country, State, US County, City, or Postal code.
For an even more precise location definition (, head over to 🛰 Custom search area section to create polygon shapes of the areas you want to scrape.

State

statestringOptional

Set a state where the data extraction should be carried out, e.g., Massachusetts (mainly for the US addresses).

⚠️ Always combine State with other Location types, otherwise you will scrape the whole state!

US county

countystringOptional

Set the US county where the data extraction should be carried out, e.g., Madison.

⚠️ Always combine US county with other Location types, otherwise you will scrape the whole county!

Postal code

postalCodestringOptional

Set the postal code of the area where the data extraction should be carried out, e.g., 10001.

⚠️ Combine Postal code only with 🗺 Country, never with 🌇 City. You can only input one postal code at a time.

🛰 Custom search area (coordinate order must be: [↕ longitude, ↔ latitude])

customGeolocationobjectOptional

Use this field to define the exact search area if other search area parameters don't work for you. See readme or our guide for details.

Google Maps URLs

startUrlsarrayOptional

Max 300 results per search URL. Valid format for URLs contains google.com/maps/. This feature also supports uncommon URL formats such as: google.com?cid=***, goo.gl/maps, and custom place list URL.