# Poshmark Email Scraper (`leads-scraper/poshmark-email-scraper`) Actor

Poshmark Email Scraper SD - Poshmark Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from Poshmark results by keyword, location and email domain - Poshmark email extractor.

- **URL**: https://apify.com/leads-scraper/poshmark-email-scraper.md
- **Developed by:** [Leads Scraper](https://apify.com/leads-scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### Poshmark Email Scraper - public reseller and boutique emails from Poshmark

The Poshmark Email Scraper collects publicly indexed contact emails from Poshmark pages using Google search,
filtered by keyword, location and email domain.

It is built for people who work with resale and secondhand-fashion creators: brand partnerships, consignment
sourcing and creator marketing.

Set expectations before your first run.
Poshmark indexes individual listings much more than closets, so most rows carry an email from a listing
without a seller handle.

That means the Poshmark Email Scraper reliably fills the `email` column, but often leaves `username` as `null`
and `profileUrl` empty.

The listing `url` and the `description` snippet are still there, so you can usually identify the closet
manually when it matters.

#### What the Poshmark Email Scraper actually does

The Poshmark Email Scraper never logs into Poshmark, never uses a Poshmark API and never opens the Poshmark
website.

It builds Google queries with the `site:` operator against `poshmark.com` and `poshmark.ca`, then reads the
public search results.

There is no browser, no JavaScript rendering, no authentication and no cookies anywhere in the pipeline.
Every address it returns was already visible in Google's public index.

### Why use the Poshmark Email Scraper for resale and creator outreach

Poshmark is one of the largest resale communities in North America, and its most active sellers behave like
creators.
They run boutiques, promote drops on social platforms and publish a business email so brands can reach them.

That makes a Poshmark reseller contact list useful for very specific work.
Brand partnership teams recruit resellers as affiliates; consignment businesses source inventory; wholesale
suppliers look for boutiques that resell in volume.

The default keywords, `reseller` and `boutique`, are chosen for exactly that audience.
The default `queryModifiers` push further in the same direction with `stockist`, `wholesale` and `contact us`.

Because the Poshmark Email Scraper searches both `poshmark.com` and `poshmark.ca`, it covers the US and
Canadian sides of the community in one run.

### Features of the Poshmark Email Scraper

| Feature | What it means in practice |
|---|---|
| Two Poshmark domains | Queries are scoped to `poshmark.com` and `poshmark.ca` |
| Query expansion | Base, quoted and `intitle:` variants, plus one query per modifier |
| Resale-tuned modifiers | Defaults are `email`, `contact us`, `wholesale`, `customer service` and `stockist` |
| Domain filtering | Only emails on the domains you list are kept |
| Global deduplication | Each email address appears once across every query and page |
| Obfuscated email recovery | Handles `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com` and the full-width `＠` |
| Junk filtering | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals |
| Boundary-correct matching | `@gmail.com` will not match inside `@gmail.company` or `@gmail.com.br` |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same block |
| Async concurrency | An `asyncio` worker pool with a shared stop signal on `maxEmails` |
| Retries with backoff | Up to three attempts per page, each with a fresh proxy session |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are retried rather than counted as empty |
| Failed-query requeue | Blocked or failed queries are retried once at the end of the run |
| Resumable state | Progress is kept in the key-value store and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Structural parsing | Result blocks are found via `<h3>` and the smallest surrounding block, not Google CSS class names |
| Whole-page fallback | A Google layout change degrades to emails without account details rather than to zero results |
| Truncation flag | `possiblyTruncated` marks emails the snippet ellipsis may have clipped |
| Run summary | Logs pages fetched, blocked pages, retries and emails per page |

Every behaviour above is enabled by default, so the Poshmark Email Scraper needs no tuning to produce a clean,
deduplicated list on the first run.

### How the Poshmark Email Scraper works

It reads your keywords, location, email domains and limits.
Then it builds Google queries such as `site:poshmark.com boutique "@gmail.com" "Los Angeles"`.

It fetches result pages through the Apify GOOGLE\_SERP proxy using `aiohttp`.
Each result block is parsed structurally by locating the `<h3>` title and then the smallest surrounding block.

A domain-filtered regex pulls emails out of the block text.
The Poshmark Email Scraper deduplicates globally and pushes each lead to the dataset immediately, so the list
is usable while the run is still going.

Base queries run before expanded ones, so the strongest matches land first.
That matters here, because Poshmark yields fewer complete identities than profile-heavy marketplaces.

### Poshmark Email Scraper input fields

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["reseller", "boutique"]` | Search terms describing the Poshmark accounts you want |
| `location` | string | `""` | Optional location phrase added to every query |
| `customDomains` | array | `["@gmail.com","@yahoo.com"]` | Only emails on these domains are kept; the `@` is optional |
| `maxEmails` | integer 1-10000 | `20` | Stop after this many unique emails |
| `countryCode` | string | `""` | Two-letter country for the search proxy (US, CA...) |
| `expandQueries` | boolean | `true` | Search each keyword x domain pair in several phrasings |
| `queryModifiers` | array | `["email","contact us","wholesale","customer service","stockist"]` | Extra words combined with each keyword when expansion is on |
| `maxPagesPerQuery` | integer 1-50 | `30` | Page cap per query |
| `maxConcurrency` | integer 1-20 | `5` | Parallel queries |

#### Example Poshmark Email Scraper input

```json
{
  "keywords": ["reseller", "boutique", "vintage seller", "consignment"],
  "location": "Los Angeles",
  "customDomains": ["@gmail.com", "@yahoo.com", "@outlook.com"],
  "maxEmails": 200,
  "countryCode": "US",
  "expandQueries": true,
  "queryModifiers": ["email", "contact us", "wholesale", "customer service", "stockist"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

Adding `@outlook.com` widens the net noticeably on a platform where volume is the constraint.
Swapping `countryCode` to `CA` gives the Poshmark Email Scraper a second run aimed at the Canadian domain.

### Poshmark Email Scraper output fields

Every dataset item the Poshmark Email Scraper writes contains all fourteen fields below.

| Field | Meaning |
|---|---|
| `network` | Platform name |
| `keyword` | The keyword that produced the lead |
| `query` | The exact Google query used |
| `title` | Raw result title |
| `accountName` | Account label Google prints |
| `fullName` | Display name parsed from a profile-style title; empty for listing captions |
| `username` | URL-safe handle when Poshmark exposes one; otherwise `null` |
| `profileUrl` | Canonical closet URL when a handle is known; otherwise empty |
| `url` | Direct Poshmark link when exposed, else the closet URL |
| `description` | Bio or listing snippet, cleaned of labels and counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email |
| `foundAt` | ISO 8601 UTC timestamp |

#### Example Poshmark Email Scraper output

The second row is the more typical shape, because Poshmark indexes individual listings much more than closets.

```json
[
  {
    "network": "Poshmark",
    "keyword": "boutique",
    "query": "site:poshmark.com boutique \"@gmail.com\" \"Los Angeles\"",
    "title": "@lunaresaleco - Luna Resale Co | Poshmark Closet",
    "accountName": "lunaresaleco",
    "fullName": "Luna Resale Co",
    "username": "lunaresaleco",
    "profileUrl": "https://poshmark.com/closet/lunaresaleco",
    "url": "https://poshmark.com/closet/lunaresaleco",
    "description": "Curated vintage and designer resale. Collabs and stockist requests: lunaresale.co@gmail.com",
    "email": "lunaresale.co@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-31T11:21:07.338Z"
  },
  {
    "network": "Poshmark",
    "keyword": "reseller",
    "query": "site:poshmark.com reseller \"contact us\" \"@yahoo.com\"",
    "title": "Vintage Levi's 501 High Waist Jeans Size 27 | Poshmark",
    "accountName": "Poshmark",
    "fullName": "",
    "username": null,
    "profileUrl": "",
    "url": "https://poshmark.com/listing/Vintage-Levis-501-High-Waist-Jeans-64af12c9",
    "description": "Bundle discounts available. Wholesale and stockist enquiries: thriftedbyjules@yahoo.com",
    "email": "thriftedbyjules@yahoo.com",
    "emailDomain": "@yahoo.com",
    "possiblyTruncated": true,
    "foundAt": "2026-08-31T11:22:44.019Z"
  }
]
```

### Use cases for the Poshmark Email Scraper

Resale and secondhand-fashion work is where the Poshmark Email Scraper earns its place, because those teams
start from a style niche rather than a company name.

| Use case | How the Poshmark Email Scraper helps |
|---|---|
| Brand partnerships | Find resale creators who publish a business email for collabs |
| Creator marketing | Build an outreach list of boutique owners with an audience |
| Consignment sourcing | Identify sellers with inventory you could take on consignment |
| Wholesale and stockist recruitment | Reach boutiques that resell at volume |
| Affiliate recruitment | Sign up resellers who already promote products off-platform |
| Reseller-tool sales | Prospect for listing, cross-posting and analytics software |
| Market research | Study how secondhand-fashion sellers position and price themselves |
| CRM enrichment | Export to CSV, JSON or Excel and import resale seller leads into your pipeline |

Several of these workflows want a closet URL, and the Poshmark Email Scraper often cannot supply one.
Budget time for manual matching from the listing `url` and `description` fields.

### Tips to get more from the Poshmark Email Scraper

Use creator vocabulary, not marketplace vocabulary.
`collab`, `stockist`, `consignment`, `vintage seller` and `thrift shop` fit how Poshmark sellers actually write
about themselves.

Widen `customDomains` early.
Because volume is the binding constraint here, `@outlook.com`, `@hotmail.com` and `@icloud.com` are worth
adding before you touch anything else.

Run the Poshmark Email Scraper twice, once with `countryCode: "US"` and once with `CA`.
The two domains surface different closets and different listings.

Keep `expandQueries` on.
Google caps a single query at roughly 300 results, and expansion is the mechanism that works around it.

Raise `maxEmails` rather than `maxConcurrency`.
The run stops at the email cap, so a higher cap buys more coverage than more parallelism does.

### Limitations of the Poshmark Email Scraper

Poshmark indexes individual listings much more than closets, so most rows carry an email from a listing
without a seller handle.
This is the defining limitation of the Poshmark Email Scraper and the first thing to plan around.

The Poshmark Email Scraper only finds accounts whose email is publicly visible in Google's index.
Poshmark discourages sharing contact details on-platform, so the addressable pool is genuinely small.

Google caps a single query at roughly 300 results, which is why query expansion exists.
No run is exhaustive and no volume is guaranteed.

`username` and `profileUrl` are only populated when Google's result exposes a handle.
On Poshmark that is a minority of rows, and it is a Google indexing limitation rather than a bug.

`possiblyTruncated: true` means Google's snippet ellipsis touched the email, so verify before sending.
Treat those rows as candidates rather than confirmed addresses.

The Poshmark Email Scraper requires the Apify GOOGLE\_SERP proxy and cannot run without Apify proxy credentials.
Free Apify plans are capped at 100 emails per run; paid plans are uncapped.

Results vary with keywords, domains and location.
Two runs on different days can legitimately return different Poshmark reseller contacts.

### Responsible use, GDPR and marketplace terms for the Poshmark Email Scraper

Poshmark sellers are individuals far more often than registered companies, so treat this data carefully.
Under GDPR, CCPA and similar regimes you need a lawful basis, honest identification of yourself and a working
opt-out in every message.

Poshmark's terms of service restrict unsolicited commercial contact and off-platform solicitation.
Respect them, keep suppression lists and never resell scraped personal data.

The Poshmark Email Scraper is not affiliated with, endorsed by or officially supported by Poshmark.
It reads public Google results and nothing else.

### Poshmark Email Scraper FAQ

#### Does the Poshmark Email Scraper log into Poshmark?

No. It never logs in, never uses a Poshmark API and never opens the Poshmark website. All data comes from
publicly indexed Google search results.

#### Why are so many rows missing a username and closet URL?

Because Poshmark indexes individual listings much more than closets, so most rows carry an email from a
listing without a seller handle. The email, snippet and listing link are still populated.

#### How many results should I expect from the Poshmark Email Scraper?

Fewer than from a profile-heavy marketplace. Poshmark sellers rarely publish contact details in indexable
places, so treat the Poshmark Email Scraper as a source of a small, high-intent list rather than a bulk list.
No volume is guaranteed.

#### Is the Poshmark Email Scraper affiliated with Poshmark?

No. It is an independent Actor reading public Google results, and it is not endorsed or officially supported
by Poshmark.

#### Can I still identify the seller?

Often yes, manually. The listing `url` and `description` usually contain enough to find the closet, but the
Poshmark Email Scraper will not do that step for you.

#### Which domains does the Poshmark Email Scraper search?

`poshmark.com` and `poshmark.ca`, covering the US and Canadian sides of the community.

#### What keywords work best?

Creator and resale vocabulary: `boutique`, `reseller`, `consignment`, `vintage seller`, `stockist`.

#### Can I schedule the Poshmark Email Scraper?

Yes. Apify schedules, webhooks and the API all work normally, so a reseller contact list can be refreshed
without manual runs.

#### What does `possiblyTruncated` mean?

Google's snippet ellipsis may have clipped the address, so verify those emails before you send anything.

#### Do I need a proxy?

Yes. The Poshmark Email Scraper requires the Apify GOOGLE\_SERP proxy and will not run without Apify proxy
credentials.

#### Is there a free-plan cap?

Free Apify plans are capped at 100 emails per run. Paid plans are uncapped.

#### Can I resume an interrupted run?

Yes. State lives in the key-value store keyed by a hash of your input and is saved on `PERSIST_STATE`,
`MIGRATING` and `ABORTING`.

#### How do I export the data?

The Apify dataset exports to CSV, JSON, Excel and more, and it is reachable over the API for direct CRM import.

#### Which sibling Actors pair well with the Poshmark Email Scraper?

[Depop Email Scraper](https://apify.com/leads-scraper/depop-email-scraper),
[Mercari Email Scraper](https://apify.com/neuro-scraper/mercari-email-scraper) and
[Vinted Email Scraper](https://apify.com/leads-scraper/vinted-email-scraper) cover the rest of resale.

[Etsy Email Scraper](https://apify.com/leads-scraper/etsy-email-scraper) and
[Faire Email Scraper](https://apify.com/leads-scraper/faire-email-scraper) reach independent brands and wholesale
suppliers instead.

### Related Actors

Forty sibling Actors cover the rest of the E-commerce & Marketplaces category.
They run the same engine as the Poshmark Email Scraper with a platform-specific configuration.

| Actor | What it collects |
|---|---|
| [Poshmark Email and Phone Number Scraper](https://apify.com/leads-scraper/poshmark-email-and-phone-number-scraper) | Emails and phone numbers from Poshmark |
| [Poshmark Phone Number Scraper](https://apify.com/leads-scraper/poshmark-phone-number-scraper) | Public phone numbers from Poshmark |
| [AliExpress Email Scraper](https://apify.com/neuro-scraper/aliexpress-email-scraper) | Public contact emails from AliExpress |
| [Allegro Email Scraper](https://apify.com/neuro-scraper/allegro-email-scraper) | Public contact emails from Allegro |
| [Amazon Email Scraper](https://apify.com/leads-scraper/amazon-email-scraper) | Public contact emails from Amazon |
| [Best Buy Seller Email Scraper](https://apify.com/leads-scraper/best-buy-seller-email-scraper) | Public contact emails from Best Buy |
| [BigCommerce Store Email Scraper](https://apify.com/neuro-scraper/bigcommerce-store-email-scraper) | Public contact emails from BigCommerce Store |
| [Cdiscount Email Scraper](https://apify.com/neuro-scraper/cdiscount-email-scraper) | Public contact emails from Cdiscount |
| [Coupang Email Scraper](https://apify.com/neuro-scraper/coupang-email-scraper) | Public contact emails from Coupang |
| [Depop Email Scraper](https://apify.com/leads-scraper/depop-email-scraper) | Public contact emails from Depop |
| [DHgate Email Scraper](https://apify.com/neuro-scraper/dhgate-email-scraper) | Public contact emails from DHgate |
| [eBay Email Scraper](https://apify.com/leads-scraper/ebay-email-scraper) | Public contact emails from eBay |
| [Ecwid Store Email Scraper](https://apify.com/neuro-scraper/ecwid-store-email-scraper) | Public contact emails from Ecwid Store |
| [Etsy Email Scraper](https://apify.com/leads-scraper/etsy-email-scraper) | Public contact emails from Etsy |
| [Faire Email Scraper](https://apify.com/leads-scraper/faire-email-scraper) | Public contact emails from Faire |
| [Flipkart Email Scraper](https://apify.com/leads-scraper/flipkart-email-scraper) | Public contact emails from Flipkart |
| [Home Depot Seller Email Scraper](https://apify.com/leads-scraper/home-depot-seller-email-scraper) | Public contact emails from Home Depot |
| [JD.com Email Scraper](https://apify.com/leads-scraper/jd-com-email-scraper) | Public contact emails from JD.com |
| [Lazada Email Scraper](https://apify.com/neuro-scraper/lazada-email-scraper) | Public contact emails from Lazada |
| [Lowe's Seller Email Scraper](https://apify.com/leads-scraper/lowes-seller-email-scraper) | Public contact emails from Lowe's |
| [MercadoLibre Email Scraper](https://apify.com/neuro-scraper/mercadolibre-email-scraper) | Public contact emails from MercadoLibre |
| [Mercari Email Scraper](https://apify.com/neuro-scraper/mercari-email-scraper) | Public contact emails from Mercari |
| [Newegg Email Scraper](https://apify.com/leads-scraper/newegg-email-scraper) | Public contact emails from Newegg |
| [Otto Email Scraper](https://apify.com/leads-scraper/otto-email-scraper) | Public contact emails from Otto |
| [Overstock Email Scraper](https://apify.com/leads-scraper/overstock-email-scraper) | Public contact emails from Overstock |
| [Rakuten Email Scraper](https://apify.com/neuro-scraper/rakuten-email-scraper) | Public contact emails from Rakuten |
| [Shopee Email Scraper](https://apify.com/leads-scraper/shopee-email-scraper) | Public contact emails from Shopee |
| [Shopify Store Email Scraper](https://apify.com/leads-scraper/shopify-store-email-scraper) | Public contact emails from Shopify Store |
| [Taobao Email Scraper](https://apify.com/leads-scraper/taobao-email-scraper) | Public contact emails from Taobao |
| [Target Seller Email Scraper](https://apify.com/neuro-scraper/target-seller-email-scraper) | Public contact emails from Target |
| [Temu Email Scraper](https://apify.com/leads-scraper/temu-email-scraper) | Public contact emails from Temu |
| [Tmall Email Scraper](https://apify.com/leads-scraper/tmall-email-scraper) | Public contact emails from Tmall |
| [Vinted Email Scraper](https://apify.com/leads-scraper/vinted-email-scraper) | Public contact emails from Vinted |
| [Walmart Email Scraper](https://apify.com/leads-scraper/walmart-email-scraper) | Public contact emails from Walmart |
| [Wayfair Email Scraper](https://apify.com/neuro-scraper/wayfair-email-scraper) | Public contact emails from Wayfair |
| [Wish Email Scraper](https://apify.com/leads-scraper/wish-email-scraper) | Public contact emails from Wish |
| [Wix Stores Email Scraper](https://apify.com/leads-scraper/wix-stores-email-scraper) | Public contact emails from Wix Stores |
| [WooCommerce Email Scraper](https://apify.com/neuro-scraper/woocommerce-email-scraper) | Public contact emails from WooCommerce |
| [Zalando Email Scraper](https://apify.com/leads-scraper/zalando-email-scraper) | Public contact emails from Zalando |
| [AliExpress Email and Phone Number Scraper](https://apify.com/neuro-scraper/aliexpress-email-and-phone-number-scraper) | Emails and phone numbers from AliExpress |
| [Allegro Email and Phone Number Scraper](https://apify.com/neuro-scraper/allegro-email-and-phone-number-scraper) | Emails and phone numbers from Allegro |
| [Amazon Email and Phone Number Scraper](https://apify.com/leads-scraper/amazon-email-and-phone-number-scraper) | Emails and phone numbers from Amazon |

### Leave a review

If the Poshmark Email Scraper saved you time, please leave a star rating and a short review on
the Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to
build next.

If something did not work, email <neurodata.apify@gmail.com>
instead - bugs get fixed faster than they get complained about.

### Support

Questions, bug reports or a custom build of the Poshmark Email Scraper: **neurodata.apify@gmail.com**.

# Actor input Schema

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

Search terms describing the Poshmark accounts you want (niche, job title, industry).

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

Optional location phrase added to every query (e.g. "New York").

## `customDomains` (type: `array`):

Only emails ending with one of these domains are collected. With or without the leading @. Each domain is searched separately, so more domains means more results but a longer run - remove some for a faster, narrower search, or add your own (e.g. @company.com).

## `maxEmails` (type: `integer`):

Stop once this many unique emails have been collected.

## `countryCode` (type: `string`):

Two-letter country code for the search proxy (e.g. US, GB, DE). Empty for any.

## `expandQueries` (type: `boolean`):

Search each keyword x domain pair with several phrasings. Recommended - Google caps a single query at ~300 results.

## `queryModifiers` (type: `array`):

Extra words combined with each keyword when Expand queries is on. Tuned for Poshmark.

## `maxPagesPerQuery` (type: `integer`):

Google rarely returns more than ~30 pages for one query.

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

How many queries run in parallel.

## Actor input object example

```json
{
  "keywords": [
    "reseller",
    "boutique"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact us",
    "wholesale",
    "customer service",
    "stockist"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

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

Records produced by Poshmark Email Scraper, stored in the run's default dataset.

# 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": [
        "reseller",
        "boutique"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact us",
        "wholesale",
        "customer service",
        "stockist"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leads-scraper/poshmark-email-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": [
        "reseller",
        "boutique",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact us",
        "wholesale",
        "customer service",
        "stockist",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("leads-scraper/poshmark-email-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": [
    "reseller",
    "boutique"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact us",
    "wholesale",
    "customer service",
    "stockist"
  ]
}' |
apify call leads-scraper/poshmark-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leads-scraper/poshmark-email-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/MQuaiGGSobBUf3Tdr/builds/RCVcK6CeP3qrP0hNg/openapi.json
