{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenStreetMap Place Search — Businesses & POIs Worldwide",
    "description": "Find businesses, amenities and points of interest anywhere in the world from OpenStreetMap, by place name, bounding box or radius, with contact details, opening hours, accessibility and the full tag detail behind each one.",
    "version": "0.1",
    "x-build-id": "kFY5JAxjkvXCpy0hK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dalbian~openstreetmap-place-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dalbian-openstreetmap-place-search",
        "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/dalbian~openstreetmap-place-search/runs": {
      "post": {
        "operationId": "runs-sync-dalbian-openstreetmap-place-search",
        "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/dalbian~openstreetmap-place-search/run-sync": {
      "post": {
        "operationId": "run-sync-dalbian-openstreetmap-place-search",
        "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": {
          "places": {
            "title": "Place names",
            "type": "array",
            "description": "Towns, cities, districts or regions, one per line. Each is resolved to its boundary by Nominatim, so be specific enough to avoid the wrong continent — 'Avignon, France' rather than 'Avignon'.",
            "default": [
              "Avignon, France"
            ],
            "items": {
              "type": "string"
            }
          },
          "boundingBoxes": {
            "title": "Bounding boxes",
            "type": "array",
            "description": "Explicit boxes as 'south,west,north,east' in WGS84 degrees, one per line. Use these when you already know the exact extent and want no ambiguity from a place name.",
            "items": {
              "type": "string"
            }
          },
          "aroundPoints": {
            "title": "Around points (lon,lat)",
            "type": "array",
            "description": "Search a circle around each point, given as 'longitude,latitude', longitude first as in GeoJSON. This follows walking distance rather than administrative boundaries.",
            "items": {
              "type": "string"
            }
          },
          "radiusMeters": {
            "title": "Radius (metres)",
            "minimum": 50,
            "maximum": 50000,
            "type": "integer",
            "description": "Radius around each point above. Only applies to the points, not to place names or boxes.",
            "default": 2000
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "What to look for. Each friendly name expands to the OpenStreetMap tags that actually find it, so you do not need to know that a doctor is amenity=doctors and a supermarket is shop=supermarket. Pick several to compare them in one run.",
            "items": {
              "type": "string",
              "enum": [
                "airports",
                "artworks",
                "atms",
                "attractions",
                "bakeries",
                "banks",
                "bars",
                "bicycle_rental",
                "bus_stops",
                "cafes",
                "campsites",
                "car_dealers",
                "car_rental",
                "castles",
                "churches",
                "cinemas",
                "clothing_shops",
                "convenience_stores",
                "coworking_spaces",
                "craftspeople",
                "dentists",
                "doctors",
                "drinking_water",
                "ev_charging",
                "factories",
                "fast_food",
                "fuel_stations",
                "guest_houses",
                "hairdressers",
                "hardware_stores",
                "holiday_rentals",
                "hospitals",
                "hostels",
                "hotels",
                "kindergartens",
                "libraries",
                "monuments",
                "museums",
                "nightclubs",
                "offices",
                "parking",
                "parks",
                "pharmacies",
                "playgrounds",
                "post_offices",
                "railway_stations",
                "restaurants",
                "ruins",
                "schools",
                "shopping_malls",
                "sports_centres",
                "supermarkets",
                "swimming_pools",
                "taxi_ranks",
                "theatres",
                "toilets",
                "universities",
                "veterinarians",
                "viewpoints",
                "warehouses",
                "wineries"
              ]
            },
            "default": [
              "restaurants"
            ]
          },
          "customTags": {
            "title": "Custom OSM tags",
            "type": "array",
            "description": "Raw OpenStreetMap filters as key=value, one per line, for anything the categories do not cover — for example 'amenity=ice_cream' or 'shop=*' for every shop. These are added to the categories above, not instead of them.",
            "items": {
              "type": "string"
            }
          },
          "namedPlacesOnly": {
            "title": "Named places only",
            "type": "boolean",
            "description": "Drop features with no name. OpenStreetMap contains many unnamed objects — a bench, an untitled parking area — which are noise in a business list but matter for infrastructure work.",
            "default": false
          },
          "includeStatistics": {
            "title": "Include statistics",
            "type": "boolean",
            "description": "Return a summary row per area: how many places were found, the breakdown by category, and what share carry a phone number, a website or opening hours. That last figure tells you how complete the local mapping is before you rely on it.",
            "default": true
          },
          "maxPlacesPerArea": {
            "title": "Places per area",
            "minimum": 1,
            "maximum": 8000,
            "type": "integer",
            "description": "Hard cap per area. Overpass is donated infrastructure with fair-use limits, so a very large area combined with a very high cap may time out; narrow the area instead of raising this.",
            "default": 500
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}