{
  "openapi": "3.0.1",
  "info": {
    "title": "Telelistas Scraper: Brazilian Business Listings | $1/1K",
    "description": "Brazilian businesses from Telelistas (BuscJa) by category and city: phone, WhatsApp, website, address, CEP, coordinates, opening hours. $1 per 1,000 results, platform usage included.",
    "version": "0.1",
    "x-build-id": "zU8auIaWbMe9KLGsC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/one_dollar_store~telelistas-brazil-businesses-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-one_dollar_store-telelistas-brazil-businesses-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/one_dollar_store~telelistas-brazil-businesses-scraper/runs": {
      "post": {
        "operationId": "runs-sync-one_dollar_store-telelistas-brazil-businesses-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/one_dollar_store~telelistas-brazil-businesses-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-one_dollar_store-telelistas-brazil-businesses-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": {
          "categories": {
            "title": "Categories",
            "maxItems": 200,
            "type": "array",
            "description": "What the businesses do, in Portuguese as the directory writes it, for example \"restaurantes\", \"advogados\", \"dentistas\" or \"escritorios de contabilidade\". A word the directory has no page for is matched with the directory's own suggestion list, and the match is logged. Each category is searched in each city.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Cities",
            "maxItems": 200,
            "type": "array",
            "description": "City and state code, for example \"São Paulo, SP\" or \"Belo Horizonte, MG\". The directory lists businesses per city, so a city is needed. An entry without a state code is skipped.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Directory addresses",
            "maxItems": 5000,
            "type": "array",
            "description": "Optional. Paste listing pages or business pages from buscja.com or telelistas.net, for example https://www.buscja.com/sp/sao+paulo/restaurantes or a /locais/.../bu-123456/... business page. A ?pag=3 in a listing address starts at that page.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Read business pages",
            "type": "boolean",
            "description": "On: one extra request per business for the full record (map position, CEP, all phones, WhatsApp, website, social links, opening hours, services, payment methods, description). Off: only what the listing card shows (name, street, district, city, state and phone), about 25 businesses a request.",
            "default": true
          },
          "maxPagesPerSearch": {
            "title": "Pages per category and city",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "How many listing pages to read for each category and city. A page lists 25 businesses, so 40 pages is up to 1,000. Large cities have more than a thousand pages for common categories.",
            "default": 40
          },
          "districts": {
            "title": "Districts (bairros)",
            "maxItems": 200,
            "type": "array",
            "description": "Keep businesses in these districts, for example \"Pinheiros\" or \"Moema\". The district is read from the listing card, so businesses that do not fit are skipped without opening their page. Leave empty for all districts.",
            "items": {
              "type": "string"
            }
          },
          "requireWebsite": {
            "title": "Only businesses with a website",
            "type": "boolean",
            "description": "Keep businesses that list a website. This needs the business pages, so Read business pages is turned on.",
            "default": false
          },
          "requireCoordinates": {
            "title": "Only businesses with map coordinates",
            "type": "boolean",
            "description": "Keep businesses that list a latitude and longitude. This needs the business pages, so Read business pages is turned on.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 10,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many businesses. Minimum 10. With business pages on, the actor reads about one business a second, so 3,000 businesses take about an hour; raise the run timeout for more. With them off it reads about 25 businesses a second.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave the proxy off: the actor connects directly, which is what it was tested with. After two refused requests in a row it switches to the Apify datacenter proxy by itself. It stops after three refusals in a row and does not try to get past a verification page.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}