{
  "openapi": "3.0.1",
  "info": {
    "title": "JobStreet Scraper: Jobs and Salaries in MY, SG, PH, ID, HK, TH",
    "description": "Scrape JobStreet (Malaysia, Singapore, Philippines, Indonesia) and JobsDB (Hong Kong, Thailand) jobs by keyword and location: title, company, location, salary with parsed range, work type, remote or hybrid, listing date, classification and link, plus optional full description. No login.",
    "version": "0.1",
    "x-build-id": "4jplhxADaVV2J4zqh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/themineworks~jobstreet-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-themineworks-jobstreet-jobs-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/themineworks~jobstreet-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-themineworks-jobstreet-jobs-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/themineworks~jobstreet-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-themineworks-jobstreet-jobs-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Job titles or skills to search for, one per line, for example \"software engineer\" or \"accountant\". Each keyword is its own search on every country site chosen. Leave the list empty to get every job that matches the other filters.",
            "default": [
              "software engineer"
            ],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Country sites",
            "type": "array",
            "description": "JobStreet Malaysia, Singapore, Philippines and Indonesia, and JobsDB Hong Kong and Thailand. Each keyword is searched on each site chosen.",
            "items": {
              "type": "string",
              "enum": [
                "my",
                "sg",
                "ph",
                "id",
                "hk",
                "th"
              ],
              "enumTitles": [
                "Malaysia (my.jobstreet.com)",
                "Singapore (sg.jobstreet.com)",
                "Philippines (ph.jobstreet.com)",
                "Indonesia (id.jobstreet.com)",
                "Hong Kong (hk.jobsdb.com)",
                "Thailand (th.jobsdb.com)"
              ]
            },
            "default": [
              "my"
            ]
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Optional. A city, state or area as you would type it on the site, for example \"Kuala Lumpur\", \"Penang\", \"Makati\", \"Jakarta Selatan\" or \"Bangkok\". Applies to every country site chosen; leave blank for the whole country.",
            "default": ""
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "",
              "1",
              "3",
              "7",
              "14",
              "31"
            ],
            "type": "string",
            "description": "Only jobs listed within the last N days.",
            "default": ""
          },
          "workType": {
            "title": "Work type",
            "enum": [
              "",
              "full-time",
              "part-time",
              "contract-temp",
              "casual-vacation"
            ],
            "type": "string",
            "description": "Only jobs of this type.",
            "default": ""
          },
          "workArrangement": {
            "title": "On-site, hybrid or remote",
            "enum": [
              "",
              "on-site",
              "hybrid",
              "remote"
            ],
            "type": "string",
            "description": "Only jobs with this work arrangement, as the employer listed it.",
            "default": ""
          },
          "salaryMin": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. In the site's local currency (RM, S$, PHP, IDR, HK$, THB), per the salary period below. The site applies it; jobs that hide their pay can still match, as on the site."
          },
          "salaryMax": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Same currency and period as the minimum."
          },
          "salaryPeriod": {
            "title": "Salary period",
            "enum": [
              "monthly",
              "annual",
              "hourly"
            ],
            "type": "string",
            "description": "What the salary filter amounts mean. Pay on these sites is mostly quoted per month.",
            "default": "monthly"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Best match first, or newest first. Use newest first for daily monitoring.",
            "default": "relevance"
          },
          "maxJobs": {
            "title": "Max jobs per search",
            "minimum": 20,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper limit for each search (one keyword on one country site). The sites serve 100 jobs a page. Minimum 20.",
            "default": 100
          },
          "includeDescription": {
            "title": "Full job description",
            "type": "boolean",
            "description": "Adds the full description (plain text and HTML), expiry date, job status, the employer's screening questions and whether the advertiser is verified. One extra request per job, so runs take longer.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}