Dataify Google Map Details
Submit Google Maps detail collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:
| Mode | Collector ID | Use For |
|---|---|---|
| URL | google_map-details_by-url |
Collecting one or more Google Maps detail records by Google Maps URL. |
| CID | google_map-details_by-cid |
Collecting one or more Google Maps detail records by CID. |
| Location | google_map-details_by-location |
Collecting Google Maps detail records by keyword, country, latitude, longitude, and zoom level. |
| Place ID | google_map-details_by-placeid |
Collecting one or more Google Maps detail records by place ID. |
After submission, continue monitoring the returned task_id and return the final result by default.
API TOKEN Handling
Use DATAIFY_API_TOKEN as the long-term saved token name.
- If
DATAIFY_API_TOKENis saved locally, use it without asking the user to re-enter the token. - If the user does not have an API TOKEN, tell them they can register or log in at Dataify to get one.
- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.
- Do not call the Builder endpoint without a token.
- Always call it
API TOKENin user-facing instructions. Prefer the environment variable nameDATAIFY_API_TOKENfor saved local use.
PowerShell examples for saving the token for the current session:
$env:DATAIFY_API_TOKEN = "YOUR_DATAIFY_API_TOKEN"
For a persistent user-level variable on Windows:
[Environment]::SetEnvironmentVariable("DATAIFY_API_TOKEN", "YOUR_DATAIFY_API_TOKEN", "User")
Core Workflow
- First ask the user to choose a collection mode:
url,cid,location, orplaceid. - After the user chooses a mode, show only that mode's parameter table and defaults.
- For
locationmode, show thecountrydropdown options as a Markdown table withLabelandValuecolumns. Usereferences/google_countries.md. - Ask whether the user wants to change any value before running the task.
- Ask whether the user wants to collect multiple Google map detail groups for the selected mode.
- Normalize the final values into a list of parameter objects for the selected mode only.
- Validate the selected mode, URL, CID, place ID, keyword, country, numeric values, and file name.
- Submit the Builder request with the selected mode's
spider_id. - Read
data.task_idfrom the Builder response and readdata.statusorstatuswhen present.
Mode Selection
When the user invokes this skill, first show this Markdown table and ask them to choose one mode:
| Label | Value |
|---|---|
| Collect Google map details by URL | url |
| Collect Google map details by CID | cid |
| Collect Google map details by location | location |
| Collect Google map details by place ID | placeid |
Ask: "Which collection mode do you want to use: url, cid, location, or placeid?"
Do not submit a Builder request until the mode is clear.
Shared File Name Handling
file_namedefaults to{{TasksID}}.- If the user changes
file_name, submit the user-provided value. file_namecannot be empty.- Send
file_nameas a Builder form field.
For detailed mode schemas and advanced fields, read references/modes-and-parameters.md only when needed.
Dataify Builder Request
Use form fields rather than hand-built URL-encoded strings.
- URL:
https://scraperapi.dataify.com/builder?platform=1 - Method:
POST - Authorization header:
Bearer DATAIFY_API_TOKEN - Content type:
application/x-www-form-urlencoded - Fixed fields:
spider_name=google.comspider_errors=true
- Mode-specific field:
- URL mode:
spider_id=google_map-details_by-url - CID mode:
spider_id=google_map-details_by-cid - Location mode:
spider_id=google_map-details_by-location - Place ID mode:
spider_id=google_map-details_by-placeid
- URL mode:
- Default field:
file_name={{TasksID}}
- Dynamic field:
spider_parametersmust be a JSON string array.
Script
For stable execution, prefer scripts/submit_dataify_google_map_details.py with Python 3.6 or newer instead of rewriting the Builder flow.
python3 ".\scripts\submit_dataify_google_map_details.py" --mode location --keyword "pizza" --country "us" --lat "38" --long "77" --zoom-level "20"
The script supports --params-json for multiple groups and prints a JSON summary with mode, spider_id, task_id, status, parameters, file_name and message.
Troubleshooting
Unsupported mode means the mode must be url, cid, location, or placeid.
url must start with https://www.google.com/maps/ means the URL is outside the allowed Google Maps URL pattern.
country must be one of the allowed Google country values means the country dropdown value is invalid.
zoom_level must be an integer greater than or equal to 0 means the zoom value is invalid.
lat must be numeric or long must be numeric means a coordinate is invalid.
File name cannot be empty means no usable file_name was provided.
Guardrails
- Do not mix URL, CID, Location, and Place ID mode parameters in the same Builder request.
- Do not submit a Builder request until the mode is clear.
- Do not put
file_nameinsidespider_parameters. - Use only
API TOKENandDATAIFY_API_TOKENwhen referring to authentication. - Do not hard-code local Python paths.
- Do not invent result fields.
Default completion behavior
The default deliverable is the collected result, not only a task_id.
- Submit the Builder task once and capture its
task_id. - Immediately continue with
$dataify-task-operationsand monitor the same task ID.- Use the default 600-second wait for ordinary collections.
- Use
--timeout 1800for media downloads or clearly high-volume, multi-page, or multi-input collections.
- When the task succeeds, download and return the final JSON result. Summarize large payloads while preserving access to the raw result.
- If monitoring times out or is interrupted, return the task ID and a resume command. Do not resubmit the paid task.
- Stop after submission only when the user explicitly asks for submission only, a task ID, or
--no-waitbehavior.
Quick Start
python3 scripts/submit_dataify_google_map_details.py --help
Parameter interaction policy
- For a clear, low-risk, read-only, and low-cost request, apply safe defaults and execute immediately. A short execution summary is optional; do not pause for confirmation.
- Ask only for a missing required input, a material ambiguity, a high-volume or multi-page scope, a media download, a choice that materially changes credit usage, an irreversible action, or an explicit user request to review parameters.
- When confirmation is required, show only user-facing values that affect the target, scope, output, or cost. Prefer one concise sentence; use a compact table only when three or more consequential values are easier to compare.
- Never show fixed fields, empty optional fields, unchanged defaults, credentials, or internal implementation parameters such as engine selectors, response-format flags, offsets, spider IDs, and file-name templates.
- Keep advanced filters hidden unless the user asks for them or they are needed to resolve ambiguity. Never substitute documentation example values for missing required user input.
- After returning results, offer relevant refinements instead of forcing all optional decisions before the first result.
Account CTA policy
- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.
- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.
- Detect the current operating system and shell. Show only the matching session-scoped setup command first (
exportfor macOS/Linux shells,$env:for Windows PowerShell, orsetfor Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks. - After the user says the token is configured, verify only whether
DATAIFY_API_TOKENis present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it. - Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project
.envunless the execution path explicitly loads it, and ensure.envis ignored by version control. - For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.
- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.
