# GOAT Scraper (`dadhalfdev/goat-scraper`) Actor

Scrape product listings from GOAT.com by category, collection, or brand. Collect titles, brands, prices, images, stock status, and product URLs for up to 1000 items per run.

- **URL**: https://apify.com/dadhalfdev/goat-scraper.md
- **Developed by:** [Marco Rodrigues](https://apify.com/dadhalfdev) (community)
- **Categories:** 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 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

## 🐐 GOAT Product Scraper

Want to track sneakers, apparel, and collectibles on [GOAT](https://www.goat.com/) without clicking through endless pages? This scraper makes it easy!

Pick a **Category**, **Collection**, or **Brand**, set how many products you want, and get clean product data — titles, brands, prices, images, and links — ready to export as CSV, Excel, or JSON (up to **800** items per run).

### 💡 Perfect for...

- **Sneakerheads & shoppers:** Monitor Just Dropped, Most Wanted, or your favorite brands for new listings and price moves.
- **Resellers & inventory hunters:** Build watchlists by brand or category and compare market lows vs. retail.
- **Market researchers:** Analyze what’s trending across footwear, apparel, bags, jewelry, and collectibles.
- **Data analysts:** Download structured product data for dashboards, pricing models, or competitor tracking.
- **🤖 AI Agents:** Feed agents live GOAT listings for alerts and workflows.

### ✨ Why you'll love this scraper

- 🧭 **Browse your way:** Start from a **Category**, a curated **Collection**, or a specific **Brand** — just like shopping on GOAT.
- 🏷️ **Rich product cards:** Capture title, brand, product type, stock status, lowest price, retail price, image, and release date when available.
- 👟 **Popular picks built in:** Sneakers, Apparel, Just Dropped, Most Wanted, Nike, Air Jordan, adidas, and many more.
- ✍️ **Custom brands welcome:** Type any brand name if it’s not in the suggested list.

### 📦 What's inside the data?

For every product, you will get:

- **Core Details:** `id`, `title`, `url`, `brand`, `product_type`, `category`, `gender`, `silhouette`
- **Availability & Pricing:** `in_stock`, `under_retail`, `lowest_price`, `retail_price`, `currency`
- **Media & Timing:** `image_url`, `release_date`, `season_year`
- **Extras:** `tags`, `activities`
- **Your selection:** `browse_by`, `selection`

### 🗂️ Browse options

1. Choose **Browse by**: Category, Collection, or Brand
2. Fill the matching field (only the one that matches your Browse by choice is used)

### 🚀 Quick start

1. Open the Actor **Input** tab.
2. Set **Browse by** to Category, Collection, or Brand.
3. Select the matching **Category**, **Collection**, or **Brand**.
4. Set **Max items** (up to 800).
5. **Click Start** and export CSV, Excel, or JSON when done.

***

#### Input & output examples

**Input Example (Category):**

```json
{
  "browse_by": "Category",
  "category": "Sneakers",
  "max_items": 100
}
```

**Output Example:**

```json
{
  "id": "1711594",
  "title": "Air Jordan 5 Retro 'Black Carolina / UNC' 2026",
  "url": "https://www.goat.com/sneakers/air-jordan-5-retro-black-university-blue-2026-dd0587-008",
  "brand": "Air Jordan",
  "product_type": "sneakers",
  "lowest_price": 226.0,
  "retail_price": 194.0,
  "currency": "EUR",
  "in_stock": true
}
```

### Input reference

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `browse_by` | string | Yes | Category, Collection, or Brand. |
| `category` | string | When browse\_by is Category | GOAT category (e.g. Sneakers, Apparel). |
| `collection` | string | When browse\_by is Collection | GOAT collection (e.g. Just Dropped). |
| `brand` | string | When browse\_by is Brand | Brand name (e.g. Nike, Air Jordan). |
| `max_items` | integer | No | Max products to scrape (12–800, default: 100). |

# Actor input Schema

## `browse_by` (type: `string`):

Choose how you want to browse GOAT. Then fill the matching option below (Category, Collection, or Brand).

## `category` (type: `string`):

Used when Browse by = Category. Pick a GOAT product category.

## `collection` (type: `string`):

Used when Browse by = Collection. Pick a curated GOAT collection.

## `brand` (type: `string`):

Used when Browse by = Brand. Pick a popular brand, or type any GOAT brand name / slug (e.g. Nike, Air Jordan, fear-of-god).

## `max_items` (type: `integer`):

Maximum number of products to scrape (12–800).

## Actor input object example

```json
{
  "browse_by": "Category",
  "category": "Sneakers",
  "collection": "Just Dropped",
  "brand": "Nike",
  "max_items": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table view of scraped GOAT products using the dataset 'overview' view.

## `results` (type: `string`):

All scraped GOAT products from the default dataset without view transformation.

# 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("dadhalfdev/goat-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("dadhalfdev/goat-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 '{}' |
apify call dadhalfdev/goat-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/oNyMmEP9Q9XNSMXrA/builds/7baMDsojZN5snR2hA/openapi.json
