{
  "openapi": "3.0.1",
  "info": {
    "title": "Himalayas Jobs Scraper — Remote Jobs by Country & Seniority",
    "description": "Himalayas remote jobs scraper: listings from himalayas.app's public API with company, countries, seniority, employment type, salary range, categories and the full description. Search by keyword, country, seniority, company or timezone. No API key needed.",
    "version": "0.1",
    "x-build-id": "rSOQfI0GmLhZvH2n2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fabrikit~himalayas-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fabrikit-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/fabrikit~himalayas-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fabrikit-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/fabrikit~himalayas-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fabrikit-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": {
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Free-text search run by Himalayas itself, for example \"react engineer\", \"customer success\" or \"product designer\". Leave empty to browse the whole board newest first."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Keep jobs open to candidates in these countries: ISO codes (US, GB, DE), names (United States, Germany) or slugs (united-states). One search per country; results are merged and de-duplicated. Jobs open worldwide are included unless 'Include worldwide jobs' is off.",
            "items": {
              "type": "string"
            }
          },
          "includeWorldwide": {
            "title": "Include worldwide jobs",
            "type": "boolean",
            "description": "When countries are set, also return jobs that have no country restriction (open to anyone). Turn off to get only jobs that name one of your countries.",
            "default": true
          },
          "worldwideOnly": {
            "title": "Only worldwide jobs",
            "type": "boolean",
            "description": "Return only jobs with no country restriction (open to candidates anywhere).",
            "default": false
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Keep jobs that accept one of these levels, as labelled by Himalayas.",
            "items": {
              "type": "string",
              "enum": [
                "Entry-level",
                "Mid-level",
                "Senior",
                "Manager",
                "Director",
                "Executive"
              ],
              "enumTitles": [
                "Entry-level",
                "Mid-level",
                "Senior",
                "Manager",
                "Director",
                "Executive"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep jobs of these types. 'Contractor' covers contract and freelance roles.",
            "items": {
              "type": "string",
              "enum": [
                "Full Time",
                "Part Time",
                "Contractor",
                "Temporary",
                "Intern",
                "Volunteer",
                "Other"
              ],
              "enumTitles": [
                "Full Time",
                "Part Time",
                "Contractor",
                "Temporary",
                "Intern",
                "Volunteer",
                "Other"
              ]
            }
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Only jobs from these companies, by Himalayas company slug: the last part of himalayas.app/companies/<slug> (for example vercel, linear). Company page URLs are accepted too.",
            "items": {
              "type": "string"
            }
          },
          "timezone": {
            "title": "Timezone",
            "type": "string",
            "description": "Keep jobs whose timezone window includes this UTC offset, for example -5, UTC-5 or UTC+05:30."
          },
          "sortBy": {
            "title": "Sort order (search only)",
            "enum": [
              "relevant",
              "recent",
              "salaryDesc",
              "salaryAsc",
              "nameAToZ",
              "nameZToA",
              "jobs"
            ],
            "type": "string",
            "description": "Order of the results when a server-side filter is set. 'relevant' = best match (default), 'recent' = recently active jobs first, 'salaryDesc' / 'salaryAsc' = by published salary, 'nameAToZ' / 'nameZToA' = by company name, 'jobs' = companies with the most open roles first. Without any server-side filter the board is always read newest first.",
            "default": "relevant"
          },
          "keywords": {
            "title": "Keywords (exact, client-side)",
            "type": "array",
            "description": "Keep only jobs whose title, company, categories or excerpt contain one of these words or phrases (case-insensitive, accent-insensitive). Unlike 'Search query', this is an exact text match applied by the Actor. Turn on 'Search in description' to match the full description too.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Skip jobs whose title, company, categories or excerpt (and description, if 'Search in description' is on) contain one of these words.",
            "items": {
              "type": "string"
            }
          },
          "searchDescription": {
            "title": "Search in description",
            "type": "boolean",
            "description": "Match keywords and exclude keywords against the full job description as well.",
            "default": false
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Keep jobs whose Himalayas categories contain one of these texts, for example Developer, Design, Marketing, Sales, Customer Service, Data Science, Product, Finance, Human Resources, Operations, or a specific skill category such as React or SEO Specialist.",
            "items": {
              "type": "string"
            }
          },
          "minSalary": {
            "title": "Minimum salary (per year)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose published salary range reaches this yearly amount, in the job's own currency (no conversion). Hourly, weekly, fortnightly and monthly figures are annualised (x 2080, x 52, x 26, x 12) for the comparison. Jobs without a published salary are skipped when this is set."
          },
          "onlyWithSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Skip jobs that do not publish a salary range (roughly three in four Himalayas listings publish none).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs published in the last N days. 0 = any date.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include description (plain text)",
            "type": "boolean",
            "description": "Add the full job description as plain text (HTML removed; personal e-mails, phone numbers and profile links stripped). It comes with the API response, so it costs no extra requests; turn off for a lighter dataset.",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include description as HTML",
            "type": "boolean",
            "description": "Also keep the original HTML of the description in descriptionHtml (useful for republishing with formatting). Same price.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many unique jobs. Himalayas serves 20 jobs per request; 50 jobs = 3 requests.",
            "default": 50
          },
          "maxRequests": {
            "title": "Maximum API requests",
            "minimum": 0,
            "type": "integer",
            "description": "Safety cap on requests to Himalayas in one run (each returns up to 20 jobs). 0 = no cap beyond the built-in limit of 2,500 requests. Useful with strict client-side filters, which can make the Actor read many pages to find matches.",
            "default": 0
          },
          "apiKey": {
            "title": "Himalayas API key (optional)",
            "type": "string",
            "description": "Optional free API key from himalayas.app (Authorization: Bearer). Without a key the Actor shares Himalayas' public allowance with every other anonymous caller; with your own key you get 60 requests per minute and 10,000 per day. Stored encrypted and never logged."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Requests go out directly first (public JSON API). If Himalayas blocks them, the Actor climbs to Apify datacenter and then residential proxies on its own. Leave the default.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}