# ASC Global MRO Scraper — Parts, Inventory & Pricing (`muhammadafzal/asc-global-mro-scraper`) Actor

Scrape public ASC Global MRO parts with part numbers, availability, pricing, manufacturers, and specifications.

- **URL**: https://apify.com/muhammadafzal/asc-global-mro-scraper.md
- **Developed by:** [Muhammad Afzal](https://apify.com/muhammadafzal) (community)
- **Categories:** Automation, E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 mro product returneds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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.

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## ASC Global MRO Product Scraper

Extract public catalog data from [ASC Global MRO](https://mro.ascglobal.com/). This actor is designed for procurement, maintenance, and supply-chain teams that need structured product data from a specific part number, manufacturer, or catalog keyword.

### What it collects

- Part number and product title
- Manufacturer, public availability, and public stock quantity
- Public price and currency, when ASC Global exposes them without sign-in
- Product URL, image, description, categories, and optional specification tables

Pricing, availability, and some stock details can be account-gated by ASC Global. The actor records only public page content; unavailable fields are returned as `null`, rather than guessed.

### Input

Use one or both input modes:

| Field | Use it for |
| --- | --- |
| `searchQueries` | Part numbers, manufacturer names, or catalog keywords such as `FNQ-R-2` or `Siemens power supply`. |
| `productUrls` | Direct public `mro.ascglobal.com/product/...` URLs. |
| `maxItems` | A predictable cap from 1–500 unique product records. |
| `includeSpecifications` | Collect product-page specification tables when available. |

Example input:

```json
{
  "searchQueries": ["FNQ-R-2", "Siemens power supply"],
  "maxItems": 25,
  "includeSpecifications": true
}
````

### Output

Every product is one dataset item. The `OUTPUT` key-value record provides `itemCount`, the requested cap, and non-fatal diagnostic warnings.

### Pricing

This Actor uses pay-per-event billing: **$0.00005 per run start** plus **$0.003 for each unique product returned**. The Actor uses 1 GB default memory, so a one-product lookup costs $0.00305. `maxItems` is a hard cap for returned and chargeable products. Search pages blocked by ASC Global do not generate a product event, and no product event is charged for pages that do not yield a product record.

```json
{
  "partNumber": "FNQ-R-2",
  "title": "FNQ-R-2",
  "manufacturer": "Eaton",
  "availability": "InStock",
  "quantityAvailable": 1200,
  "price": null,
  "currency": null,
  "productUrl": "https://mro.ascglobal.com/product/fnq-r-2/",
  "categories": ["Fuses"],
  "specifications": {},
  "source": "ASC Global MRO",
  "scrapedAt": "2026-07-22T12:00:00.000Z"
}
```

### Reliability and limits

The crawler limits parallel requests, retries transient failures, deduplicates canonical product URLs, and preserves completed records if some pages fail. It does not attempt to access accounts, submit quote forms, bypass authentication, or infer account-only pricing. Use a reasonable `maxItems` and schedule recurring runs only at a cadence appropriate for your use case.

### Use with Apify and agents

Use this actor when an agent needs public ASC Global MRO catalog records for a list of part numbers or direct product pages. It is not a purchasing tool, inventory reservation system, supplier-comparison service, or an authenticated customer-account scraper.

### Responsible use

This actor accesses publicly available catalog pages. You are responsible for ensuring your use complies with ASC Global's terms, applicable laws, and your organization’s procurement and data-governance policies.

# Actor input Schema

## `searchQueries` (type: `array`):

Use this when you want to find public ASC Global catalog products by part number, manufacturer, or keyword. Each entry produces a catalog search.

## `productUrls` (type: `array`):

Use this when you already have direct public product URLs from mro.ascglobal.com. Product URLs are scraped directly and can be combined with keyword searches.

## `maxItems` (type: `integer`):

Use this when you need a predictable cap on returned catalog products across all searches. The actor stops after this many unique products.

## `includeSpecifications` (type: `boolean`):

Use this when you need tabular product specifications in addition to core catalog fields. Disable for a smaller, faster result payload.

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

Use this when your Apify account requires a specific proxy setup. Leave blank to use the platform default configuration.

## Actor input object example

```json
{
  "searchQueries": [
    "FNQ-R-2"
  ],
  "productUrls": [],
  "maxItems": 20,
  "includeSpecifications": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `products` (type: `string`):

Dataset containing public ASC Global MRO product records with part number, manufacturer, availability, price, categories, and specifications.

## `summary` (type: `string`):

Key-value-store record with item count, configured cap, warnings, and completion time.

# 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 = {
    "searchQueries": [
        "FNQ-R-2"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammadafzal/asc-global-mro-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 = { "searchQueries": ["FNQ-R-2"] }

# Run the Actor and wait for it to finish
run = client.actor("muhammadafzal/asc-global-mro-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 '{
  "searchQueries": [
    "FNQ-R-2"
  ]
}' |
apify call muhammadafzal/asc-global-mro-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ASC Global MRO Scraper — Parts, Inventory & Pricing",
        "description": "Scrape public ASC Global MRO parts with part numbers, availability, pricing, manufacturers, and specifications.",
        "version": "1.0",
        "x-build-id": "FiiM29yFKPenBCdFw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/muhammadafzal~asc-global-mro-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-muhammadafzal-asc-global-mro-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/muhammadafzal~asc-global-mro-scraper/runs": {
            "post": {
                "operationId": "runs-sync-muhammadafzal-asc-global-mro-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/muhammadafzal~asc-global-mro-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-muhammadafzal-asc-global-mro-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": {
                    "searchQueries": {
                        "title": "Part Numbers or Keywords",
                        "type": "array",
                        "description": "Use this when you want to find public ASC Global catalog products by part number, manufacturer, or keyword. Each entry produces a catalog search.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "productUrls": {
                        "title": "Product URLs",
                        "type": "array",
                        "description": "Use this when you already have direct public product URLs from mro.ascglobal.com. Product URLs are scraped directly and can be combined with keyword searches.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Products",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Use this when you need a predictable cap on returned catalog products across all searches. The actor stops after this many unique products.",
                        "default": 20
                    },
                    "includeSpecifications": {
                        "title": "Include Specifications",
                        "type": "boolean",
                        "description": "Use this when you need tabular product specifications in addition to core catalog fields. Disable for a smaller, faster result payload.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Use this when your Apify account requires a specific proxy setup. Leave blank to use the platform default configuration.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
