# Siemens SiePortal Scraper — Specs & MPN (`crawloop/siemens-sieportal-scraper`) Actor

Enrich Siemens part numbers from SiePortal: specifications, lifecycle status, document links, and related products. Stealth browser for Akamai-protected PDP pages.

- **URL**: https://apify.com/crawloop/siemens-sieportal-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Siemens SiePortal Scraper — Specs & MPN

> **Crawloop Siemens Automation Suite** — Structured data extraction for Siemens SiePortal (Industry Mall), SIOS, and TED product datasheets. Built for procurement teams, system integrators, and BOM engineering workflows.

| Discovery | Enrichment | SIOS documents | PDF parsing |
| :--- | :--- | :--- | :--- |
| [Catalog Crawler](https://apify.com/crawloop/siemens-sieportal-product-catalog-crawler) | **SiePortal Scraper** ◄── you are here | [Document Downloader](https://apify.com/crawloop/siemens-sieportal-document-downloader) | [Document PDF Parser](https://apify.com/crawloop/siemens-sieportal-product-datasheet-pdf-crawler) |
| | [Lifecycle Tracker](https://apify.com/crawloop/siemens-sieportal-lifecycle-tracker) | | |

> **Disclaimer:** This is an unofficial integration developed independently of Siemens AG. It is not affiliated with, sponsored by, or endorsed by Siemens AG or any of its subsidiaries.
>
> **Siemens**, **SiePortal**, **SIMATIC**, and related names are trademarks of Siemens AG. Product data is read from publicly accessible Siemens web sources only; no proprietary databases are redistributed.
>
> This Actor is provided **for informational and research purposes only** (e.g. procurement research, BOM audits, internal engineering workflows). You are solely responsible for ensuring your use complies with applicable laws, Siemens website terms of use, and your organization's policies.
>
> No warranty is given as to accuracy, completeness, or continued availability of third-party data. Use at your own risk.

**Siemens SiePortal scraper** / Industry Mall API alternative — enrich Siemens part numbers (MPN) with full PDP data: technical specifications, lifecycle status, SIOS document links, and related products. Stealth browser for Akamai-protected pages. Use from Python, Node.js, or MCP.

### When to use this Actor

Use the **Siemens SiePortal Scraper** when you already have Siemens part numbers and need full product detail JSON.

For bulk lifecycle screening only, use [Siemens Lifecycle Tracker](https://apify.com/crawloop/siemens-sieportal-lifecycle-tracker) first. For PDF downloads, use [Siemens Document Downloader](https://apify.com/crawloop/siemens-sieportal-document-downloader). Chain after [Siemens Catalog Crawler](https://apify.com/crawloop/siemens-sieportal-product-catalog-crawler) to enrich discovered MPNs.

### Key Features

- **Full PDP enrichment** — Specs, lifecycle, documents, related products
- **MPN normalization** — Dashes, case, and spacing variants
- **Akamai-aware browser** — Stealth fingerprinting for SiePortal
- **Bulk-friendly** — Parallel workers with residential proxy

### Input Parameters

| Parameter | Description | Default |
| :--- | :--- | :--- |
| `searchTerms` | **Required.** Siemens part numbers / search terms. | — |
| `maxResultsPerSearch` | Max hits per search term. | `1` |
| `proxyConfiguration` | Apify Proxy (Residential recommended). | — |

#### Input Example

```json
{
  "searchTerms": ["6ES7193-6BP00-0DA0", "6GK7343-1EX30-0XE0"],
  "maxResultsPerSearch": 1,
  "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}
}
```

### Output Format

```json
{
  "searchTerm": "6ES7193-6BP00-0DA0",
  "partNumber": "6ES7193-6BP00-0DA0",
  "title": "SIMATIC ET 200SP, BaseUnit",
  "lifecycleStatus": "Active Product",
  "pdpUrl": "https://mall.industry.siemens.com/...",
  "specifications": { "Family": "ET 200SP" },
  "documents": [{ "title": "Manual", "url": "https://support.industry.siemens.com/..." }],
  "status": "ok"
}
```

### Use cases

| Use case | What you get |
| :--- | :--- |
| **BOM enrichment** | Specs + lifecycle per MPN |
| **ERP / PLM fill** | Structured JSON catalogs |
| **Document follow-up** | SIOS links for Document Downloader |
| **AI / MCP workflows** | Run via Apify API, clients, or MCP |

### Integration examples

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/siemens-sieportal-scraper').call({{ searchTerms: ['6ES7193-6BP00-0DA0'], maxResultsPerSearch: 1, proxyConfiguration: {{ useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'] }} }});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient(token)
run = client.actor("crawloop/siemens-sieportal-scraper").call(
    run_input={{"searchTerms": ["6ES7193-6BP00-0DA0"], "maxResultsPerSearch": 1, "proxyConfiguration": {"useApifyProxy": True, "apifyProxyGroups": ["RESIDENTIAL"]}}}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("partNumber"), item.get("lifecycleStatus"), item.get("title"))
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/crawloop~siemens-sieportal-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms":["6ES7193-6BP00-0DA0"],"maxResultsPerSearch":1,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}'
```

### MCP and AI assistants

Use this Actor from AI tools via [Apify MCP](https://docs.apify.com/platform/integrations/mcp). Connect your Apify account, then call `crawloop/siemens-sieportal-scraper`.

Example prompts:

- "Run Siemens SiePortal Scraper for 6ES7193-6BP00-0DA0 and return partNumber, lifecycleStatus, specifications"
- "Enrich these Siemens MPNs with specs and document links"
- "Chain Lifecycle Tracker then SiePortal Scraper for discontinued parts only"

### Suite next step

Download SIOS PDFs with [Siemens Document Downloader](https://apify.com/crawloop/siemens-sieportal-document-downloader), then parse with [Siemens Document PDF Parser](https://apify.com/crawloop/siemens-sieportal-product-datasheet-pdf-crawler).

### Related Actors — Siemens Automation

| Focus | Actor |
| :--- | :--- |
| Discover Siemens MPNs | [Siemens Catalog Crawler](https://apify.com/crawloop/siemens-sieportal-product-catalog-crawler) |
| Bulk lifecycle / successors | [Siemens Lifecycle Tracker](https://apify.com/crawloop/siemens-sieportal-lifecycle-tracker) |
| **Full SiePortal PDP specs** | **Siemens SiePortal Scraper** ◄── you are here |
| Download SIOS PDFs | [Siemens Document Downloader](https://apify.com/crawloop/siemens-sieportal-document-downloader) |
| Parse SIOS PDFs to JSON | [Siemens Document PDF Parser](https://apify.com/crawloop/siemens-sieportal-product-datasheet-pdf-crawler) |
| TED datasheet download | [Siemens Datasheet Downloader](https://apify.com/crawloop/siemens-datasheet-downloader) |
| TED datasheet parse | [Siemens Datasheet PDF Crawler](https://apify.com/crawloop/siemens-datasheet-pdf-crawler) |

# Actor input Schema

## `searchTerms` (type: `array`):

List of Siemens part numbers to search for. You can write them in any format (with or without dashes, uppercase or lowercase, with spaces). One per line.

## `maxResultsPerSearch` (type: `integer`):

The maximum number of matching products to extract for each search term. Default is 1 (exact match).

## `proxyConfiguration` (type: `object`):

Specifies proxy servers to bypass Akamai blocks. Using Apify rotating proxies is recommended.

## Actor input object example

```json
{
  "searchTerms": [
    "6ES7193-6BP00-0DA0",
    "6ES7214-1AG40-0XB0"
  ],
  "maxResultsPerSearch": 1,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Default dataset items.

# 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 = {
    "searchTerms": [
        "6ES7193-6BP00-0DA0",
        "6ES7214-1AG40-0XB0"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/siemens-sieportal-scraper").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 = {
    "searchTerms": [
        "6ES7193-6BP00-0DA0",
        "6ES7214-1AG40-0XB0",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/siemens-sieportal-scraper").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 '{
  "searchTerms": [
    "6ES7193-6BP00-0DA0",
    "6ES7214-1AG40-0XB0"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call crawloop/siemens-sieportal-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawloop/siemens-sieportal-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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