{
  "openapi": "3.0.1",
  "info": {
    "title": "Vietnam Business Directory Scraper",
    "description": "Scrapes business directory data from VietnamYello (vietnamyello.com) including company information, reviews, products, and more",
    "version": "1.0",
    "x-build-id": "ag1ilumUaVpOZByR7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nickslam~vietnam-yello-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nickslam-vietnam-yello-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/nickslam~vietnam-yello-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nickslam-vietnam-yello-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/nickslam~vietnam-yello-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nickslam-vietnam-yello-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",
            "type": "array",
            "description": "Optional: Filter by business categories.\n\nExample: For category page like `https://www.vietnamyello.com/category/estate-agents` enter only `estate-agents`.",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "Search Keywords ($$)",
            "type": "string",
            "description": "Optional: Search for specific companies or keywords. Enables premium pricing."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Optional: Filter by Vietnam cities/regions. If not provided, all cities will be scraped.",
            "items": {
              "type": "string",
              "enum": [
                "bac-giang-city",
                "bac-ninh",
                "bac-ninh-city",
                "bien-hoa",
                "buon-ma-thuot-city",
                "buon-me-thuot",
                "cam-pha",
                "cam-ranh",
                "can-tho",
                "da-lat",
                "danang",
                "dong-nai",
                "ha-long-city",
                "haiphong",
                "hanoi",
                "ho-chi-minh-city",
                "hoa-binh-city",
                "hoi-an",
                "hong-gai",
                "hue",
                "lam-dong",
                "long-xuyen",
                "nam-dinh",
                "nha-trang",
                "phan-thiet",
                "qui-nhon",
                "rach-gia",
                "thanh-hoa",
                "thai-binh",
                "thai-nguyen",
                "viet-tri-city",
                "vinh",
                "vung-tau"
              ],
              "enumTitles": [
                "Bac Giang City",
                "Bac Ninh",
                "Bac Ninh City",
                "Bien Hoa",
                "Buon Ma Thuot City",
                "Buon Me Thuot",
                "Cam Pha",
                "Cam Ranh",
                "Can Tho",
                "Da Lat",
                "Danang",
                "Dong Nai",
                "Ha Long City",
                "Haiphong",
                "Hanoi",
                "Ho Chi Minh City",
                "Hoa Binh City",
                "Hoi An",
                "Hong Gai",
                "Hue",
                "Lam Dong",
                "Long Xuyen",
                "Nam Dinh",
                "Nha Trang",
                "Phan Thiet",
                "Qui Nhon",
                "Rach Gia",
                "Thanh Hoa",
                "Thai Binh",
                "Thai Nguyen",
                "Viet Tri City",
                "Vinh",
                "Vung Tau"
              ]
            }
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of companies to scrape",
            "default": 20
          },
          "startPage": {
            "title": "Start Page",
            "minimum": 1,
            "type": "integer",
            "description": "Page number to start scraping from. Useful for resuming previous searches.",
            "default": 1
          },
          "maxPages": {
            "title": "Max Pages",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of pages to scrape. Each page usually contains around 20 companies.",
            "default": 5
          },
          "enableRateLimiting": {
            "title": "Enable Rate Limiting",
            "type": "boolean",
            "description": "Enable rate limiting (2 seconds delay) or disable (0.5 seconds delay)",
            "default": true
          },
          "hybridStrategy": {
            "title": "Strategy",
            "type": "string",
            "description": "`fast` = Cheerio + Impit HTTP (default). `browser` = Playwright (fallback).",
            "default": "fast"
          },
          "includeContactDetails": {
            "title": "Include Contact & Details ($)",
            "type": "boolean",
            "description": "Include business hours, year established, employees, contact person",
            "default": false
          },
          "includeExtendedCompanyInfo": {
            "title": "Include Extended Company Information ($)",
            "type": "boolean",
            "description": "Include website, description, and maps coordinates",
            "default": false
          },
          "includeRegistrationLegal": {
            "title": "Include Registration & Legal ($)",
            "type": "boolean",
            "description": "Include registration number and VAT number",
            "default": false
          },
          "includeMetadata": {
            "title": "Include Metadata ($)",
            "type": "boolean",
            "description": "Include listing type, verified status, years with platform, tags",
            "default": false
          },
          "includeMediaContent": {
            "title": "Include Media & Product Information ($)",
            "type": "boolean",
            "description": "Include photos, logo, products",
            "default": false
          },
          "includeReviewSummary": {
            "title": "Include Review Summary ($)",
            "type": "boolean",
            "description": "Include review summary (rating and count) - Fast extraction",
            "default": false
          },
          "includeIndividualReviews": {
            "title": "Include Individual Reviews ($$)",
            "type": "boolean",
            "description": "Include individual reviews - Slower (requires additional pages). Enables premium pricing.",
            "default": false
          },
          "proxy": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Select proxies to be used by the crawler. Recommended: Use Apify Proxy with Residential proxies for better Cloudflare bypass."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}