# Terminalx Product Search Scraper (`stealth_mode/terminalx-product-search-scraper`) Actor

Scrape product listings from TerminalX search pages with full details. Extract SKUs, pricing, inventory, images, SEO metadata, variants, and 60+ fields per product—perfect for price monitoring, competitor analysis, and fashion retail analytics.

- **URL**: https://apify.com/stealth\_mode/terminalx-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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.
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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## TerminalX Product Search Scraper: Scrape Fashion Listings at Scale

---

### What Is TerminalX?

TerminalX is a modern fashion and retail e-commerce platform offering shoes, apparel, and accessories across multiple categories and brands. With thousands of active product listings, real-time inventory updates, and dynamic filtering options, TerminalX represents a valuable data source for fashion retailers, market researchers, and competitive intelligence teams. Manually collecting product information from search result pages is tedious and error-prone—the **TerminalX Product Search Scraper** automates this task, delivering structured product data with minimal effort.

---

### Overview

The **TerminalX Product Search Scraper** extracts product listings from TerminalX search and category pages, capturing 60+ data fields per product. It is ideal for:

- **Price monitoring teams** tracking competitor pricing and promotions
- **E-commerce aggregators** building fashion product feeds
- **Market researchers** analyzing product trends and availability
- **Retailers** benchmarking inventory and product mix against TerminalX
- **Content managers** sourcing product metadata for catalogs

Key features include flexible URL filtering (category, sorting, pagination), configurable item limits, robust error handling, and comprehensive product metadata extraction.

---

### Input Format

The scraper accepts a JSON configuration object for search result pages:

```json
{
  "urls": [
    "https://www.terminalx.com/women/shoes?p=2&product_list_order=justlanded"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Field | Description |
|---|---|
| `urls` | Array of TerminalX product search/category page URLs with filters and pagination |
| `max_items_per_url` | Maximum products to extract per URL (range: 1–200; default: 20) |
| `ignore_url_failures` | If `true`, scraper continues if some URLs fail; if `false`, stops on first failure |

**URL structure tips:**

- Use category URLs: `https://www.terminalx.com/women/shoes`
- Add filters: `?product_list_order=justlanded` (Just Landed), `?product_list_order=sale` (Sale items)
- Include pagination: `?p=2` (page 2), `?p=3` (page 3)
- Example: `https://www.terminalx.com/women/shoes?p=2&product_list_order=justlanded`

***

### Output Format

**Sample output**

```json
{
  "sku": "W021000001",
  "id": 1502846,
  "visibility": "4",
  "status": "1",
  "early_cutoff": 0,
  "return_policy": null,
  "warranty_block": null,
  "is_outlet_promo": false,
  "supplier_style": "V009QC6BT1",
  "hide_until": null,
  "blur_image": 0,
  "disable_atc": null,
  "icon_stampa": null,
  "justlanded": "2023-07-05",
  "stock_status2": "IN_STOCK",
  "stampa": null,
  "stampa_sale": null,
  "stampa_strip": null,
  "collabs_stampa": null,
  "stampa_vip_strip": null,
  "stampa_strip_design": null,
  "lastcall": "lastcall",
  "category_ids": [
    "17142",
    "152",
    "31051",
    "31052",
    "31063",
    "31127",
    "31191",
    "31196",
    "31378",
    "310",
    "17501",
    "27387",
    "30738",
    "31568",
    "31767",
    "31778",
    "31387",
    "23840",
    "31811",
    "31886",
    "31916",
    "31920",
    "31947",
    "32158",
    "32279",
    "31152",
    "28967",
    "31833",
    "30546",
    "31574",
    "32634",
    "32678",
    "31751",
    "32102",
    "17168",
    "19934",
    "32947"
  ],
  "color_group": "487",
  "colors_set_alt": null,
  "brand": "85",
  "by_fit": null,
  "gift_eligible": 0,
  "return_eligible": true,
  "exchange_eligible": false,
  "sub_story": "24099",
  "has_school": false,
  "school_symbol_data": {
    "number_of_items_in_set": 0,
    "number_of_dark_items": 0,
    "number_of_light_items": 0,
    "overlay": null
  },
  "use_qty": 0,
  "brand_url": {
    "brand": 310,
    "name": "VANS",
    "url": "https://www.terminalx.com/brands/vans"
  },
  "div_top": "515",
  "div_top_code": "1",
  "div": "543",
  "div_code": "24",
  "type": "7969",
  "fabric": "100% Leather",
  "meta_title": null,
  "meta_keyword": null,
  "meta_description": null,
  "swatch_image": null,
  "image": {
    "disabled": null,
    "label": "נעלי סניקרס Knu Skool / נשים",
    "position": null,
    "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70"
  },
  "media_gallery": [
    {
      "disabled": false,
      "label": null,
      "position": 1,
      "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70",
      "__typename": "ProductImage"
    }
  ],
  "small_image": {
    "disabled": null,
    "label": "נעלי סניקרס Knu Skool / נשים",
    "position": null,
    "url": "https://media.terminalx.com/pub/media/catalog/product/cache/92af6b9c945798a7e3b64d91033084b3/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70"
  },
  "thumbnail": {
    "disabled": null,
    "label": "נעלי סניקרס Knu Skool / נשים",
    "position": null,
    "url": "https://media.terminalx.com/pub/media/catalog/product/cache/07fcf88957aa12468578da7d2fc8b9e7/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70"
  },
  "fragile_product": "0",
  "big_item_shipping_fee": 0,
  "description": {
    "html": "נעלי סניקרס בשילוב לוגו המותג. לנעליים סוליה עבה ושרוכי קשירה."
  },
  "categories": [
    {
      "name": "import",
      "path_in_store": null,
      "path": "1/2/11",
      "url_key": "import",
      "url_path": "import",
      "level": 2,
      "id": 11,
      "breadcrumbs": null
    }
   ],
  "size_recommendation": null,
  "configurable_options": [
    {
      "attribute_code": "color",
      "attribute_id": "93",
      "id": 30225506,
      "label": "צבע",
      "values": [
        {
          "default_label": "שחור",
          "label": "שחור",
          "store_label": "שחור",
          "use_default_value": true,
          "value_index": 4,
          "swatch_data": {
            "value": "#000000"
          }
        }
      ]
    },
    {
      "attribute_code": "size",
      "attribute_id": "149",
      "id": 30225507,
      "label": "מידה",
      "values": [
        {
          "default_label": "35",
          "label": "35",
          "store_label": "35",
          "use_default_value": true,
          "value_index": 63,
          "swatch_data": {
            "value": "35"
          }
        },
        {
          "default_label": "36",
          "label": "36",
          "store_label": "36",
          "use_default_value": true,
          "value_index": 30,
          "swatch_data": {
            "value": "36"
          }
        },
        {
          "default_label": "36.5",
          "label": "36.5",
          "store_label": "36.5",
          "use_default_value": true,
          "value_index": 64,
          "swatch_data": {
            "value": "36.5"
          }
        },
        {
          "default_label": "37",
          "label": "37",
          "store_label": "37",
          "use_default_value": true,
          "value_index": 65,
          "swatch_data": {
            "value": "37"
          }
        },
        {
          "default_label": "38",
          "label": "38",
          "store_label": "38",
          "use_default_value": true,
          "value_index": 31,
          "swatch_data": {
            "value": "38"
          }
        },
        {
          "default_label": "38.5",
          "label": "38.5",
          "store_label": "38.5",
          "use_default_value": true,
          "value_index": 66,
          "swatch_data": {
            "value": "38.5"
          }
        },
        {
          "default_label": "39",
          "label": "39",
          "store_label": "39",
          "use_default_value": true,
          "value_index": 67,
          "swatch_data": {
            "value": "39"
          }
        },
        {
          "default_label": "40",
          "label": "40",
          "store_label": "40",
          "use_default_value": true,
          "value_index": 50,
          "swatch_data": {
            "value": "40"
          }
        },
        {
          "default_label": "40.5",
          "label": "40.5",
          "store_label": "40.5",
          "use_default_value": true,
          "value_index": 1442,
          "swatch_data": {
            "value": "40.5"
          }
        },
        {
          "default_label": "41",
          "label": "41",
          "store_label": "41",
          "use_default_value": true,
          "value_index": 51,
          "swatch_data": {
            "value": "41"
          }
        }
      ]
    }
  ],
  "price_range": {
    "minimum_price": {
      "regular_price": {
        "value": 429.9,
        "currency": "ILS"
      },
      "final_price": {
        "value": 429.9,
        "currency": "ILS"
      },
      "discount": {
        "amount_off": 0,
        "percent_off": 0
      }
    },
    "maximum_price": {
      "regular_price": {
        "value": 429.9,
        "currency": "ILS"
      },
      "final_price": {
        "value": 429.9,
        "currency": "ILS"
      },
      "discount": {
        "amount_off": 0,
        "percent_off": 0
      }
    }
  },
  "variants": [
    {
      "attributes": [
        {
          "label": "שחור",
          "code": "color",
          "value_index": 4
        },
        {
          "label": "35",
          "code": "size",
          "value_index": 63
        }
      ],
      "product": {
        "id": 1502465,
        "sku": "W02100000101",
        "justlanded": "2023-07-05",
        "status": "1",
        "stock_status2": "OUT_OF_STOCK",
        "stampa": null,
        "stampa_sale": null,
        "stampa_strip": 19280,
        "collabs_stampa": null,
        "stampa_vip_strip": null,
        "lastcall": null,
        "size_scale": "",
        "by_fit": null,
        "colors_set_alt": null,
        "early_cutoff": null,
        "hide_until": null,
        "color_group": "487",
        "marketplace_name": null,
        "gift_eligible": 1,
        "return_eligible": true,
        "exchange_eligible": true,
        "is_outlet_promo": false,
        "swatch_image": null,
        "state_stampa": {
          "class": "stampa_lastcall",
          "html": "LAST<br/>CALL",
          "text": "LAST CALL"
        },
        "person_height": null,
        "person_size": null,
        "vendor_details": {
          "vendor_id": 0,
          "vendor_name": null,
          "vendor_delay": 0,
          "vendor_cutoff_hour": null,
          "all_vendors": [
            131
          ],
          "exception": null
        },
        "parent_product": {
          "ai_color": {
            "option_id": 40552,
            "label": "שחור",
            "swatch": "#000000"
          },
          "product": {
            "id": 1502846,
            "sku": "W021000001",
            "name": "נעלי סניקרס Knu Skool / נשים",
            "status": "1",
            "visibility": "4",
            "colors_set_alt": null,
            "icon_stampa": null,
            "stampa_sale": null,
            "state_stampa": {
              "class": "stampa_lastcall",
              "html": "LAST<br/>CALL",
              "text": "LAST CALL"
            },
            "blur_image": 0,
            "disable_atc": null,
            "person_height": null,
            "person_size": null,
            "fabric": "100% Leather",
            "manufacturer": "8052",
            "laundry": 9071,
            "importer": "31580",
            "by_fit": null,
            "color_group": "487",
            "description": {
              "html": "נעלי סניקרס בשילוב לוגו המותג. לנעליים סוליה עבה ושרוכי קשירה."
            }
          }
        },
        "image": {
          "disabled": null,
          "label": "Knu Skool",
          "position": null,
          "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70"
        },
        "media_gallery": [
          {
            "disabled": false,
            "label": "",
            "position": 1,
            "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70"
          },
          {
            "disabled": false,
            "label": "",
            "position": 2,
            "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-21760521503.jpg?image_type_mobile=webp_jpeg_like_70"
          },
          {
            "disabled": false,
            "label": "",
            "position": 3,
            "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-31760521503.jpg?image_type_mobile=webp_jpeg_like_70"
          },
          {
            "disabled": false,
            "label": "",
            "position": 4,
            "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-41760521503.jpg"
          },
          {
            "disabled": false,
            "label": "",
            "position": 5,
            "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-51760521503.jpg"
          },
          {
            "disabled": false,
            "label": "",
            "position": 6,
            "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-61760521503.jpg"
          },
          {
            "disabled": false,
            "label": "",
            "position": 7,
            "url": "https://media.terminalx.com/pub/media/catalog/product/cache/f112238e8de94b6d480bd02e7a9501b8/w/0/w021000001-71760521503.jpg"
          }
        ],
        "small_image": {
          "disabled": null,
          "label": "Knu Skool",
          "position": null,
          "url": "https://media.terminalx.com/pub/media/catalog/product/cache/92af6b9c945798a7e3b64d91033084b3/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70"
        },
        "thumbnail": {
          "disabled": null,
          "label": "Knu Skool",
          "position": null,
          "url": "https://media.terminalx.com/pub/media/catalog/product/cache/07fcf88957aa12468578da7d2fc8b9e7/w/0/w021000001-11760521503.jpg?image_type_mobile=webp_jpeg_like_70"
        },
        "name": "נעלי סניקרס Knu Skool / נשים",
        "laundry": 9071,
        "importer": "31580",
        "fragile_product": null,
        "big_item_shipping_fee": 0,
        "manufacturer": "8052",
        "brand": "85",
        "div_top": "515",
        "div_top_code": "1",
        "div": "543",
        "div_code": "24",
        "type": "7969",
        "description": {
          "html": "נעלי סניקרס בשילוב לוגו המותג. לנעליים סוליה עבה ושרוכי קשירה."
        },
        "price_per_100": {
          "label": "",
          "show_price_per_100": false
        },
        "remove_shop_the_look": false,
        "remove_laundry_instructions": false,
        "remove_fabric_info": false,
        "price_range": {
          "minimum_price": {
            "regular_price": {
              "value": 429.9,
              "currency": "ILS"
            },
            "final_price": {
              "value": 429.9,
              "currency": "ILS"
            },
            "discount": {
              "amount_off": 0,
              "percent_off": 0
            }
          },
          "maximum_price": {
            "regular_price": {
              "value": 429.9,
              "currency": "ILS"
            },
            "final_price": {
              "value": 429.9,
              "currency": "ILS"
            },
            "discount": {
              "amount_off": 0,
              "percent_off": 0
            }
          }
        },
        "tx_labels": {
          "brand": "VANS",
          "laundry": "5",
          "manufacturer": "סין",
          "div_top": "נשים",
          "div": "נעליים",
          "type": "סניקרס",
          "color_group": "שחור",
          "importer": "30010"
        },
        "resize_map": {},
        "__decorate_was_here": true,
        "fabric": "100% Leather"
      }
    }
  ],
  "tx_labels": {
    "brand": "VANS",
    "laundry": "5",
    "manufacturer": "סין",
    "div_top": "נשים",
    "div": "נעליים",
    "type": "סניקרס",
    "marketplace_name": "marketplace",
    "color_group": "שחור",
    "importer": "30010"
  },
  "resize_map": {},
  "blocks": {
    "size_chart": "sizechart_vans_1",
    "brand": "vans_about_product_page",
    "laundry": "laundry_5",
    "importer": "importer_30010",
    "delivery": "delivery_and_exchange_product_page",
    "description": {
      "content": "נעלי סניקרס בשילוב לוגו המותג. לנעליים סוליה עבה ושרוכי קשירה.",
      "css_selector": "page_id_undefined",
      "content_react": "נעלי סניקרס בשילוב לוגו המותג. לנעליים סוליה עבה ושרוכי קשירה.",
      "schedule_content_react": "",
      "content_widgets": [],
      "schedule_content_widgets": [],
      "content_text": "&#x5E0;&#x5E2;&#x5DC;&#x5D9; &#x5E1;&#x5E0;&#x5D9;&#x5E7;&#x5E8;&#x5E1; &#x5D1;&#x5E9;&#x5D9;&#x5DC;&#x5D5;&#x5D1; &#x5DC;&#x5D5;&#x5D2;&#x5D5; &#x5D4;&#x5DE;&#x5D5;&#x5EA;&#x5D2;. &#x5DC;&#x5E0;&#x5E2;&#x5DC;&#x5D9;&#x5D9;&#x5DD; &#x5E1;&#x5D5;&#x5DC;&#x5D9;&#x5D4; &#x5E2;&#x5D1;&#x5D4; &#x5D5;&#x5E9;&#x5E8;&#x5D5;&#x5DB;&#x5D9; &#x5E7;&#x5E9;&#x5D9;&#x5E8;&#x5D4;.",
      "schedule_content_text": ""
    }
  },
  "default_color_value_index": 4,
  "in_stock_sku_variants_by": {
    "color": {
      "4": [
        "W02100000101",
        "W02100000103",
        "W02100000104",
        "W02100000105",
        "W02100000107",
        "W02100000108",
        "W02100000109",
        "W02100000111",
        "W02100000112",
        "W02100000113"
      ]
    },
    "size": {
      "30": [
        "W02100000103"
      ],
      "31": [
        "W02100000107"
      ],
      "50": [
        "W02100000111"
      ],
      "51": [
        "W02100000113"
      ],
      "63": [
        "W02100000101"
      ],
      "64": [
        "W02100000104"
      ],
      "65": [
        "W02100000105"
      ],
      "66": [
        "W02100000108"
      ],
      "67": [
        "W02100000109"
      ],
      "1442": [
        "W02100000112"
      ]
    }
  },
  "from_url": "https://www.terminalx.com/women/shoes?product_list_order=justlanded"
}
```

Each product record contains 60+ structured fields covering identification, pricing, inventory, media, SEO, and special flags:

#### Core Identification

| Field | Meaning |
|---|---|
| `SKU` | Stock Keeping Unit—unique product identifier |
| `ID` | Internal TerminalX product ID |
| `Type` | Product type/category classification |
| `Brand` | Manufacturer or brand name |
| `Brand URL` | Link to the brand page on TerminalX |
| `Supplier Style` | Supplier-provided style or model number |

#### Visibility & Status

| Field | Meaning |
|---|---|
| `Visibility` | Whether the product is visible to customers |
| `Status` | Active, inactive, or discontinued status |
| `Stock Status 2` | Inventory status flag (in stock, low stock, out of stock) |
| `Hide Until` | Date/time to hide the product until launch |
| `Blur Image` | Whether product images should be blurred |
| `Disable ATC` | Disable "Add to Cart" button (e.g., for pre-orders) |

#### Pricing & Promotions

| Field | Meaning |
|---|---|
| `Price Range` | Min–max price for product variants |
| `Stampa` | Regular price tier or stampa category |
| `Stampa Sale` | Sale price under the stampa tier |
| `Stampa Strip` | Visual badge or label for stampa pricing |
| `Collabs Stampa` | Special collaboration pricing tier |
| `Stampa VIP Strip` | VIP-exclusive pricing tier |
| `Is Outlet Promo` | Whether the product is outlet/clearance promotion |
| `Lastcall` | Last chance/final sale indicator |
| `Justlanded` | New arrival flag |

#### Promotions & Eligibility

| Field | Meaning |
|---|---|
| `Return Policy` | Applicable return policy code or description |
| `Warranty Block` | Warranty or protection plan availability |
| `Early Cutoff` | Early customer access flag (e.g., VIP preview) |
| `Gift Eligible` | Whether the item can be gifted |
| `Return Eligible` | Whether returns are accepted |
| `Exchange Eligible` | Whether exchanges are allowed |

#### Product Details

| Field | Meaning |
|---|---|
| `Categories` | Product category paths and IDs |
| `Category IDs` | Numeric category identifiers |
| `Description` | Full product description |
| `Fabric` | Material composition |
| `Size Recommendation` | Sizing guidance or fit advice |
| `Colors Set Alt` | Available color options |
| `Color Group` | Grouped color family |
| `Configurable Options` | Customization choices (size, color, etc.) |
| `Variants` | Available product variants with SKU/price |
| `In Stock SKU Variants By` | Variants grouped by stock availability |

#### Media & Images

| Field | Meaning |
|---|---|
| `Image` | Primary product image URL |
| `Small Image` | Small thumbnail image URL |
| `Thumbnail` | Tiny thumbnail for lists |
| `Media Gallery` | Full product image gallery |
| `Swatch Image` | Color/pattern swatch image URL |

#### SEO & Metadata

| Field | Meaning |
|---|---|
| `Meta Title` | HTML page title for SEO |
| `Meta Description` | Meta description for search engines |
| `Meta Keyword` | Target keywords |
| `TX Labels` | TerminalX-specific internal labels |

#### Taxonomies & Organization

| Field | Meaning |
|---|---|
| `Div` | Division or merchandise grouping |
| `Div Code` | Division code identifier |
| `Div Top` | Top-level division |
| `Div Top Code` | Top division code |
| `By Fit` | Fit category (slim, regular, relaxed, etc.) |

#### Special Attributes

| Field | Meaning |
|---|---|
| `Icon Stampa` | Visual icon for the stampa tier |
| `Fragile Product` | Requires fragile/specialty shipping |
| `Big Item Shipping Fee` | Additional shipping charge for oversized items |
| `School Symbol Data` | School/university partnership info |
| `Has School` | Whether the product is school-branded |
| `Sub Story` | Sub-brand or collection story |
| `Use Qty` | Quantity restrictions or guidelines |
| `Resize Map` | Size conversion/mapping chart URL |
| `Blocks` | Content blocks or promotional sections |
| `Default Color Value Index` | Default color index in variants array |

***

### How to Use

1. **Gather search URLs** — Navigate to TerminalX, apply filters (category, sorting, price range), and copy the full URL from your browser.
2. **Configure input** — Paste URLs into the `urls` array. Adjust `max_items_per_url` based on your needs (max 200).
3. **Set error handling** — Use `ignore_url_failures: true` for bulk runs to skip problematic URLs without stopping.
4. **Run the scraper** — Start the actor and monitor progress in the run log.
5. **Download results** — Export as JSON, CSV, or Excel for analysis, price monitoring, or inventory sync.

**Pro tips:**

- Use pagination parameters (`?p=1`, `?p=2`) to scrape multiple pages sequentially
- Combine category URLs with sorting filters for targeted data (e.g., `?product_list_order=sale`)
- Set `max_items_per_url: 200` for comprehensive product captures per page
- Monitor `Stock Status 2` to track real-time inventory changes

**Common issues:**

- If URLs fail silently, verify they are valid search/category pages, not product detail pages
- Ensure query parameters are correctly formatted (use `?` before first param, `&` between params)
- Timeouts on large requests: reduce `max_items_per_url` and split URLs across multiple runs

***

### Use Cases & Business Value

- **Competitive price tracking:** Monitor TerminalX competitor pricing, promotions, and sale strategies in real time
- **Product feed management:** Automatically update your e-commerce catalog with TerminalX inventory and pricing data
- **Market trend analysis:** Analyze bestsellers, new arrivals, and seasonal product mix to inform buying decisions
- **Promotion monitoring:** Detect flash sales, clearance events, and loyalty tier pricing changes (`Stampa`, `Lastcall`, `Is Outlet Promo`)
- **Inventory benchmarking:** Compare stock availability and SKU depth against competitors
- **Content syndication:** Populate product marketplaces or aggregator platforms with rich TerminalX product metadata

The TerminalX Product Search Scraper transforms hours of manual research into minutes of automated data collection, enabling faster decision-making and competitive advantage.

***

### Conclusion

The **TerminalX Product Search Scraper** is a powerful tool for fashion retailers, aggregators, and market researchers needing reliable product intelligence at scale. With 60+ output fields covering pricing, inventory, media, and SEO metadata, this scraper delivers the comprehensive data necessary to compete effectively in dynamic retail markets. Start scraping today and unlock actionable insights from thousands of TerminalX product listings.

# Actor input Schema

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

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

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.terminalx.com/women/shoes?p=2&product_list_order=justlanded"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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.terminalx.com/women/shoes?p=2&product_list_order=justlanded"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/terminalx-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.terminalx.com/women/shoes?p=2&product_list_order=justlanded"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/terminalx-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.terminalx.com/women/shoes?p=2&product_list_order=justlanded"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/terminalx-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Terminalx Product Search Scraper",
        "description": "Scrape product listings from TerminalX search pages with full details. Extract SKUs, pricing, inventory, images, SEO metadata, variants, and 60+ fields per product—perfect for price monitoring, competitor analysis, and fashion retail analytics.",
        "version": "0.0",
        "x-build-id": "dfgf2ExhO2aXC3NmE"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~terminalx-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-terminalx-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/stealth_mode~terminalx-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-terminalx-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/stealth_mode~terminalx-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-terminalx-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 search list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the product search list 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"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
