POST
/
api
/
v1
/
jobs
/
spiderMaps
/
submit
Submit SpiderMaps Job
curl --request POST \
  --url https://spideriq.di-atomic.com/api/v1/jobs/spiderMaps/submit \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "url": "<string>",
  "fields": [
    {}
  ]
}'
{
  "success": true,
  "job_id": "<string>",
  "type": "<string>",
  "status": "<string>",
  "message": "<string>",
  "data.business_name": "<string>",
  "data.address": "<string>",
  "data.phone": "<string>",
  "data.website": "<string>",
  "data.rating": 123,
  "data.review_count": 123,
  "data.hours": {},
  "data.categories": [
    {}
  ],
  "data.place_id": "<string>",
  "data.coordinates": {},
  "data.photos": [
    {}
  ],
  "data.price_level": "<string>",
  "data.popular_times": {}
}

Overview

Submit a SpiderMaps job to scrape business data from Google Maps. SpiderMaps uses the Google Maps Places API to extract comprehensive business information.

Best For

  • Local business research
  • Competitor analysis
  • Business directory creation
  • Lead generation
  • Location-based services
  • Market research

Request Body

url
string
required
Google Maps URL or Place IDFormats accepted:
  • Full Google Maps URL: https://www.google.com/maps/place/...
  • Short URL: https://maps.app.goo.gl/...
  • Place ID: ChIJN1t_tDeuEmsRUsoyG83frY4
Example: https://www.google.com/maps/place/Golden+Gate+Bridge/@37.8199,-122.4783
fields
array
Specific fields to extract (optional - extracts all by default)Available fields:
  • name - Business name
  • address - Full address
  • phone - Phone number
  • website - Website URL
  • rating - Google rating (1-5)
  • review_count - Total reviews
  • hours - Business hours
  • categories - Business categories
  • place_id - Google Place ID
  • coordinates - Latitude/longitude
  • photos - Photo URLs
Example: ["name", "address", "phone", "website", "rating"]

Response

success
boolean
Whether the job was successfully queued
job_id
string
Unique identifier for the submitted job (UUID format)
type
string
Always spiderMaps for this endpoint
status
string
Initial job status (always queued)
message
string
Confirmation message

Example Request

curl -X POST https://spideriq.di-atomic.com/api/v1/jobs/spiderMaps/submit \
  -H "Authorization: Bearer <your_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.google.com/maps/place/Googleplex/@37.4220656,-122.0840897"
  }'

Example Response

201 Created
{
  "success": true,
  "job_id": "660e8400-e29b-41d4-a716-446655440001",
  "type": "spiderMaps",
  "status": "queued",
  "message": "SpiderMaps job queued successfully"
}

SpiderMaps Results Structure

When the job completes, results will include:
data.business_name
string
Official business name
data.address
string
Full formatted address
data.phone
string
Phone number (international format)
data.website
string
Business website URL
data.rating
number
Google Maps rating (1.0 - 5.0)
data.review_count
integer
Total number of Google reviews
data.hours
object
Business hours by day of weekExample:
{
  "monday": "9:00 AM - 5:00 PM",
  "tuesday": "9:00 AM - 5:00 PM",
  "wednesday": "9:00 AM - 5:00 PM",
  "thursday": "9:00 AM - 5:00 PM",
  "friday": "9:00 AM - 5:00 PM",
  "saturday": "Closed",
  "sunday": "Closed"
}
data.categories
array
Business categories/typesExample: ["Restaurant", "Italian Restaurant", "Pizza Place"]
data.place_id
string
Google Maps Place ID (unique identifier)
data.coordinates
object
Latitude and longitudeExample: {"lat": 37.4220, "lng": -122.0841}
data.photos
array
URLs to business photos
data.price_level
string
Price range indicator ($ to $$$$)
Hourly popularity data (if available)

Complete Results Example

{
  "success": true,
  "job_id": "660e8400-e29b-41d4-a716-446655440001",
  "type": "spiderMaps",
  "status": "completed",
  "data": {
    "business_name": "Acme Coffee Shop",
    "address": "123 Main St, San Francisco, CA 94102, United States",
    "phone": "+1 415-555-0100",
    "website": "https://acmecoffee.com",
    "rating": 4.5,
    "review_count": 342,
    "hours": {
      "monday": "7:00 AM - 8:00 PM",
      "tuesday": "7:00 AM - 8:00 PM",
      "wednesday": "7:00 AM - 8:00 PM",
      "thursday": "7:00 AM - 8:00 PM",
      "friday": "7:00 AM - 9:00 PM",
      "saturday": "8:00 AM - 9:00 PM",
      "sunday": "8:00 AM - 7:00 PM"
    },
    "categories": [
      "Coffee Shop",
      "Cafe",
      "Breakfast Restaurant"
    ],
    "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
    "coordinates": {
      "lat": 37.7749,
      "lng": -122.4194
    },
    "photos": [
      "https://maps.googleapis.com/maps/api/place/photo?photoreference=ABC123...",
      "https://maps.googleapis.com/maps/api/place/photo?photoreference=DEF456..."
    ],
    "price_level": "$$"
  }
}

Use Cases

Local Business Research

# Research all coffee shops in a city
urls = [
    "https://www.google.com/maps/place/Coffee+Shop+A",
    "https://www.google.com/maps/place/Coffee+Shop+B",
    "https://www.google.com/maps/place/Coffee+Shop+C"
]

for url in urls:
    response = requests.post(
        "https://spideriq.di-atomic.com/api/v1/jobs/spiderMaps/submit",
        headers=headers,
        json={"url": url}
    )

Competitor Analysis

# Extract specific competitor data
data = {
    "url": "https://www.google.com/maps/place/Competitor+Restaurant",
    "fields": ["name", "rating", "review_count", "hours", "price_level"]
}

Lead Generation

# Extract contact information for outreach
data = {
    "url": "https://www.google.com/maps/place/Potential+Client",
    "fields": ["name", "phone", "website", "address"]
}

Finding Google Maps URLs

Method 1: Search on Google Maps

  1. Go to Google Maps
  2. Search for the business
  3. Copy the URL from the address bar

Method 2: Short URLs

Click “Share” on Google Maps and copy the short URL:
https://maps.app.goo.gl/ABC123xyz

Method 3: Place ID

If you have a Place ID, you can use it directly:
ChIJN1t_tDeuEmsRUsoyG83frY4

Processing Time

  • Average: 3-8 seconds per business
  • With photos: Add 2-5 seconds

Limitations

API Quota: Google Maps API has daily quota limits. If quota is exceeded, jobs will fail with an error message.
Data accuracy: Data is sourced directly from Google Maps and is as accurate as Google’s information.
Batch processing: Submit multiple jobs concurrently for faster bulk scraping (respecting rate limits).

Error Cases

Invalid URL

{
  "detail": "Invalid Google Maps URL. Please provide a valid maps.google.com URL or Place ID."
}

Business Not Found

{
  "success": false,
  "job_id": "660e8400-e29b-41d4-a716-446655440001",
  "status": "failed",
  "error": "Business not found at provided URL"
}

API Quota Exceeded

{
  "success": false,
  "job_id": "660e8400-e29b-41d4-a716-446655440001",
  "status": "failed",
  "error": "Google Maps API quota exceeded. Please try again later."
}

Next Steps