# Xing Profile API (`johnvc/xing-profile-api`) Actor

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.

- **URL**: https://apify.com/johnvc/xing-profile-api.md
- **Developed by:** [John](https://apify.com/johnvc) (community)
- **Categories:** AI, Social media, Jobs
- **Stats:** 6 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.29 / 1,000 profile returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Xing Profile API

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](https://www.xing.com/) 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"]` |

```json
{
  "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

```json
{
  "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

1. [View on Apify Store](https://apify.com/johnvc/xing-profile-api?fpr=9n7kx3) and click Try for free.
2. Paste one or more profile URLs, or bare handles, into **Profile URLs**.
3. Run it. Results appear on the Output tab and export as JSON, CSV, or Excel. The **Career history** view shows roles and education directly.
4. Prefer code? The [example repo with a Python and MCP walkthrough](https://github.com/johnisanerd/Apify-Xing-Profile-API) shows how to call the Actor from Python and how to install it as a tool in [Claude Code](https://claude.ai/referral/uIlpa7nPLg) (free trial), [Claude Cowork](https://claude.ai/referral/uIlpa7nPLg) (free trial), Cursor, and ChatGPT.

### 🔌 Use this API from Claude (MCP)

Add this Actor as a tool in [Claude Code](https://claude.ai/referral/uIlpa7nPLg) (free trial), [Claude Cowork](https://claude.ai/referral/uIlpa7nPLg) (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](https://claude.ai/referral/uIlpa7nPLg) (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".

https://www.youtube.com/watch?v=jREWahDGhJM

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](https://docs.apify.com/platform/integrations/x402).
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](https://mcp.apify.com/?tools=actors,docs,johnvc/xing-profile-api) and it can
discover, pay for, and run this Actor autonomously. Read the
[Apify x402 announcement](https://apify.com/change-log/pay-for-apify-actors-with-x402?fpr=9n7kx3) 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](https://docs.apify.com/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](https://docs.apify.com/platform/actors/running/tasks): one for a shortlist, one for a competitor's leadership team, one for alumni of a target employer. Then attach a [schedule](https://docs.apify.com/platform/schedules) from the Actor's **Actions**, then **Schedule** menu.

People edit their [Xing](https://www.xing.com/) profile when something actually changes, so a weekly or monthly pass usually catches everything. Useful cron strings:

- `0 7 * * 1` every Monday at 7 AM, the usual cadence for a live shortlist
- `0 6 1 * *` on the first of each month, for a long-running talent map
- `0 */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](https://apify.com/johnvc/xing-profile-api/examples/monitor-xing-profiles-for-job-changes?fpr=9n7kx3) 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](https://docs.apify.com/platform/integrations/n8n): 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](https://docs.apify.com/platform/integrations/make) and [Zapier](https://docs.apify.com/platform/integrations/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:

```python
from apify_client import ApifyClient
from supabase import create_client

apify = 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":
        continue
    rows.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](https://mcp.apify.com/), 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](https://apify.com/johnvc/xing-profile-api/examples/get-xing-profile-data-in-claude-via-mcp?fpr=9n7kx3) task walks through the setup.

#### Webhooks for everything else

For anything the integrations above do not cover, attach an [Apify webhook](https://docs.apify.com/platform/integrations/webhooks) 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](https://apify.com/johnvc/linkedin-profile-api?fpr=9n7kx3) 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](https://apify.com/johnvc/linkedin-company-api?fpr=9n7kx3) fills in firmographics for the employers that turn up in the `experience` array.
- [LinkedIn Jobs API](https://apify.com/johnvc/linkedin-jobs-api?fpr=9n7kx3) for open roles and salary ranges a candidate might be a fit for.
- [Workday Careers API](https://apify.com/johnvc/workday-careers-api?fpr=9n7kx3) for employer-side job listings pulled straight from company career sites.
- [Glassdoor Reviews API](https://apify.com/johnvc/glassdoor-reviews-api?fpr=9n7kx3) 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](https://apify.com/pramodkonde17/xing-jobs-scraper?fpr=9n7kx3) 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](https://apify.com/johnvc/xing-profile-api/examples/xing-profile-data-api-json?fpr=9n7kx3)

#### Kandidatenprofile von Xing per Profil-URL abrufen

Kandidatenprofile per Profil-URL abrufen: Position, Werdegang, Ausbildung und Kenntnisse als saubere Tabelle.
[Task oeffnen](https://apify.com/johnvc/xing-profile-api/examples/xing-kandidatenprofile-per-url?fpr=9n7kx3)

#### 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](https://apify.com/johnvc/xing-profile-api/examples/monitor-xing-profiles-for-job-changes?fpr=9n7kx3)

#### 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](https://apify.com/johnvc/xing-profile-api/examples/get-xing-profile-data-in-claude-via-mcp?fpr=9n7kx3)

#### Xing Profildaten als CSV oder Excel exportieren

Profildaten direkt als CSV oder Excel exportieren, fuer Recruiting-Listen und Auswertungen in der Tabellenkalkulation.
[Task oeffnen](https://apify.com/johnvc/xing-profile-api/examples/xing-profildaten-csv-export?fpr=9n7kx3)

#### Bewerberangaben mit dem Xing Profil abgleichen

Angaben aus einer Bewerbung mit dem oeffentlichen Profil vergleichen: Stationen, Zeitraeume und Kenntnisse nebeneinander.
[Task oeffnen](https://apify.com/johnvc/xing-profile-api/examples/xing-bewerberangaben-abgleichen?fpr=9n7kx3)

### 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](https://docs.apify.com/platform/actors/running/tasks), then attach a [schedule](https://docs.apify.com/platform/schedules) 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](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/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](https://docs.apify.com/platform/integrations) connect a run to most cloud services, including [Make](https://docs.apify.com/platform/integrations/make), [Zapier](https://docs.apify.com/platform/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Google Drive](https://docs.apify.com/platform/integrations/drive), and [n8n](https://docs.apify.com/platform/integrations/n8n). For anything custom, an [Apify webhook](https://docs.apify.com/platform/integrations/webhooks) 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](https://apify.com/johnvc/xing-profile-api/api?fpr=9n7kx3) 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](https://github.com/johnisanerd/Apify-Xing-Profile-API) 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](https://mcp.apify.com/) using this URL:

`https://mcp.apify.com/?tools=actors,docs,johnvc/xing-profile-api`

That works in [Claude Code](https://claude.ai/referral/uIlpa7nPLg) (free trial), [Claude Cowork](https://claude.ai/referral/uIlpa7nPLg) (free trial), Cursor, and any other client that speaks MCP. The [Apify MCP docs](https://docs.apify.com/platform/integrations/mcp) cover authentication and client setup.

#### How else can I collect professional profile and hiring data?

The [LinkedIn Profile API](https://apify.com/johnvc/linkedin-profile-api?fpr=9n7kx3) returns the same shape of record for the global network, which is the usual pairing: DACH here, everyone else there. The [LinkedIn Company API](https://apify.com/johnvc/linkedin-company-api?fpr=9n7kx3) fills in the employers named in a profile's `experience` array, and the [Workday Careers API](https://apify.com/johnvc/workday-careers-api?fpr=9n7kx3) 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](https://www.xing.com/). 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](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) 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](https://blog.apify.com/is-web-scraping-legal/). 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](https://www.alphaosint.com), 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](https://apify.com/johnvc/xing-profile-api/issues/open?fpr=9n7kx3).

Last Updated: 2026.08.09

# Actor input Schema

## `profileUrls` (type: `array`):

Xing member profile URLs to collect, for example https://www.xing.com/profile/Jane\_Doe. A bare profile handle such as 'Jane\_Doe' also works. Up to 1000 per run. One profile-scraped event is charged per profile returned; inputs that return no profile are not charged. This Actor collects profiles you already have URLs for; it does not search for people.

## Actor input object example

```json
{
  "profileUrls": [
    "https://www.xing.com/profile/Babureddy_C"
  ]
}
```

# Actor output Schema

## `allResults` (type: `string`):

Every dataset item from this run: collected profiles and any error rows.

## `overview` (type: `string`):

Tabular view: fullName, jobTitle, city, countryCode, skills, languages, profileUrl.

## `career` (type: `string`):

Tabular view: fullName, jobTitle, experience, education, profileUrl.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profileUrls": [
        "https://www.xing.com/profile/Babureddy_C"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnvc/xing-profile-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "profileUrls": ["https://www.xing.com/profile/Babureddy_C"] }

# Run the Actor and wait for it to finish
run = client.actor("johnvc/xing-profile-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profileUrls": [
    "https://www.xing.com/profile/Babureddy_C"
  ]
}' |
apify call johnvc/xing-profile-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=johnvc/xing-profile-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/aRuPsw2Q3N9uyapLB/builds/TxW8aoalRXhaznBvJ/openapi.json
