{
  "openapi": "3.0.1",
  "info": {
    "title": "OnlineJobs.ph Scraper: Philippines Remote Jobs with Pay Filters",
    "description": "Scrape OnlineJobs.ph remote job postings for Filipino virtual assistants and freelancers by keyword, skill, job type, posting date and hourly rate. Pay comes as numbers with an hourly USD rate. Exclude keywords, new-posting monitor, full details, JSON/CSV/Excel. No login.",
    "version": "0.1",
    "x-build-id": "tAZHDr8vO4uWV79eu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~onlinejobs-ph-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-onlinejobs-ph-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/getascraper~onlinejobs-ph-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-onlinejobs-ph-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/getascraper~onlinejobs-ph-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-onlinejobs-ph-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": {
          "searchTerms": {
            "title": "Search keywords",
            "type": "array",
            "description": "Job titles or keywords, one per line. Each keyword is searched separately and every row records which keyword found it. Leave empty (with no skills) to collect the latest postings.",
            "default": [
              "virtual assistant"
            ],
            "items": {
              "type": "string"
            }
          },
          "skills": {
            "title": "Skills or categories",
            "type": "array",
            "description": "Skill or category names exactly as OnlineJobs.ph lists them, for example Video Editing, Real Estate, Bookkeeping or GoHighLevel. A name that is also a top-level category returns that whole category. Names that do not exist are skipped with a warning in the log.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "OnlineJobs.ph pages",
            "type": "array",
            "description": "Optional. Paste search result pages, skill pages or single job pages from onlinejobs.ph. When this is filled, the keyword and skill fields above are ignored. Single job pages are always read in full.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Limit to full-time, part-time or gig work. Leave empty for all types. The site also lists postings that accept any type, and those stay included.",
            "items": {
              "type": "string",
              "enum": [
                "fullTime",
                "partTime",
                "gig"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Gig or project"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only postings from the last N days, based on the exact posting time. 0 means any age. Results come newest first, so a short window also finishes sooner.",
            "default": 0
          },
          "strictKeywordMatch": {
            "title": "Strict keyword match",
            "type": "boolean",
            "description": "The site search is broad: a keyword like seo returns hundreds of loosely related postings. Turn this on to keep only postings whose title, preview text or skill tags contain every word of the keyword.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop postings whose title, preview text or skill tags contain any of these words, for example cold calling or commission only.",
            "items": {
              "type": "string"
            }
          },
          "minHourlyRateUsd": {
            "title": "Minimum hourly rate (USD)",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "Keep only postings that state an hourly rate in US dollars and pay at least this much at the top of their range. Postings with monthly pay, pesos or no stated rate are left out while this is set."
          },
          "maxHourlyRateUsd": {
            "title": "Maximum hourly rate (USD)",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "Keep only postings that state an hourly rate in US dollars and start at or below this amount. Useful for budget-friendly roles."
          },
          "requireSalary": {
            "title": "Only postings with a stated salary",
            "type": "boolean",
            "description": "Skip postings that give no pay figure at all.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many postings. Large values work: when one search reaches the site's own limit of roughly 300 postings, the run repeats it inside each top-level category to reach more.",
            "default": 25
          },
          "includeDetails": {
            "title": "Full job details",
            "type": "boolean",
            "description": "Open every posting to add the full description, hours per week, last updated date and links written in the description. This makes the run slower, and full details are billed as a separate event per posting.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor name",
            "type": "string",
            "description": "Give a name to turn on monitor mode: the run remembers every posting it has delivered under that name and returns only new postings next time. Use a different name for each saved search. Leave empty to always get everything that matches."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}