{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenStreetMap Business Leads – Phones, Websites, No Google",
    "description": "Local business lists for any category and area worldwide from OpenStreetMap (ODbL): name, address, phone, website, e-mail, opening hours, social links. Optional homepage e-mail enrichment. The legally clean Google Maps alternative.",
    "version": "0.1",
    "x-build-id": "ooVkHDaqVhZ3kF6pE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/gazidev~openstreetmap-business-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-gazidev-openstreetmap-business-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/gazidev~openstreetmap-business-leads/runs": {
      "post": {
        "operationId": "runs-sync-gazidev-openstreetmap-business-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/gazidev~openstreetmap-business-leads/run-sync": {
      "post": {
        "operationId": "run-sync-gazidev-openstreetmap-business-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": {
          "categories": {
            "title": "Business categories",
            "type": "array",
            "description": "Friendly categories mapped to OpenStreetMap tags (e.g. *Dentist* = `amenity=dentist` or `healthcare=dentist`). Combine several, or use raw OSM tags below.",
            "items": {
              "type": "string",
              "enum": [
                "dentist",
                "doctor",
                "clinic",
                "hospital",
                "pharmacy",
                "physiotherapist",
                "veterinary",
                "restaurant",
                "cafe",
                "bar",
                "fast_food",
                "bakery",
                "hotel",
                "guest_house",
                "supermarket",
                "clothes",
                "hairdresser",
                "beauty",
                "gym",
                "car_repair",
                "car_dealer",
                "car_wash",
                "fuel",
                "plumber",
                "electrician",
                "hvac",
                "carpenter",
                "painter",
                "roofer",
                "locksmith",
                "builder",
                "lawyer",
                "notary",
                "accountant",
                "real_estate",
                "insurance",
                "architect",
                "it_company",
                "travel_agency",
                "bank",
                "florist",
                "optician",
                "furniture",
                "hardware",
                "electronics",
                "pet_shop",
                "jewelry",
                "photographer",
                "driving_school",
                "language_school",
                "kindergarten",
                "coworking",
                "event_venue"
              ],
              "enumTitles": [
                "Dentist",
                "Doctor (GP / specialist)",
                "Clinic",
                "Hospital",
                "Pharmacy",
                "Physiotherapist",
                "Veterinary",
                "Restaurant",
                "Cafe",
                "Bar / pub",
                "Fast food",
                "Bakery",
                "Hotel",
                "Guest house / hostel / apartment",
                "Supermarket / convenience",
                "Clothes",
                "Hairdresser",
                "Beauty",
                "Gym / fitness",
                "Car repair / tyres",
                "Car dealer",
                "Car wash",
                "Fuel",
                "Plumber",
                "Electrician",
                "HVAC (heating, air conditioning)",
                "Carpenter",
                "Painter",
                "Roofer",
                "Locksmith",
                "Builder",
                "Lawyer",
                "Notary",
                "Accountant / tax advisor",
                "Real estate agent",
                "Insurance",
                "Architect",
                "IT / software company",
                "Travel agency",
                "Bank",
                "Florist",
                "Optician",
                "Furniture",
                "Hardware",
                "Electronics",
                "Pet shop",
                "Jewelry",
                "Photographer",
                "Driving school",
                "Language school",
                "Kindergarten",
                "Coworking",
                "Event venue"
              ]
            },
            "default": []
          },
          "osmTags": {
            "title": "Raw OSM tags (optional)",
            "type": "array",
            "description": "Any OpenStreetMap tag filter: `key=value`, `key` (any value), `key!=value` or `key~regex`, e.g. `shop=bicycle`, `craft`, `cuisine~pizza`. Each entry is OR-ed with the categories. See wiki.openstreetmap.org/wiki/Map_features.",
            "items": {
              "type": "string"
            }
          },
          "areas": {
            "title": "Areas (city, district, region)",
            "type": "array",
            "description": "Place names resolved via OpenStreetMap Nominatim to their official boundary, e.g. `Kadıköy, Istanbul`, `Kreuzberg, Berlin`, `Austin, Texas`. Smaller areas are faster and more reliable on the free OSM servers.",
            "items": {
              "type": "string"
            }
          },
          "boundingBoxes": {
            "title": "Bounding boxes (optional)",
            "type": "array",
            "description": "`south,west,north,east` in decimal degrees, e.g. `52.50,13.38,52.53,13.42`.",
            "items": {
              "type": "string"
            }
          },
          "centerPoint": {
            "title": "Center point (optional)",
            "type": "string",
            "description": "`latitude,longitude`, e.g. `41.0082,28.9784`. Used with *Radius*."
          },
          "radiusMeters": {
            "title": "Radius (meters)",
            "minimum": 50,
            "maximum": 50000,
            "type": "integer",
            "description": "Search radius around the center point.",
            "default": 1000
          },
          "requireName": {
            "title": "Only places with a name",
            "type": "boolean",
            "description": "Skip unnamed map objects (recommended for lead lists).",
            "default": true
          },
          "requirePhoneOrWebsite": {
            "title": "Only places with a phone or website",
            "type": "boolean",
            "description": "Keep only places that have a phone, mobile or website tag in OSM. Filtered server-side - you pay only for what is saved.",
            "default": false
          },
          "enrichWebsite": {
            "title": "Enrich from the business website",
            "type": "boolean",
            "description": "Fetch each business's own homepage (and at most one contact page, robots.txt respected) and add e-mail addresses and social profile links found there. Charged as *website-enriched* only when something was found.",
            "default": false
          },
          "maxItems": {
            "title": "Max places",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum places to save (0 = no limit). Places with the most contact data (phone, website, e-mail) are saved first.",
            "default": 100
          },
          "includeAllTags": {
            "title": "Include all raw OSM tags",
            "type": "boolean",
            "description": "Add a `tags` object with every OpenStreetMap tag of the place.",
            "default": false
          },
          "overpassTimeoutSecs": {
            "title": "Overpass server timeout (seconds)",
            "minimum": 20,
            "maximum": 180,
            "type": "integer",
            "description": "Server-side timeout per query. Queries that time out are automatically split into smaller tiles.",
            "default": 60
          },
          "customOverpassUrl": {
            "title": "Custom Overpass endpoint (optional)",
            "type": "string",
            "description": "Your own or a paid Overpass instance (e.g. `https://overpass.nextgis.com/YOUR_KEY/api/interpreter`), tried first. Public overpass-api.de is not allowed (its robots.txt disallows /api/)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}