Xing Profile API
Pricing
from $4.29 / 1,000 profile returneds
Xing Profile API
Xing member profiles as clean, structured JSON for DACH recruiting and market research. Send profile URLs and get name, job title, city, employment history, education, skills in German and English, languages, groups, and interests. Pay per profile, MCP-ready for Claude and AI agents.
Pricing
from $4.29 / 1,000 profile returneds
Rating
0.0
(0)
Developer
John
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
5
Monthly active users
4 hours ago
Last modified
Categories
Share
Xing member profiles as clean, structured JSON. Send profile URLs and get back name, job title, city, full employment history, education, skills, languages, groups, and interests. Think of it as a Xing API for people data: hand it a Xing profile URL, get one row per person.
Xing is the professional network of the German-speaking world, and it holds people who are not on other networks. For DACH recruiting and market research that makes it a distinct source rather than a substitute.
What this actor returns
- Identity: full name, given and family name, academic or honorific title, profile photo
- Current role: job title, city, country, membership level
- Employment history: every listed role with company, title, and dates
- Education: institution, qualification, and dates
- Skills and languages: listed skills in German and English, and spoken languages
- Community: professional groups and interests
Every profile row also carries a one-line plain-language summary, so an AI agent can read a record without post-processing.
Use cases
- Source candidates in the DACH region. Pull profiles you have shortlisted and get structured role history and skills for each. This is enrichment for a Kandidatensuche you have already started, not the search itself.
- Enrich a German-market candidate list. Attach current title, city, and skills to people you already track.
- Map a company's team. Collect profiles that list a given employer and read the roles and tenures.
- Research a market's talent pool. Skills and languages across a set of profiles show what a regional market actually has.
- Verify a role history. Employment entries carry company, title, and dates in a consistent shape.
Input parameters
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
profileUrls | array of strings | Required | none | Member profile URLs. A bare profile handle also works as shorthand. Up to 1000 per run. | ["https://www.xing.com/profile/Jane_Doe", "Max_Mustermann"] |
{"profileUrls": ["https://www.xing.com/profile/Jane_Doe","Max_Mustermann"]}
Output fields: what each Xing profile row contains
One dataset row per input URL. result_type tells you which kind of row you are looking at: profile for a collected member, error for an input that returned nothing. Fields a member has not published are left out of the row rather than returned empty.
| Field | Type | Description |
|---|---|---|
result_type | string | profile or error. |
profileId | string | Stable identifier for the member on the source network. |
fullName | string | Full name as published. |
givenName | string | First name. |
familyName | string | Surname. |
honorificPrefix | string | Academic or honorific title, common on German profiles. |
profileUrl | string | The profile page this record was collected from. |
jobTitle | string | Current job title. |
city | string | City the member lists. |
countryCode | string | Country the member lists. |
membership | string | Membership level on the network. |
imageUrl | string | Profile photo URL. |
skills | array | Listed professional skills, in German and English as the member entered them. |
languages | array | Languages the member lists. |
interests | array | Personal and professional interests. |
groups | array | Professional groups the member belongs to. |
experience | array | Employment history: company, title, and dates. |
education | array | Education history: institution, qualification, and dates. |
similarProfiles | array | Profiles the source considers comparable. |
summary | string | One-line plain-language summary of the record. |
fetched_at | string | UTC timestamp for when the row was collected. |
sourceUrl | string | Error rows only: the input URL the error relates to. |
error_message | string | Error rows only: why this input produced no result. |
error_type | string | Error rows only: machine-readable error category. |
Two ready-made dataset views ship with the Actor: Profile overview (name, title, city, country, skills, languages, profile URL) and Career history (name, title, experience, education, profile URL).
Example output
{"result_type": "profile","fullName": "Chuck Coulson","jobTitle": "VP, Business Development & Alliances","city": "Cupertino","countryCode": "US","skills": ["Business Development", "Alliances", "SaaS", "CRM"],"languages": ["English"],"experience": [{ "company": "Example GmbH", "title": "VP BD", "startDate": "2021" },{ "company": "Other AG", "title": "Director", "startDate": "2015", "endDate": "2021" }],"education": [{ "institution": "TU Munchen", "qualification": "M.Sc. Informatik" }],"profileUrl": "https://www.xing.com/profile/Chuck_Coulson","summary": "Chuck Coulson, VP, Business Development & Alliances, based in Cupertino. 2 role(s) on record, 4 listed skill(s)."}
A URL that cannot be collected returns a row with result_type: "error" and a plain-language error_message, so a failed input never disappears silently.
Pricing
Pay per result. One event, profile-scraped, is charged once for every profile pushed to the dataset. Nothing is charged for an input that returns no record. Current rates are shown on the Store card.
How to get started
- View on Apify Store and click Try for free.
- Paste one or more profile URLs, or bare handles, into Profile URLs.
- Run it. Results appear on the Output tab and export as JSON, CSV, or Excel. The Career history view shows roles and education directly.
- Prefer code? The example repo with a Python and MCP walkthrough shows how to call the Actor from Python and how to install it as a tool in Claude Code (free trial), Claude Cowork (free trial), Cursor, and ChatGPT.
๐ Use this API from Claude (MCP)
Add this Actor as a tool in Claude Code (free trial), Claude Cowork (free trial), Cursor, or any other MCP client through the hosted Apify MCP server:
https://mcp.apify.com/?tools=actors,docs,johnvc/xing-profile-api
With Claude Code (free trial):
claude mcp add --transport http xing "https://mcp.apify.com/?tools=actors,docs,johnvc/xing-profile-api"
Then ask your agent something like "summarise the role history for these candidates".
Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp
๐ธ Pay per run with crypto (x402)
The Xing Profile API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.
What this Actor does not do
It collects profiles you already have URLs or handles for. It does not search for people by title, company, or location, because the source offers no discovery endpoint. If you need to find candidates rather than enrich a known list, start from a search elsewhere and bring the profile URLs here.
๐ Integrations: Automate DACH Candidate Research with the Xing API
A single run answers one question about a shortlist. Run the same list on a schedule and keep the history, and you get something a one-off run cannot give you: a title change or a new employer only shows up when you have two runs to compare. Everything below uses the standard Apify platform integrations, so you do not have to host anything yourself.
Watchlists with tasks and schedules
Save each list of profiles you care about as its own task: one for a shortlist, one for a competitor's leadership team, one for alumni of a target employer. Then attach a schedule from the Actor's Actions, then Schedule menu.
People edit their Xing profile when something actually changes, so a weekly or monthly pass usually catches everything. Useful cron strings:
0 7 * * 1every Monday at 7 AM, the usual cadence for a live shortlist0 6 1 * *on the first of each month, for a long-running talent map0 */12 * * *twice a day, when you are watching a handful of profiles closely
One schedule can trigger several tasks at once, so a whole watchlist refreshes in a single pass. The published Monitor Xing Profiles for Job Changes task is this pattern already configured; open it, swap in your own URLs, and save it as your task.
n8n, Make, and Zapier
There is no dedicated community node for this Actor yet, so use the official Apify n8n integration: Schedule Trigger, then the Apify node running johnvc/xing-profile-api, then a Filter node comparing jobTitle against the value you stored last run, then a Slack or email node for the ones that changed. The same four steps translate directly to Make and Zapier.
Keep the history in Supabase
Diffing runs only works if you store them. The no-code path is the n8n Apify node followed by a Supabase node. In Python, apify-client plus supabase is about twenty lines:
from apify_client import ApifyClientfrom supabase import create_clientapify = ApifyClient("<YOUR_APIFY_TOKEN>")db = create_client("<SUPABASE_URL>", "<SUPABASE_KEY>")run = apify.actor("johnvc/xing-profile-api").call(run_input={"profileUrls": ["https://www.xing.com/profile/Jane_Doe","Max_Mustermann",]})rows = []for item in apify.dataset(run.default_dataset_id).iterate_items():if item.get("result_type") != "profile":continuerows.append({"profile_id": item.get("profileId"),"full_name": item.get("fullName"),"job_title": item.get("jobTitle"),"city": item.get("city"),"country_code": item.get("countryCode"),"profile_url": item.get("profileUrl"),"fetched_at": item.get("fetched_at"),})db.table("xing_profiles").insert(rows).execute()
Insert rather than upsert and you get a dated history per profile, which is what makes "who changed jobs this quarter" a single SQL query.
AI agents over the collected profiles
The Actor is exposed through the hosted Apify MCP server, so an agent in Claude, Cursor, or any other MCP client can run it and read the results. Because every row carries a plain-language summary, questions like "which of these fifteen people have moved into a leadership role since we last looked" work without any parsing layer. The Get Xing Profile Data in Claude via MCP task walks through the setup.
Webhooks for everything else
For anything the integrations above do not cover, attach an Apify webhook on ACTOR.RUN.SUCCEEDED. It posts the run and dataset IDs to your endpoint the moment a run finishes, which is the shortest path to your own scoring logic or an ATS import.
๐ Related Tools
Other APIs from the same portfolio that fit the recruiting and company-research workflow around this one:
- LinkedIn Profile API returns the same shape of person record from the global network, so a DACH shortlist and an international one land in one schema.
- LinkedIn Company API fills in firmographics for the employers that turn up in the
experiencearray. - LinkedIn Jobs API for open roles and salary ranges a candidate might be a fit for.
- Workday Careers API for employer-side job listings pulled straight from company career sites.
- Glassdoor Reviews API for employer reputation on the companies in a candidate's history.
Most Xing coverage in the Store is job-board scraping rather than member records. XING Jobs Scraper is a fair example of the category: it returns postings, it carries no user reviews, and its last update was in April 2026. It answers a different question from this API, which returns the person behind a profile URL and documents every field it can return in the table above.
๐ก Applications
Ready-to-run examples of this API in action. Open any one and run it in a single click.
Xing Profile Data API: Profile URLs to JSON
Paste a list of profile URLs and get one structured record per member, ready for a database or an agent. Run this task
Kandidatenprofile von Xing per Profil-URL abrufen
Kandidatenprofile per Profil-URL abrufen: Position, Werdegang, Ausbildung und Kenntnisse als saubere Tabelle. Task oeffnen
Monitor Xing Profiles for Job Changes
Re-run a watchlist on a schedule and diff each member's current job title, city, skills, and languages between runs. Run this task
Get Xing Profile Data in Claude via MCP
Add the API as a tool in an MCP client and ask for a role history in plain language instead of writing a parser. Run this task
Xing Profildaten als CSV oder Excel exportieren
Profildaten direkt als CSV oder Excel exportieren, fuer Recruiting-Listen und Auswertungen in der Tabellenkalkulation. Task oeffnen
Bewerberangaben mit dem Xing Profil abgleichen
Angaben aus einer Bewerbung mit dem oeffentlichen Profil vergleichen: Stationen, Zeitraeume und Kenntnisse nebeneinander. Task oeffnen
FAQ
Was ist ein Xing Profil?
Ein Xing Profil ist die berufliche Profilseite eines Mitglieds im deutschsprachigen Karrierenetzwerk: aktueller Job, Werdegang, Ausbildung, Kenntnisse und Sprachen. Dieser Actor liefert genau diese Angaben als strukturiertes JSON.
Wie finde ich Kandidaten auf Xing?
Dieser Actor durchsucht Xing nicht. Er liest Profile aus, deren URL oder Handle Sie bereits haben. Fuer die Kandidatensuche starten Sie an anderer Stelle und uebergeben die gefundenen Profil-URLs hier.
How do I export Xing profile data?
Run the Actor with your profile URLs and export the dataset from the Output tab as JSON, CSV, or Excel. Every profile is one row.
Can I search for candidates by skill or city?
Not with this Actor. The source has no discovery endpoint, so you supply the profiles. Once collected, you can of course filter the results by skills, city, or jobTitle.
Does it work for profiles outside Germany?
Yes. The network is strongest in Germany, Austria, and Switzerland, but members list locations worldwide and the Actor returns whatever the profile holds.
Are skills returned in German or English?
Both, as the member entered them. A single profile often mixes the two, and they are returned verbatim rather than translated.
Does it return contact details?
No. Profiles carry name, role, history, and skills, but no email addresses or phone numbers.
Why does one profile return less than another?
Members choose how much to publish. Fields with no value are left out of the row rather than returned empty, so a sparse profile reads as sparse rather than broken.
How many profiles can one run return?
Up to 1000 profile URLs per run. Larger lists split cleanly across several runs, and because charging is per profile returned, splitting a list costs the same as running it in one go.
Can I schedule this Xing profile Scraper to run automatically?
Yes, and this is where the Actor earns its keep. Save your profile list as a task, then attach a schedule from the Actor's Actions, then Schedule menu. 0 7 * * 1 runs it every Monday at 7 AM, 0 6 1 * * runs it on the first of each month, and 0 */12 * * * runs it twice a day. A single schedule can trigger several tasks at once, so one entry keeps a whole set of watchlists current. The Integrations section above has the full recipe, including where to store each run so you can diff them.
Should I use an API or a Web Scraper for Xing profiles?
An official API is rate limited, quota bound, and usually gated behind a partner agreement, and it exposes only the fields the provider chose to publish. Web scraping reads what is actually on the public page. This Actor gives you the second thing with the ergonomics of the first: you call it like an endpoint, pass a list of URLs, and get structured rows back, with no quota to negotiate and no session to maintain.
Can I integrate this Xing Scraper with other apps?
Yes. Apify integrations connect a run to most cloud services, including Make, Zapier, Slack, Google Drive, and n8n. For anything custom, an Apify webhook on ACTOR.RUN.SUCCEEDED posts the run and dataset IDs to your own endpoint. Recipes for each are in the Integrations section above.
Can I use the Xing Profile API from the Apify API?
Yes. The API tab on this Actor gives you ready-made calls to start a run, poll its status, and pull the dataset. The apify-client package exists for both Node.js and Python, so a handful of lines turns a list of profile URLs into rows in your own store. The example repo has a working Python script.
Can I use this Xing profile Scraper through an MCP Server?
Yes. Add it as a tool in any MCP client through the hosted Apify MCP server using this URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/xing-profile-api
That works in Claude Code (free trial), Claude Cowork (free trial), Cursor, and any other client that speaks MCP. The Apify MCP docs cover authentication and client setup.
How else can I collect professional profile and hiring data?
The LinkedIn Profile API returns the same shape of record for the global network, which is the usual pairing: DACH here, everyone else there. The LinkedIn Company API fills in the employers named in a profile's experience array, and the Workday Careers API pulls open roles straight from company career sites. The full list is in Related Tools above.
Is this an official Xing API?
No. This Actor is not affiliated with, endorsed by, or connected to Xing. It is an independent tool that reads public profile pages and returns them as structured data, and it makes no claim of parity with any product Xing itself offers.
Is it legal to scrape Xing profiles?
Public data is generally collectable, but member profiles are personal data, so in the EU the GDPR applies to what you do with them: you need a lawful basis, and you should keep only the fields you actually use. Apify has a plain-language overview of the legality of web scraping. None of this is legal advice; check your own jurisdiction.
What do I do if a run returns no results?
Check the input URLs first. A profile that has been deleted, renamed, or set to private returns an error row with an error_message explaining what happened, and nothing is charged for it. If a handle stopped working, open the profile in a browser and copy the current URL, since members can change their handle.
๐ About Alpha OSINT
This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. For support or requests for this actor, please start a ticket directly on our support page.
Last Updated: 2026.08.09