{
  "openapi": "3.0.1",
  "info": {
    "title": "📩 Google Maps Email Extractor",
    "description": "Quickly collect all business details, including emails, phone numbers, and social media links from Google Maps listings and their websites. Export data as JSON or CSV. Run via API, schedule runs, or integrate with your tools.",
    "version": "0.0",
    "x-build-id": "0OggDXSl5xnKudivd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/poidata~google-maps-email-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-poidata-google-maps-email-extractor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/poidata~google-maps-email-extractor/runs": {
      "post": {
        "operationId": "runs-sync-poidata-google-maps-email-extractor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/poidata~google-maps-email-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-poidata-google-maps-email-extractor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "term"
        ],
        "properties": {
          "term": {
            "title": "👉 Search Term",
            "maxItems": 50,
            "type": "array",
            "description": "The term or search terms to look for (e.g. restaurant, cafe, dentist, etc). Must be 25 characters or less.",
            "default": [
              "Restaurant"
            ],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "🌍 Location",
            "maxLength": 50,
            "type": "string",
            "description": "The location to search in (e.g. New York, Paris). Must be 50 characters or less.",
            "default": "New York, USA"
          },
          "language": {
            "title": "🔠 Language",
            "enum": [
              "en"
            ],
            "type": "string",
            "description": "Language for search results",
            "default": "en"
          },
          "country": {
            "title": "Country Context",
            "enum": [
              "us"
            ],
            "type": "string",
            "description": "Country context for search results",
            "default": "us"
          },
          "total": {
            "title": "🔢 Total Results",
            "minimum": 20,
            "maximum": 300,
            "type": "integer",
            "description": "Up to 300 results per term, max 4,500 for 50 terms",
            "default": 20
          },
          "coordinateSection": {
            "title": "Scrape with Geo-coordinates",
            "type": "string",
            "description": "Scrape with geo-coordinates"
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "Latitude of the location (optional if location is provided)."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "Longitude of the location (optional if location is provided)."
          },
          "radius": {
            "title": "Radius",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Set radius to scrape around the geocoordinate location.",
            "default": 1
          },
          "polygon": {
            "title": "Polygon",
            "type": "string",
            "description": "Polygon of the location (optional if location is provided)."
          },
          "totalAroundCoordinate": {
            "title": "Total Results Around Coordinate",
            "minimum": 20,
            "maximum": 100000,
            "type": "integer",
            "description": "Set total results to scrape around the geocoordinate location per term.",
            "default": 20
          },
          "advanceOptionSection": {
            "title": "⚙️ Filters",
            "type": "string",
            "description": "Filters"
          },
          "min_rating": {
            "title": "Minimum Rating",
            "pattern": "^(?:[0-4](?:\\.\\d+)?|5(?:\\.0+)?)$",
            "type": "string",
            "description": "Minimum star rating (0–5, decimals allowed)",
            "default": "0"
          },
          "min_reviews": {
            "title": "Minimum Reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of reviews",
            "default": 0
          },
          "min_photos": {
            "title": "Minimum Photos",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of photos",
            "default": 0
          },
          "has_website": {
            "title": "Has Website",
            "type": "boolean",
            "description": "Filter to only businesses with websites (checked) or without websites (unchecked)"
          },
          "name_filter": {
            "title": "Business Name Filter",
            "type": "string",
            "description": "Filter businesses by name (case-insensitive substring match)"
          },
          "categories_filter": {
            "title": "Multiple Categories Filter",
            "type": "array",
            "description": "Filter businesses by category (comma-separated, case-insensitive)",
            "items": {
              "type": "string"
            }
          },
          "tech_enabled": {
            "title": "Detect Website Tech Stack",
            "type": "boolean",
            "description": "Enable detection of technologies used on the website (may slow down scraping).",
            "default": false
          },
          "social_enabled": {
            "title": "Detect Social Profiles",
            "type": "boolean",
            "description": "Enable detection of social media links from the website.",
            "default": true
          },
          "has_email": {
            "title": "Only Keep Results With Emails",
            "type": "boolean",
            "description": "If checked, only keep businesses where at least one email address was found.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}