Наша собственная статистика посещений включена всегда. Google Analytics помогает нам понять, как пользуются нашими публичными страницами (но не вашим рабочим пространством после входа), и включается только с вашего разрешения. См. нашу политику конфиденциальности.

API Etsy Сведения

POST

Состояние API

Состояние за 24 ч
Норма
Среднее время за 24 ч
—
  • Стабильно / норма
  • Доступно
  • Ограничено
  • Почти недоступно
Норма

Получите полную запись о товаре Etsy по url его карточки: описание, материалы, диапазон цен, варианты, основные моменты из отзывов и сведения о магазине, который его продаёт. Несмотря на название действия, profile относится к товару, а не к аккаунту покупателя или полной странице магазина.

Возможность Etsy Details читает одну карточку товара Etsy по ссылке и возвращает данные о товаре: ID карточки, название, описание, категорию, материалы, цену или диапазон цен с валютой, варианты, число отзывов, страну отправки и изображения. Она также возвращает данные магазина: его ID, название, число отзывов и срок работы в годах. Возможность описывает товар, а не аккаунт пользователя. Продавцы, исследователи трендов и покупатели, которые подбирают товары ручной работы, используют её, чтобы изучать успешные карточки товаров, сравнивать материалы и цены и оценивать, сколько лет работает магазин и сколько отзывов он собрал.

Передавайте полную ссылку на карточку товара с путём /listing/<ID>/. materials содержит набор тегов, по которым покупатели фильтруют товары ручной работы, поэтому сохраняйте его для каждой сравниваемой карточки. ships_from_country показывает, откуда отправляется заказ, что важно для сроков доставки. shop_years и shop_review_count описывают магазин в целом. Значение null в review_count означает, что Etsy не публикует это число, а не что отзывов нет.

Цена: $1.39 за 1 000 запросов ($0.001389 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.

Промпт для ИИ

Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Etsy Сведения (etsy/profile).

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: etsy и action: profile, а параметры передайте в params.
- Обязательные параметры:
  - url: Принимает полный URL карточки товара Etsy в формате /listing/<ID>/ для действий profile и product_detail, чтобы получить данные одного товара.
- Возвращает один объект. Основные поля: listing_id, title, url, description, materials, category, price, price_min, price_max, currency, review_count, shop_id; всего полей: 21, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=etsy.
- Пример тела запроса:
{
  "platform": "etsy",
  "action": "profile",
  "params": {
    "url": "https://www.etsy.com/listing/1710567856/its-okay-to-make-some-mistakes-shirt"
  }
}
- Цена: $1.39 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.

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

Параметры запроса

ИмяРасположениеТипОбязательныйПо умолчаниюОписание
AuthorizationheaderstringДа-Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода.
platformbodystringДаetsyИдентификатор платформы, фиксированное значение.
actionbodystringДаprofileИдентификатор возможности, фиксированное значение.
urlbody.paramsstringДа-Принимает полный URL карточки товара Etsy в формате /listing/<ID>/ для действий profile и product_detail, чтобы получить данные одного товара. Обратите внимание: profile возвращает данные товара, а не профиль пользователя. Не заменяет обязательный параметр shop при запросах к эндпоинтам магазина.

Примеры кода

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "etsy",
  "action": "profile",
  "params": {
    "url": "https://www.etsy.com/listing/1710567856/its-okay-to-make-some-mistakes-shirt"
  }
}'

Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.

Пример ответа

Реальный ответ

Получено October 24, 2026 at 18:28 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты). id, billing и quota меняются при каждом вызове, поэтому показана только их структура.

json
{
  "id": "req_…",
  "platform": "etsy",
  "action": "profile",
  "results": {
    "listing_id": "1710567856",
    "title": "It's Okay To Make Some Mistakes Shirt ,Mental Health Shirt ,Motivational Shirt, Mental Health Matters, Motivational Shirt ,It's Okay To",
    "url": "https://www.etsy.com/listing/1710567856/its-okay-to-make-some-mistakes-shirt",
    "description": "It's Okay To Make Some Mistakes Shirt ,Mental Health Shirt ,Motivational Shirt, Mental Health Matters, Motivational Shirt ,It's Okay To\nHello there!\nWe choose one of the highest-quality t-shirt manufacturers in the market! We either choose Circle Soft Style, Bella Canvas, Gildan …",
    "category": "Clothing < Gender-Neutral Adult Clothing < Tops & Tees < T-shirts",
    "currency": "USD",
    "review_count": 134,
    "shop_id": "35055979",
    "shop_review_count": 18826,
    "shop_years": "4 years",
    "ships_from_country": "US",
    "image_url": "https://i.etsystatic.com/35055979/r/il/cfd7dd/5962184626/il_fullxfull.5962184626_auti.jpg",
    "platform": "etsy",
    "images": [
      "https://i.etsystatic.com/35055979/r/il/cfd7dd/5962184626/il_fullxfull.5962184626_auti.jpg",
      "https://i.etsystatic.com/35055979/r/il/afd660/6010243165/il_fullxfull.6010243165_looh.jpg",
      "https://i.etsystatic.com/35055979/r/il/0b3ab3/6010246289/il_fullxfull.6010246289_493g.jpg"
    ],
    "review_highlights": [
      "Great quality",
      "Love it",
      "Fast shipping"
    ],
    "review_tags": [
      {
        "tag": "Quality",
        "count": 39
      },
      {
        "tag": "Appearance",
        "count": 37
      },
      {
        "tag": "Comfort",
        "count": 26
      }
    ]
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Поля ответа

Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.

ПолеЗначение
listing_idТрактуется так же, как на самой платформе
titleЗаголовок. null, если на платформе нет заголовков (например, у текстовых постов).
urlСсылка на запись на платформе.
descriptionКраткое содержание или описание, обычно короче text.
materialsТрактуется так же, как на самой платформе
categoryНазвание категории во внутренней классификации платформы. Категории разных платформ не унифицированы.
priceЦена числом без символа валюты; см. currency.
price_minТрактуется так же, как на самой платформе
price_maxТрактуется так же, как на самой платформе
currencyКод валюты цены (например, CNY, USD). Если price есть, а currency равно null, не делайте предположений о валюте.
review_countКоличество отзывов для возможностей по товарам и компаниям. null означает, что значение не раскрыто, а не 0.
shop_idТрактуется так же, как на самой платформе
shop_nameТрактуется так же, как на самой платформе
shop_review_countТрактуется так же, как на самой платформе
shop_yearsТрактуется так же, как на самой платформе
ships_from_countryТрактуется так же, как на самой платформе
image_urlСсылка на изображение. Возможности с несколькими изображениями могут возвращать массив image_urls.
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).
imagesМассив ссылок на изображения в порядке показа на платформе; поле отсутствует, если изображений нет.
review_highlightsТрактуется так же, как на самой платформе
review_tagsТрактуется так же, как на самой платформе
variantsТрактуется так же, как на самой платформе

FAQ

Etsy Details — это профиль магазина или пользователя?

Нет. Details читает карточку товара, то есть товар по ссылке /listing/. Чтобы получить данные о магазине продавца, используйте Etsy Shop с коротким названием магазина или его ссылкой /shop/. Чтобы узнать мнение покупателей, используйте возможность Etsy Reviews, которая возвращает отзывы по всему магазину, а не по одной карточке.

Какой формат ссылки нужен в url?

Полная ссылка на карточку товара с числовым ID после /listing/, например https://www.etsy.com/listing/1710567856/its-okay-to-make-some-mistakes-shirt. Страницы магазинов и результаты поиска не являются карточками товаров и здесь не подходят. ID возвращается в listing_id. Это удобный ключ для дедупликации сохранённых карточек.

Почему указан диапазон цен, а не одна цена?

У карточек с несколькими вариантами, например размерами или цветами, цена может зависеть от варианта. Поэтому price_min и price_max задают нижнюю и верхнюю границы диапазона в валюте, код которой указан в currency. Сравнивая карточки, сопоставляйте однотипные значения, например нижние границы диапазонов, и проверяйте variants, чтобы понять, что представляет собой каждый вариант.

Ошибки и оплата

401
Ключ отсутствует или недействителен.
402
Недостаточно средств на балансе. Сначала пополните баланс.
422
Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
429
Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
503
Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
200 (пусто)
Нет данных. Без списания.

Ошибки