# Otto Product Search Scraper (`ecomscrape/otto-product-search-scraper`)

Extract comprehensive product data from Otto.de, Germany's leading e-commerce platform. Gather pricing, brand information, descriptions, and images from fashion, electronics, and lifestyle categories with automated scraping technology.

- **URL**: https://beta-securitybyobscurity.apify.com/ecomscrape/otto-product-search-scraper.md
- **Developed by:** [ecomscrape](https://beta-securitybyobscurity.apify.com/ecomscrape) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

# README

## Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link:
[My profile](https://apify.com/ecomscrape)

## **Otto.de Scraper: Extract Product Data & Pricing Intelligence**

## Introduction (English version)

Otto.de stands as Germany's premier e-commerce platform, ranking as the country's second-largest online retailer with over €2.27 billion in annual revenue. As a comprehensive marketplace covering fashion, electronics, furniture, and lifestyle products, Otto.de contains millions of valuable product listings that businesses, researchers, and analysts need to access systematically. The Otto.de Product Search Scraper addresses the critical challenge of manually collecting this extensive product information, transforming hours of tedious work into automated, efficient data extraction.

Modern e-commerce intelligence requires access to real-time product data, competitive pricing information, and market trends. Whether you're conducting market research, monitoring competitor pricing strategies, or analyzing product availability across categories, manual data collection from Otto.de's vast catalog becomes impractical and time-consuming. This scraper eliminates these barriers by providing automated, structured access to Otto.de's product database.

### Otto.de Scraper Overview

The Otto.de Product Search Scraper is a sophisticated web scraping tool designed specifically for extracting structured product data from Otto.de's extensive marketplace. This scraper navigates through product category pages, search results, and individual product listings to collect comprehensive information about items across Otto.de's diverse catalog.

Built with enterprise-grade reliability, the scraper handles Otto.de's modern web architecture, including dynamic content loading and anti-bot protection mechanisms. The tool supports bulk data extraction from multiple product categories simultaneously, making it ideal for businesses requiring large-scale product intelligence from Germany's leading e-commerce platform.

Target users include e-commerce professionals, market researchers, pricing analysts, retail strategists, and data scientists who need systematic access to Otto.de's product information. The scraper serves businesses looking to understand German market trends, monitor competitor pricing, analyze product availability, or conduct comprehensive market research across Otto.de's fashion, electronics, and lifestyle categories.

### Input and Output Details

Example url 1: https://www.otto.de/damen/mode/bodies/?l=gp\&o=300

Example url 2: https://www.otto.de/damen/accessoires/?reduziert

Example url 3: https://www.otto.de/herren/mode/sportmode/sportschuhe/

Example Screenshot of product information page:

![](https://i.ibb.co/mVHzKq2w/Screenshot-from-2025-08-22-01-26-38.png)

#### Input Format

The scraper accepts JSON configuration with several key parameters:

**Input:**

```json
{
  "max_retries_per_url": 2, // Maximum waiting time when accessing the links you provided.
  "proxy": { // Add a proxy to ensure that during the data collection process, you are not detected as a bot.
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "SG" // You should choose an Country that coincides with the Country you want to collect data from
  },
  "max_items_per_url": 20,
  "urls": [ 
    "https://www.otto.de/damen/mode/bodies/?l=gp&o=300", 
    "https://www.otto.de/damen/accessoires/?reduziert",
    "https://www.otto.de/herren/mode/sportmode/sportschuhe/"
    // // Links to product list by query page.
  ]
}
```

**Input Parameters Explained:**

- **max\_retries\_per\_url**: Controls resilience by setting maximum retry attempts for failed requests, ensuring data collection continues despite temporary network issues
- **proxy configuration**: Implements residential proxy rotation to avoid detection and maintain consistent access to Otto.de's servers
- **max\_items\_per\_url**: Limits the number of products extracted per category page, enabling focused data collection and resource management
- **urls array**: Contains specific Otto.de category or search result URLs targeting desired product segments

Input URLs should be Otto.de category pages, search results, or filtered product listings. The scraper works best with product list pages rather than individual product pages, allowing efficient bulk data collection.

#### Output Format

You get the output from the Stockx.com Product Search Scraper stored in a tab. The following is an example of the Information Fields collected after running the Actor.

```json
[ // List of product information
  {
  "url": "/p/alkato-langarmbody-bodysuit-damenbody-mit-rundhalsausschnitt-S0K9T0UE/",
  "name": "Alkato Langarmbody Bodysuit Damenbody mit Rundhalsausschnitt",
  "price": "18.99",
  "currency": "EUR",
  "brand": "Alkato",
  "image": "https://i.otto.de/i/otto/79626b77-2ce7-5827-87f3-709213e3a0a0?$responsive_ft2$",
  "details": [
    {
      "@type": "PropertyValue",
      "name": "variationId",
      "value": "S0K9T0UE01UQ"
    }
  ],
  "from_url": "https://www.otto.de/damen/mode/bodies/?l=gp&o=236"
}, // ... Many other product details
]
```

**Output Fields Explained:**

- **URL**: Direct link to the product page, enabling easy verification and follow-up research on specific items
- **Name**: Product title as displayed on Otto.de, providing the official product designation for cataloging and analysis
- **Description**: Detailed product description containing features, specifications, and selling points crucial for market analysis
- **Price**: Current product price in numerical format, essential for competitive pricing analysis and market research
- **Currency**: Price currency (typically EUR for Otto.de), ensuring accurate financial calculations across datasets
- **Brand**: Manufacturer or brand name, vital for brand analysis, market share studies, and competitive intelligence
- **Image**: Primary product image URL, useful for visual analysis, catalog creation, and product identification
- **Details**: Additional specifications including materials, sizes, colors, and technical information valuable for comprehensive product analysis

### How to Use the Otto.de Scraper

Begin by identifying target product categories or search queries on Otto.de. Navigate to the relevant category pages and copy the URLs into your input configuration. Ensure URLs point to product list pages rather than individual products for optimal efficiency.

Configure the scraping parameters based on your requirements. Set `max_items_per_url` according to your data needs - use lower values for focused research or higher values for comprehensive market analysis. Adjust `max_retries_per_url` based on your tolerance for data completeness versus scraping speed.

Implement proxy rotation to maintain consistent access to Otto.de. The residential proxy configuration helps avoid rate limiting and ensures reliable data collection. Choose proxy countries that align with your target market analysis, typically Germany or other EU countries for Otto.de.

**Best Practices:**

- Start with smaller batches to test URL compatibility and data quality
- Monitor scraping results for consistency and adjust parameters as needed
- Space out large scraping operations to respect Otto.de's server resources
- Verify data accuracy by spot-checking results against Otto.de directly

Handle common issues proactively: if certain URLs return limited data, check for category page changes or URL parameter modifications. When encountering repeated failures, consider adjusting proxy settings or reducing request frequency.

### Benefits and Applications

The Otto.de scraper delivers significant time savings by automating what would otherwise require manual browsing and data entry. A comprehensive product analysis that might take weeks manually can be completed in hours, freeing resources for higher-value analysis and strategy development.

**Practical Applications:**

- **Competitive Intelligence**: Track competitor pricing strategies, product launches, and inventory levels across Otto.de's marketplace
- **Market Research**: Analyze product trends, brand positioning, and category performance within Germany's e-commerce landscape
- **Price Monitoring**: Maintain current pricing data for strategic pricing decisions and margin optimization
- **Product Catalog Development**: Build comprehensive product databases for comparison sites, affiliate programs, or market analysis
- **Brand Analysis**: Monitor brand presence, product ranges, and market positioning across Otto.de's diverse categories

The business value extends beyond data collection to strategic insights. Understanding Otto.de's product ecosystem provides crucial intelligence about German consumer preferences, pricing strategies, and market opportunities. This data supports informed decision-making for market entry, product positioning, and competitive strategy development.

### Conclusion

The Otto.de Product Search Scraper transforms complex product data collection into a streamlined, automated process. By providing structured access to Germany's leading e-commerce marketplace, this tool empowers businesses with the product intelligence necessary for competitive success in European markets.

Ready to unlock Otto.de's product data for your business intelligence needs? Start extracting comprehensive product information today and gain the competitive edge that comes from systematic market knowledge.

## Einleitung (Deutsch version)

Otto.de ist Deutschlands führende E-Commerce-Plattform und rangiert als zweitgrößter Online-Händler des Landes mit einem Jahresumsatz von über 2,27 Milliarden Euro. Als umfassender Marktplatz deckt Otto.de vielfältige Produktkategorien ab, darunter Mode, Elektronik, Möbel und Lifestyle-Produkte. Millionen wertvoller Produktanzeigen sind hier verfügbar, die Unternehmen, Forschern und Analysten systematisch zugänglich gemacht werden müssen. Der Otto.de Product Search Scraper adressiert die zentrale Herausforderung der manuellen Datenerfassung dieser umfangreichen Produktinformationen und verwandelt aufwändige Stundenarbeit in automatisierte, effiziente Datenauszüge.

Moderne E-Commerce-Analysen benötigen Echtzeitdaten zu Produkten, Preisvergleiche im Wettbewerb sowie Marktentwicklungen. Egal, ob Marktforschung, Monitoring der Preisstrategien der Wettbewerber oder Marktverfügbarkeitsanalysen – manuelle Datensammlung aus Ottos riesigem Sortiment ist unpraktikabel und extrem zeitaufwendig. Dieses Tool eliminiert jene Barrieren durch automatisierten, strukturierten Zugriff auf die Produktdatenbank von Otto.de.

### Überblick: Otto.de Scraper

Der Otto.de Product Search Scraper ist ein hochentwickeltes Web-Scraping-Tool, das speziell für die Extraktion strukturierter Produktdaten aus Ottos umfangreichem Marktplatz entwickelt wurde. Der Scraper navigiert effizient durch Produktkategorieseiten, Suchergebnisse und Detailseiten einzelner Produkte, um umfassende Informationen zu Artikeln aus Otto.de's vielfältigem Sortiment zu sammeln.

Mit hoher Zuverlässigkeit verarbeitet das Tool die moderne Webarchitektur von Otto.de, inklusive dynamischen Content-Ladungen und Anti-Bot-Maßnahmen. Es unterstützt die parallele Extraktion großer Datenmengen aus mehreren Produktkategorien, was es ideal für Unternehmen macht, die große Produktdatenbanken für Markt- und Wettbewerbsanalysen benötigen.

Zielgruppen sind E-Commerce-Profis, Marktforscher, Preisanalysten, Einzelhandelsstrategen und Data Scientists, die strukturierten Zugriff auf Otto.de-Produkte, Preise, Verfügbarkeiten und Angebotsinformationen suchen. Das Tool erleichtert das Monitoring deutscher Markttrends, Wettbewerberpreisstrategien, Lagerbestände oder umfassende Marktrecherchen in den Kategorien Mode, Elektronik und Lifestyle.

### Eingabe- und Ausgabedetails

Beispiel-URL 1: https://www.otto.de/damen/mode/bodies/?l=gp\&o=300

Beispiel-URL 2: https://www.otto.de/damen/accessoires/?reduziert

Beispiel-URL 3: https://www.otto.de/herren/mode/sportmode/sportschuhe/

Beispiel-Screenshot der Produktinformationsseite:

![](https://i.ibb.co/mVHzKq2w/Screenshot-from-2025-08-22-01-26-38.png)

#### Eingabeformat

Der Scraper akzeptiert eine JSON-Konfiguration mit folgenden Schlüsselparametern:

```json
{
  "max_retries_per_url": 2, // Maximale Anzahl an Wiederholungen beim Zugriff auf die URLs.
  "proxy": { // Proxy-Konfiguration, um die Entdeckung als Bot zu vermeiden.
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "SG" // Zielregion passend für die Datenextraktion auswählen.
  },
  "max_items_per_url": 20, // Maximale Anzahl der pro URL extrahierten Produkte.
  "urls": [ // Links zu Produktlisten nach Abfrage.
    "https://www.otto.de/damen/mode/bodies/?l=gp&o=300",
    "https://www.otto.de/damen/accessoires/?reduziert",
    "https://www.otto.de/herren/mode/sportmode/sportschuhe/"
  ]
}
```

**Erläuterung der Eingabeparameter:**

- **max\_retries\_per\_url**: Steuert die Anzahl der Wiederholungsversuche bei temporären Fehlern oder Netzwerkproblemen, um die Zuverlässigkeit der Datenerfassung zu sichern.
- **Proxy-Konfiguration**: Nutzt residential proxy rotation, um Erkennung als Bot zu vermeiden und stabile Zugriffe auf die Otto.de-Server sicherzustellen.
- **max\_items\_per\_url**: Begrenzung der Anzahl der extrahierten Produkte pro Kategorie- oder Suchergebnisseite, ermöglicht fokussierte Datensammlungen bei kontrolliertem Ressourcenverbrauch.
- **URLs-Array**: Enthält spezifische Category- oder Such-URLs von Otto.de, die auf gewünschte Produktsegmente oder Filterkriterien abzielen. Das Arbeiten mit Listen- (Category) und Filterseiten (z.B. reduzierte Artikel) ist am effektivsten.

Eingabeseiten sollten Kategorie- oder Ergebnislisten sein, nicht einzelne Produktseiten. Damit kann die Massenextraktion effizient erfolgen und Daten in großem Umfang gesammelt werden.

#### Ausgabeformat

Sie erhalten die Daten des Stockx.com Product Search Scraper in einer Tabellendatei. Das folgende Beispiel zeigt die gesammelten Informationsfelder nach der Ausführung:

```json
[ // List of product information
  {
  "url": "/p/alkato-langarmbody-bodysuit-damenbody-mit-rundhalsausschnitt-S0K9T0UE/",
  "name": "Alkato Langarmbody Bodysuit Damenbody mit Rundhalsausschnitt",
  "price": "18.99",
  "currency": "EUR",
  "brand": "Alkato",
  "image": "https://i.otto.de/i/otto/79626b77-2ce7-5827-87f3-709213e3a0a0?$responsive_ft2$",
  "details": [
    {
      "@type": "PropertyValue",
      "name": "variationId",
      "value": "S0K9T0UE01UQ"
    }
  ],
  "from_url": "https://www.otto.de/damen/mode/bodies/?l=gp&o=236"
}, // ... Many other product details
]
```

**Eingabefelder & Erklärungen:**

- **URL**: Direkte Links zu Produktseiten, für einfache Verifizierung und Nachforschungen zu einzelnen Produkten.
- **Name**: Produktbezeichnung gemäß Otto.de, für die Katalogierung und Analyse.
- **Beschreibung**: Detaillierte Produktbeschreibung mit Features, Spezifikationen und Verkaufsargumenten – relevant für Marktanalysen.
- **Price**: Aktueller Preis in Zahlenformat, essenziell für Preisvergleiche und Wettbewerbsanalysen.
- **Currency**: Preissymbol (meist EUR), für präzise Finanzberechnungen.
- **Brand**: Hersteller- oder Markennamen, wichtig für Markenanalysen, Marktanteilsstudien und Konkurrenzbeobachtung.
- **Image**: URL des Hauptproduktbilds, hilfreich für visuelle Analysen, Katalogerstellung und Produktidentifikation.
- **Details**: Zusätzliche Spezifikationen wie Materialien, Größen, Farben oder technische Daten, wertvoll für umfassende Produktanalysen.

### How to Use the Otto.de Scraper

Beginnen Sie mit der Zielgruppenauswahl: Navigieren Sie auf Otto.de zu den entsprechenden Produktkategorien oder Suchanfragen. Kopieren Sie die URLs der Ergebnislisten (nicht einzelner Produkte) in Ihre Eingabekonfiguration. Für Effizienz sind Listen-Übersichtsseiten optimal.

Konfigurieren Sie die Parameter entsprechend Ihrer Bedürfnisse. Legen Sie `max_items_per_url` passend fest – niedrig für fokussierte Recherche, hoch für umfassende Marktüberblicke. Passen Sie `max_retries_per_url` an, um Datenvollständigkeit bei akzeptabler Geschwindigkeit zu sichern.

Nutzen Sie Proxy-Rotation, um stabile Zugriffe zu gewährleisten. Besonders geeignet sind residential Proxies, um Rate-Limits zu vermeiden. Wählen Sie Proxy-Länder, die mit Ihrer Zielregion harmonieren – z.B. Deutschland oder EU-Länder.

**Best Practices:**

- Beginnen Sie mit kleinen Chargen, um URL-Kompatibilität und Datenqualität zu testen.
- Überwachen Sie die Resultate regelmäßig, passen Sie Parameter bei Bedarf an.
- Planen Sie Abstände zwischen den Requests ein, um Otto.de-Server nicht zu belasten.
- Überprüfen Sie Stichproben der extrahierten Daten auf Plausibilität.

Probleme wie unvollständige Daten, Änderungen im URL-Format oder Parameteranpassungen können auftreten. Bei wiederholten Fehlern: Proxy-Einstellungen prüfen, Request-Frequenz verringern oder Parameter anpassen.

### Vorteile und Anwendungsfälle

Automatisierte Datenerhebung spart enorm Zeit, die bei manueller Recherche Wochen dauern würde. Mit diesem Tool können umfassende Produkt- und Marktdaten in Stunden anstelle von Tagen gesammelt werden.

**Praktische Einsatzszenarien:**

- **Wettbewerbsbeobachtung**: Preise, Produktneuheiten und Lagerbestände im Blick behalten.
- **Marktforschung**: Trends bei Produktkategorien, Positionierungen und Markenentwicklung analysieren.
- **Preispflege**: Aktuelle Preise kontinuierlich überwachen, Margen sichern.
- **Katalogaufbau**: Datenbanken für Vergleichsplattformen, Affiliate- oder Marktforschungszwecke erstellen.
- **Markenmonitoring**: Präsenz und Produktmix der Marken auf Otto.de verfolgen.

Dieses Wissen ermöglicht strategische Entscheidungen: Markteintrittsplanung, Produktpositionierung oder Preisanpassungen auf der Basis validierter Daten.

### Fazit

Der Otto.de Product Search Scraper macht komplexe Produktdatenaufnahmen zu einem effizienten Automatisierungsprozess. Er verschafft einen systematischen Zugang zu Deutschlands größtem E-Commerce-Marktplatz und liefert die Grundlage für erfolgreiche Markt- und Wettbewerbsstrategien in Europa.

Bereit, Otto.de-Daten für Ihren Geschäftserfolg zu nutzen? Starten Sie jetzt mit der Datenerfassung und sichern Sie sich den Vorsprung durch umfassendes Marktwissen!

## Related Actors

- [**Otto.de Product Details Scraper**](https://apify.com/ecomscrape/otto-product-details-scraper): A specialized data extraction solution engineered to harvest comprehensive product information from Otto.de's exclusive sneaker and streetwear marketplace.

## Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about Otto.de Product Search Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Product list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `max_items_per_url` (type: `integer`):

Limit the number of items per URL you want to scrape

## `max_retries_per_url` (type: `integer`):

Limit the number of retries for each URL if the scrape is detected as a bot or the page fails to load

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.otto.de/damen/mode/bodies/?l=gp&o=300"
  ],
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# 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 = {
    "urls": [
        "https://www.otto.de/damen/mode/bodies/?l=gp&o=300"
    ],
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ecomscrape/otto-product-search-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 = {
    "urls": ["https://www.otto.de/damen/mode/bodies/?l=gp&o=300"],
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("ecomscrape/otto-product-search-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 '{
  "urls": [
    "https://www.otto.de/damen/mode/bodies/?l=gp&o=300"
  ],
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call ecomscrape/otto-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Otto Product Search Scraper",
        "description": "Extract comprehensive product data from Otto.de, Germany's leading e-commerce platform. Gather pricing, brand information, descriptions, and images from fashion, electronics, and lifestyle categories with automated scraping technology.",
        "version": "0.0",
        "x-build-id": "aRUIaXSEDNyv5e1mX"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ecomscrape~otto-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ecomscrape-otto-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ecomscrape~otto-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ecomscrape-otto-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ecomscrape~otto-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ecomscrape-otto-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the Product list page urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Product list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_items_per_url": {
                        "title": "Limit the number of items per URL",
                        "type": "integer",
                        "description": "Limit the number of items per URL you want to scrape"
                    },
                    "max_retries_per_url": {
                        "title": "Limit the number of retries for each URL",
                        "type": "integer",
                        "description": "Limit the number of retries for each URL if the scrape is detected as a bot or the page fails to load"
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your scraper."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
