Как собирать данные о перепродаже на StockX и GOAT для исследования рынка

Официальный API StockX предназначен для продавцов и ограничен 25,000 вызовами в день. Для исследования рынка вы обращаетесь к публичным страницам — вот как извлечь историю цен, распределение размеров и сигналы популярности чисто.

Перепродажа кроссовок — это реальный рынок с реальным ценообразованием, и StockX и GOAT — его два крупнейших ордербука. Если вы хотите изучить этот рынок — отслеживать историю цен, измерять распределение размеров, определять, какие релизы становятся популярными — инстинкт подсказывает обратиться к официальному API StockX. Это обычно неправильный инструмент. API разработчика StockX предназначен для продавцов: он аутентифицируется с помощью OAuth 2.0 за шлюзом одобрения, существует для размещения и управления списками и заказами и ограничен 25,000 запросами в течение 24 часов с одним запросом в секунду, с жестким 429, как только вы превысите это. Он предоставляет продавцу их собственный инвентарь, а не исследователю весь рынок. Для исследования рынка данные находятся на публичных страницах продуктов. Это руководство показывает, как собирать их чисто.

Почему официальный API StockX — неправильный инструмент для исследований

Портал разработчика четко указывает на его назначение: поиск по каталогу, управление списками и управление заказами. Даже продавцы на платформе сообщают о долгих ожиданиях и отказах в получении доступа к API в первую очередь. А ограничение по скорости — 25,000 вызовов в день, пакетные операции ограничены 500 элементами каждые 5 минут до 50,000 элементов в день — щедро для управления собственным магазином, но мало для изучения тысяч стилей в нескольких размерах и на обоих рынках. Критически важно, что он не предоставляет историческую рыночную ленту: числа, которые хочет исследователь — годовые максимумы и минимумы, волатильность, ценовая премия над розничной ценой, скорость продаж по размеру — вычисляются и отображаются на публичных страницах, а не предоставляются как массовая исследовательская конечная точка.

Таким образом, практическое разделение простое. Используйте официальный API, если вы продавец, автоматизирующий свои собственные запросы. Используйте публичные страницы, собранные ответственно, если вы занимаетесь ценовым интеллектом или исследованием трендов. Та же логика применима к перепродаже и розничной торговле — мы рассматриваем общую версию в мониторинге цен в масштабах.

Существует также проблема покрытия, которую API не может решить. Цены на перепродажу чувствительны к географии: одна и та же пара имеет разную премию на рынке США, чем на европейском или японском, потому что предложение, налоги и спрос различаются по регионам. Исследователь, измеряющий глобальный рынок, должен прочитать каждый продукт из нескольких стран, что API продавца не предназначен делать, но что вращающийся пул резидентных IP с таргетингом по странам обрабатывает по умолчанию. Эта географическая составляющая часто является местом, где скрывается интересный арбитраж.

Какие данные содержат страницы продуктов StockX или GOAT

Каждая страница продукта несет удивительно богатый набор данных, как только вы разберете встроенный JSON, который ее наполняет. На стиль вы можете прочитать стабильный SKU и UPC, а на размер — целый срез ордербука:

Сравнение официального API StockX с сбором данных с публичных страниц продуктов для исследования рынка кроссовок, показывающее ограничения по скорости против доступных сигналов
Официальный API — это инструмент для продаж, ограниченный 25,000 вызовами в день; публичные страницы содержат историю цен, распределение по уровням размеров и скорость, которые действительно нужны для исследования рынка.

Получение страниц без блокировки

StockX и GOAT защищены серьезным управлением ботами, и IP-адрес центра обработки данных, многократно обращающийся к JSON продукта, получает вызов в течение нескольких запросов. Две вещи поддерживают сбор данных: резидентные выходные IP-адреса, которые выглядят как обычные покупатели, и ротация на каждый запрос, чтобы ни один адрес не создавал подозрительный паттерн. Через резидентные прокси — более 90 миллионов IP-адресов в более чем 200 странах — каждый запрос поступает с другого домашнего адреса:

import requests, json

proxies = {
    "http":  "http://USER:PASS@gate.quantumproxies.io:PORT",
    "https": "http://USER:PASS@gate.quantumproxies.io:PORT",
}
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"}

url = "https://stockx.com/air-jordan-1-retro-high-og-example"
html = requests.get(url, proxies=proxies, headers=headers, timeout=(5, 30)).text

# Product data hydrates from an embedded JSON blob, not the visible HTML.
start = html.find('{"props":')
blob = json.loads(html[start:html.rindex("}", 0, html.find("</script>", start)) + 1])
# Walk blob -> product -> market to reach asks, bids and statistics.

Когда страница возвращает почти пустую оболочку вместо JSON, она была обслужена клиентской версией или версией с вызовом — симптом, который мы разбираем в пустая страница, отсутствующие данные. Это момент для перехода от сырых прокси к управляемому получению. Scraper API рендерит JavaScript по запросу и возвращает чистый JSON или markdown, так что вы перестаете поддерживать безголовые браузеры и парсеры самостоятельно:

curl -G "https://api.quantumproxies.io/scrape" \
  --data-urlencode "url=https://stockx.com/air-jordan-1-retro-high-og-example" \
  --data-urlencode "render=true" \
  --data-urlencode "country=us" \
  -H "Authorization: Bearer YOUR_API_KEY"

Преобразование сырых запросов в исследовательские сигналы

Как только варианты разобраны, анализ — это небольшая арифметика, которая превращает стену чисел в решения. Распределение по размерам — разрыв между самым дешевым и самым дорогим размером — показывает, какие размеры редки, а премия над розничной ценой отделяет настоящий ажиотаж от маркетингового шума:

def size_spread(variants):
    asks = [v["lowest_ask"] for v in variants if v.get("lowest_ask")]
    return {
        "cheapest_size": min(asks),
        "priciest_size": max(asks),
        "spread_pct": round((max(asks) - min(asks)) / min(asks) * 100, 1),
    }

def hype_score(stats, retail):
    premium = (stats["annual_average_price"] - retail) / retail
    return round(premium * 100, 1)  # % over retail; negative = a dud

Запустите это на списке наблюдения по ежедневному расписанию, и у вас будет индекс перепродажи: растущая скорость плюс расширяющаяся премия — это ранний сигнал нагрева, в то время как падающие продажи и сужающаяся премия указывают на угасание. Сопоставление StockX с GOAT для того же SKU выявляет арбитраж и подтверждает, какая платформа лидирует в ценовом открытии для данной категории. Если ваш список наблюдения включает тысячи стилей, контролируйте свои расходы с помощью тактик в сокращение затрат на пропускную способность прокси при сборе данных — вам редко нужны изображения, только JSON.

Один комментарий по поводу поведения: это исследование рынка на публичных, неперсональных данных о ценах, что является низкорисковым концом сбора данных, но вы все равно должны уважать условия обслуживания каждой платформы и ограничивать себя вежливо. Это руководство, а не юридическая консультация.

Панель статистики полей данных о перепродаже кроссовок: ограничение API в 25,000 в день, средняя ценовая премия 25 процентов, окна продаж от 15 до 60 дней и один год истории цен
Сигналы, которые имеют значение, — это скорость и премия: популярная пара значительно выше розничной цены с быстрыми продажами, неудачная — ниже и застопорилась.

Часто задаваемые вопросы

Есть ли у StockX официальный API?

Да, но это инструмент для продавцов, а не сервис рыночных данных. API разработчика StockX аутентифицируется с помощью OAuth 2.0 за процессом одобрения и охватывает поиск по каталогу, управление списками и управление заказами. Он ограничен 25,000 запросами в течение 24 часов с одним запросом в секунду и возвращает вашу собственную активность продаж, а не массовую историческую ленту более широкого рынка.

Существует ли API GOAT для цен на кроссовки?

GOAT не предлагает публичный API ценообразования для исследователей. Сторонние агрегаторы и проекты с открытым исходным кодом извлекают данные GOAT, собирая их с публичных страниц, тот же подход, который вы бы использовали для StockX. Поскольку обе платформы используют сильное управление ботами, надежный сбор данных зависит от резидентных IP и ротации на каждый запрос, а не от конечной точки центра обработки данных.

Какие данные о кроссовках я могу получить без официального API?

Публичные страницы продуктов раскрывают самое низкое предложение и самую высокую ставку по размеру, общее количество предложений, количество продаж за 15, 30 и 60-дневные периоды, годовые максимальные/минимальные/средние цены, показатель волатильности, еженедельную скорость заказов и стабильные идентификаторы SKU/UPC. Этого достаточно, чтобы построить историю цен, анализ распределения размеров и индекс популярности, не касаясь API продавца.

Как избежать блокировки при сборе данных с StockX?

Используйте резидентные прокси, чтобы запросы выглядели как от обычных покупателей, меняйте выходной IP на каждый запрос, устанавливайте реалистичный User-Agent и соблюдайте темп. Когда страницы возвращают пустую оболочку вместо встроенного JSON, переключитесь на рендерящий Scraper API, который выполняет JavaScript страницы и возвращает структурированные данные, вместо того чтобы бороться с вызовом самостоятельно.

Рынок перепродажи вознаграждает того, кто лучше его измеряет. Официальный API не даст вам этого измерения — он никогда не был предназначен для этого. Публичные страницы, собранные на чистых резидентных IP и сведенные к скорости и премии, превращают хаотичный ордербук в сигнал, на основе которого вы можете принимать исследовательские решения.

Собирайте чистые данные о кроссовках с помощью Scraper API