{
  "openapi": "3.0.1",
  "info": {
    "title": "Business Locations Analyzer — Bulk CSV API",
    "description": "Filter permitted business-location data by category, country and contact fields. Usage restrictions apply. Bulk export: JSON, CSV, Excel and API. PPE: from $7/1K locations; start fee, usage extra.",
    "version": "0.3",
    "x-build-id": "E3Sep9mvUbJCIZS0B"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apivault_labs~business-locations-analyzer/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apivault_labs-business-locations-analyzer",
        "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/apivault_labs~business-locations-analyzer/runs": {
      "post": {
        "operationId": "runs-sync-apivault_labs-business-locations-analyzer",
        "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/apivault_labs~business-locations-analyzer/run-sync": {
      "post": {
        "operationId": "run-sync-apivault_labs-business-locations-analyzer",
        "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": [
          "intendedUse"
        ],
        "properties": {
          "dataSource": {
            "title": "Data source",
            "enum": [
              "snapshot",
              "official_websites"
            ],
            "type": "string",
            "description": "Snapshot: business listing records from 14 countries, including available ratings. Official websites: separate company-branch collection with normalized countries and source verification, without ratings. Default preserves existing snapshot runs.",
            "default": "snapshot"
          },
          "officialCountries": {
            "title": "Official websites: countries",
            "type": "array",
            "description": "For official_websites only. Enter ISO codes or country names, for example US, USA or United States. UNKNOWN selects records whose country cannot be recognized. Empty means all countries. listCountries reports normalized counts; countryRaw preserves the source value.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "countries": {
            "title": "Snapshot: countries",
            "uniqueItems": true,
            "type": "array",
            "description": "For snapshot only: choose from the 14 connected listing countries. In official_websites mode use Official websites: countries instead.",
            "items": {
              "type": "string",
              "enum": [
                "de",
                "it",
                "gb",
                "tr",
                "es",
                "nl",
                "ua",
                "fr",
                "pl",
                "be",
                "pt",
                "at",
                "se",
                "ro"
              ],
              "enumTitles": [
                "Germany — 5.40M locations",
                "Italy — 4.45M locations",
                "United Kingdom — 4.31M locations",
                "Turkey — 3.41M locations",
                "Spain — 3.21M locations",
                "Netherlands — 1.27M locations",
                "Ukraine — 1.04M locations",
                "France — 1.03M locations",
                "Poland — 945K locations",
                "Belgium — 822K locations",
                "Portugal — 819K locations",
                "Austria — 714K locations",
                "Sweden — 594K locations",
                "Romania — 253K locations"
              ]
            },
            "default": [
              "at"
            ]
          },
          "maxItems": {
            "title": "Maximum locations",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Start with 5 results. Increase after checking coverage and the Pricing tab. Hard cap: 10000 delivered records per run.",
            "default": 5
          },
          "businessCollection": {
            "title": "Ready-made business collection",
            "enum": [
              "banks",
              "coffee_shops",
              "pharmacies",
              "restaurants",
              "hotels",
              "supermarkets",
              "dentists",
              "real_estate",
              "car_dealers",
              "gyms",
              "beauty_salons",
              "medical_clinics",
              "lawyers",
              "plumbers",
              "doctors",
              "psychologists",
              "physiotherapists",
              "veterinarians",
              "opticians",
              "auto_repair",
              "gas_stations",
              "car_washes",
              "tire_shops",
              "schools",
              "daycare",
              "bakeries",
              "bars_pubs",
              "electricians",
              "cleaning_services",
              "travel_agencies",
              "insurance_agencies",
              "accountants",
              "photographers",
              "marketing_agencies",
              "construction",
              "roofers",
              "landscapers",
              "moving_companies",
              "florists",
              "pet_stores"
            ],
            "type": "string",
            "description": "Choose a popular business type. The Actor automatically searches the relevant category aliases. Leave empty for a custom search."
          },
          "companies": {
            "title": "Company or brand names",
            "uniqueItems": true,
            "type": "array",
            "description": "Find physical locations whose names match any supplied company or brand, for example McDonald's, BILLA or OMV.",
            "items": {
              "type": "string"
            }
          },
          "nameMatch": {
            "title": "Company-name matching",
            "enum": [
              "contains",
              "starts_with",
              "exact"
            ],
            "type": "string",
            "description": "Contains is flexible; starts with avoids street names containing the brand; exact returns only identical names.",
            "default": "contains"
          },
          "categories": {
            "title": "Categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Include categories such as restaurant, bank, pharmacy, supermarket, doctor or hotel. Values are OR-combined.",
            "items": {
              "type": "string"
            }
          },
          "excludeCategories": {
            "title": "Exclude categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Remove irrelevant matches, for example bus stop when searching for a company name.",
            "items": {
              "type": "string"
            }
          },
          "categoryExact": {
            "title": "Exact category match",
            "type": "boolean",
            "description": "Match the discovery category exactly instead of looking in all category text.",
            "default": false
          },
          "cities": {
            "title": "Cities",
            "uniqueItems": true,
            "type": "array",
            "description": "One or more city names, partial matching, OR-combined.",
            "items": {
              "type": "string"
            }
          },
          "postalCodes": {
            "title": "Postal codes",
            "uniqueItems": true,
            "type": "array",
            "description": "Return locations in any of these postal codes.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States or regions",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter by state, province or administrative region when present in the source.",
            "items": {
              "type": "string"
            }
          },
          "hasPhone": {
            "title": "Only with phone",
            "type": "boolean",
            "description": "Return only locations that include a phone number.",
            "default": false
          },
          "hasWebsite": {
            "title": "Only with website",
            "type": "boolean",
            "description": "Return only locations that include a website.",
            "default": false
          },
          "noWebsite": {
            "title": "Only without a website",
            "type": "boolean",
            "description": "Useful for web-design and local marketing prospecting.",
            "default": false
          },
          "includeClosed": {
            "title": "Include permanently closed locations",
            "type": "boolean",
            "description": "Closed locations are excluded by default.",
            "default": false
          },
          "hasOpeningHours": {
            "title": "Only with opening hours",
            "type": "boolean",
            "description": "Return only locations that include an opening-hours schedule.",
            "default": false
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Snapshot only. Snapshot only. Return locations with at least this rating."
          },
          "minReviews": {
            "title": "Minimum review count",
            "minimum": 0,
            "type": "integer",
            "description": "Snapshot only. Snapshot only. Return locations with at least this many reviews."
          },
          "nearLatitude": {
            "title": "Center latitude",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Use together with longitude and radius to search around a point."
          },
          "nearLongitude": {
            "title": "Center longitude",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Use together with latitude and radius to search around a point."
          },
          "radiusKm": {
            "title": "Radius",
            "minimum": 0.001,
            "maximum": 500,
            "type": "number",
            "description": "Maximum distance from the center coordinates."
          },
          "columns": {
            "title": "Output columns",
            "uniqueItems": true,
            "type": "array",
            "description": "Leave empty to return every available normalized field.",
            "items": {
              "type": "string",
              "enum": [
                "locationId",
                "name",
                "address",
                "city",
                "postalCode",
                "state",
                "country",
                "phone",
                "website",
                "rating",
                "reviewCount",
                "categories",
                "searchedCategory",
                "latitude",
                "longitude",
                "openingHours",
                "isClosed",
                "isClaimed",
                "isOpenNow",
                "neighborhood",
                "distanceKm",
                "collection",
                "dataAsOf",
                "calculatedAt",
                "freshnessDays",
                "methodologyVersion",
                "digitalPresenceScore",
                "websiteOpportunityScore",
                "reviewStrengthScore",
                "contactabilityScore",
                "marketCompetitionPercentile",
                "dataConfidenceScore"
              ]
            }
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "reviews",
              "distance",
              "name"
            ],
            "type": "string",
            "description": "Distance requires center coordinates and a radius.",
            "default": "reviews"
          },
          "countOnly": {
            "title": "Count only",
            "type": "boolean",
            "description": "Preview the number of matches without creating paid Dataset rows. The result is stored in COUNT_SUMMARY.",
            "default": false
          },
          "listCategories": {
            "title": "List available categories",
            "type": "boolean",
            "description": "Snapshot only. Snapshot only. Save the available category names and counts to the CATEGORIES storage record without creating Dataset rows.",
            "default": false
          },
          "listCountries": {
            "title": "List available countries",
            "type": "boolean",
            "description": "Save the currently connected countries to the COUNTRIES storage record without creating Dataset rows.",
            "default": false
          },
          "listCollections": {
            "title": "List ready-made collections",
            "type": "boolean",
            "description": "Snapshot only. Snapshot only. Save every collection id and its category aliases to the COLLECTIONS storage record without creating Dataset rows.",
            "default": false
          },
          "analyticsOnly": {
            "title": "Aggregate analytics only",
            "type": "boolean",
            "description": "Snapshot only. Snapshot only. Return exact country-level counts, coverage, averages and freshness for the selected filters without exposing individual records or creating paid Dataset rows.",
            "default": false
          },
          "intendedUse": {
            "title": "Intended use",
            "enum": [
              "internal_business_research",
              "market_analysis",
              "site_planning",
              "crm_data_quality",
              "academic_or_public_interest_research"
            ],
            "type": "string",
            "description": "Choose your research use case. Defaults to internal business research. Usage restrictions remain described in the README.",
            "default": "internal_business_research"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}