# Yahoo! Auctions Japan (ヤフオク!) Scraper (`ardent_fork/yahoo-auctions-japan`) Actor

Live listings from auctions.yahoo.co.jp by keyword or category: current and buy-now price, bids, end time, condition, shipping, seller id and rating, images, full description. Sort by ending soonest / price / newest. No login, no API key.

- **URL**: https://apify.com/ardent\_fork/yahoo-auctions-japan.md
- **Developed by:** [KF P](https://apify.com/ardent_fork) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 items

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

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Yahoo! Auctions Japan (ヤフオク!) Scraper

Scrapes **live listings from [auctions.yahoo.co.jp](https://auctions.yahoo.co.jp)**, Japan's largest consumer auction marketplace, by keyword, category and/or seller. No login, no API key, no proxy needed.

Built for proxy-bidding services, cross-border resellers, collectors and price-monitoring tools that need Yahoo! Auctions data in a clean, typed form.

### What you get

One dataset item per listing:

| Field | Example |
|---|---|
| `id`, `url`, `title` | `b1242172828`, `https://auctions.yahoo.co.jp/jp/auction/b1242172828`, `希少 英国限定 200台 MINOLTA AF-C …` |
| `currentPrice`, `buyNowPrice`, `startPrice` (JPY) | `16800`, `null`, `14800` |
| `bids`, `bidders`, `watchers`, `quantity` | `7`, `4`, `21`, `1` |
| `startTime`, `endTime` (ISO 8601 UTC), `timeLeftText` | `2026-09-02T10:55:39.000Z`, `24時間` |
| `condition`, `conditionCode` | `目立った傷や汚れなし`, `USED20` (code only on seller-page rows; detail pages give the text) |
| `isFreeShipping`, `shippingPaidBy`, `shippingMethods`, `shippingSchedule`, `isWorldwideDelivery` | `true`, `seller`, `["おてがる配送ゆうパケットプラス"]`, … |
| `categoryId`, `categoryName`, `categoryPath`, `brand` | `2084005100`, `コンパクトカメラ`, `[{id, name}, …]`, `コニカミノルタ` |
| `sellerId`, `sellerName`, `sellerPrefecture`, `sellerUrl`, `sellerGoodRatingPercent`, `sellerRatingCount`, `sellerIsStore`, `isStoreItem` | `6zME3juXWF7V2s4RXKuFS97aWJmfj`, `mzo101`, `東京都`, …, `99.9`, `2190`, `false` |
| `description`, `descriptionHtml`, `images`, `imageUrl` | full seller description and every full-size image |

Fields the site does not provide are `null`. With `fetchDetails: false` you get the result-card fields only (title, prices, bids, end time, category ids, seller id and rating, thumbnail; seller pages add condition, watchers, seller name/prefecture/rating count/store flag) at 50 organic listings per request (plus a few promoted cards, flagged `isPromoted`).

### Input

| Field | Description |
|---|---|
| `keyword` | Search text, as typed on the site (Japanese works best). Optional if `categoryId` is set. |
| `categoryId` | Numeric category id — the number in `https://auctions.yahoo.co.jp/category/list/<id>/`. Alone it lists the whole category; with `keyword` it searches within it. |
| `sellerId` | Seller id (`aucUserId`) — the id in `https://auctions.yahoo.co.jp/seller/<id>` and the `sellerId` of every scraped item; a full seller URL works too. Lists that seller's live listings; `keyword` / `categoryId` narrow within them. Not combinable with `listingType` other than `all`. Seller-page rows also carry `conditionCode`/`condition`, `watchers`, `sellerName`, `sellerPrefecture`, `sellerRatingCount`, `sellerIsStore` without a detail fetch, and the run's `SUMMARY` record gets a `seller` profile (`id, name, isStore, isEkycVerified, ratingCount, goodRatingPercent`). |
| `sort` | `relevance` (site default), `endingSoonest`, `newest`, `priceAsc`, `priceDesc`, `bidsDesc`. |
| `listingType` | `all`, `auction` (bidding only), `fixedPrice` (定額 / buy-now only). |
| `minPrice` / `maxPrice` | Current-price bounds in yen (whole numbers; the site's own price filter). |
| `maxItems` | Stop after this many listings (default 100, max 5000). |
| `fetchDetails` | Open every listing page for condition, description, images, seller details (default on). |
| `maxConcurrency`, `proxyConfiguration` | Usual crawler knobs. |

Example — film cameras ending soonest, list only:

```json
{ "categoryId": "23640", "sort": "endingSoonest", "listingType": "auction", "maxItems": 500, "fetchDetails": false }
```

### Pricing

Pay per event: one `item` event per listing saved to the dataset. Nothing is charged for list pages, detail pages that turn out to have ended, or failed requests. The run stops cleanly when your **maximum total charge** is reached and never charges past it.

### Notes and limits

- Seller pages use a different (Next.js) layout than search results; the actor maps both to the same item fields, but seller-page rows have no `timeLeftText` (use `endTime`). An unknown seller id fails the run (the site redirects it to its home page).
- Live listings only. Sold-price history (`/closedsearch/`) is disallowed by the site's robots.txt and is not scraped.
- Terms: the LY Corporation common terms, the Yahoo! Auctions guideline and its detailed rules (checked 2026-09-01) contain no clause against automated reading of public pages; they do prohibit access that puts an excessive load on the servers and masking your IP address through external servers. Keep `maxConcurrency` at its default (5) or lower and leave `proxyConfiguration` empty; the site answers plain requests from Apify's own IPs. Do not use the output to contact or profile individual sellers beyond what a purchase requires (the guideline restricts collecting other users' personal information for that purpose).
- The site paginates to roughly 5000 results per query; narrow with `categoryId`, `listingType` or `minPrice`/`maxPrice` to go deeper into a topic.
- Listings can end between the search page and the detail fetch; those are skipped (not charged) and the crawler keeps walking until `maxItems` is reached or results run out.
- Prices are in Japanese yen as integers. Times are converted from JST to ISO 8601 UTC.

### Sample item

```json
{
  "id": "b1242172828",
  "url": "https://auctions.yahoo.co.jp/jp/auction/b1242172828",
  "title": "希少 英国限定 200台 MINOLTA AF-C シルバー FLASH KIT EF-C …",
  "currentPrice": 16800,
  "buyNowPrice": null,
  "startPrice": 14800,
  "bids": 7,
  "bidders": 4,
  "watchers": 21,
  "endTime": "2026-09-02T10:55:39.000Z",
  "condition": "目立った傷や汚れなし",
  "isFreeShipping": true,
  "shippingPaidBy": "seller",
  "categoryId": "2084005100",
  "categoryName": "コンパクトカメラ",
  "brand": "コニカミノルタ",
  "sellerId": "6zME3juXWF7V2s4RXKuFS97aWJmfj",
  "sellerGoodRatingPercent": 99.9,
  "sellerRatingCount": 2190,
  "images": ["https://auctions.c.yimg.jp/images.auctions.yahoo.co.jp/image/…jpg", "…"]
}
```

# Actor input Schema

## `keyword` (type: `string`):

Search keyword, exactly as you would type it into the search box on auctions.yahoo.co.jp (Japanese works best, e.g. ライカ M3, ポケモンカード, セイコー ダイバー). Optional when categoryId is set.

## `categoryId` (type: `string`):

Optional numeric Yahoo! Auctions category id (the number in https://auctions.yahoo.co.jp/category/list/<id>/), e.g. 23640 フィルムカメラ, 2084005100 コンパクトカメラ, 26146 ポケモンカード, 2084005428 腕時計. Combine with keyword to search within a category; alone it lists the whole category.

## `sellerId` (type: `string`):

Optional seller id (aucUserId) to list one seller's live listings — the id in https://auctions.yahoo.co.jp/seller/<id> (also the sellerId field of every scraped item); the full seller URL is accepted too. keyword and categoryId narrow within the seller; listingType must stay "all" (the seller page ignores it).

## `sort` (type: `string`):

Order of the results (and therefore of what maxItems keeps).

## `listingType` (type: `string`):

All listings, auctions only, or fixed-price (定額 / buy-now only) listings.

## `minPrice` (type: `integer`):

Only listings whose current price is at least this many yen (the site's own price filter).

## `maxPrice` (type: `integer`):

Only listings whose current price is at most this many yen.

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

Stop after this many items have been saved. Each list page holds 50; the site paginates to about 5000 results per query.

## `fetchDetails` (type: `boolean`):

Open every item for condition, quantity, watchers, bidders, shipping methods, category names, brand, seller rating count, full description and all images. Turn off to get only the result-card data (title, prices, bids, end time, seller id, thumbnail) — about 50× fewer requests.

## `maxConcurrency` (type: `integer`):

Parallel page fetches.

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

Optional. The site served every test request without a proxy; use one only if your IP gets blocked.

## Actor input object example

```json
{
  "keyword": "ライカ M3",
  "categoryId": "23640",
  "sellerId": "71phybV5iYfevRkMCStBb5G6rjRJA",
  "sort": "relevance",
  "listingType": "all",
  "minPrice": 5000,
  "maxPrice": 20000,
  "maxItems": 500,
  "fetchDetails": true,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `items` (type: `string`):

Dataset items, one per Yahoo! Auctions listing (title, prices, bids, end time, condition, seller).

# 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 = {
    "keyword": "ライカ"
};

// Run the Actor and wait for it to finish
const run = await client.actor("ardent_fork/yahoo-auctions-japan").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 = { "keyword": "ライカ" }

# Run the Actor and wait for it to finish
run = client.actor("ardent_fork/yahoo-auctions-japan").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 '{
  "keyword": "ライカ"
}' |
apify call ardent_fork/yahoo-auctions-japan --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ardent_fork/yahoo-auctions-japan"
        }
    }
}

```

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/U1q3EsLaqc7jlPGAO/builds/wOl8IA476rFr9d0fJ/openapi.json
