Install
openclaw skills install @upkuajing/upkuajing-map-merchants-searchPull bulk Google Maps business data with radius‑based filters. Gather merchant contact information, analyze market density and find distributors or overseas buyers for offline business expansion. Trigger: Google maps business scraper, bulk merchant data download, radius‑based lead search, distributor sourcing, competitor store analysis, regional market research, offline sales‑lead generation
openclaw skills install @upkuajing/upkuajing-map-merchants-searchQuery merchant information using the UpKuaJing Open Platform API. This skill provides map-based merchant search with two search modes: region search and nearby search.
This skill provides access to UpKuaJing's map merchant database through:
merchants_search.py): Search merchants by keywords and locationgeography_list.py): Get country/province/city lists for location parameterspython --versionpip install -r requirements.txtScript directory: scripts/*.py
Run example: python scripts/*.py
Important: Always use direct script invocation like python scripts/merchants_search.py. Do NOT use shell compound commands like cd scripts && python merchants_search.py.
merchants_search.py)Search merchants by keywords and geographic area.
Parameters: See Merchants Search API
Two Search Modes:
geoDistanceExamples:
# Country search - Find restaurants in Brazil
python scripts/merchants_search.py \
--params '{"keywords":["restaurant"],"countryCodes":["BR"]}' \
--query_count 100
# Multi-country search with phone filter - Find restaurants in US or China with phone
python scripts/merchants_search.py \
--params '{"keywords":["restaurant"],"countryCodes":["US","CN"],"existPhone":true}' \
--query_count 50
# Industry filter - Find car dealers in Thailand
python scripts/merchants_search.py \
--params '{"keywords":["car dealer"],"countryCodes":["TH"],"industries":["Cars"]}' \
--query_count 100
# Nearby search - Find hotels within 5km of a point
python scripts/merchants_search.py \
--params '{"keywords":["hotel"],"geoDistance":{"location":{"lat":31.1104643,"lon":29.7602221},"distance":"5km"}}'
# Province and city filter - Find restaurants in a specific province/city
python scripts/merchants_search.py \
--params '{"keywords":["restaurant"],"provinceIds":["2277"],"cityIds":["19975"]}' \
--query_count 50
# Shop name filter - Find shops by specific name
python scripts/merchants_search.py \
--params '{"companyNames":["car care"],"countryCodes":["TH"]}' \
--query_count 100
# Multi-filter search - Combine multiple filters
python scripts/merchants_search.py \
--params '{"keywords":["restaurant"],"countryCodes":["US"],"provinceIds":["1447"],"industries":["Cars"],"existPhone":true}' \
--query_count 50
Task Resume: Use --task_id to resume interrupted large queries:
python scripts/merchants_search.py --task_id 'your-task-id-here' --query_count 2000
geography_list.py)Get geographic hierarchy data for building search parameters.
Examples:
# Get country list
python scripts/geography_list.py --type country
# Get province list for a country
python scripts/geography_list.py --type province --country_id 1
# Get city list for a country
python scripts/geography_list.py --type city --country_id 1
~/.upkuajing/.env file as UPKUAJING_API_KEYFirst check if the ~/.upkuajing/.env file has UPKUAJING_API_KEY;
If UPKUAJING_API_KEY is not set, prompt the user to choose:
When API response indicates insufficient balance, explain and guide user to top up:
auth.py --new_rec_order)Use this script to get account information for UPKUAJING_API_KEY: auth.py --account_info
When an API call fails or returns abnormal data (server error, timeout, malformed response, etc.), explain the anomaly to the user in natural language and ask whether to report it to the platform for troubleshooting. Only run the report after user confirmation:
python scripts/error_report.py --params '{"requestPath":"/agent/map/search","requestId":"f47ac10b58cc4372a5670e02b2c3d479","context":"Merchant search failed with a server error"}'
Merchant search API calls incur fees, different interfaces have different billing methods.
Latest pricing: Users can visit Detailed Price Description
Or use: python scripts/auth.py --price_info (returns complete pricing for all interfaces)
Billed by number of calls, each call returns up to 100 records:
ceil(query_count / 100) timesFree of charge — No fees for country/province/city list queries.
Any operation that incurs fees must first inform and wait for explicit user confirmation. Do not execute in the same message as the notification.
| User Intent | Use API |
|---|---|
| "Find merchants by country/region" | Merchants Search (countryCodes) |
| "Find merchants by province/city" | Merchants Search (provinceIds, cityIds) |
| "Find merchants near a location" | Merchants Search (geoDistance) |
| "Filter by industry or contact info" | Merchants Search (industries, existPhone, existWebsite) |
| "Find shops by name" | Merchants Search (companyNames) |
| "Get country/province/city data" | Geography List |
UPKUAJING_API_KEY in ~/.upkuajing/.env filepython scripts/error_report.py (see Report Skill Call Errors)Understand user intent:
Check API documentation:
countryCodes with keywordsgeoDistance with location and distanceexistPhone=true or existWebsite=true to filter by contact availabilityindustries to filter by business typeprovinceIds and cityIds to filter by specific province or citycompanyNames to find shops by specific namepython scripts/auth.py --price_info to get accurate pricing informationOther UpKuaJing skills you might find useful: