NAV
shell python

Introduction

This documentation will take you through XingZap's search API.

All you need to get started is a search URL or the field map via the /fields route given in this doc.

You can get request an access key by filling this form !

Xing and limitations

XingZap simply automates what you would be able to do on Xing.

According to Xing's Terms of Service, Xing only returns 300 results per search at maximum. See more details here.

Here's an article posted on our blog to help you overcome this limit.

Moreover, XingZap mines Xing everytime a search is made, no data is kept in databases to respect GDPR regulation. For this reason, a search can take up to 30s.

Rate limit

Authentication

All the requests should be authenticated with the X-Api-Key header:

import requests

response = requests.post("https://prod.api.xingzap.com/v1/scrap",
json={
    "keywords":"Head of sales",
    "languageFilter":["German"]
  },
  headers= {
    'X-Api-Key':'XINGZAP_API_KEY'
    }
    )
# With shell, you can just pass the correct header with each request
curl --location --request POST 'https://prod.api.xingzap.com/v1/scrap' \
  -H 'X-Api-Key: XINGZAP_API_KEY'
  --data-raw '{
    "keywords":"Head of sales",
    "languageFilter":["German"]
  }'

Make sure to replace XINGZAP_API_KEY with your API key.

You can get a test key by filling our access request form..

XingZap expects for the API key to be included in all API requests to the server in a header that looks like the following:

X-Api-Key: XINGZAP_API_KEY

Scrape

Get scrapable fields

Get all the available searchable Xing fields to use on /scrap

To use a given filter or field, pass the search_parameter value as parameter in your /scrap request.

The type of each field indicate whether you should pass a string or an array when using /scrap.

When using arrays, make sure to strictly use values present in the respective possible_values.

The fields are scraped regularly to make sure they're up to date.

HTTP Request

GET https://prod.api.xingzap.com/v1/scrap/fields

import requests

response = requests.get("https://prod.api.xingzap.com/v1/scrap/fields",
  headers= {
    'X-Api-Key':'XINGZAP_API_KEY'
    }
  )
curl --location --request GET "https://prod.api.xingzap.com/v1/scrap/fields" \
  -H "X-Api-Key: XINGZAP_API_KEY"

The above command returns the current version of the fields, their usable search_parameter names and their values:

[
  {
    "field_name": "Search",
    "search_parameter": "keywords",
    "type": "text"
  },
  {
    "field_name": "Name",
    "search_parameter": "name",
    "type": "text"
  },
  {
    "field_name": "Company",
    "search_parameter": "company",
    "type": "text"
  },
  {
    "field_name": "Position",
    "search_parameter": "title",
    "type": "text"
  },
  {
    "field_name": "Company (previous)",
    "search_parameter": "previousCompany",
    "type": "text"
  },
  {
    "field_name": "Position (previous)",
    "search_parameter": "previousTitle",
    "type": "text"
  },
  {
    "field_name": "Skills",
    "search_parameter": "haves",
    "type": "text"
  },
  {
    "field_name": "City",
    "search_parameter": "city",
    "type": "text"
  },
  {
    "field_name": "University",
    "search_parameter": "education",
    "type": "text"
  },
  {
    "field_name": "Discipline",
    "search_parameter": "disciplineFilter",
    "type": "array",
    "possible_values": [
      "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"
    ]
  },
  {
    "field_name": "Industry",
    "search_parameter": "industryFilter",
    "type": "array",
    "possible_values": [
      "Architecture and planning",
      "Automotive and vehicle manufacturing",
      "Banking and financial services",
      "Consulting",
      "Energy, water and environment",
      "Education and science",
      "Health and social",
      "Real Estate",
      "Industry and mechanical engineering",
      "Internet and IT",
      "Consumer goods and trade",
      "Art, culture and sport",
      "Marketing, PR and design",
      "Media and publishing",
      "Civil service, associations and institutions",
      "HR services",
      "Medical services",
      "Telecommunication",
      "Tourism and food service",
      "Transport and logistics",
      "Insurance",
      "Auditing, tax and law",
      "Other industries"
    ]
  },
  {
    "field_name": "Career level",
    "search_parameter": "levelFilter",
    "type": "array",
    "possible_values": [
      "Professional/Experienced",
      "Manager",
      "Executive",
      "Senior",
      "Entry",
      "Student/Intern"
    ]
  },
  {
    "field_name": "Employment type",
    "search_parameter": "currentStatusCodeFilter",
    "type": "array",
    "possible_values": [
      "Full time employee",
      "Self employed",
      "Owner",
      "Part time employee",
      "Partner",
      "Intern",
      "Volunteer",
      "Board member",
      "Recruiter",
      "Civil servant"
    ]
  },
  {
    "field_name": "Language",
    "search_parameter": "languageFilter",
    "type": "array",
    "possible_values": [
      "English",
      "German",
      "French",
      "Spanish",
      "Italian",
      "Russian",
      "Turkish",
      "Chinese",
      "Arabic",
      "Dutch"
    ]
  },
  {
    "field_name": "Country",
    "search_parameter": "countryFilter",
    "type": "array",
    "possible_values": [
      "Austria",
      "China",
      "Germany",
      "India",
      "Italy",
      "Spain",
      "Switzerland",
      "Turkey",
      "United Kingdom",
      "United States of America"
    ]
  }
]

Get Xing leads

Search for highly targeted Xing leads in one call.

HTTP Request

POST https://prod.api.xingzap.com/v1/scrap

A request using only keywords

import requests

response = requests.post("https://prod.api.xingzap.com/v1/scrap",
json={
    "keywords":"Head of sales",
    "languageFilter":["German"],
    "raw":True
  },
  headers= {
    'X-Api-Key':'XINGZAP_API_KEY'
    }
    )
curl --location --request POST 'https://prod.api.xingzap.com/v1/scrap' \
  -H 'X-Api-Key: XINGZAP_API_KEY'
  --data-raw '{
    "keywords":"Head of sales",
    "languageFilter":["German"],
    "raw":true
  }'

The first 2 results are as follow:

[
  {
    "cursor": "TWVtYmVyc1NlYXJjaENvbm5lY3Rpb24tLS0w",
    "node": {
      "xingId": {
        "id": "35511063.e8307c",
        "displayName": "Harish Govindarajalu",
        "displayFlag": "BASIC",
        "location": {
          "displayLocation": "**Paris**, France"
        },
        "profileOccupation": {
          "occupationOrg": "Apar Technologies"
        },
        "occupations": [
          {
            "category": "WORK_EXPERIENCE",
            "summary": "Employee, **Strategic Business Analyst**, Apar Technologies",
            "links": null
          }
        ],
        "pageName": "Harish_Govindarajalu2",
        "profileImage": [
          {
            "url": "https://profile-images.xing.com/images/086571beee8ceaa22208b3f08b08e92a-5/harish-govindarajalu.64x64.jpg"
          },
          {
            "url": "https://profile-images.xing.com/images/086571beee8ceaa22208b3f08b08e92a-5/harish-govindarajalu.96x96.jpg"
          }
        ]
      },
      "highlight": {
        "interests": null,
        "wants": null,
        "currentTitle": null,
        "previousTitle": null,
        "haves": null,
        "currentCompany": null,
        "education": null,
        "organizations": null,
        "qualifications": null,
        "awards": null,
        "province": null,
        "city": null,
        "country": null,
        "zipCode": null,
        "currentNotes": null,
        "previousCompany": null,
        "portfolioTilesTitle": null,
        "portfolioTilesPlainContent": null,
        "currentIndustries": null,
        "previousIndustries": null
      },
      "trackingToken": "a9a2a1f815be11ec8d2e12d592d816eb.0",
      "position": 0,
      "contains": null,
      "missing": null,
      "profileSkills": {
        "topSkills": []
      },
      "sharedContacts": {
        "total": 0
      },
      "contactsCount": {
        "count": 2
      },
      "networkRelationship": {
        "permissions": [
          "DELETE_CONTACT"
        ]
      },
      "contactDistance": {
        "distance": 1
      }
    }
  },
  {
    "cursor": "TWVtYmVyc1NlYXJjaENvbm5lY3Rpb24tLS0x",
    "node": {
      "xingId": {
        "id": "34834626.d2ff1d",
        "displayName": "Dvir Lifshits",
        "displayFlag": "BASIC",
        "location": {
          "displayLocation": "**Berlin**, Germany"
        },
        "profileOccupation": {
          "occupationOrg": "Dvir Lifshits Online Marketing"
        },
        "occupations": [
          {
            "category": "WORK_EXPERIENCE",
            "summary": "Owner, **Online Marketing & Growth Consultant - Hands-On Expert**, Dvir Lifshits Online Marketing",
            "links": null
          },
          {
            "category": "EDUCATION",
            "summary": "Degree: **MBA**, Hebrew University of Jerusalem",
            "links": null
          }
        ],
        "pageName": "Dvir_Lifshits",
        "profileImage": [
          {
            "url": "https://profile-images.xing.com/images/dcf3abfaa458cf2e38b2007e206c1e8a-1/dvir-lifshits.64x64.jpg"
          },
          {
            "url": "https://profile-images.xing.com/images/dcf3abfaa458cf2e38b2007e206c1e8a-1/dvir-lifshits.96x96.jpg"
          }
        ]
      },
      "highlight": {
        "interests": null,
        "wants": null,
        "currentTitle": [
          "Online Marketing & **Growth** Consultant - Hands-On Expert"
        ],
        "previousTitle": [
          "Acquisition/**Growth** Team Leader (Social)"
        ],
        "haves": null,
        "currentCompany": null,
        "education": null,
        "organizations": null,
        "qualifications": null,
        "awards": null,
        "province": null,
        "city": null,
        "country": null,
        "zipCode": null,
        "currentNotes": null,
        "previousCompany": null,
        "portfolioTilesTitle": null,
        "portfolioTilesPlainContent": null,
        "currentIndustries": null,
        "previousIndustries": null
      },
      "trackingToken": "a9a2a1f815be11ec8d2e12d592d816eb.1",
      "position": 1,
      "contains": null,
      "missing": null,
      "profileSkills": {
        "topSkills": []
      },
      "sharedContacts": {
        "total": 1
      },
      "contactsCount": {
        "count": 333
      },
      "networkRelationship": {
        "permissions": [
          "DELETE_CONTACT"
        ]
      },
      "contactDistance": {
        "distance": 1
      }
    }
  }
]

If you don't use the raw parameter, the last results look like this:

[
  {
    "firstName": "Harish",
    "lastName": "Govindarajalu",
    "fullName": "Harish Govindarajalu",
    "title": "Strategic Business Analyst",
    "location":"Berlin, Germany",
    "previousTitle": "",
    "company": "Apar Technologies",
    "xingId": "35511063.e8307c",
    "pageName": "Harish_Govindarajalu2"
  },
  {
    "firstName": "Dvir",
    "lastName": "Lifshits",
    "fullName": "Dvir Lifshits",
    "title": "Online Marketing & Growth Consultant - Hands-On Expert",
    "location":"Berlin, Germany",
    "previousTitle": "Acquisition/Growth Team Leader (Social)",
    "company": "Dvir Lifshits Online Marketing",
    "xingId": "34834626.d2ff1d",
    "pageName": "Dvir_Lifshits"
  }
]

A request using a searchUrl looks like this:

import requests

response = requests.post("https://prod.api.xingzap.com/v1/scrap",
json={
    "searchUrl":"https://www.xing.com/search/members?keywords=anas%20el%20mhamdi"
  },
  headers= {
    'X-Api-Key':'XINGZAP_API_KEY'
    }
    )
curl --location --request POST 'https://prod.api.xingzap.com/v1/scrap' \
  -H 'X-Api-Key: XINGZAP_API_KEY'
  --data-raw '{
    "searchUrl":"https://www.xing.com/search/members?keywords=anas%20el%20mhamdi"
  }'
Parameter Required Default Description
keywords One of keywords or searchUrl Keywords to search for leads in Xing
searchUrl One of keywords or searchUrl Required if no other parameters are used. The search URL must contain the keywords query parameter.
raw No false Set to true to get raw scraped data from Xing.
any scrapable field No Any search_parameter from the /scrap/fields route

Usage monitoring

Fetches your remaining requests for the month and the date your subscription was first created.

HTTP Request

GET https://prod.api.xingzap.com/v1/billing

import requests

response = requests.get("https://prod.api.xingzap.com/v1/scrap/fields",
  headers= {
    'X-Api-Key':'XINGZAP_API_KEY'
    }
  )
curl --location --request GET "https://prod.api.xingzap.com/v1/scrap/fields" \
  -H "X-Api-Key: XINGZAP_API_KEY"

Your usage is returned like this:

{
  "Remaining requests this month": 487,
  "Invoicing start date": "2021-09-13"
}

Errors

The XingZap API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
403 Forbidden -- The kitten requested is hidden for administrators only.
429 Too Many Requests -- You're exceeding the rate limit
500 Internal Server Error -- We had a problem with our server. Please contact us !