> ## Documentation Index
> Fetch the complete documentation index at: https://socialquery.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Xing Job Search

> Native public Xing semantic job search with source-corroborated filters. Twenty results per page, cursor continuation for up to fifty pages. Salary filters use the native EUR 200,000 upper bound. Search is semantic, not strict keyword matching.

Search Xing's public job index with `query` and optional `location`, both 1–200 characters. Location names in German are recommended. The source uses **semantic ranking**: a listing need not contain the literal keyword, and an unusual query does not necessarily produce no matches.

Optional native filters:

* `date_posted`: `day`, `week`, or `month`, using Xing's own freshness filter.
* `employment_types`: semicolon-separated `contractor`, `fulltime`, `intern`, `parttime`, `seasonal`, `temporary`, `voluntary`.
* `career_levels`: semicolon-separated `student`, `entry`, `professional`, `manager`, `executive`, `seniorExecutive`.
* `remote_options`: semicolon-separated `remote`, `hybrid`, `onSite`.
* `minimum_salary`: integer 0–200,000 EUR/year. A positive floor uses Xing's native **\[floor, 200000]** range. This excludes ranges wholly above that upper bound and is not an unbounded minimum-income filter. Zero leaves the salary filter off. Displayed salaries may be estimates.

Each call reads one native page, normally 20 listings. Pass `data.next_cursor` as `cursor` to continue. The one-hour cursor binds all filters and the preceding page's IDs; changed filters, source offset drift or repeated prior rows fail rather than silently duplicate data. At most 50 pages are available. This is a changing search index, not a frozen snapshot.

`total` is populated only when Xing labels it exact. A native lower bound is returned as `total_lower_bound` with `total_relation: "at_least"` and `total: null`. An empty native result is valid. No results are fabricated from a challenge, login page or provider failure.

Items use base64 job slugs as `id`; pass these unchanged to `/v1/jobs/xing`. Native IDs are preserved in `ext.native_id`. Search rows omit full descriptions and initial publication time. `ext.refreshed_at` is explicitly a refresh time, not the original listing time. Available company, salary and application fields are preserved; private member interactions, tracking IDs, guessed verification and applicant counts are omitted. External application links are returned without following them.

Public source only: no member account, cookie, new API key or paid provider. The adapter checks query metadata, pagination and rendered title/link identities. It has a 22-second deadline, 2 MiB HTML limit and 20 shared reads/minute. Redirects are rejected.

A fresh nonempty page costs **10 credits**; empty results, failures, cache hits and identical successful replays cost zero. Use `X-Max-Credits: 10`.


## OpenAPI

````yaml GET /jobs/xing/search
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /jobs/xing/search:
    get:
      tags:
        - Jobs
      summary: Jobs Xing Search
      description: >-
        Native public Xing semantic job search with source-corroborated filters.
        Twenty results per page, cursor continuation for up to fifty pages.
        Salary filters use the native EUR 200,000 upper bound. Search is
        semantic, not strict keyword matching.
      operationId: get_jobs_xing_search
      parameters:
        - name: query
          in: query
          required: false
          example: software engineer
          schema:
            type: string
            minLength: 1
            maxLength: 200
        - name: location
          in: query
          required: false
          example: Berlin
          schema:
            type: string
            minLength: 1
            maxLength: 200
        - name: date_posted
          in: query
          required: false
          example: week
          schema:
            type: string
            enum:
              - month
              - week
              - day
        - name: employment_types
          in: query
          required: false
          schema:
            type: string
        - name: career_levels
          in: query
          required: false
          schema:
            type: string
        - name: remote_options
          in: query
          required: false
          schema:
            type: string
        - name: minimum_salary
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 200000
          description: >-
            Integer floor 0–200,000 EUR/year. Native filtering uses [floor,
            200000]; this is not an unbounded salary filter. Displayed source
            ranges can be estimated.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            One-hour opaque cursor bound to query and filters. Use alone to
            continue; changed filters or repeated previous-page rows fail
            closed. At most 50 pages.
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            Native public Xing semantic job search with source-corroborated
            filters. Twenty results per page, cursor continuation for up to
            fifty pages. Salary filters use the native EUR 200,000 upper bound.
            Search is semantic, not strict keyword matching.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            maxItems: 20
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                title:
                                  type: string
                                url:
                                  type: string
                                company:
                                  type: object
                                  properties:
                                    id:
                                      type:
                                        - string
                                        - 'null'
                                    name:
                                      type:
                                        - string
                                        - 'null'
                                    url:
                                      type:
                                        - string
                                        - 'null'
                                    verified:
                                      type: 'null'
                                location:
                                  type:
                                    - string
                                    - 'null'
                                listed_at:
                                  type:
                                    - string
                                    - 'null'
                                easy_apply:
                                  type:
                                    - boolean
                                    - 'null'
                                remote:
                                  type:
                                    - string
                                    - 'null'
                                employment_type:
                                  type:
                                    - string
                                    - 'null'
                                experience_level:
                                  type:
                                    - string
                                    - 'null'
                                description:
                                  type:
                                    - string
                                    - 'null'
                                apply_url:
                                  type: string
                                ext:
                                  type: object
                                  properties:
                                    board:
                                      type: string
                                      const: xing
                                    native_id:
                                      type: string
                                    refreshed_at:
                                      type:
                                        - string
                                        - 'null'
                                    active_until:
                                      type:
                                        - string
                                        - 'null'
                                    salary_min:
                                      type:
                                        - number
                                        - 'null'
                                      minimum: 0
                                    salary_max:
                                      type:
                                        - number
                                        - 'null'
                                      minimum: 0
                                    salary_currency:
                                      type:
                                        - string
                                        - 'null'
                                    salary_basis:
                                      type: string
                                    country_code:
                                      type:
                                        - string
                                        - 'null'
                                    industries:
                                      type:
                                        - string
                                        - 'null'
                                    job_function:
                                      type:
                                        - string
                                        - 'null'
                                    is_promote:
                                      type:
                                        - boolean
                                        - 'null'
                                    applicant_count:
                                      type: 'null'
                                    accepting_applications:
                                      type: 'null'
                              required:
                                - id
                                - title
                                - url
                                - company
                                - location
                                - listed_at
                                - easy_apply
                                - remote
                                - employment_type
                                - experience_level
                                - description
                                - apply_url
                                - ext
                          returned_count:
                            type: integer
                            minimum: 0
                          total:
                            type:
                              - integer
                              - 'null'
                            minimum: 0
                          total_relation:
                            type: string
                            enum:
                              - exact
                              - at_least
                          total_lower_bound:
                            type:
                              - integer
                              - 'null'
                            minimum: 0
                          next_cursor:
                            type:
                              - string
                              - 'null'
                          page:
                            type: integer
                            minimum: 1
                            maximum: 50
                          source:
                            type: string
                          coverage_note:
                            type: string
                        required:
                          - items
                          - returned_count
                          - total
                          - total_relation
                          - total_lower_bound
                          - next_cursor
                          - page
                          - source
                          - coverage_note
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.