# Depop Scraper – Product Search, Prices, Sellers & Sold Listings (`romantic_boysenberry/depop-product-search-scraper`) Actor

Scrape Depop product listings by keyword or search URL: price, discount, brand, size, condition, category, images, likes, seller username and rating. Cursor-safe pagination, stable product IDs. No login, no API key, no browser. $1 per 1,000 products.

- **URL**: https://apify.com/romantic_boysenberry/depop-product-search-scraper.md
- **Developed by:** [정무 최](https://apify.com/romantic_boysenberry) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.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.

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

## Depop Scraper – Product Search, Prices, Sellers & Sold Listings

**Depop Scraper** extracts product listings from **Depop**, the resale fashion marketplace used by over 30 million buyers and sellers for vintage, streetwear, sneakers and Y2K clothing. Type a search keyword such as `nike dunk`, `vintage levis 501` or `carhartt jacket`, or paste a Depop search URL with your filters applied, and get every listing as clean JSON, CSV or Excel: price, original and discounted price, brand, size, condition, category, colours, images, like count, sold status and, optionally, the seller's public username, star rating and items-sold count.

No Depop login. No API key. No headless browser. Pay only for the products you receive.

### What does Depop Scraper do?

Depop has no public API. This Depop scraper reads the same product search feed that the depop.com website calls when you scroll through search results, so it returns exactly what a shopper sees, in the order a shopper sees it:

- Sneakers and footwear (Nike, Jordan, New Balance, Adidas Samba)
- Streetwear and vintage (Carhartt, Stüssy, Supreme, Ralph Lauren, Harley-Davidson tees)
- Denim and workwear (Levi's 501, Dickies, Wrangler)
- Designer resale (Miu Miu, Prada, Vivienne Westwood, Coach, Marc Jacobs)
- Y2K, 90s and archive pieces, band tees, jewellery, bags and accessories

One run can cover a whole niche: search 20 brand keywords, take 500 listings from each, and you have 10,000 structured Depop products with prices in a few minutes.

### Why use this Depop scraper?

- **Cursor-correct pagination.** Depop's search feed is cursor based. Depop Scraper follows the server cursor page by page, so you never get duplicated or skipped listings, and every item carries a stable numeric `id` you can use as a primary key.
- **Pure HTTP, no browser.** Fast, cheap on compute, and a single run handles thousands of listings on 512 MB of memory.
- **Pay per product.** $1.00 per 1,000 products, billed only for listings that land in your dataset. No subscription, no minimum.
- **Keyword or URL input.** Type keywords, or paste a depop.com search URL with price range, brand, size, condition, colour, category, gender and discount filters already applied.
- **Any Depop market.** Choose the US, UK, Australia, Canada, New Zealand or EU marketplace and get prices in USD, GBP, AUD, CAD, NZD or EUR.
- **Seller details on demand.** Turn on `scrapeDetails` to add the seller's public username, verified badge, star rating and total items sold.
- **Ready for AI agents.** Every Apify Actor is also an API endpoint and an MCP server, so Claude, ChatGPT, LangChain or n8n workflows can call Depop Scraper directly.

### Output: what data can you extract from Depop?

Each dataset item is one product listing:

| Field | Example | Description |
|---|---|---|
| `id` | `945582430` | Depop product ID. Stable across runs; use it to deduplicate and to track price changes. |
| `slug` | `efril7x8-nike-black-drawstring-bag-with-1766` | URL slug |
| `url` | `https://www.depop.com/products/efril7x8-nike-black-drawstring-bag-with-1766/` | Product page |
| `description` | `Nike black drawstring bag with white Nike swoosh #nike` | Listing text written by the seller (Depop listings have no separate title) |
| `price` | `20` | Current price the buyer pays for the item |
| `currency` | `USD` | Currency of all price fields |
| `originalPrice` | `25` | Price before any seller discount |
| `discountedPrice` | `20` | Discounted price, or `null` when the item is not reduced |
| `discountPercentage` | `20` | Seller discount in percent, or `null` |
| `shippingPrice` | `1.99` | Shipping cost to the selected country, `0` when the seller covers shipping |
| `brand` | `Nike` | Brand name |
| `brandId` | `270` | Depop brand ID (use it in `searchUrls` as `brands=270`) |
| `category` | `Bags & Purses` | Display category |
| `group` / `productType` | `accessories` / `bag` | Depop category taxonomy |
| `gender` | `female` | Section the item is listed in (`male`, `female`, `unisex`) |
| `isKids` | `false` | Kids section flag |
| `condition` | `used_excellent` | `brand_new`, `used_like_new`, `used_excellent`, `used_good`, `used_fair` |
| `colours` | `["black"]` | Colour tags |
| `sizes` | `["M"]` | Available sizes (several for multi-size listings) |
| `status` | `STATUS_ONSALE` | Listing status as reported by Depop |
| `isSold` | `false` | `true` when the listing is marked sold |
| `isBoosted` | `false` | Seller paid to boost the listing |
| `listedQuantity` | `1` | Quantity listed |
| `likeCount` | `12` | Number of likes |
| `location` | `Hesperia, United States` | Public city and country of the listing |
| `country` | `US` | Seller country code |
| `images` | `["https://media-photos.depop.com/.../P0.jpg"]` | Full-size listing photos |
| `sellerUsername` | `efril768` | Seller's public Depop handle (with `scrapeDetails`) |
| `sellerId` | `22769743` | Seller account ID (with `scrapeDetails`) |
| `sellerUrl` | `https://www.depop.com/efril768/` | Seller shop page (with `scrapeDetails`) |
| `sellerVerified` | `false` | Verified seller badge (with `scrapeDetails`) |
| `sellerRating` | `5` | Shop star rating, 1 to 5 (with `scrapeDetails`) |
| `sellerSoldCount` | `32` | Items the seller has sold (with `scrapeDetails`) |
| `query` | `nike` | The keyword or URL that produced this item |

Example output (JSON):

```json
{
  "id": 945582430,
  "slug": "efril7x8-nike-black-drawstring-bag-with-1766",
  "url": "https://www.depop.com/products/efril7x8-nike-black-drawstring-bag-with-1766/",
  "description": "Nike black drawstring bag with white Nike swoosh and 'NIKE BY YOU' text #nike #custom",
  "price": 20,
  "currency": "USD",
  "originalPrice": 20,
  "discountedPrice": null,
  "discountPercentage": null,
  "shippingPrice": 1.99,
  "brand": "Nike",
  "brandId": 270,
  "category": "Bags & Purses",
  "group": "accessories",
  "productType": "bag",
  "gender": "female",
  "isKids": false,
  "condition": "used_excellent",
  "colours": ["black"],
  "sizes": [],
  "status": "STATUS_ONSALE",
  "isSold": false,
  "isBoosted": false,
  "listedQuantity": 1,
  "likeCount": 0,
  "location": "Hesperia, United States",
  "country": "US",
  "images": ["https://media-photos.depop.com/b1/22769743/4898529943_5f02742d537e43338b16ebe5edb3ba55/P0.jpg"],
  "sellerId": 22769743,
  "sellerUsername": "efril768",
  "sellerUrl": "https://www.depop.com/efril768/",
  "sellerVerified": false,
  "sellerSoldCount": 32,
  "sellerRating": 5,
  "query": "nike"
}
```

Download the dataset as JSON, CSV, Excel, XML or RSS from the Apify Console, or fetch it through the API.

### How to scrape Depop products

1. Open **Depop Scraper** in Apify Store and click **Try for free**.
2. Enter one or more **keywords** (`nike dunk low`, `vintage carhartt`, `miu miu bag`) or paste **Depop search URLs**.
3. Pick a **Sort** (relevance, price low to high, price high to low) and a **Country** (US, UK, AU, CA, NZ, EU).
4. Set **Max products per search** (default 50). Turn on **Scrape product page for seller details** if you need seller username and rating.
5. Click **Start**. Results appear in the **Output** tab within a minute.
6. Export, or schedule the run to repeat hourly or daily for price monitoring.

#### How do I build a Depop search URL with filters?

Search on depop.com, apply filters in the sidebar, and copy the address bar. The URL carries every filter as a query parameter and Depop Scraper understands all of them:

```
https://www.depop.com/search/?q=nike&priceMin=20&priceMax=80&conditions=brand_new,used_like_new&isDiscounted=true&sort=priceAscending
https://www.depop.com/gb/search/?q=carhartt+jacket&brands=1050&colours=brown&gender=male
https://www.depop.com/search/?q=dunk&groups=footwear&productTypes=sneakers&sizes=...
```

Supported parameters: `q`, `priceMin`, `priceMax`, `brands`, `conditions`, `colours`, `sizes`, `groups`, `productTypes`, `gender`, `isKids`, `isDiscounted`, `sort`. A `/gb/`, `/au/` or other locale prefix in the path switches the market and currency.

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `keywords` | array | `["nike"]` | Depop search queries. Each keyword is one search. |
| `searchUrls` | array | `[]` | Full depop.com search URLs with filters. Combined with keywords. |
| `maxItemsPerSearch` | integer | `50` | Products collected per keyword or URL (1 to 10,000). |
| `sort` | string | `relevance` | `relevance`, `priceAscending`, `priceDescending` or `newlyListed`. |
| `country` | string | `us` | Market and currency: `us`, `gb`, `au`, `ca`, `nz`, `ie`, `de`, `fr`, `it`, `es`, `nl`. |
| `scrapeDetails` | boolean | `false` | Open each product page to add seller username, rating and sold count. One extra request per product. |
| `proxyConfiguration` | object | Apify residential, US | Keep the residential proxy. Cloudflare challenges about half of datacenter sessions, and product pages block datacenter IPs entirely. |

Example input:

```json
{
  "keywords": ["nike dunk low", "new balance 2002r"],
  "searchUrls": ["https://www.depop.com/search/?q=carhartt&priceMax=60&isDiscounted=true"],
  "maxItemsPerSearch": 200,
  "sort": "priceAscending",
  "country": "us",
  "scrapeDetails": false,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}
```

### How much does it cost to scrape Depop?

Depop Scraper uses Apify's **pay-per-event** pricing: **$0.001 per product** ($1.00 per 1,000 products). You are charged only for listings that land in your dataset. A run that returns nothing costs nothing beyond Apify platform usage.

| Products | Price |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |

Apify's free plan includes $5 of monthly usage, enough for several thousand Depop listings to evaluate the Actor. Without `scrapeDetails`, one request fetches 50 products (about 65 KB), so compute and residential proxy traffic per product are a fraction of a cent. With `scrapeDetails`, each product adds one HTML request of about 0.5 MB; budget roughly ten times the run time and proxy traffic accordingly.

### Use cases for Depop product data

- **Price monitoring and resale arbitrage:** Track the floor price of `nike dunk low panda` or `levis 501 vintage` every hour and get alerted when a listing drops below your threshold.
- **Pricing research for sellers:** Before listing, pull 500 comparable items sorted by price and see what condition, size and brand actually sell for on Depop.
- **Market and trend analysis:** Count listings, average prices and discount rates per brand or category across the US, UK and Australian marketplaces.
- **Sold listings and sell-through:** Re-scrape the same product IDs and watch `isSold` flip to measure how fast a category sells.
- **Brand protection:** Find listings of your brand, check descriptions and images, and identify sellers by public username.
- **AI agents and chatbots:** Let an agent answer "find me a vintage Carhartt jacket under $60" by calling Depop Scraper through MCP.
- **Datasets for ML:** Thousands of real listing descriptions with brand, condition and price labels for classification or price-prediction models.

### Use Depop Scraper from code

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("romantic_boysenberry/depop-product-search-scraper").call(run_input={
    "keywords": ["nike dunk low"],
    "maxItemsPerSearch": 200,
    "sort": "priceAscending",
    "country": "us",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["id"], item["price"], item["currency"], item["description"][:60])
```

**JavaScript**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('romantic_boysenberry/depop-product-search-scraper').call({
  searchUrls: ['https://www.depop.com/gb/search/?q=carhartt+jacket&priceMax=60'],
  maxItemsPerSearch: 100,
  scrapeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'products');
```

**cURL**

```bash
curl -X POST "https://api.apify.com/v2/acts/romantic_boysenberry~depop-product-search-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["vintage levis 501"],"maxItemsPerSearch":50,"sort":"priceAscending"}'
```

The Actor also works as an **MCP server** for Claude Desktop, Cursor and other agents, and plugs into **n8n**, **Make**, **Zapier** and **LangChain** through the standard Apify integrations.

### Tips for best results

- Specific keywords beat broad ones. `nike dunk low panda` returns comparable items; `nike` returns 2.9 million listings.
- Use a search URL with `priceMin`, `priceMax` and `conditions` to narrow results server-side instead of downloading and filtering thousands of items.
- Sort by `priceAscending` to find the floor price of a model quickly with a small `maxItemsPerSearch`.
- To monitor prices over time, schedule the same input and join runs on `id`. Items are deduplicated by `id` within a run, including across keywords.
- Keep `scrapeDetails` off unless you need the seller fields; it adds one request per product.
- Keep the default US residential proxy. Datacenter proxy is cheaper but Cloudflare challenges roughly one search in two, and product pages block datacenter IPs entirely.

### Limitations

- Depop returns at most 50 products per request; the Actor pages through the cursor automatically.
- The `newlyListed` sort is protected by a Cloudflare challenge on many networks. Relevance and price sorts are not. If `newlyListed` fails, use relevance and sort by `id` descending, which closely tracks listing recency.
- Depop does not expose a listing creation date to anonymous visitors, so there is no `dateCreated` field. Product IDs are monotonically increasing and serve as a recency proxy.
- Seller rating and sold count are read from the product page and are only present with `scrapeDetails`. Sellers with no sales yet have `sellerSoldCount: null`. Review text is not collected.
- Depop changes its site occasionally. If a run suddenly returns zero products, the Actor fails loudly instead of silently succeeding; check the run log and open an issue.

### Legal and ethical use

Depop Scraper collects only publicly visible listing content and the public shop username shown on each listing. It does not log in, does not bypass access controls, and does not collect private contact details, real names or addresses. Listing text and photos may be protected by copyright and personal data rules in your jurisdiction; use the data for analysis, research and monitoring in line with [Depop's terms of service](https://www.depop.com/terms/) and applicable law, including GDPR and the UK Data Protection Act where relevant. You are responsible for how you use the output.

### FAQ

**Does Depop have an official API?**
No. Depop offers no public API for search or listings. This Actor reads the same product feed the depop.com website uses.

**Can I scrape a specific Depop shop or seller?**
This Actor focuses on search. Paste a search URL that includes the seller's items (for example a brand filter) or use the `sellerUsername` field with `scrapeDetails` to group results by seller. A dedicated shop scraper is planned.

**Can I get sold listings?**
Listings that are marked sold carry `status: STATUS_SOLD` and `isSold: true`. Depop's search feed primarily returns items on sale, so the most reliable way to measure sales is to re-scrape known `id`s and watch `isSold` change.

**Why do I see a 403 or "Cloudflare challenge" error?**
Depop protects some query shapes and some IP ranges. Keep the default Apify residential proxy (country US) and avoid the `newlyListed` sort. The Actor retries each blocked request on a fresh proxy session before giving up, and a search that still fails is reported as a warning while the other searches continue.

**How fresh is the data?**
Every run fetches live from Depop. Nothing is cached.

**Can I run it on a schedule?**
Yes. Use Apify Schedules to run hourly, daily or weekly, and connect a webhook or integration to receive new listings automatically.

**Is there a free trial?**
Apify's free plan gives you $5 of usage every month, so you can test Depop Scraper without a credit card.

### Related Actors

- [Depop Listings Scraper](https://apify.com/piotrv1001/depop-listings-scraper) by piotrv1001
- [Depop Scraper - Listings, Shops, Sellers & Reviews](https://apify.com/abotapi/depop-scraper) by abotapi
- [Depop Scraper](https://apify.com/lexis-solutions/depop-scraper) by lexis-solutions
- [Naver Place Reviews Scraper](https://apify.com/romantic_boysenberry/naver-place-reviews-scraper) from this developer, for Korean local business reviews
- More resale and marketplace Actors from this developer are on the way.

***

### Depop 상품 검색 수집기 (한국어 안내)

**Depop 상품 검색 수집기**는 글로벌 중고 패션 마켓플레이스 Depop(디팝)의 상품 리스팅을 검색어 또는 필터가 적용된 검색 URL로 수집해 JSON, CSV, Excel로 내려받는 Apify 액터입니다. 로그인, API 키, 브라우저 설치가 모두 필요 없고, 상품 1건당 $0.001(1,000건에 $1)로 받은 만큼만 과금됩니다. 출력 필드는 상품 ID, 설명, 현재가·정가·할인가·할인율, 배송비, 브랜드, 사이즈, 상태(컨디션), 카테고리, 색상, 좋아요 수, 판매 완료 여부, 이미지, 그리고 옵션으로 판매자 공개 아이디·평점·판매 건수입니다. 미국·영국·호주·캐나다·뉴질랜드·EU 마켓을 선택해 해당 통화로 가격을 받을 수 있어 리셀 시세 조사, 가격 모니터링, 브랜드별 시장 분석, 구매대행 소싱에 활용할 수 있습니다. 공개된 리스팅 정보와 공개 아이디만 수집하며 개인정보는 수집하지 않습니다. 사용법: 액터 페이지에서 **Try for free** → 검색어(예: `nike dunk low`) 입력 → **Start** → Output 탭에서 다운로드. 예약 실행(Schedules)으로 시세를 주기적으로 자동 수집할 수도 있습니다.

# Actor input Schema

## `keywords` (type: `array`):

Depop search queries, e.g. "nike", "vintage levis 501", "carhartt jacket". Each keyword is one search; results are sorted by the "Sort" option below.

## `searchUrls` (type: `array`):

Full search URLs copied from depop.com with filters applied, e.g. https://www.depop.com/search/?q=nike\&priceMax=50\&isDiscounted=true\&sort=priceAscending. Supported filters: q, priceMin, priceMax, brands, conditions, colours, sizes, groups, productTypes, gender, isKids, isDiscounted, sort. A /gb/ or /au/ locale prefix sets the country. Used in addition to keywords.

## `maxItemsPerSearch` (type: `integer`):

Upper bound of products collected for each keyword or URL. Billing is per product pushed.

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

Result order for keywords. "newlyListed" is protected by a Cloudflare challenge on some networks; if it fails, use relevance or a price sort.

## `country` (type: `string`):

Depop marketplace to search. Prices are returned in that market's currency (us=USD, gb=GBP, au=AUD, ca=CAD, nz=NZD, EU countries=EUR).

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

Also open each product page to add sellerUsername, sellerId, sellerVerified, sellerRating and sellerSoldCount. One extra request per product, so runs are slower and use more residential proxy traffic (about 0.5 MB per product).

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

Keep Apify RESIDENTIAL proxy (country US): Cloudflare challenges about half of datacenter sessions and product pages block datacenter IPs entirely. Datacenter proxy is cheaper but roughly one search in two fails; running without proxy fails on most networks.

## Actor input object example

```json
{
  "keywords": [
    "nike"
  ],
  "maxItemsPerSearch": 50,
  "sort": "relevance",
  "country": "us",
  "scrapeDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `products` (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 = {
    "keywords": [
        "nike"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("romantic_boysenberry/depop-product-search-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 = {
    "keywords": ["nike"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("romantic_boysenberry/depop-product-search-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 '{
  "keywords": [
    "nike"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call romantic_boysenberry/depop-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,romantic_boysenberry/depop-product-search-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/toyckPGTJnAjB4SCt/builds/3immce6MhghdxWOhw/openapi.json
