# Wallapop & Poshmark Scraper - Secondhand Listings, No Login (`cliqtomedia/secondhand-listings-scraper`) Actor

Scrape Wallapop (Spain, Italy, Portugal) and Poshmark (US, Canada) listings for any search, newest first: price, brand, size, condition, photos, public seller name and Wallapop location. Only-new mode for monitoring. No login.

- **URL**: https://apify.com/cliqtomedia/secondhand-listings-scraper.md
- **Developed by:** [Cliqto Media](https://apify.com/cliqtomedia) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.09 / 1,000 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

Wallapop & Poshmark Scraper searches Wallapop (Spain, Italy, Portugal) or Poshmark (US, Canada) for your search words and returns one clean row per listing, newest first: title, price, brand, size, condition, location, photos, publish time and the seller's public name.

Use it to research secondhand prices or to watch new listings without a login, cookies or an API key. The smallest run is one search with 10 listings: it finishes in a few seconds and costs about $0.002.

![Wallapop & Poshmark Listings Scraper: search Wallapop in Spain, Italy and Portugal or Poshmark in the US and Canada, get price, condition, location and photos, with an Only-new mode for monitoring](https://api.apify.com/v2/key-value-stores/hzfRazBe9M2lnwJoI/records/hero.png)

### Table of contents

- [What it does](#what-it-does)
- [Quick start](#quick-start)
- [Use cases](#use-cases)
- [Input](#input)
- [Output](#output)
- [Pricing and limits](#pricing-and-limits)
- [API, export and integrations](#api-export-and-integrations)
- [Troubleshooting](#troubleshooting)
- [FAQ](#faq)
- [Support](#support)

### What it does

The Actor runs the same search you would type in the [Wallapop](https://www.wallapop.com) or [Poshmark](https://poshmark.com) search box and saves the results newest first. Each row is one listing. Both marketplaces use the same output fields, so you can put the rows in one table.

- **Wallapop:** a whole country (`ES`, `IT` or `PT`), a large city, or a point with a radius. With **Add brand, size, condition and seller** on (the default), the Actor also reads each listing page and the seller's public name.
- **Poshmark:** the US or Canada. Brand, size, condition and seller username come with the search results.

#### Good fit

- Price research: collect asking prices for bikes, phones, clothes or furniture in one country or around one city.
- Monitoring: run on a schedule with **Only new since the last run** and get only listings published after the previous run.
- Resale and fashion data: brand, size, condition and original price for Poshmark listings; condition and category for Wallapop.

#### Not a fit / limits

- No seller contact fields. The Actor saves only the seller's public name and profile link, not phone numbers, e-mails or full names. The listing `description` is the seller's own text and can contain whatever the seller wrote there.
- One marketplace and one search per run. For both marketplaces, start two runs.
- Up to 1,000 listings per run. Poshmark shows at most about 5,000 results for one search.
- Wallapop mixes listings from Spain into searches in Italy and Portugal. The Actor drops them, so a search for a whole country (`IT`, `PT`) can stop early with few results. Use a city and **Radius, km** instead.
- Brand and size exist only in some categories (for example clothes). For other items they are empty.
- Poshmark does not show the seller's city: `location`, `postalCode`, `latitude` and `longitude` are empty for Poshmark.

### Quick start

1. Open the **Input** tab.
2. Keep the prefilled example: **Marketplace** `wallapop`, **Search words** `bicicleta`, **Max listings** `10`.
3. Click **Start**.
4. Open the **Output** tab. The **Listings** view shows title, price, condition, location and publish time.

Expected result: the 10 newest "bicicleta" listings in Spain, in a few seconds.

### Use cases

| Buyer job | Input | Output | Key fields | Next step |
| --- | --- | --- | --- | --- |
| Compare used prices | `query`, `location`, `priceMin` / `priceMax` | listing row | `price`, `currency`, `condition`, `location` | Export CSV or Excel |
| Watch new listings | `onlyNew` on a schedule | only new rows | `itemId`, `createdAt`, `url` | Webhook or integration on run finish |
| Local deals | `location: "Madrid"`, `radiusKm` | listing row | `price`, `location`, `latitude`, `longitude` | Map or spreadsheet |
| Fashion resale research | `platform: "poshmark"`, `query` | listing row | `brand`, `size`, `price`, `originalPrice`, `condition` | Dataset API |

### Input

#### Input fields

| Field | Plain name | Type | Required | Default / prefill | Allowed values | Effect |
| --- | --- | --- | --- | --- | --- | --- |
| `platform` | Marketplace | string | no | default `wallapop` | `wallapop`, `poshmark` | Which marketplace to search |
| `query` | Search words | string | yes | prefill `bicicleta` | any text | What you would type in the search box. Use the local language for Wallapop |
| `location` | Location | string | no | Wallapop `ES`, Poshmark `US` | Wallapop: `ES`, `IT`, `PT`, a large city or `latitude,longitude`; Poshmark: `US`, `CA` | Where to search |
| `radiusKm` | Radius, km | integer | no | empty = whole country | 1–1000 | Wallapop only: search this far around the city or point |
| `priceMin` | Min price | number | no | empty | 0 or more | Lowest price in the marketplace currency |
| `priceMax` | Max price | number | no | empty | 0 or more | Highest price in the marketplace currency |
| `maxItems` | Max listings | integer | no | default `50`, prefill `10` | 1–1000 | Stop after this many saved listings, newest first |
| `onlyNew` | Only new since the last run | boolean | no | `false` | true / false | Skip listings that an earlier Only-new run of the same search already covered |
| `includeDetails` | Add brand, size, condition and seller (Wallapop) | boolean | no | `true` | true / false | Wallapop: read each listing page and the seller's public name |
| `proxyConfiguration` | Proxy | object | no | no proxy | Apify Proxy settings | Not needed; use only if your runs get blocked |

Large cities for Wallapop `location`: Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Málaga, Bilbao, Murcia, Palma, Alicante, Valladolid, Vigo, Granada, Las Palmas, Santa Cruz de Tenerife; Roma, Milano, Napoli, Torino, Palermo, Genova, Bologna, Firenze, Bari, Venezia, Verona, Catania; Lisboa, Porto, Braga, Coimbra, Aveiro, Faro, Funchal. For other places, use `latitude,longitude`, for example `"41.65,-0.88"`.

Prices are in the marketplace currency: EUR on Wallapop, USD (US) or CAD (Canada) on Poshmark. Rows with the same `itemId` are saved once per run.

#### Interacting settings

| When | Input A | Input B | Effective behavior |
| --- | --- | --- | --- |
| Search near a place | `location` (city or point) | `radiusKm` | Wallapop searches around the place; results are still newest first, not nearest first. Without `radiusKm`, a city or point searches the whole country |
| Poshmark | `platform: "poshmark"` | `location` city or `radiusKm` | Invalid input: Poshmark has no city or distance search. Use `US` or `CA` |
| Price filter | `priceMin` | `priceMax` | Both apply; listings without a price are skipped. `priceMin` must not be higher than `priceMax` |
| Narrow filter | `priceMin` / `priceMax` or `IT` / `PT` | many skipped results | The Actor stops early when almost nothing matches, so it does not read hundreds of pages for a few rows. The run summary says so |
| Fast Wallapop run | `platform: "wallapop"` | `includeDetails: false` | Faster: listing pages are not read; `brand`, `size`, `condition` and seller fields are empty |

#### Input examples

##### Newest listings in a country

```json
{
  "platform": "wallapop",
  "query": "bicicleta",
  "maxItems": 10
}
```

Expected output: 10 newest bike listings in Spain with `price`, `condition`, `location`, `images`.

##### Around a city with a price range

```json
{
  "platform": "wallapop",
  "query": "sofá",
  "location": "Barcelona",
  "radiusKm": 30,
  "priceMax": 300,
  "maxItems": 100
}
```

Expected output: up to 100 sofas within 30 km of Barcelona, 300 EUR or less.

##### Poshmark monitoring

```json
{
  "platform": "poshmark",
  "query": "lululemon",
  "location": "US",
  "maxItems": 200,
  "onlyNew": true
}
```

Expected output: the first run returns the 200 newest listings; each next run returns only listings published since then.

### Output

#### Output fields

| Field | Meaning | Type | Can be empty? | Example |
| --- | --- | --- | --- | --- |
| `platform` | Marketplace | string | no | `wallapop`, `poshmark` |
| `market` | Country searched | string | no | `ES`, `IT`, `PT`, `US`, `CA` |
| `itemId` | Listing ID on the marketplace | string | no | `nz08qnyl276o` |
| `url` | Listing page | string | no | `https://www.wallapop.com/item/...` |
| `title` | Listing title | string | no | `Bicicleta Clásica Negra` |
| `description` | Seller's text | string | yes | |
| `price` | Asking price | number | yes | `250` |
| `currency` | Price currency | string | yes | `EUR`, `USD`, `CAD` |
| `originalPrice` | Original retail price given by the seller (Poshmark) | number | yes | `58` |
| `brand` | Brand | string | yes (category-dependent; Wallapop needs details) | `lululemon athletica` |
| `size` | Size | string | yes (category-dependent) | `8`, `XL / 46 / 56` |
| `condition` | Condition in plain English | string | yes | `As good as new`, `New with tags` |
| `conditionCode` | Condition code from the marketplace | string | yes | `as_good_as_new`, `nwt` |
| `category` | Category path | string | yes | `Bikes > Bikes & tricycles > Commuter bikes` |
| `availability` | Listing status | string | yes | `available` |
| `location` | City and region (Wallapop) | string | yes; always empty on Poshmark | `La Albatalia, Región de Murcia` |
| `postalCode` | Postal code (Wallapop) | string | yes | `30009` |
| `countryCode` | Listing country | string | yes | `ES` |
| `latitude`, `longitude` | Approximate place (Wallapop) | number | yes | `37.99`, `-1.16` |
| `shippingAvailable` | Seller ships the item | boolean | yes | `false` |
| `sellerName` | Seller's public name or username | string | yes | `Pablo` |
| `sellerId` | Seller ID | string | yes | `vjrdq4g2dw6k` |
| `sellerUrl` | Seller's public profile | string | yes | `https://www.wallapop.com/user/...` |
| `images` | Photo links | array | can be `[]` | |
| `createdAt` | When the listing was published (UTC) | string | yes | `2026-10-15T09:09:48.035Z` |
| `updatedAt` | Last change on the marketplace (UTC) | string | yes | |
| `searchQuery` | Your search words | string | no | `bicicleta` |
| `position` | Place in the search results | integer | no | `1` |
| `detailsFetched` | Listing page was read | boolean | no | `true` |
| `source` | Where the row came from | string | no | `api.wallapop.com` |
| `fetchedAt` | When the Actor read the listing (UTC) | string | no | |

#### Output entities and surfaces

| Situation | Where to look | What you see |
| --- | --- | --- |
| Normal run | Dataset (**Listings** view) | One row per listing |
| No listings found | Dataset is empty; `RUN_SUMMARY` status `NO_RESULTS` | The run succeeds; check the search words, place and filters |
| Only new, nothing new | Dataset is empty; `RUN_SUMMARY` status `NO_RESULTS` | Message "No new listings since the last onlyNew run" |
| Stopped early | `RUN_SUMMARY` status `PARTIAL`, reason `CHARGE_LIMIT`, `TIME_LIMIT`, `LOW_YIELD` or `PAGE_LIMIT` | Rows saved before the stop are kept |
| Marketplace error | `RUN_SUMMARY` status `PARTIAL` (reason `SOURCE_ERROR`) or `ERROR` | The run fails; saved rows are kept |
| Wrong input | `RUN_SUMMARY` status `INVALID_INPUT` | The run fails at once with a clear message |

`RUN_SUMMARY` in the run's key-value store also has counts: listings saved, pages read, details read, and listings skipped as duplicates, already seen, outside the price range or from another country.

#### Output example

One Wallapop row from a `bicicleta` search in Spain (trimmed: 1 of 4 photos and the description):

```json
{
  "platform": "wallapop",
  "market": "ES",
  "itemId": "nz08qnyl276o",
  "url": "https://www.wallapop.com/item/bicicleta-clasica-negra-1313302151",
  "title": "Bicicleta Clásica Negra",
  "description": "Bicicleta de estilo clásico con un diseño atemporal. ...",
  "price": 250,
  "currency": "EUR",
  "originalPrice": null,
  "brand": null,
  "size": null,
  "condition": "Fair condition",
  "conditionCode": "fair",
  "category": "Bikes > Bikes & tricycles > Commuter bikes",
  "availability": "available",
  "location": "La Albatalia, Región de Murcia",
  "postalCode": "30009",
  "countryCode": "ES",
  "latitude": 37.996965516947384,
  "longitude": -1.1657049559182022,
  "shippingAvailable": false,
  "sellerName": "Pablo",
  "sellerId": "vjrdq4g2dw6k",
  "sellerUrl": "https://www.wallapop.com/user/pablo-424599619",
  "images": ["https://cdn.wallapop.com/images/10420/lp/wm/__/c10420p1313302151/i6798702660.jpg?pictureSize=W800"],
  "createdAt": "2026-10-15T09:09:48.035Z",
  "updatedAt": "2026-10-15T09:10:44.801Z",
  "searchQuery": "bicicleta",
  "position": 300,
  "detailsFetched": true,
  "source": "api.wallapop.com",
  "fetchedAt": "2026-10-15T09:43:09.602Z"
}
```

`null` means the marketplace does not show that value for this listing. Here the bike has no brand or size, which is normal outside fashion categories.

### Pricing and limits

#### Pricing unit

You pay per run start and per saved listing:

| Event | Price (free plan) |
| --- | ---: |
| Actor start | $0.001 per run |
| Listing | $0.0001 ($0.10 per 1,000) |

Higher Apify plans get lower listing prices (down to $0.085 per 1,000). Wallapop details (brand, size, condition, seller) cost nothing extra. Platform usage (compute, storage) is included; you do not pay it separately.

- A run with no matching listings, an invalid input, or an **Only new** run with nothing new costs only the start ($0.001).
- Duplicates, listings already delivered (Only new), and listings dropped by the price or country filter are not charged.
- Set **Max total charge** in run options to cap a run. The Actor stops before the cap and keeps what it saved.

#### Cost examples

| Scenario | Input | Rows | Cost on the free plan |
| --- | --- | ---: | ---: |
| Quick test (prefill) | `bicicleta`, 10 listings | 10 | $0.002 |
| Small batch | 100 listings | 100 | $0.011 |
| Market snapshot | 1,000 listings | 1,000 | $0.101 |
| Monitor, nothing new | Only new | 0 | $0.001 |

#### Limits

| Limit | Value |
| --- | --- |
| Listings per run | 1,000 |
| Speed, Wallapop with details | 1,000 listings in about 60 seconds (measured) |
| Speed, Poshmark | 1,000 listings in about 15 seconds (measured) |
| Poshmark results per search | about 5,000 (the marketplace cap) |
| Memory | 256 MB is enough for 1,000 listings |

### API, export and integrations

- **Export:** download the dataset as JSON, CSV, Excel, XML or HTML from the Output tab, or with the dataset items API.
- **API:** start the Actor with the [Apify API](https://docs.apify.com/api/v2) or the Apify client for JavaScript or Python; send the same JSON as in the Input examples.
- **Scheduling:** create a schedule for a saved task with `onlyNew: true`. Each run then returns only new listings. The Only-new history is kept in your account in the key-value store `secondhand-listings-seen`.
- **Webhooks and no-code:** start a webhook, Zapier, Make or n8n flow when the run finishes, and read new rows from the dataset.

#### Use with AI agents (MCP)

- MCP server with only this Actor: `https://mcp.apify.com?tools=cliqtomedia/secondhand-listings-scraper`
- Smallest useful input: `{"platform": "wallapop", "query": "bicicleta", "maxItems": 10}`
- Key output fields: `title` (what is offered), `price` + `currency` (asking price), `condition` (item state), `location` (city and region, Wallapop only), `createdAt` (published), `url` (listing page).
- Typical run: a few seconds for 10 listings, about $0.002 on the free plan. Up to 1,000 listings per run; one marketplace per run; Poshmark accepts only `US` or `CA` as location.

### Troubleshooting

#### The run finished with 0 rows

Symptom: the dataset is empty and `RUN_SUMMARY` status is `NO_RESULTS`.
Likely reason: no listing matches the search words and filters, or, with **Only new**, nothing new was published since the last run.
Check: run the same search on the marketplace website.
Action: use the local language on Wallapop (`bicicleta`, not `bike`), remove a price filter or widen the radius.

#### Fewer rows than Max listings, reason LOW_YIELD

Symptom: `RUN_SUMMARY` status `PARTIAL` or `NO_RESULTS` with reason `LOW_YIELD` and a warning about filters.
Likely reason: the price filter or the country (`IT`, `PT`) drops almost every result, so the Actor stopped instead of reading many pages for a few rows.
Action: search around a city with `radiusKm`, widen the price range, or use more specific search words.

#### The run stopped with INVALID_INPUT

Symptom: the run fails at once with a message about the location or radius.
Likely reason: a city that is not in the list, a Poshmark search with a city or radius, or `priceMin` above `priceMax`.
Action: use `latitude,longitude` for other places; use `US` or `CA` for Poshmark.

#### Wallapop rows have no brand, size or condition

Symptom: `detailsFetched` is `false`.
Likely reason: **Add brand, size, condition and seller** is off, or the listing was sold or removed a moment before its page was read.

### FAQ

#### Do I need a Wallapop or Poshmark account, cookies or a proxy?

No. The Actor reads public search results and listing pages. No login, cookies or proxy are needed.

#### Does it collect seller phone numbers or e-mails?

No contact fields. It saves only the seller's public name or username and profile link. The `description` field is the seller's own listing text, so it can include contact details if the seller typed them.

#### How fresh is the data?

Each row is read during the run; `fetchedAt` shows when. `createdAt` is the publish time on the marketplace. Only-new mode compares publish times: a listing that the marketplace shows in search with a long delay after publishing can be missed by the next Only-new run. The first Only-new run of a search sets the starting point: listings older than the oldest one it returned (for example when it stops at `maxItems`) count as already known and are not returned later.

#### Can I search Wallapop in Italy or Portugal?

Yes: set `location` to `IT`, `PT` or a city there. Wallapop also returns listings from Spain for these searches; the Actor leaves them out, so check `skippedOtherCountry` in `RUN_SUMMARY`. A city with a radius gives the best results.

#### Is scraping Wallapop and Poshmark allowed?

The Actor reads only public data at a gentle pace and does not collect contacts. The marketplaces' terms of use restrict automated collection; you are responsible for using the data in line with those terms and the laws that apply to you, including privacy laws.

### Support

For a bug, a question or a feature request, open an issue in the **Issues** tab of this Actor. Include the run ID and the input you used. Do not post API tokens or other private data.

# Changelog

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

# Actor input Schema

## `platform` (type: `string`):

Where to search. One run searches one marketplace.

## `query` (type: `string`):

What you would type in the marketplace search box, e.g. bicicleta, nike dunk, lululemon. Use the local language for Wallapop.

## `location` (type: `string`):

Wallapop: ES, IT or PT for a whole country (default ES), a large city such as Madrid, Barcelona, Milano, Roma, Lisboa or Porto, or "latitude,longitude". Poshmark: US (default) or CA.

## `radiusKm` (type: `integer`):

Wallapop only: search this far around the city or point. Empty = the whole country. Results are still sorted newest first, not by distance.

## `priceMin` (type: `number`):

Lowest item price in the marketplace currency (EUR on Wallapop, USD or CAD on Poshmark).

## `priceMax` (type: `number`):

Highest item price in the marketplace currency. Listings without a price are skipped when a price filter is set.

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

Stop after this many saved listings, newest first. Each saved listing is one paid result.

## `onlyNew` (type: `boolean`):

For scheduled monitoring: skip listings published before the newest one an earlier onlyNew run of the same search delivered. The history is kept in your account (key-value store secondhand-listings-seen); the first run returns the newest listings.

## `includeDetails` (type: `boolean`):

Wallapop search results lack brand, size, condition and seller name. On = read each listing page and the seller's public name. Off = faster, those fields stay empty. Poshmark always has them; no extra charge either way.

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

Not needed: both marketplaces answer without a proxy. Use only if your runs get blocked.

## Actor input object example

```json
{
  "platform": "wallapop",
  "query": "iphone 13",
  "location": "Madrid",
  "maxItems": 10,
  "onlyNew": false,
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Listings as a table.

## `runSummary` (type: `string`):

Status, stop reason, counts, onlyNew history and request statistics.

# 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 = {
    "platform": "wallapop",
    "query": "bicicleta",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("cliqtomedia/secondhand-listings-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 = {
    "platform": "wallapop",
    "query": "bicicleta",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("cliqtomedia/secondhand-listings-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 '{
  "platform": "wallapop",
  "query": "bicicleta",
  "maxItems": 10
}' |
apify call cliqtomedia/secondhand-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cliqtomedia/secondhand-listings-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/eRuLQjEqU2KTsxAaE/builds/hPUyctWqibcPjWr2C/openapi.json
