{
  "openapi": "3.0.1",
  "info": {
    "title": "Brownbook Scraper [From $2💰] | 44M+ Business Data",
    "description": "Scrape 44M+ global business listings from brownbook.net: name, address, phone, email, website, categories, hours, reviews, ratings, social links and claim status. Public sitemap tree and a challenge-free JSON API - no browser, no CAPTCHA.",
    "version": "0.0",
    "x-build-id": "jiMzgEqXFxm5ZfF5i"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~brownbook-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-brownbook-scraper",
        "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/ahmed_jasarevic~brownbook-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-brownbook-scraper",
        "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/ahmed_jasarevic~brownbook-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-brownbook-scraper",
        "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": {
          "sitemapIndex": {
            "title": "Sitemap index file",
            "enum": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30",
              "31"
            ],
            "type": "string",
            "description": "The sitemap tree publishes 31 index files, each listing 1,501 leaf sitemaps of 1,000 business URLs (~1.5M businesses per index). Choose which index file to expand - run indexes 1, 2, 3... in parallel to split one huge job into batches.",
            "default": "1"
          },
          "sitemapLeafCount": {
            "title": "How many businesses to crawl",
            "enum": [
              "1",
              "5",
              "10",
              "25",
              "50",
              "100",
              "500",
              "1501"
            ],
            "type": "string",
            "description": "How many leaf sitemaps to expand from the index above. One leaf sitemap = 1,000 business URLs, so the preset shows the exact number of businesses you will reach.",
            "default": "1"
          },
          "businessIds": {
            "title": "Business IDs",
            "type": "string",
            "description": "Comma or space separated numeric Brownbook business IDs to fetch in full, e.g. \"53562541, 53562540\". Each ID returns one rich record via the JSON API. Leave empty for sitemap discovery.",
            "default": ""
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Optional. Explicit sitemap or resource URLs to crawl instead of the default sitemap discovery flow. Leaf sitemaps look like https://www.brownbook.net/sitemap/50000.xml and single records like https://api.brownbook.net/app/api/v1/businesses/resource/53562541.",
            "items": {
              "type": "string"
            }
          },
          "countrySample": {
            "title": "Country sample mode",
            "type": "boolean",
            "description": "Enable sample mode. Calls the legacy public endpoint https://api.brownbook.net/businesses?country=<cc> which returns a fixed 30-row sample plus the total record count per country. Useful for coverage/statistics, not bulk extraction (that endpoint has no pagination).",
            "default": false
          },
          "countries": {
            "title": "Countries",
            "type": "string",
            "description": "Comma separated ISO country codes to sample, e.g. \"us,gb,de,au,ca,fr\". Only used when country sample mode is enabled.",
            "default": "us,gb,de,au,ca,fr"
          },
          "detail": {
            "title": "Fetch full business detail",
            "type": "boolean",
            "description": "When true (recommended) each discovered business ID is resolved through the JSON API for the full 92-field record. When false only sitemap IDs/URLs are emitted (much cheaper, far less data).",
            "default": true
          },
          "includeMedia": {
            "title": "Include photos and videos",
            "type": "boolean",
            "description": "Also call /businesses/resource/<id>/media for each business to collect photo and video URLs. Adds 1 extra request per business.",
            "default": true
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Collect reviews into the separate \"brownbookreviews\" dataset (business rows keep only rating and review count). Reviews already embedded in the detail record are free; businesses that may have more reviews are resolved through the paginated comments endpoint.",
            "default": true
          },
          "maxReviewsPerBusiness": {
            "title": "Maximum reviews per business",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "Cap how many review rows are stored for a single business (0 = keep all). One business can hold at most 25 reviews because the comments endpoint pages 5 reviews at a time and the Actor reads at most 5 pages, so values above 25 change nothing. Review rows live in the separate \"brownbookreviews\" dataset and are what the pay-per-event \"review\" charge bills, so a lower cap directly lowers cost - and it also skips the comments calls for businesses that already hit the cap.",
            "default": 0
          },
          "maxItems": {
            "title": "Maximum businesses",
            "minimum": 1,
            "maximum": 250000,
            "type": "integer",
            "description": "Hard cap on business records pushed to the dataset. Free accounts are always capped at 50 regardless of this value. Review rows live in their own dataset and do not consume this budget.",
            "default": 5000
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your crawler."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}