Skip to main content

apify-stockx-client

StockX resale market data — lowest ask, highest bid, last sale — by keyword search or category browse.

Python client for the rl1987/stockx-api-scraper Apify Actor. No local scraping, no proxy management, no anti-bot maintenance — the Actor runs on Apify's infrastructure and this package just starts it, waits, and hands you back the dataset as plain Python dicts.

Install · Quickstart · Getting an API token · Input reference · Output fields · Error handling · Pricing · Async / long-running runs · Links

Install

pip install apify-stockx-client

Requires Python 3.9+. Only dependency is requests.

Quickstart

from apify_stockx_client import StockXClient

client = StockXClient(api_token="apify_api_...")  # see "Getting an API token" below
items = client.run({"q": "Jordan 1 Retro High", "includeDetails": True, "maxItems": 20})

for item in items:
    print(item)

Real output from the example above (trimmed to a few fields):

{"title": "Jordan 1 Retro High OG Chicago Lost and Found", "brandName": "Jordan", "lowestAsk": 154, "highestBid": 286, "productUrl": "https://stockx.com/air-jordan-1-retro-high-og-chicago-reimagined-lost-and-found"}

run() blocks until the Actor finishes (usually a few seconds to ~30s depending on maxItems) and returns a plain list[dict] — the Actor's dataset, one dict per result row.

Getting an API token

  1. Sign up for a free account at console.apify.com.

  2. Go to Settings → Integrations and copy your Personal API token.

  3. Pass it to the client: StockXClient(api_token="..."), or read it from an environment variable:

    import os
    client = StockXClient(api_token=os.environ["APIFY_TOKEN"])
    

Never hardcode the token in source control — use an environment variable or secrets manager.

Input reference

run() takes a single dict matching the Actor's input schema. Full/authoritative schema: the Input tab on the Actor's Apify page.

Field Type Default Description
q str "" Search keyword, e.g. "Jordan 1 Retro High".
category str — One of sneakers, streetwear, watches, handbags, electronics, collectibles, trading-cards. Provide q, category, or both.
includeDetails bool False Fetch PDP fields: description, release date, per-size variantSizes.
maxItems int 100 Maximum products to scrape. 0 = no limit.

Output fields

Each dict in the returned list is one row from the Actor's dataset. Common fields:

title, brandName, model, colorway, styleId, retailPrice, currency, lowestAsk, highestBid, lastSale, productUrl, thumbUrl, images; plus description, releaseDate, variantSizes when includeDetails=True.

Exact field availability can vary by input flags (see table above) — treat unfamiliar/missing keys as optional and use .get() rather than [...] indexing.

Error handling

from apify_stockx_client import StockXClient, ApifyActorError
import requests

client = StockXClient(api_token="...")

try:
    items = client.run({"q": "Jordan 1 Retro High", "includeDetails": True, "maxItems": 20})
except ApifyActorError as e:
    # The Actor run itself failed, timed out, or was aborted on the Apify side.
    print(f"Actor run did not succeed: {e}")
except requests.HTTPError as e:
    # Bad token, malformed input, rate limiting, etc. — an HTTP-level error
    # calling the Apify API (not the Actor run).
    print(f"Apify API request failed: {e}")

ApifyActorError is raised when the run reaches a terminal non-success status (FAILED, TIMED-OUT, ABORTED) or doesn't finish within timeout_secs (default 300s — raise it for run() calls with a large maxItems, e.g. StockXClient(api_token="...", timeout_secs=900)).

Pricing

Pay-per-event: $0.00075/product row, plus $0.00075/product enriched with detail-page data when includeDetails=True. No subscription — see the Actor's pricing tab for current rates. Apify also includes a free monthly usage tier that covers light use.

Advanced: longer timeouts & polling

client = StockXClient(api_token="...", timeout_secs=900)  # allow up to 15 min
items = client.run(actor_input, poll_interval_secs=3.0)   # poll less aggressively

Links

License

MIT

Metadata

Release files for apify-stockx-client 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for apify-stockx-client 0.1.1
File Size Uploaded
apify_stockx_client-0.1.1.tar.gz 6.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for apify-stockx-client 0.1.1
File Interpreter ABI Platform
apify_stockx_client-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 14.4 kB

Release files / apify_stockx_client-0.1.1.tar.gz

Download URL apify_stockx_client-0.1.1.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
153726f3714c2885946dcf396534b0adbc28107ab152c022eb7c51508295bd31
BLAKE2b-256 checksum
How to use checksums
ae4404a85cd56756cea06ef3a6ded101dccb799894e53d85431de27358fc8eb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.0

Release files / apify_stockx_client-0.1.1-py3-none-any.whl

Download URL apify_stockx_client-0.1.1-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
39bacb2eb3691ce2bedd04c4d7d17923133097503065631e82e7b3eb07ef3382
BLAKE2b-256 checksum
How to use checksums
d5e57744e75f3c52ab2f7607cdeb1da351106cae1e203b53c8d393c8fc61b5bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page