# Ubuy Global Scraper: Price, Discount & Specs Across 8 Countries (`getascraper/ubuy-com-scraper`) Actor

Extract Ubuy cross-border listings across 8 country stores, from the US to Japan. Get price, brand, origin, rating, and an optional USD estimate. Detail mode adds original price, discount percent, full specs, reviews, and stock. Search by keyword, category, or URL. $1.75 per 1,000 results.

- **URL**: https://apify.com/getascraper/ubuy-com-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 85.2% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.31 / 1,000 product listings

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Ubuy Global Scraper: Price, Discount & Specs Across 8 Countries

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#EAF0FE;border:1px solid #C7D7FC;border-top:4px solid #2563EB;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Compare Ubuy prices across 8 countries before you source anything.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Get price, original list price, discount percent, specs, and stock from Ubuy's US, India, Sweden, Turkey, Canada, UAE, Saudi Arabia, and Japan stores in one export.</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FC;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#2563EB">🌍 8 country stores</span><br>
<span style="font-size:12px;color:#57534E">Search or browse Ubuy's US, India, Sweden, Turkey, Canada, UAE, Saudi Arabia, and Japan domains from one input</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FC;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#2563EB">💰 Price & discount tracking</span><br>
<span style="font-size:12px;color:#57534E">Capture current price, original list price, and discount percent on every result</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FC;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#2563EB">💱 USD conversion</span><br>
<span style="font-size:12px;color:#57534E">Add an estimated USD price to any local-currency result for fast comparison</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FC;border-left:none;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#2563EB">📋 Full specs on demand</span><br>
<span style="font-size:12px;color:#57534E">Turn on detail mode for brand, country of origin, full specs, and stock status</span>
</td>
</tr>
</table>

Checking the same product across eight Ubuy country stores by hand takes all afternoon. This tool does it in one run. Point it at a keyword, a category, or a list of product URLs, and get every result back as clean rows with price, discount, specs, and stock, ready for a spreadsheet or a pipeline.

### 🔍 What does Ubuy Global Scraper do?

It reads Ubuy's public catalog across eight regional storefronts and returns the data cross-border sellers act on: current price, original list price, discount percent, currency, brand, country of origin, rating, review count, and stock status. Turn on detail mode to add full product specifications on top.

Results land as flat rows you can download as Excel, CSV, JSON, or XML, or send straight to a Google Sheet. An optional flatten setting spreads specifications into their own columns so nothing arrives as a single JSON blob.

### 💡 Who is it for?

"I resell across borders, so I check which Ubuy country store has the lowest price before I list anything."

"I run a dropshipping storefront, so I track Ubuy's original price and discount percent to catch markdowns early."

"I research cross-border pricing, so I pull the same product across multiple Ubuy domains and compare in one currency."

"I manage sourcing for a small team, so I export full specs and stock status without opening every listing myself."

### 🚀 How to use Ubuy Global Scraper

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#EAF0FE;border:1px solid #C7D7FC;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#2563EB;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick a store and mode</span><br>
<span style="font-size:12px;color:#57534E">Choose a country domain, then search by keyword, browse a category, or paste product URLs.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF0FE;border:1px solid #C7D7FC;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#2563EB;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set your filters</span><br>
<span style="font-size:12px;color:#57534E">Narrow by price range and sort order, and turn on detail mode if you need full specs.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF0FE;border:1px solid #C7D7FC;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#2563EB;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run and export</span><br>
<span style="font-size:12px;color:#57534E">Start the run and download clean rows as JSON, CSV, or Excel, or send them to a Sheet.</span>
</td>
</tr>
</table>

### 📥 Input

Configure your crawl using the following fields in the run panel.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| mode | enum | No | Choose how to find items: keyword search, a category page, or a direct list of product URLs. Defaults to search. |
| domain | enum | No | Select the Ubuy country domain and local currency to crawl. Defaults to the US store. |
| keywords | string | No | Search query to look up on Ubuy. Used in search mode. |
| categoryUrl | string | No | A specific Ubuy category page URL to browse. Used in category mode. |
| productUrls | array of URLs | No | A list of specific Ubuy product page URLs to scrape directly. Used in URLs mode; each one returns a full detail record. |
| sortBy | enum | No | Order results by relevance, newest, price, or rating before scraping. Applies to search and category modes. |
| minPrice | number | No | Only include products priced at or above this value, in local currency. |
| maxPrice | number | No | Only include products priced at or below this value, in local currency. |
| scrapeDetails | boolean | No | Visit each product's detail page to add original price, discount percent, full specs, and review count. Off by default for a faster, cheaper run. |
| convertToUsd | boolean | No | Add an estimated USD price alongside the local-currency price, for comparing across country stores. |
| flattenOutput | boolean | No | Spread specifications into separate columns instead of one nested object, for cleaner CSV, Excel, and Sheets exports. |
| maxItems | integer | No | Maximum number of product records to extract in this run. |
| proxyConfiguration | object | No | Proxy settings. Residential proxies are recommended for reliable access across all eight country stores. |

### 📤 Output

Each item is a flat, spreadsheet-friendly record.

#### JSON output example

```json
{
  "product_id": "B0CGK3YSLB",
  "title": "Apple Watch Series 9 GPS 41mm Smartwatch",
  "price": 4299.00,
  "currency": "SEK",
  "price_usd": 404.12,
  "original_price": 4999.00,
  "discount_percentage": 14,
  "brand": "Apple",
  "imported_from": "US",
  "image_url": "https://images.ubuy.com/afu/images/123/456/__57.jpg",
  "view_item_url": "https://www.ubuy.com.se/en/product/B0CGK3YSLB/apple-watch-series-9",
  "rating": 4.7,
  "reviews_count": 812,
  "in_stock": true,
  "specifications": {
    "size": "41mm",
    "color": "Midnight"
  },
  "scraped_at": "2026-06-26T15:30:00.000Z"
}
```

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| product_id | string | Unique Ubuy product identifier. |
| title | string | Full name of the listed item. |
| price | number | Current selling price in local currency. |
| currency | string | Local currency code matching the country domain. |
| price_usd | number | Estimated USD price, added when USD conversion is turned on. |
| original_price | number | Original list price before any discount, added in detail mode. |
| discount_percentage | integer | Percent saved versus the original list price, added in detail mode. |
| brand | string | Brand or manufacturer name. |
| imported_from | string | Country the product ships from. |
| image_url | string | Main product image link. |
| view_item_url | string | Direct product page URL. |
| rating | number | Customer rating score out of 5. |
| reviews_count | integer | Total customer review count. |
| in_stock | boolean | Product availability flag. |
| specifications | object | Key-value specifications map, added in detail mode. |
| scraped_at | string | ISO 8601 extraction timestamp. |

### 💰 Pricing

This Actor is pay per result. You are charged per product record delivered, and a run that returns nothing costs nothing. There are no subscriptions or minimum spend.

### ❓ FAQ, disclaimers, and support

#### Is it legal to scrape Ubuy?

Yes. This tool reads publicly accessible product prices, specifications, and ratings. It does not require logging into an account or accessing private personal data. Review local regulations and respect copyright before reusing extracted content.

#### Can I compare prices across different Ubuy country stores?

Yes. Select any of the eight supported country domains from the input, and turn on USD conversion to compare prices across currencies in one column.

#### Does this scraper get the original price and discount, or just the current price?

Both, when detail mode is turned on. The default run returns the current listing price; enabling the detail setting adds the original list price, discount percent, full specifications, and review count per product.

#### Can I schedule this to run automatically?

Yes. Use the Apify platform's scheduling feature to run it hourly, daily, or weekly, so you can track price and discount changes over time.

### ⭐ Enjoying Ubuy Global Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#EAF0FE;border:1px solid #EAF0FE;border-left:5px solid #2563EB;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Comparing prices across 8 Ubuy country stores without opening a single tab yourself?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other resellers and cross-border sourcing teams find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#2563EB;border:1px solid #2563EB;border-left:5px solid #2563EB;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF">
<a href="https://apify.com/getascraper/ubuy-com-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 🔗 Other actors

- [Uzum Scraper](https://apify.com/getascraper/uzum-scraper) ↗ - searches Uzbekistan's Uzum.uz marketplace for price, discount, and rating data.
- [Mercari US Scraper](https://apify.com/getascraper/mercari-us-scraper) ↗ - extracts sold prices, conditions, and seller data from Mercari's US resale marketplace.
- [Gmarket Korea Scraper](https://apify.com/getascraper/gmarket-scraper) ↗ - pulls product listings and prices from Korea's Gmarket marketplace.
- [Falabella Scraper: Precios y Productos (Chile, Peru, Colombia)](https://apify.com/getascraper/falabella-scraper) ↗ - tracks prices and products across Falabella's Latin American stores.
- [Kaspi Product Scraper: Kaspi Магазин (Казахстан)](https://apify.com/getascraper/kaspi-product-scraper) ↗ - collects product and pricing data from Kazakhstan's Kaspi marketplace.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/ubuy-com-scraper/changelog.md

# Actor input Schema

## `mode` (type: `string`):

Choose how to find items: keyword search, a category page, or a direct list of product URLs.

## `domain` (type: `string`):

Select the specific Ubuy country site domain (and local currency) to crawl.

## `keywords` (type: `string`):

The search query term to look up across Ubuy's directory (only applicable in search mode).

## `categoryUrl` (type: `string`):

Scrape a specific Ubuy category page (e.g. https://www.ubuy.co.in/category/electronics-10172). Only applicable in category mode.

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

A list of specific Ubuy product page URLs to scrape directly (e.g. https://www.ubuy.co.in/product/SKU-slug). Only applicable in product URLs mode. Each URL is fetched as a full detail record.

## `sortBy` (type: `string`):

Order the listing results before scraping. Useful to grab the cheapest or top-rated items first (search and category modes only).

## `minPrice` (type: `number`):

Filter results to only include products with a price greater than or equal to this value in local currency.

## `maxPrice` (type: `number`):

Filter results to only include products with a price less than or equal to this value in local currency.

## `scrapeDetails` (type: `boolean`):

If enabled, navigates to each product detail page to extract the original list price, discount, full specs table, and review counts. Leaving this disabled is faster and cheaper.

## `convertToUsd` (type: `boolean`):

Add a price_usd field converted from the local currency using a live exchange rate. The value is a labeled estimate for cross-country comparison, not the price you pay at checkout.

## `flattenOutput` (type: `boolean`):

Spread the nested specifications object into separate spec\_\* columns. Turn this on for clean CSV, Excel, and Google Sheets exports where each specification gets its own column instead of one JSON blob.

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

Maximum total product records to extract during this crawl run.

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

Residential proxies (the default) are needed to pass Ubuy's Cloudflare protection reliably. Datacenter works intermittently but gets blocked under load, so it is not recommended.

## Actor input object example

```json
{
  "mode": "search",
  "domain": "ubuy.us",
  "keywords": "apple watch",
  "categoryUrl": "",
  "productUrls": [],
  "sortBy": "relevanceblender",
  "minPrice": 0,
  "maxPrice": 10000,
  "scrapeDetails": false,
  "convertToUsd": true,
  "flattenOutput": false,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `keyValueStore` (type: `string`):

No description

# 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 = {
    "mode": "search",
    "domain": "ubuy.us",
    "keywords": "apple watch",
    "categoryUrl": "",
    "productUrls": [],
    "sortBy": "relevanceblender",
    "minPrice": 0,
    "maxPrice": 10000,
    "scrapeDetails": false,
    "convertToUsd": true,
    "flattenOutput": false,
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/ubuy-com-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 = {
    "mode": "search",
    "domain": "ubuy.us",
    "keywords": "apple watch",
    "categoryUrl": "",
    "productUrls": [],
    "sortBy": "relevanceblender",
    "minPrice": 0,
    "maxPrice": 10000,
    "scrapeDetails": False,
    "convertToUsd": True,
    "flattenOutput": False,
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/ubuy-com-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "mode": "search",
  "domain": "ubuy.us",
  "keywords": "apple watch",
  "categoryUrl": "",
  "productUrls": [],
  "sortBy": "relevanceblender",
  "minPrice": 0,
  "maxPrice": 10000,
  "scrapeDetails": false,
  "convertToUsd": true,
  "flattenOutput": false,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call getascraper/ubuy-com-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/ubuy-com-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/8pMnCRfuNtKCzqByo/builds/1vSVvqjQyWkd9idaW/openapi.json
