{
  "openapi": "3.0.1",
  "info": {
    "title": "Naukrigulf Scraper: Gulf Jobs in 12 Languages",
    "description": "Scrape Naukrigulf.com jobs across the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. Search in Arabic, Hindi, Malayalam, Tagalog and 8 more, and read every result back in your language. Filters on what the site hides: salary, nationality and gender requirements, agency vs direct employer.",
    "version": "0.1",
    "x-build-id": "prC4XqAMa90bWJVFp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fayoussef~naukrigulf-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fayoussef-naukrigulf-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/fayoussef~naukrigulf-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fayoussef-naukrigulf-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/fayoussef~naukrigulf-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fayoussef-naukrigulf-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": {
          "searchKeywords": {
            "title": "Job titles or keywords",
            "type": "array",
            "description": "What to search for. Type in English or in your own language: محاسب, नर्स, ഡ്രൈവർ, comptable and perawat all work, and are matched to the English title the board indexes. Leave empty to get every job in the location you picked.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Where",
            "enum": [
              "gulf",
              "uae",
              "dubai",
              "abu-dhabi",
              "sharjah",
              "ajman",
              "ras-al-khaimah",
              "saudi-arabia",
              "riyadh",
              "jeddah",
              "dammam",
              "qatar",
              "doha",
              "kuwait",
              "kuwait-city",
              "bahrain",
              "manama",
              "oman",
              "muscat",
              "egypt",
              "cairo",
              "jordan",
              "amman",
              "lebanon",
              "beirut",
              "iraq",
              "morocco",
              "middle-east",
              ""
            ],
            "type": "string",
            "description": "Country or city to search in. \"All Gulf countries\" covers the six GCC states in one run.",
            "default": "gulf"
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "How many jobs to return in total, across every keyword. You are charged per job delivered, so this is also your cost ceiling.",
            "default": 100
          },
          "outputLanguage": {
            "title": "Output language",
            "enum": [
              "en",
              "ar",
              "hi",
              "ur",
              "bn",
              "ml",
              "ta",
              "ne",
              "tl",
              "fr",
              "ru",
              "id"
            ],
            "type": "string",
            "description": "Adds a `localized` block to every job with the country, city, work mode, employment type, nationality and experience translated, plus a glossary of the column names. Job titles and descriptions always stay in the employer's own words.",
            "default": "en"
          },
          "datePosted": {
            "title": "Posted within",
            "enum": [
              "",
              "1",
              "3",
              "7",
              "15",
              "30",
              "60"
            ],
            "type": "string",
            "description": "Only return jobs posted in the last N days. Naukrigulf keeps postings for about 60 days, so leaving this open returns older ones too.",
            "default": ""
          },
          "experienceLevel": {
            "title": "Experience required",
            "enum": [
              "",
              "0",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Filter by the experience band the employer asked for.",
            "default": ""
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "Newest first is best for monitoring a market. Most relevant is best for a one-off search on a specific title.",
            "default": "date"
          },
          "startUrls": {
            "title": "Specific job URLs",
            "type": "array",
            "description": "Optional. Paste Naukrigulf job page URLs (the kind ending in -jid-<number>) to scrape exactly those, in addition to the keyword search.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "gccOnly": {
            "title": "GCC countries only",
            "type": "boolean",
            "description": "Drop anything outside the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman. Useful because Naukrigulf also carries Egyptian, Levantine and North African postings.",
            "default": false
          },
          "workModes": {
            "title": "Work mode",
            "type": "array",
            "description": "Keep only these work modes. Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "On-site",
                "Remote",
                "Hybrid"
              ],
              "enumTitles": [
                "On-site",
                "Remote",
                "Hybrid"
              ]
            },
            "default": []
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Keep only these employment types. Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary",
                "Freelance"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary",
                "Freelance"
              ]
            },
            "default": []
          },
          "minMonthlySalaryUsd": {
            "title": "Minimum monthly salary (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose published salary band reaches this figure. Naukrigulf publishes salary in monthly USD bands. Jobs that hide their salary are dropped by this filter."
          },
          "salaryDisclosedOnly": {
            "title": "Only jobs with a published salary",
            "type": "boolean",
            "description": "Roughly two thirds of Gulf postings hide the salary. Turn this on to keep only the ones that state it.",
            "default": false
          },
          "directEmployersOnly": {
            "title": "Only direct employers",
            "type": "boolean",
            "description": "Drop postings placed by recruitment consultancies and agencies, keeping only companies hiring for themselves.",
            "default": false
          },
          "excludeNationalityRestricted": {
            "title": "Hide jobs restricted to specific nationalities",
            "type": "boolean",
            "description": "Many Gulf postings name the nationalities they will consider. Turn this on to keep only roles that are open to any nationality.",
            "default": false
          },
          "excludeGenderRestricted": {
            "title": "Hide jobs restricted to one gender",
            "type": "boolean",
            "description": "Turn this on to drop postings that ask for male or female candidates specifically.",
            "default": false
          },
          "excludeExpired": {
            "title": "Hide expired postings",
            "type": "boolean",
            "description": "Drop vacancies the board has already closed. On by default.",
            "default": true
          },
          "maxAgeDays": {
            "title": "Maximum age in days",
            "minimum": 0,
            "type": "integer",
            "description": "A second, exact age cut applied after the fetch, in case you need a tighter window than the Posted within options offer."
          },
          "includeDescription": {
            "title": "Include the full job description",
            "type": "boolean",
            "description": "Adds the description and the candidate profile as clean plain text, with the bullet structure preserved.",
            "default": true
          },
          "includeHtmlDescription": {
            "title": "Also include the raw HTML description",
            "type": "boolean",
            "description": "Adds the description exactly as the employer formatted it. Off by default because it roughly doubles the size of each row.",
            "default": false
          },
          "includeRecruiterContacts": {
            "title": "Include recruiter contact details",
            "type": "boolean",
            "description": "Adds the contact name, job title, email, phone, website and address that Naukrigulf publishes with the posting, where the employer provided them. You are responsible for using contact data lawfully, including under UAE and Saudi data-protection law and the GDPR where it applies.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional override. This Actor reaches Naukrigulf directly and needs no proxy, so leaving this empty is both faster and cheaper. Set it only if your own network requires a specific egress.",
            "default": {}
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}