{
  "openapi": "3.0.1",
  "info": {
    "title": "Himalayas Jobs Scraper: Remote Jobs API with Salaries",
    "description": "Remote jobs from Himalayas through its public jobs API: title, company, salary range, seniority, categories, the countries and time zones open to candidates, full description and job link. Filter by keyword, country, time zone, seniority, type and date. Pay per job, no personal data.",
    "version": "1.0",
    "x-build-id": "vZoslbYTCZ4YxJmXh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rowcraft~himalayas-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rowcraft-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/rowcraft~himalayas-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rowcraft-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/rowcraft~himalayas-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rowcraft-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words, for example \"engineer\", \"python\", \"customer success\". Not case-sensitive. Leave empty for all jobs.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries open to candidates",
            "type": "array",
            "description": "Names or ISO codes (\"Germany\", \"DE\", \"United Kingdom\"). A job matches when candidates from one of these countries may apply. Jobs open worldwide are included unless you turn that off below.",
            "items": {
              "type": "string"
            }
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Only jobs posted after this moment: \"24 hours\", \"3 days\", \"2 weeks\", \"today\", a date (2026-10-01) or a timestamp. Default 3 days (about 17 minutes without a maximum). Empty = the whole feed (about 120,000 jobs, more than an hour).",
            "default": "3 days"
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs. 0 = all matching jobs.",
            "default": 500
          },
          "seniority": {
            "title": "Seniority",
            "type": "array",
            "description": "Keep jobs at one of these levels.",
            "items": {
              "type": "string",
              "enum": [
                "Entry-level",
                "Mid-level",
                "Senior",
                "Manager",
                "Director",
                "Executive"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Full-time, part-time, contract, temporary, internship, volunteer or other.",
            "items": {
              "type": "string",
              "enum": [
                "Full Time",
                "Part Time",
                "Contractor",
                "Temporary",
                "Intern",
                "Volunteer",
                "Other"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer",
                "Other"
              ]
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Exact category names as they appear in the parentCategories and categories columns, broad (\"Developer\", \"Data Science\", \"Sales\", \"Marketing\", \"Design\") or detailed (\"Backend Engineer\", \"Product Manager\"). Not case-sensitive.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Company slugs (the part after /companies/ in a Himalayas company link, e.g. \"gitlab\"), company links or names. Each company is read with one fast request; leave empty for all companies.",
            "items": {
              "type": "string"
            }
          },
          "timezones": {
            "title": "Time zones",
            "type": "array",
            "description": "UTC offsets you can work in, e.g. \"UTC+1\", \"-5\", \"+05:30\". A job matches when it accepts one of them; jobs without a time-zone requirement always match.",
            "items": {
              "type": "string"
            }
          },
          "includeWorldwide": {
            "title": "Include jobs open worldwide",
            "type": "boolean",
            "description": "With countries set, also keep jobs that accept candidates from anywhere.",
            "default": true
          },
          "worldwideOnly": {
            "title": "Only jobs open worldwide",
            "type": "boolean",
            "description": "Keep only jobs with no country restriction.",
            "default": false
          },
          "withSalaryOnly": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Keep only jobs that publish a salary or pay range.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude title words",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, e.g. \"senior\", \"intern\", \"sales\".",
            "items": {
              "type": "string"
            }
          },
          "keywordsInDescription": {
            "title": "Search keywords in the description too",
            "type": "boolean",
            "description": "Match the keywords in the job description as well as in the title (finds more jobs, for example every job that mentions \"Kubernetes\").",
            "default": false
          },
          "includeDescription": {
            "title": "Include the job description",
            "type": "boolean",
            "description": "Plain-text description and the short summary. Turn off for smaller rows.",
            "default": true
          },
          "includeHtmlDescription": {
            "title": "Include the HTML description",
            "type": "boolean",
            "description": "Adds the formatted (HTML) description as descriptionHtml.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new rows since the last run",
            "type": "boolean",
            "description": "Remember the rows already delivered to you (in a key-value store in your Apify account) and deliver only rows that appeared since the last run with the same state key. The first run delivers everything that matches; later runs cost only the new rows. Ideal for schedules.",
            "default": false
          },
          "stateName": {
            "title": "State name",
            "type": "string",
            "description": "Name of the memory used by \"Only new rows\". Use a different name for each schedule or search (for example `stockholm-python`) so they do not share one memory.",
            "default": "default"
          },
          "notifyUrl": {
            "title": "Notify this URL when the run ends",
            "type": "string",
            "description": "A webhook address that receives one JSON POST with the number of new rows and links to the dataset: a Slack or Discord incoming webhook, a Make, n8n or Zapier catch hook, or your own endpoint. The message is also in the `text` (Slack) and `content` (Discord) fields."
          },
          "notifyWhenEmpty": {
            "title": "Notify also when there are no new rows",
            "type": "boolean",
            "description": "By default the notification is sent only when at least one row was delivered.",
            "default": false
          },
          "requestIntervalMs": {
            "title": "Delay between API requests (ms)",
            "minimum": 500,
            "maximum": 10000,
            "type": "integer",
            "description": "Default 1000 ms (one request per second). Each request returns 20 jobs, so one day of the feed (about 6,700 jobs) takes about 6 minutes. Minimum 500.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}