{
  "openapi": "3.0.1",
  "info": {
    "title": "Local Business & POI Data (Overture Maps, No Scraping)",
    "description": "One call returns up to 50,000 local business listings (POI data) for a city name, circle (max 25 km) or bounding box: name, category, address, coordinates, website, phone and licence attribution, from open Overture Maps data. $2 per 1,000 places plus a $0.02 start at the default 2 GB.",
    "version": "0.1",
    "x-build-id": "g1iyKRRbm1w2S15Ed"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/opendata-desk~business-places/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-opendata-desk-business-places",
        "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/opendata-desk~business-places/runs": {
      "post": {
        "operationId": "runs-sync-opendata-desk-business-places",
        "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/opendata-desk~business-places/run-sync": {
      "post": {
        "operationId": "run-sync-opendata-desk-business-places",
        "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": "Place name (city or town)",
            "type": "string",
            "description": "City or town, optionally with region and country, e.g. \"Berlin, DE\", \"Austin, TX, US\" or \"Paris, France\". Looked up offline in a bundled GeoNames list (towns with about 1,000+ people); the search circle is centred on the place with radiusMeters. An ambiguous name uses the most populous match, and the OUTPUT record says which place was used. latitude/longitude or bbox override it."
          },
          "radiusMeters": {
            "title": "Radius (meters)",
            "minimum": 10,
            "maximum": 25000,
            "type": "integer",
            "description": "Search radius around the place or the latitude/longitude centre, 10 to 25000 meters. Results are sorted by distance from the centre.",
            "default": 1000
          },
          "latitude": {
            "title": "Center latitude (instead of a place name)",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Latitude of the circle centre in WGS84 degrees (-90 to 90). Use with longitude and radiusMeters. Overrides location."
          },
          "longitude": {
            "title": "Center longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Longitude of the circle centre in WGS84 degrees (-180 to 180)."
          },
          "bbox": {
            "title": "Bounding box (alternative to the circle)",
            "type": "array",
            "description": "[minLon, minLat, maxLon, maxLat] in WGS84 degrees, max 2,500 km². Takes precedence over the circle and location. Results are sorted by confidence."
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional. Overture taxonomy terms (e.g. \"pizza_restaurant\", \"dental_clinic\") or aliases: restaurant, cafe, coffee, bar, dentist, gym, fitness, hotel, lawyer, salon, hair_salon, plumber, pharmacy, supermarket, grocery, car_repair, real_estate, doctor, veterinarian. Case, spaces and plurals are normalised (\"Dentists\" = dentist). A place matches if any term is anywhere in its category hierarchy (\"restaurant\" includes all restaurant types). Categories with no matching place are listed in the OUTPUT record; if none matches, the run returns no places and its status message says why. Empty = all places.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max places",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum number of places to return (1 to 50000). You are charged per place returned.",
            "default": 100
          },
          "minConfidence": {
            "title": "Minimum confidence",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Drop places whose Overture existence confidence (0 to 1) is below this. 0 keeps all. Permanently closed places are always excluded.",
            "default": 0
          },
          "includeContactFields": {
            "title": "Include website and phone",
            "type": "boolean",
            "description": "Adds website and phone fields at no extra charge. Phone numbers are never returned for places in the EU, EEA or UK, or when the country is unknown. Emails are never returned.",
            "default": true
          },
          "overtureRelease": {
            "title": "Overture release",
            "pattern": "^(latest|\\d{4}-\\d{2}-\\d{2}\\.\\d+)$",
            "type": "string",
            "description": "Overture Maps release id such as \"2026-09-23.1\", or \"latest\". Overture hosts each release for about 60 days; if the requested one is gone, the newest release is used and the run output says so.",
            "default": "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}