{
  "openapi": "3.0.1",
  "info": {
    "title": "XING Jobs Scraper - DACH Job Ads, Salaries & Hiring API",
    "description": "Use this to get job ads from XING (Germany, Austria, Switzerland). Input: keywords, cities, filters or XING URLs. One result = one job: title, company, location, salary, employment type, career level, remote, date, URL; optional full description. Past the 1,000 cap. $0.60 per 1,000.",
    "version": "1.0",
    "x-build-id": "eXU2NEoR7y5NVzmyH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rel8ble~xing-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rel8ble-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/rel8ble~xing-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rel8ble-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/rel8ble~xing-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rel8ble-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Optional. Job keywords as typed into the XING search box, one per line, in German or English: \"software engineer\", \"Pflegefachkraft\", \"Vertrieb\", \"SAP\". A skill, job title or company name all work; XING matches by meaning, so close variants are included. Each keyword is one search and returns up to maxItems jobs. Leave empty to list all jobs matching the locations and filters below. Give at least one of searchQueries, locations, a filter or startUrls.",
            "items": {
              "type": "string"
            }
          },
          "strictKeywordMatch": {
            "title": "Exact keyword matches only",
            "type": "boolean",
            "description": "Optional boolean, default false. XING's search matches by meaning, so \"Controller\" also returns related finance and consulting roles (about 4 in 10 results in testing). true = keep only jobs whose title or XING keywords contain every word of the search keyword; the others are skipped and not charged (they still take requests). Has no effect on searches without keywords.",
            "default": false
          },
          "locations": {
            "title": "Cities (Germany, Austria, Switzerland)",
            "type": "array",
            "description": "Optional. Cities or towns to search around, one per line: \"Berlin\", \"München\", \"Hamburg\", \"Wien\", \"Zürich\". Each one is matched with XING's own city lookup (the first match is used and named in the log). Every keyword is searched in every city (2 keywords x 3 cities = 6 searches). Empty = all of XING. A place XING does not recognise returns 0 jobs and is named in the run summary (it is not silently widened). For a whole country use countries instead.",
            "items": {
              "type": "string"
            }
          },
          "radius": {
            "title": "Radius around each city (km)",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Optional. Distance in kilometres around each city in locations, integer 0-200. Default 20 (what XING's own city pages use). 0 = only jobs in the city itself. Ignored when locations is empty.",
            "default": 20
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Optional. Keep only jobs located in these countries: any of \"DE\", \"AT\", \"CH\", \"LU\". XING's search has no public country filter, so this is applied to each job's country after the search (skipped jobs are not charged, but they still take requests). For one country's jobs, combining it with a few cities is faster. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "DE",
                "AT",
                "CH",
                "LU"
              ],
              "enumTitles": [
                "Germany",
                "Austria",
                "Switzerland",
                "Luxembourg"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Optional. Only jobs published or refreshed in the last N days, integer >= 0, applied by XING itself (any number works). 0 (default) = any date. Use 1 on a daily schedule to collect only new jobs.",
            "default": 0
          },
          "workplaceTypes": {
            "title": "Remote / hybrid / on-site",
            "type": "array",
            "description": "Optional. Keep only these workplace settings: any of \"remote\" (fully remote), \"hybrid\" (partly remote), \"onsite\". Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Fully remote",
                "Hybrid (partly remote)",
                "On-site"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Optional. Keep only these employment types: any of \"fulltime\", \"parttime\", \"freelance\" (self-employed / contractor), \"student\" (working student, internship), \"seasonal\", \"temporary\", \"volunteer\". Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "freelance",
                "student",
                "seasonal",
                "temporary",
                "volunteer"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Self-employed",
                "Student",
                "Seasonal",
                "Temp",
                "Volunteer"
              ]
            }
          },
          "careerLevels": {
            "title": "Career levels",
            "type": "array",
            "description": "Optional. Keep only these career levels: any of \"student\" (student / intern), \"entry\" (entry level), \"professional\" (experienced), \"manager\", \"director\" (VP, head of), \"executive\" (CEO, managing director). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "student",
                "entry",
                "professional",
                "manager",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Student/Intern",
                "Entry Level",
                "Professional/Experienced",
                "Manager/Supervisor",
                "Executive (VP, SVP, etc.)",
                "Senior Executive (CEO, CFO, President)"
              ]
            }
          },
          "disciplines": {
            "title": "Job fields (disciplines)",
            "type": "array",
            "description": "Optional. Keep only jobs in these job fields (XING's 22 disciplines): \"analysis-statistics\", \"administration\", \"consulting\", \"customer-service\", \"purchasing-logistics\", \"finance-accounting\", \"research-teaching\", \"health-social\", \"design-architecture\", \"engineering\", \"it-software\", \"management\", \"marketing\", \"hr\", \"pr-journalism\", \"production-trades\", \"product-management\", \"project-management\", \"quality-process\", \"legal\", \"sales\", \"other\". Use [\"sales\"] with no keyword to list every sales job. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "analysis-statistics",
                "administration",
                "consulting",
                "customer-service",
                "purchasing-logistics",
                "finance-accounting",
                "research-teaching",
                "health-social",
                "design-architecture",
                "engineering",
                "it-software",
                "management",
                "marketing",
                "hr",
                "pr-journalism",
                "production-trades",
                "product-management",
                "project-management",
                "quality-process",
                "legal",
                "sales",
                "other"
              ],
              "enumTitles": [
                "Analysis and statistics",
                "Administration",
                "Consulting",
                "Customer service",
                "Purchasing, materials management & logistics",
                "Finance, accounting & controlling",
                "Teaching, R&D",
                "Health, medical and social",
                "Graphic design and architecture",
                "Engineering and technical",
                "IT and software development",
                "Management and corporate development",
                "Marketing and advertising",
                "HR",
                "PR and journalism",
                "Production and manufacturing",
                "Product management",
                "Project management",
                "Process planning & QA",
                "Legal",
                "Sales and commerce",
                "Other"
              ]
            }
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Optional. Keep only jobs at employers in these industries (XING's 23 industry groups, each with its sub-industries): \"architecture-construction\", \"consumer-goods-retail\", \"automotive\", \"industry-engineering\", \"pharma-medtech\", \"energy-environment\", \"transport-logistics\", \"tourism-hospitality\", \"internet-it\", \"telecommunications\", \"media-publishing\", \"banking-finance\", \"insurance\", \"real-estate\", \"audit-tax-law\", \"consulting\", \"marketing-pr-design\", \"hr-services\", \"public-sector\", \"education-science\", \"health-social\", \"art-culture-sport\", \"other\". Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "architecture-construction",
                "consumer-goods-retail",
                "automotive",
                "industry-engineering",
                "pharma-medtech",
                "energy-environment",
                "transport-logistics",
                "tourism-hospitality",
                "internet-it",
                "telecommunications",
                "media-publishing",
                "banking-finance",
                "insurance",
                "real-estate",
                "audit-tax-law",
                "consulting",
                "marketing-pr-design",
                "hr-services",
                "public-sector",
                "education-science",
                "health-social",
                "art-culture-sport",
                "other"
              ],
              "enumTitles": [
                "Architecture and planning",
                "Consumer goods and trade",
                "Automotive and vehicle manufacturing",
                "Industry and mechanical engineering",
                "Pharmaceutical and medical technology",
                "Energy, water and environment",
                "Transport and logistics",
                "Tourism and food service",
                "Internet and IT",
                "Telecommunications",
                "Media and publishing",
                "Banking and financial services",
                "Insurance",
                "Real estate",
                "Auditing, tax and law",
                "Consulting",
                "Marketing, PR and design",
                "HR services",
                "Civil service, associations and institutions",
                "Education and science",
                "Health and social",
                "Art, culture and sport",
                "Other industries"
              ]
            }
          },
          "salaryMin": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only jobs whose yearly salary reaches at least this amount (in the job's currency, usually EUR), integer >= 0. XING applies it to the salary in the ad or, when the ad gives none, to XING's own estimate. 0 (default) = no salary filter.",
            "default": 0
          },
          "salaryMax": {
            "title": "Maximum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Upper end of the yearly salary filter, integer >= 0. 0 (default) = no upper limit. Only used together with salaryMin or on its own as a cap.",
            "default": 0
          },
          "language": {
            "title": "Label language",
            "enum": [
              "en",
              "de"
            ],
            "type": "string",
            "description": "Optional. Language of the labels XING returns (employment type, career level, job field, industry, country): \"en\" (default) or \"de\". The ad text itself stays in whatever language the employer wrote it (see adLanguage).",
            "default": "en"
          },
          "maxItems": {
            "title": "Max jobs per search",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Maximum jobs saved per search (one keyword in one city), integer >= 0. Default 100; 0 = every job the search has. You pay per job saved ($0.0006 each), so 100 jobs = $0.06. Use 10-20 for a quick answer.",
            "default": 100
          },
          "deepSearch": {
            "title": "Deep search (go past the 1,000-job limit)",
            "type": "boolean",
            "description": "Optional boolean, default true. XING returns at most 1,000 jobs for any one search, and its paging gets unreliable on big searches. With deep search on, a search with more than 500 jobs is split automatically by job field, career level, employment type and remote option, and the results are merged without duplicates. Only kicks in when maxItems is above 500 (or 0). It costs extra requests, not extra money per job.",
            "default": true
          },
          "includeDetails": {
            "title": "Include full description",
            "type": "boolean",
            "description": "Optional boolean. false (default) = listing data: title, company, location, salary, employment type, career level, job field, industry, remote option, dates, apply link, keywords and highlights. true = also the full job description (plain text), the AI summary (introduction and qualifications), the company description, website and kununu link. Comes in the same request (no extra requests), same price per result; pages are about 3x bigger.",
            "default": false
          },
          "includeDescriptionHtml": {
            "title": "Also keep the description as HTML",
            "type": "boolean",
            "description": "Optional boolean. Only used with includeDetails or job URLs. true = add descriptionHtml (the original formatting) next to the plain-text description. Default false.",
            "default": false
          },
          "startUrls": {
            "title": "XING URLs",
            "type": "array",
            "description": "Optional. URLs copied from www.xing.com, one per line. A search URL (\"https://www.xing.com/jobs/search?keywords=python&location=Berlin&employmentType=FULL_TIME.ef2fe9\") is scraped with the filters in the URL (the filter fields above are not applied to it). A jobs landing page (\"https://www.xing.com/jobs/t-python\", \"https://www.xing.com/jobs/l-berlin\") runs the search that page shows. A job URL (\"https://www.xing.com/jobs/berlin-senior-software-engineer-157369813\") or a bare job id is looked up directly and always includes the full description. Expired jobs are listed in the run summary and are not charged.",
            "items": {
              "type": "string"
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Optional, advanced. Number of parallel requests, integer 1-30. Default 10. Leave unset.",
            "default": 10
          },
          "maxRequestRetries": {
            "title": "Max retries per request",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Optional, advanced. Retries per failed or blocked request, integer 0-20; each retry uses a new session and IP. Default 8. Leave unset.",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional, advanced. Apify Proxy settings object. Default {\"useApifyProxy\": true} (datacenter proxies are enough). Leave unset.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}