{
  "openapi": "3.0.1",
  "info": {
    "title": "jobup.ch Scraper",
    "description": "[💰 $1.3 / 1K] Extract job listings from jobup.ch, Switzerland's #1 job board — titles, companies, salary clues, workload %, contract type, locations, and full descriptions. Filter by keyword, location, contract, and workload.",
    "version": "1.0",
    "x-build-id": "ojAiqUzwsS7Bkk5Ka"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~jobup-ch-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-jobup-ch-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/solidcode~jobup-ch-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-jobup-ch-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/solidcode~jobup-ch-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-jobup-ch-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": {
          "searchTerm": {
            "title": "Search Keywords",
            "type": "string",
            "description": "Job title, skill or keyword to search for, e.g. \"software engineer\", \"marketing\" or \"infirmier\". Leave empty to browse all jobs (optionally narrowed by the filters below). Ignored when Start URLs are provided."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, canton or region to search in, e.g. \"Zürich\", \"Genève\" or \"Lausanne\". Leave empty to search all of Switzerland. Ignored when Start URLs are provided."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Paste one or more jobup.ch URLs directly — search result pages or individual job postings. When provided, these override the Search Keywords and Location fields above.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Site Language",
            "enum": [
              "en",
              "de",
              "fr"
            ],
            "type": "string",
            "description": "Language for job titles and descriptions where jobup.ch provides translations. Most postings are in the language the employer wrote them.",
            "default": "en"
          },
          "employmentType": {
            "title": "Contract Type",
            "uniqueItems": true,
            "type": "array",
            "description": "Only collect jobs with these contract types. Leave empty to include every contract type.",
            "items": {
              "type": "string",
              "enum": [
                "permanent",
                "temporary",
                "internship",
                "freelance",
                "apprenticeship"
              ],
              "enumTitles": [
                "Permanent position",
                "Temporary / fixed-term",
                "Internship",
                "Freelance / contract",
                "Apprenticeship"
              ]
            },
            "default": []
          },
          "workloadMin": {
            "title": "Minimum Workload (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only collect jobs offering at least this workload percentage. For example, 80 keeps roles of 80% and up. Leave empty for no minimum."
          },
          "workloadMax": {
            "title": "Maximum Workload (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only collect jobs offering at most this workload percentage. For example, 60 keeps part-time roles up to 60%. Leave empty for no maximum."
          },
          "publishedSince": {
            "title": "Published Within",
            "enum": [
              "any",
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Only collect jobs published within this time window. Helps you focus on fresh openings.",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort Order",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Order in which jobup.ch returns results before the scraper collects them.",
            "default": "relevance"
          },
          "includeDescription": {
            "title": "Include Full Job Description",
            "type": "boolean",
            "description": "Fetch the complete job description, requirements and contact details from each posting's detail page. Turn off for a faster, lighter run that returns only the summary fields shown in search results.",
            "default": true
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of jobs to collect. Set to 0 to collect every matching job (a broad search collects up to about 100,000 jobs, after which the run stops automatically). You are charged per job returned.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}