{
  "openapi": "3.0.1",
  "info": {
    "title": "Himalayas Remote Jobs Scraper",
    "description": "Himalayas.app remote jobs scraper & unofficial API: export 100k+ remote job listings to CSV, JSON or Excel. No login or API key.",
    "version": "1.0",
    "x-build-id": "Ke4ydPd0Q7jKVjPBy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~himalayas-remote-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-himalayas-remote-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/logiover~himalayas-remote-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-himalayas-remote-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/logiover~himalayas-remote-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-himalayas-remote-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": {
          "searchKeyword": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Free-text keyword matched against job title, company name and summary. Examples: 'react', 'data scientist', 'product manager'. Leave empty for no keyword filter.",
            "default": ""
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Filter by job category (matched against each job's categories and parent categories). Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "Software Engineering",
                "Design",
                "Marketing",
                "Sales",
                "Product",
                "Customer Success",
                "Operations",
                "Finance",
                "Data",
                "People & HR",
                "Writing",
                "Legal",
                "Management",
                "DevOps & Sysadmin",
                "QA",
                "Business",
                "Project Management",
                "All Others"
              ]
            },
            "default": []
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Filter by seniority level. Leave empty for all levels.",
            "items": {
              "type": "string",
              "enum": [
                "Entry-level",
                "Mid-level",
                "Senior",
                "Manager",
                "Director",
                "Executive",
                "Internship"
              ]
            },
            "default": []
          },
          "employmentType": {
            "title": "Employment Type",
            "enum": [
              "",
              "Full Time",
              "Part Time",
              "Contract",
              "Freelance",
              "Internship",
              "Temporary"
            ],
            "type": "string",
            "description": "Filter by employment type. Leave empty for all types.",
            "default": ""
          },
          "maxJobs": {
            "title": "Max Jobs to Save",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of matching jobs to save. 100 = quick sample, 500 = focused dataset, 2000 = large dataset. Set 0 for unlimited (note: Himalayas has 100,000+ jobs; full scan is bounded by 'Max Pages to Scan' below for cost safety).",
            "default": 200
          },
          "maxPagesToScan": {
            "title": "Max Pages to Scan (cost safety)",
            "minimum": 0,
            "type": "integer",
            "description": "Hard ceiling on pages requested from Himalayas (20 jobs per page). Prevents runaway scans when filters are narrow and matches are rare. Examples: 50 pages = scan 1,000 jobs, 200 pages = scan 4,000 jobs, 500 pages = scan 10,000 jobs. Set 0 to disable (only use if you genuinely want the entire 100k+ feed).",
            "default": 100
          },
          "timeBudgetSecs": {
            "title": "Time Budget (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional wall-clock ceiling for the run. When the budget is reached the Actor stops cleanly and keeps everything scraped so far (results are saved page by page, so nothing is lost). Set 0 for no time limit — use 0 for large or full-feed crawls.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include Full Description",
            "type": "boolean",
            "description": "When enabled, includes each job's full HTML description (typically 1-7 KB per job). Disabled by default to keep runs fast, cheap and dataset small — the 'excerpt' field (200 chars summary) is always included. Enable only if you need the full body text.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}