{
  "openapi": "3.0.1",
  "info": {
    "title": "XING Jobs Scraper — Germany, Austria & Swiss Jobs | $0.60/1k",
    "description": "Scrape XING jobs in Germany, Austria and Switzerland by keyword, city or search URL. Company, location, remote, employment type, career level, salary (employer or XING estimate), date, full description. CSV, JSON, Excel.",
    "version": "0.1",
    "x-build-id": "XkcEdR4jI1GdpeqPG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/glasswing~xing-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-glasswing-xing-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/glasswing~xing-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-glasswing-xing-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/glasswing~xing-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-glasswing-xing-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": {
          "startUrls": {
            "title": "XING search or job URLs",
            "type": "array",
            "description": "xing.com URLs, one per line. Accepts job search pages (https://www.xing.com/jobs/search?keywords=Pflegefachkraft&location=Hamburg) with every filter they carry (radius, employment type, career level, workplace, salary, date posted), and single job pages (https://www.xing.com/jobs/berlin-python-developer-156675213) or a bare job id. Each search returns up to about 470 jobs, which is as far as XING pages.",
            "default": [
              "https://www.xing.com/jobs/search?keywords=Softwareentwickler&location=Berlin"
            ],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Search terms, one per line, as you would type them into XING's job search, in German or English: \"Softwareentwickler\", \"Pflegefachkraft\", \"Data Scientist\", \"Bürokaufmann\". Each keyword is searched in every location below; jobs found by several searches are returned once.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities or regions, one per line, e.g. \"Berlin\", \"München\", \"Wien\", \"Zürich\", \"Hamburg\". Leave empty to search all of XING (mostly Germany, Austria and Switzerland).",
            "items": {
              "type": "string"
            }
          },
          "radius": {
            "title": "Radius (km)",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Also include jobs this many kilometres around each location, e.g. 20 or 50. Leave empty for XING's default area."
          },
          "workplace": {
            "title": "Workplace",
            "type": "array",
            "description": "Only jobs with these workplace options. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid (partly remote)",
                "On-site"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Shortcut for Workplace = Remote: keep only postings XING lists as fully remote."
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Only these employment types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "PART_TIME",
                "CONTRACTOR",
                "INTERN",
                "SEASONAL",
                "TEMPORARY",
                "VOLUNTARY"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Freelance / contractor",
                "Student / intern",
                "Seasonal",
                "Temporary",
                "Voluntary"
              ]
            }
          },
          "careerLevels": {
            "title": "Career levels",
            "type": "array",
            "description": "Only these career levels. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "STUDENT_INTERN",
                "ENTRY_LEVEL",
                "PROFESSIONAL",
                "MANAGER",
                "DIRECTOR",
                "EXECUTIVE"
              ],
              "enumTitles": [
                "Student / intern",
                "Entry level",
                "Professional / experienced",
                "Manager",
                "Director",
                "Executive (CEO, managing director)"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Only jobs published recently. XING offers three buckets: 1 (last 24 hours), 7 (last week) and 30 (last month); other values round up to the next bucket. Leave empty for any date."
          },
          "salaryMin": {
            "title": "Minimum annual salary (EUR)",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "XING's salary filter: only jobs whose salary (the employer's figure or XING's estimate) reaches this annual gross amount, e.g. 60000."
          },
          "salaryMax": {
            "title": "Maximum annual salary (EUR)",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "Upper end of XING's salary filter (annual gross), e.g. 90000. Leave empty for no upper limit."
          },
          "employerSalaryOnly": {
            "title": "Only jobs where the employer states the salary",
            "type": "boolean",
            "description": "Keep only postings whose salary comes from the employer (`salarySource` = employer). Postings with only XING's salary estimate or no salary are skipped."
          },
          "fetchDetails": {
            "title": "Include full job details",
            "type": "boolean",
            "description": "Adds the full job description (`descriptionText`). XING returns it inside the same search call, so this costs no extra requests; turn it off only for smaller rows.",
            "default": true
          },
          "language": {
            "title": "Label language",
            "enum": [
              "en",
              "de"
            ],
            "type": "string",
            "description": "Language of XING's labels such as employment type, career level, industry and country names. Job texts stay in the language the employer wrote them in.",
            "default": "en"
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many rows in total. Each saved job (status ok) is one billable result. One request returns 20 jobs, so large runs stay fast.",
            "default": 20
          },
          "maxItemsPerSearch": {
            "title": "Maximum results per search",
            "minimum": 1,
            "type": "integer",
            "description": "Cap for each search URL or keyword x location combination, e.g. 100, so one broad search cannot use the whole budget. Leave empty for no per-search cap."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. The Actor calls XING's public job search over plain HTTP and works from Apify's datacenter IPs without a proxy. Enable Apify Proxy (datacenter) only if you see repeated request failures; residential proxies are not needed.",
            "default": {
              "useApifyProxy": false
            }
          },
          "query": {
            "title": "Keyword (alias)",
            "type": "string",
            "description": "Hidden single-keyword alias of `keywords` for API and agent callers, e.g. \"Data Scientist\"."
          },
          "location": {
            "title": "Location (alias)",
            "type": "string",
            "description": "Hidden single-location alias of `locations` for API and agent callers, e.g. \"Berlin\"."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}