{
  "openapi": "3.0.1",
  "info": {
    "title": "Open Places Business Leads (Maps Alternative)",
    "description": "Pull business lists by city, radius or country from Overture Maps open data: 81M places with name, category, address, phone, website, email and social links, plus licence and source on every row. Monthly change tracking. No scraping; no reviews or ratings.",
    "version": "1.0",
    "x-build-id": "ED8hEomQcjDxe0E3H"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/plainsource~open-places-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-plainsource-open-places-leads",
        "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/plainsource~open-places-leads/runs": {
      "post": {
        "operationId": "runs-sync-plainsource-open-places-leads",
        "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/plainsource~open-places-leads/run-sync": {
      "post": {
        "operationId": "run-sync-plainsource-open-places-leads",
        "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",
        "properties": {
          "location": {
            "title": "Location name",
            "type": "string",
            "description": "A city, county, state/province or country, looked up in Overture's own boundaries. Add a region or country after a comma to pick the right one: \"Austin, TX\", \"Toronto, ON\", \"Lisbon, PT\", \"Texas\", \"Portugal\". The run summary shows which boundary was used. Ignored when coordinates or a bounding box are set."
          },
          "countryCode": {
            "title": "Country code",
            "type": "string",
            "description": "Two-letter ISO code (US, CA, GB, DE, MX...). On its own it searches the whole country. With a location name it only keeps matches in that country."
          },
          "latitude": {
            "title": "Latitude",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Center of a radius search, e.g. 43.6532. Set together with longitude. Takes priority over the location name."
          },
          "longitude": {
            "title": "Longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Center of a radius search, e.g. -79.3832."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 0.05,
            "maximum": 200,
            "type": "number",
            "description": "Distance from the center point. Used only with latitude and longitude. Each row then includes distanceKm.",
            "default": 5
          },
          "boundingBox": {
            "title": "Bounding box",
            "type": "string",
            "description": "Four numbers: min longitude, min latitude, max longitude, max latitude. Example: -79.42,43.64,-79.37,43.67. Used when no coordinates are set."
          },
          "categories": {
            "title": "Business types",
            "type": "array",
            "description": "Plain words such as \"dentist\", \"plumber\", \"coffee shop\", \"italian restaurant\", or Overture category IDs such as \"dental_clinic\". Each word is matched to Overture's category tree, and sub-types are included (\"dental_clinic\" also returns pediatric and cosmetic dentists). The run summary lists what each word matched. Leave empty for every kind of place.",
            "items": {
              "type": "string"
            }
          },
          "nameKeywords": {
            "title": "Name contains",
            "type": "array",
            "description": "Keep places whose name contains any of these words (not case sensitive), e.g. \"Tim Hortons\" or \"dental\".",
            "items": {
              "type": "string"
            }
          },
          "requirePhone": {
            "title": "Only places with a phone number",
            "type": "boolean",
            "description": "About 82% of Overture places have a phone number.",
            "default": false
          },
          "requireWebsite": {
            "title": "Only places with a website",
            "type": "boolean",
            "description": "About 58% of Overture places have a website.",
            "default": false
          },
          "requireEmail": {
            "title": "Only places with an email in the open data",
            "type": "boolean",
            "description": "About 37% of Overture places list an email. The website check below can find more, but this filter runs before it.",
            "default": false
          },
          "minConfidence": {
            "title": "Minimum confidence",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Overture's 0 to 1 score for how likely the place exists as described. 0.5 removes most stale or doubtful records; 0 keeps everything.",
            "default": 0
          },
          "excludeChains": {
            "title": "Skip chains and franchises",
            "type": "boolean",
            "description": "Drops places that carry a brand in the data, and any name that appears 3 or more times among the matches (e.g. \"Tim Hortons\", \"Country Style\"). Useful when you only want independent businesses. The run summary says how many were skipped.",
            "default": false
          },
          "includeClosed": {
            "title": "Include permanently closed places",
            "type": "boolean",
            "description": "Off by default. Most places have no status at all, so this only drops the ones explicitly marked closed.",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed since the previous monthly release",
            "type": "boolean",
            "description": "Uses Overture's changelog (matched by Overture ID) to return places added in this release, or whose name, address, phone, website, email, social links, category, brand, location or status changed. Rows get changeType and changedFields. Schedule a monthly run with this on to track a market.",
            "default": false
          },
          "maxItems": {
            "title": "Max places",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Upper limit on places returned (and charged) per run. When more places match, the ones with the highest confidence come first.",
            "default": 1000
          },
          "enrichFromWebsite": {
            "title": "Check each business's own website for emails and social links",
            "type": "boolean",
            "description": "Paid add-on, off by default. Reads one page (the homepage listed in the data) per place that has a website, and respects robots.txt. You are charged the website-enriched event only when the page adds an email or social link the open data did not have. Adds roughly 1 to 10 seconds per 10 places.",
            "default": false
          },
          "release": {
            "title": "Overture release",
            "type": "string",
            "description": "Leave empty for the newest release. Overture keeps only the latest one or two on its public bucket, e.g. 2026-09-23.1."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}