{
  "openapi": "3.0.1",
  "info": {
    "title": "Yellow Pages UAE Scraper",
    "description": "UAE business leads from yellowpages-uae.com and yello.ae: phones, WhatsApp, licence and VAT included. From $1.20 per 1,000, no login, pay only for businesses returned.",
    "version": "0.1",
    "x-build-id": "PnRTO8XNI69P43hOb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~yellow-pages-uae-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-yellow-pages-uae-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/khadinakbar~yellow-pages-uae-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-yellow-pages-uae-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/khadinakbar~yellow-pages-uae-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-yellow-pages-uae-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": "Business categories in plain words or slugs, e.g. 'restaurants', 'hospitals', 'real estate agents'. Each category is looked up on the chosen directories and every page is read. Close names are matched to the directory's own category automatically. NOT a free-text keyword search: use a directory category. Leave empty if you give Start URLs or only an emirate.",
            "items": {
              "type": "string"
            }
          },
          "site": {
            "title": "Directory",
            "enum": [
              "both",
              "yello.ae",
              "yellowpages-uae.com"
            ],
            "type": "string",
            "description": "Which UAE directory to scrape for your categories. 'Both' splits your max results evenly between yello.ae and yellowpages-uae.com and gives any unused share to the other one. Each row has a 'source' field. Start URLs always use their own site.",
            "default": "both"
          },
          "emirates": {
            "title": "Emirates",
            "type": "array",
            "description": "Optional: limit results to Dubai, Abu Dhabi or any other emirate (several allowed). Leave empty for the whole UAE. With no category, an emirate alone scrapes every yello.ae category in that emirate (yellowpages-uae.com needs a category).",
            "items": {
              "type": "string",
              "enum": [
                "dubai",
                "abu-dhabi",
                "sharjah",
                "ajman",
                "ras-al-khaimah",
                "fujairah",
                "umm-al-quwain",
                "al-ain",
                "jebel-ali-free-zone",
                "khor-fakkan"
              ],
              "enumTitles": [
                "Dubai",
                "Abu Dhabi",
                "Sharjah",
                "Ajman",
                "Ras Al Khaimah",
                "Fujairah",
                "Umm Al Quwain",
                "Al Ain",
                "Jebel Ali Free Zone",
                "Khor Fakkan (yello.ae only)"
              ]
            },
            "default": []
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Optional direct links, one per line. yello.ae: category (https://www.yello.ae/category/<slug>), location (https://www.yello.ae/location/<emirate>) or company pages (https://www.yello.ae/company/<id>/<slug>). yellowpages-uae.com: category lists (https://www.yellowpages-uae.com/uae/<category> or /uae/<emirate>/<category>) or company pages (https://www.yellowpages-uae.com/<name>-<id>). Other domains are rejected.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of businesses to return across the whole run. You are charged only for returned businesses, so this is also your cost cap. Rows removed by the filters below are not charged and do not count.",
            "default": 1000
          },
          "requirePhone": {
            "title": "Only businesses with a phone",
            "type": "boolean",
            "description": "Keep only businesses that list a phone, mobile or WhatsApp number. Others are skipped and not charged.",
            "default": false
          },
          "requireWebsite": {
            "title": "Only businesses with a website",
            "type": "boolean",
            "description": "Keep only businesses that list a website. Others are skipped and not charged.",
            "default": false
          },
          "requireEmail": {
            "title": "Only businesses with a real email",
            "type": "boolean",
            "description": "Keep only businesses that show their own email address. yello.ae hides most emails behind an enquiry form, and free yellowpages-uae.com listings show the directory's shared inbox (which is removed), so expect far fewer rows with this on.",
            "default": false
          },
          "findContactsOnWebsite": {
            "title": "Also find emails and social links on company websites",
            "type": "boolean",
            "description": "When on, the Actor opens each business's own website and adds its public email (only the company's own address) and social profile links (Facebook, Instagram, LinkedIn, X, YouTube, TikTok). No extra fee: you pay the same price per business. Runs take longer, so leave it off if you only need directory data.",
            "default": false
          },
          "enrichDetails": {
            "title": "Full details for yello.ae",
            "type": "boolean",
            "description": "yello.ae only. When on (default), each business page is opened for phone, mobile, WhatsApp, website, manager, staff size, trade licence, VAT number, rating and map position. When off, only the name, address and profile link from the list page are returned (faster, but sparse). yellowpages-uae.com rows are always complete.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "First route for page requests. The default Apify datacenter proxy is right for most runs; when a page is blocked the Actor moves to Apify Residential and then a managed backup route on its own. Change only for a specific network need.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}