{
  "openapi": "3.0.1",
  "info": {
    "title": "Himalayas Remote Jobs Scraper: Salaries & New-Job Alerts",
    "description": "Get remote jobs from Himalayas through its official free API: search by keyword, country, seniority, employment type, company and time zone, with salaries, categories and apply links. Monitor mode returns only new jobs, salary changes and closed jobs. No login.",
    "version": "0.1",
    "x-build-id": "dwZ1p9EJrkPf2wsWd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/promur~himalayas-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-promur-himalayas-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/promur~himalayas-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-promur-himalayas-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/promur~himalayas-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-promur-himalayas-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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Free-text searches, e.g. <code>python developer</code>, <code>product designer</code>, <code>customer support</code>. Each query runs with the filters below. Leave every search field empty to get <b>all remote jobs</b> on Himalayas.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Jobs open to people in these countries (country name or ISO code, e.g. <code>Germany</code>, <code>US</code>, <code>Brazil</code>). Each country is a separate search.",
            "items": {
              "type": "string"
            }
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Only jobs at these levels (any of them).",
            "items": {
              "type": "string",
              "enum": [
                "Entry-level",
                "Mid-level",
                "Senior",
                "Manager",
                "Director",
                "Executive"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Only these employment types (any of them).",
            "items": {
              "type": "string",
              "enum": [
                "Full Time",
                "Part Time",
                "Contractor",
                "Temporary",
                "Intern",
                "Volunteer",
                "Other"
              ]
            }
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Only jobs at these companies: the Himalayas company slug (e.g. <code>gitlab</code>) or its link <code>https://himalayas.app/companies/gitlab</code>. Alone, this lists the open jobs at those companies (the first 20 per company).",
            "items": {
              "type": "string"
            }
          },
          "timezone": {
            "title": "Time zone",
            "type": "string",
            "description": "Only jobs open to this time zone, e.g. <code>UTC+1</code>, <code>UTC-5</code>, <code>UTC+05:30</code>."
          },
          "worldwideOnly": {
            "title": "Worldwide jobs only",
            "type": "boolean",
            "description": "Only jobs open to people anywhere in the world.",
            "default": false
          },
          "excludeWorldwide": {
            "title": "Exclude worldwide jobs (with Countries)",
            "type": "boolean",
            "description": "With Countries set: only jobs restricted to those countries, not jobs open worldwide.",
            "default": false
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevant",
              "recent",
              "salaryDesc",
              "salaryAsc",
              "nameAToZ",
              "nameZToA"
            ],
            "type": "string",
            "description": "Order of search results. Default: most relevant (newest first in monitor mode)."
          },
          "jobUrls": {
            "title": "Job links (watchlist)",
            "type": "array",
            "description": "Single jobs to fetch or watch, e.g. <code>https://himalayas.app/companies/&lt;company&gt;/jobs/&lt;job&gt;</code>. In monitor mode you get a row when a job closes.",
            "items": {
              "type": "string"
            }
          },
          "maxJobsPerInput": {
            "title": "Max jobs per search",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum jobs saved per search (query × country) or for the full feed. 0 = no limit. A search returns its first 20 matches (Himalayas' robots.txt does not allow paging through search results); the full feed has no such limit.",
            "default": 0
          },
          "onlyChanges": {
            "title": "Change monitor: only new jobs, salary changes and closed jobs",
            "type": "boolean",
            "description": "Return only jobs that are new, changed salary or closed since your previous run with the same feed name. Unchanged jobs are skipped and cost nothing. The first run returns every job (your baseline). Ideal for daily job alerts.",
            "default": false
          },
          "watchChanges": {
            "title": "Changes to report (monitor mode)",
            "type": "array",
            "description": "Which changes are saved in monitor mode. For the full feed (no search fields) only new jobs are reported.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "salary",
                "closed"
              ],
              "enumTitles": [
                "New jobs",
                "Salary changes",
                "Closed jobs"
              ]
            },
            "default": [
              "new",
              "salary",
              "closed"
            ]
          },
          "feedName": {
            "title": "Feed name (for monitor mode)",
            "type": "string",
            "description": "Keeps separate memories for separate monitors. Runs with the same feed name compare against each other. Stored in your own account (key-value store <code>himalayas-jobs-scraper-state</code>).",
            "default": "default"
          },
          "apiKey": {
            "title": "Himalayas API key (optional)",
            "type": "string",
            "description": "Optional. Without a key all callers share Himalayas' public allowance. With your own free key (create it on himalayas.app) you get 60 requests a minute and 10,000 a day - about 1,200 jobs a minute. Stored encrypted; sent only to himalayas.app in a request header."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}