{
  "openapi": "3.0.1",
  "info": {
    "title": "Bayt Scraper - MENA Jobs, Salaries & Companies",
    "description": "Scrape Bayt.com jobs across 18 MENA countries: title, company, city, posting time, full description, skills, employment type, career level, experience and salary in local currency and USD. City search and filters. Independent tool, not affiliated with Bayt.com.",
    "version": "0.1",
    "x-build-id": "PcUN9oGQBfyPIV7I9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~bayt-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-bayt-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/scrapesage~bayt-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-bayt-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/scrapesage~bayt-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-bayt-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": {
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Which Bayt country sites to search. \"All countries\" is Bayt's own all-locations search. Leave every location empty and add a keyword to search all of Bayt.",
            "items": {
              "type": "string",
              "enum": [
                "uae",
                "saudi-arabia",
                "egypt",
                "qatar",
                "kuwait",
                "bahrain",
                "oman",
                "jordan",
                "lebanon",
                "iraq",
                "morocco",
                "algeria",
                "tunisia",
                "libya",
                "syria",
                "yemen",
                "pakistan",
                "india",
                "international"
              ],
              "enumTitles": [
                "United Arab Emirates (uae)",
                "Saudi Arabia (saudi-arabia)",
                "Egypt (egypt)",
                "Qatar (qatar)",
                "Kuwait (kuwait)",
                "Bahrain (bahrain)",
                "Oman (oman)",
                "Jordan (jordan)",
                "Lebanon (lebanon)",
                "Iraq (iraq)",
                "Morocco (morocco)",
                "Algeria (algeria)",
                "Tunisia (tunisia)",
                "Libya (libya)",
                "Syria (syria)",
                "Yemen (yemen)",
                "Pakistan (pakistan)",
                "India (india)",
                "All countries (international)"
              ]
            }
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Optional. Search one city instead of its whole country, e.g. Dubai, Abu Dhabi, Riyadh, Jeddah, Cairo, Doha, Kuwait City, Muscat, Amman, Manama, Beirut, Casablanca. Each city narrows only its own country; any other country you picked is still searched whole.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Job titles, skills or company names to search for, one search per keyword - e.g. accountant, sales manager, software engineer, nurse, Michael Page. Leave empty for the latest jobs. Short phrases work best: Bayt builds the search from the words, and its results include closely related roles.",
            "items": {
              "type": "string"
            }
          },
          "includeDetail": {
            "title": "Include full job details",
            "type": "boolean",
            "description": "Open each job's own page for the full description, skills, employment type, salary (local currency and USD per month), experience, education, nationality, company size and industry, closing date and how to apply. Turn off for a faster run with the search-result fields only (title, company, city, posted date, summary, career level and any salary shown in the list).",
            "default": true
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many jobs in total (0 = no limit). With several searches the total is shared fairly between them. Jobs are charged only when saved.",
            "default": 100
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 333,
            "type": "integer",
            "description": "How deep to read each search. Bayt lists 30 jobs per page and stops at page 333 (about 10,000 jobs per search). With filters on, a deeper scan finds more matches.",
            "default": 10
          },
          "startUrls": {
            "title": "Bayt search or job URLs",
            "type": "array",
            "description": "Optional. Bayt.com URLs to scrape directly: search pages (e.g. https://www.bayt.com/en/uae/jobs/accountant-jobs/ - also with the filters you set on Bayt) or single job pages (https://www.bayt.com/en/uae/jobs/...-5492229/). Can be combined with the searches above.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "urlsFromFile": {
            "title": "Import URLs from a file",
            "type": "string",
            "description": "Optional. Paste a list of Bayt URLs (one per line), or a link to a .txt / .csv file or a Google Sheet that holds them."
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "any",
              "24h",
              "7d",
              "30d"
            ],
            "type": "string",
            "description": "Only jobs posted (or refreshed) on Bayt within this window.",
            "default": "any"
          },
          "careerLevels": {
            "title": "Career levels",
            "type": "array",
            "description": "Only jobs at these career levels (as the employer set them on Bayt).",
            "items": {
              "type": "string",
              "enum": [
                "student-internship",
                "fresh-graduate",
                "entry-level",
                "mid-career",
                "management",
                "director-head",
                "senior-executive"
              ],
              "enumTitles": [
                "Student / Internship (student-internship)",
                "Fresh graduate (fresh-graduate)",
                "Entry level (entry-level)",
                "Mid career (mid-career)",
                "Management (management)",
                "Director / Head (director-head)",
                "Senior executive (senior-executive)"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Only jobs with these employment types.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contractor",
                "freelance",
                "internship",
                "temporary"
              ],
              "enumTitles": [
                "Full time (full-time)",
                "Part time (part-time)",
                "Contractor (contractor)",
                "Freelance (freelance)",
                "Internship (internship)",
                "Temporary (temporary)"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote / hybrid jobs only",
            "type": "boolean",
            "description": "Only jobs Bayt marks as remote or work-from-home eligible.",
            "default": false
          },
          "onlyWithSalary": {
            "title": "Only jobs with a published salary",
            "type": "boolean",
            "description": "Skip jobs whose employer did not publish a salary (about two in three on Bayt).",
            "default": false
          },
          "minMonthlySalaryUsd": {
            "title": "Minimum monthly salary (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs whose published salary range reaches at least this many US dollars a month (Bayt converts every salary to USD per month, so this works the same in every country). Jobs without a published salary are skipped."
          },
          "proxyCountry": {
            "title": "Residential exit country",
            "enum": [
              "AE",
              "SA",
              "EG",
              "KW",
              "QA",
              "BH",
              "OM",
              "JO",
              "GB",
              "US",
              "DE"
            ],
            "type": "string",
            "description": "When Bayt refuses a datacenter connection, the request is retried through an Apify residential proxy in this country.",
            "default": "AE"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave as is (Apify Proxy). Pick your own proxies only if you need to; Apify residential stays the automatic fallback.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}