# HipStamp Scraper — Stamp Prices, Listings & Seller Data (`scrapersdelight/hipstamp-scraper`) Actor

Scrape HipStamp collectible-stamp listings — title, price, seller, condition, country & photos — by keyword or seller. No login or API key. Schedule it as a new-listing / price-drop monitor with Slack, email & webhook alerts. $4 per 1,000 listings.

- **URL**: https://apify.com/scrapersdelight/hipstamp-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Automation, E-commerce, Agents
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 per record returneds

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

## 📮 HipStamp Scraper — Stamp Marketplace Listings & Price Monitor

**Scrape live HipStamp.com collectible-stamp listings — title, price, seller, condition, country, item specifics, and photos — by keyword or seller. Then run it on a schedule as a new-listing / price-drop monitor that pings Slack, email, or webhook the moment a stamp you want is listed, so you grab it first.**

Turn the world's largest stamp marketplace into a clean dataset or a real-time deal alert. No login, no browser automation — listing title, price, seller and photo come straight from the server-rendered grid.

***

### What does HipStamp Scraper do?

HipStamp Scraper extracts **collectible-stamp listings** from [HipStamp.com](https://www.hipstamp.com) and returns clean, structured rows you can export to **JSON, CSV, Excel, or push to your app via API**. US classics, worldwide, topicals, errors, covers, mint and used — across millions of listings from 200+ trusted dealers.

- 🔎 **Search by keyword** — Scott numbers, countries, topics, years ("benjamin franklin", "penny black", "germany 1936"). Server-side.
- 🏪 **Scope to a seller** — pull a single dealer's entire store.
- 💵 **Price + type** — fixed-price (buyout) and auction listings, with a price-band filter.
- 🏷️ **Seller, condition, country, item specifics** — the catalog detail collectors compare on.
- 🖼️ **Full photo gallery** — every image on the listing.
- 🔔 **New-listing & price monitor** — schedule it and get **Slack / email / webhook alerts** when a matching stamp is listed or a watched listing's price changes.

***

### What data does it extract?

For every stamp listing:

- 🆔 `listing_id`, 🔗 `lot_url`, 🏷️ `title`
- 💵 `price`, `price_type` (fixed / auction)
- 🏪 `seller`, 🧾 `condition`, 🌍 `country`, 📋 `specifics{}`
- 📝 `description`, 🖼️ `images[]`, `thumbnail`
- ⭐ `sponsored`, ✨ `is_new` (monitor mode), 🕒 `scraped_at`

***

### Who is it for?

- 🧑‍🎨 **Collectors** hunting specific stamps, countries, or Scott numbers — alerted the moment one lists.
- 🛒 **Dealers & resellers** monitoring market pricing and competitor inventory.
- 💹 **Investors** tracking price trends on classic/rare issues.
- 📊 **Catalog & price-guide builders** assembling structured stamp datasets.

***

### Two ways to use it

1. **Bulk scrape** — pull every listing for a keyword, price band, or a seller's store into one clean dataset.
2. **New-listing / price monitor** *(the recurring play)* — set `monitorMode: true`, attach an **Apify Schedule**, and the actor alerts **only newly-listed stamps** (or price changes on your watchlist). Perfect for want-lists.

***

### How to use it (step by step)

1. Click **Try for free**.
2. Enter a **keyword** (e.g. `benjamin franklin`) — or a **seller store**, or leave both blank to browse all.
3. *(Optional)* add a price band, listing type, or condition filter.
4. *(Optional)* turn on **Fetch full details** for the full gallery + item specifics.
5. Click **Start**, then open the **Dataset** tab to view/export.
6. *(Optional)* set **monitorMode** + a **Schedule** + an alert channel to get pinged on new listings.

#### Quick start

```json
{ "keyword": "benjamin franklin", "maxLots": 50 }
```

#### New-listing monitor example

```json
{
  "keyword": "penny black",
  "monitorMode": true,
  "alertOnNewLot": true,
  "slackWebhookUrl": "https://hooks.slack.com/services/%E2%80%A6"
}
```

***

### Input

| Field | What it does |
|-------|--------------|
| `keyword` | server-side keyword search over listing titles |
| `sellerStore` | scope to one dealer's store |
| `priceMin` / `priceMax` | price band filter |
| `listingType` | `all` · `fixed` · `auction` |
| `conditionContains` | client-side title/condition substring filter (e.g. `mint`) |
| `sortBy` | `newest` · `price_asc` · `price_desc` · site default |
| `fetchDetails` | add description, item specifics, and the full photo gallery |
| `maxLots` | hard cap per run (0 = unlimited) |
| `monitorMode`, `alertOnNewLot`, `alertOnPriceChange`, `watchlistIds` | recurring watcher + alerts |
| `webhookUrl`, `slackWebhookUrl`, `emailRecipients` | alert channels |
| `proxyConfiguration`, `requestConcurrency` | proxy + parallelism |

***

### Output

Each listing is one dataset record (fields above). Export to **JSON, CSV, Excel, HTML, or RSS**, or fetch via the **Apify API**. Prices are numbers in USD.

***

### How much does it cost?

Pay-per-event — you pay for what you pull, no subscription. Suggested rates:

| Event | What it covers | Suggested price |
|-------|----------------|-----------------|
| `lot-scraped` | each listing returned | ~$0.003 / listing |
| `lot-detail-enriched` | each detail-page fetch | ~$0.003 / listing |
| `monitor-run-completed` | each scheduled watch run | ~$0.05 / run |
| `new-lot-detected` | each newly listed item | ~$0.02 / item |
| `alert-delivered` | each Slack/email/webhook push | ~$0.005 / alert |

*(Final per-event prices are set on the actor's pricing page.)*

***

### Is it legal to scrape HipStamp?

HipStamp listings are **public e-commerce product data**, browsable without a login, and are item/listing data — not personal data. Scraping publicly available listings is generally legal, but you are responsible for your use: **review the current HipStamp Terms of Service before commercial use or resale of the data**.

***

### FAQ

**What is HipStamp?**
HipStamp.com is the largest online marketplace dedicated to collectible postage stamps, hosting millions of listings from hundreds of trusted dealers worldwide.

**Do I need an account or login?**
No. The actor reads public listing data directly.

**Can I monitor new listings and get alerts?**
Yes. Turn on `monitorMode`, attach an Apify **Schedule**, and add a Slack/webhook/email channel. Each run alerts **only listings new since the last run** — ideal for a want-list.

**Can I scrape a single dealer's store?**
Yes — set `sellerStore` to the dealer's store name.

**Does it return photos and item specifics?**
Yes — `thumbnail` per card, and the full `images[]` gallery plus condition/country `specifics` when `fetchDetails` is on.

**How do I export the data?**
JSON, CSV, Excel, HTML, or RSS from the Dataset tab, or via the Apify API.

***

### You might also like

- 📚 **HipComic Scraper** — the same engine for collectible comics (HipComic.com)
- 📯 **HipPostcard Scraper** — the same engine for collectible postcards (HipPostcard.com)
- 🔨 Auction & marketplace scrapers for other collectibles verticals

***

### Feedback

Found a missing field or want a new filter? Open an issue on the actor — fast fixes and feature requests welcome.

# Actor input Schema

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

Free-text query (server-side) matched against listing titles, e.g. 'benjamin franklin', 'penny black', 'germany 1936'. Leave empty to browse everything.

## `sellerStore` (type: `string`):

Optional: scope to a single HipStamp seller store by its store name (from /store/{name}). Leave empty for the whole marketplace.

## `priceMin` (type: `integer`):

Only keep listings priced at/above this. Leave empty for no floor.

## `priceMax` (type: `integer`):

Only keep listings priced at/below this — bargain filter. Leave empty for no cap.

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

Keep fixed-price (buyout) listings, auction listings, or all.

## `conditionContains` (type: `string`):

Optional client-side filter: keep only listings whose title/condition contains this text (e.g. 'mint', 'used', 'MNH').

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

Client-side ordering of the output.

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

Open each listing's detail page for the full description, item specifics (condition, country, etc.) and the complete photo gallery. One extra request per listing.

## `maxLots` (type: `integer`):

Hard cap on listings scraped this run (cost/safety guard). Defaults to 50 for a fast first run — set to 0 for an unlimited bulk scrape of the whole scope.

## `monitorMode` (type: `boolean`):

Recurring watcher: diff against the prior run's seen listings (per scope) and output/alert ONLY newly-listed items. Pair with an Apify Schedule.

## `alertOnNewLot` (type: `boolean`):

In monitor mode, deliver an alert for each newly-listed item via the channels below.

## `alertOnPriceChange` (type: `boolean`):

Also alert when the price changes on a watched listing (see watchlist IDs).

## `watchlistIds` (type: `array`):

Specific listing ids to track for price changes when 'Alert on price changes' is on.

## `webhookUrl` (type: `string`):

POST endpoint for new-listing alert payloads (Make / Zapier / n8n / custom).

## `slackWebhookUrl` (type: `string`):

Slack incoming-webhook URL for formatted new-listing cards.

## `emailRecipients` (type: `array`):

Email addresses for the new-listing digest (sent via apify/send-mail).

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

Proxy settings. Datacenter rotation is usually enough; switch to residential if you hit blocks at high volume.

## `requestConcurrency` (type: `integer`):

Max parallel detail-page fetches. Keep modest to respect the site.

## `diagnose` (type: `boolean`):

Dev only. Dumps raw browse + detail HTML to the key-value store and logs the parsed first row + pagination check, then exits.

## Actor input object example

```json
{
  "listingType": "all",
  "sortBy": "default",
  "fetchDetails": true,
  "maxLots": 50,
  "monitorMode": false,
  "alertOnNewLot": true,
  "alertOnPriceChange": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "requestConcurrency": 5,
  "diagnose": false
}
```

# Actor output Schema

## `listings` (type: `string`):

The dataset of scraped listings (one item per listing).

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/hipstamp-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/hipstamp-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 '{}' |
apify call scrapersdelight/hipstamp-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/hipstamp-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/yYnqh1TlNlAP5epOh/builds/lXz41K1fliHg4cTUz/openapi.json
