Felo API PlatformFelo API Platform

Исследования

Исследуйте нишу продукта до закупки

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

Время30 минутУровеньСреднийОбновлено2026-10-30
Для когоОператоры e-commerceИсследователи продуктовОснователи DTC

Скопировать промпт

Замените поля в квадратных скобках и вставьте в Claude Code, Codex или любой AI с доступом к терминалу. Он установит навык Felo, спросит перед списанием кредитов и выполнит процесс.

Изучи эту товарную нишу до закупки или запуска: [товар или категория].

Рынок: [страна или регион]. Канал: [маркетплейс / DTC / розница]. Период постов покупателей: последние [30] дней.
Сопоставимые товары или URL конкурентов: [URL]. Ограничения по бюджету и марже: [ограничения]. Аудитория: [команда].

Подготовь Markdown-записку с:
1. Выводом на один абзац: стоит ли исследовать дальше и что изменит твоё мнение.
2. Сигналами спроса: что источники говорят об интересе, сезонности и заменителях.
3. Конкурирующими товарами: что каждый заявляет, какую цену удалось зафиксировать на странице и в чём покупатели видят недостатки.
4. Ценовым позиционированием: реально найденные на страницах цены, каждая с датой фиксации.
5. Жалобами и неудовлетворёнными потребностями, с цитатами, аккаунтами и датами.
6. Рисками и открытыми вопросами, которые нужно решить до закупки.
7. Источниками: каждая использованная страница и пост с URL и датой.

Правила:
- Используй только то, что возвращают API. Никогда не выдумывай размер рынка, оценку продаж, число отзывов или цены конкурентов.
- Сообщай цены ровно как зафиксировано, с URL страницы и датой фиксации. Никогда не усредняй и не нормализуй их.
- Относись к постам X как к частным случаям, а не рыночным данным, и говори, когда выборка слишком мала.
- Разделяй заявления вендора и сообщения покупателей.
- Перед расходом кредитов покажи планируемые извлечения и поиски и дождись моего одобрения.
- Не связывайся с поставщиками, не размещай заказы и никому не пиши в X.
- Запиши результат в ./product-research.md и кратко изложи его в чате.

В копию также входят шаги установки и правила безопасности.

Что получится

Пример вывода одного запуска. Не живая генерация.

Пример заметки (фрагмент)

Исследование продукта — пример категории

Вывод

Стоит изучить ближе, но публичных доказательств недостаточно для решения о закупке. Открытые вопросы ниже — следующий шаг.

Контекст категории

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

Страницы конкурентов

  • Example A — страница продукта (снято 2026-10-30)
  • Example B — страница продукта (снято 2026-10-30)

Что сообщают покупатели

  • @example_buyer: «Третья замена за год; уплотнитель ломается». — 2026-10-19
  • @example_home: «Чистка занимает минуты, и никто об этом не говорит». — 2026-10-24

Позиционирование по цене

Цены сняты 2026-10-30 со связанных страниц. Они делятся на два уровня; каждая страница цитируется напрямую, без усреднения.

Риски и открытые вопросы

  • Долговечность уплотнителя — самая повторяемая жалоба.
  • Ни один источник не покрывает процент возвратов.
  • Проверить сроки поставщика и конечную стоимость до заказа.

Источники

  • https://example.com/product-a — 2026-10-30
  • https://x.com/example_buyer/status/... — 2026-10-19

Реальные вызовы

Для разработчиков: тот же процесс в виде кода в порядке выполнения.

Показать реальные вызовы API
  1. Попросите Chat об обзоре категории

    Начните не с пустой страницы, а с ответа с источниками: Chat ищет в публичном вебе, ранжирует страницы и возвращает использованные ресурсы. Спросите о контексте спроса, заменителях и частых жалобах одним вопросом, затем оставьте верхние ресурсы как список доказательств.

    product-research.ts
    const BASE = "https://openapi.felo.ai";
    const headers = {
      Authorization: `Bearer ${process.env.FELO_API_KEY}`,
      "Content-Type": "application/json",
    };
    
    async function felo<T>(path: string, body?: unknown): Promise<T> {
      const res = await fetch(`${BASE}${path}`, {
        method: body ? "POST" : "GET",
        headers,
        body: body ? JSON.stringify(body) : undefined,
      });
      if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
      return res.json() as Promise<T>;
    }
    
    type ChatData = {
      data: {
        answer: string;
        resources: { link: string; title: string; snippet: string }[];
      };
    };
    
    const niche = "portable espresso maker"; // replace with the category you are judging
    
    const context = await felo<ChatData>("/v2/chat", {
      query: `Demand, price bands, and buyer complaints for ${niche} in the US`,
    });
    
    const sources = context.data.resources.slice(0, 5);

    Пример вывода

    {
      "answer": "Buyers compare on counter space and cleanup …",
      "sources": [
        { "link": "https://example.com/category-guide", "title": "…", "snippet": "…" }
      ]
    }
  2. Зафиксируйте страницы конкурентов

    Извлеките две-три страницы товаров конкурентов в Markdown с читаемостью. Цель — сегодняшние утверждения и цена страницы, а не пересказанная спецификация. Держите URL рядом с содержимым и записывайте дату фиксации: цена без даты — слух.

    product-research.ts
    const PRODUCT_PAGES = [
      { url: "https://example.com/product-a", title: "Example A — product page" },
      { url: "https://example.com/product-b", title: "Example B — product page" },
    ];
    
    type ExtractData = { data: { content: string } };
    
    const listings = await Promise.all(
      PRODUCT_PAGES.map((page) =>
        felo<ExtractData>("/v2/web/extract", {
          url: page.url,
          output_format: "markdown",
          with_readability: true,
        }).then((extracted) => ({ ...page, content: extracted.data.content })),
      ),
    );

    Пример вывода

    [
      {
        "url": "https://example.com/product-a",
        "title": "Example A — product page",
        "content": "# Example A\n\nSpecs and price as displayed…"
      }
    ]
  3. Прочитайте отчёты покупателей в X

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

    product-research.ts
    type XData = {
      data: {
        tweets: {
          content: string;
          author: { username: string };
          created_at: string;
          metrics: { retweet_count: number; favorite_count: number; reply_count: number };
          url: string;
        }[];
      };
    };
    
    const since = Math.floor((Date.now() - 30 * 24 * 60 * 60 * 1000) / 1000);
    
    const search = await felo<XData>("/v2/x/tweet/search", {
      query: `"${niche}" (shipping OR quality OR refund)`,
      limit: 50,
      since_time: since,
    });
    
    const complaints = search.data.tweets;

    Пример вывода

    { "data": { "tweets": [
      {
        "content": "Third replacement in a year; the seal fails.",
        "author": { "username": "example_buyer" },
        "created_at": "2026-10-19T15:02:00Z",
        "metrics": { "retweet_count": 1, "favorite_count": 12, "reply_count": 3 },
        "url": "https://x.com/example_buyer/status/..."
      }
    ] } }
  4. Соберите меморандум

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

    product-research.ts
    const capturedOn = new Date().toISOString().slice(0, 10);
    
    const memo = [
      `# Product research — ${niche}`,
      "",
      "## Category context",
      context.data.answer,
      "",
      "## Competitor pages",
      ...listings.map(
        (page) => `- [${page.title}](${page.url}) — captured ${capturedOn}`,
      ),
      "",
      "## What buyers report",
      ...complaints.slice(0, 10).map(
        (post) =>
          `- @${post.author.username} (${post.created_at.slice(0, 10)}): ${post.content}`,
      ),
      "",
      "## Sources",
      ...sources.map((source) => `- [${source.title}](${source.link})`),
    ].join("\n");
    
    console.log(memo);
  5. Сохраните доказательства в LiveDoc

    Запускайте один раз на нишу: создайте LiveDoc и сохраните short_id в конфигурации. Добавьте страницы конкурентов и источники Chat как URL-ресурсы, чтобы архив дедуплицировал их, затем добавьте меморандум документом. Перед закупкой можно найти фиксации и увидеть, какие цены изменились.

    product-research.ts
    type LiveDocData = { data: { short_id: string } };
    
    const research = await felo<LiveDocData>("/v2/livedocs", {
      name: `Product research: ${niche}`,
      description: "Competitor pages, buyer posts, and the memo",
    });
    
    await felo(`/v2/livedocs/${research.data.short_id}/resources/urls`, {
      urls: [
        ...listings.map((page) => ({ url: page.url, title: page.title })),
        ...sources.map((source) => ({ url: source.link, title: source.title })),
      ].slice(0, 10),
    });
    
    await felo(`/v2/livedocs/${research.data.short_id}/resources/doc`, {
      title: `Product memo — ${capturedOn}`,
      content: memo,
    });

    Пример вывода

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

Что входит

  • Обзор категории с источниками из Chat и страницы, на которых он основан
  • Страницы конкурентов в Markdown с датой фиксации
  • Жалобы покупателей в X с аккаунтами, датами и ссылками
  • Markdown-меморандум из этих входных данных
  • Один LiveDoc с доказательствами и меморандумом

Чего не делает

  • Только публичные источники; платные отчёты, предложения поставщиков и внутренние продажи вне scope
  • Не оценивает размер рынка, объём продаж или маржу
  • Цены фиксируются как есть, без нормализации и усреднения
  • Посты X — анекдоты, а не данные спроса
  • Не связывается с поставщиками, не заказывает и не меняет листинги

Вопросы

Откуда берётся контекст рынка?

Chat API возвращает ответ с источниками и использованные публичные страницы. Страницы конкурентов берутся из ваших URL через Web Fetch, посты покупателей — из X Search. Приватные данные продаж не используются.

Он скажет, будет ли товар продаваться?

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

Что если маркетплейс блокирует извлечение?

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

Как не устареть ценам конкурентов?

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

Он связывается с поставщиками или продавцами?

Нет. Процесс только читает: извлекает страницы, ищет публичные посты и пишет локальный меморандум. Он не отправляет сообщения, не заказывает и не редактирует листинги.

Сколько стоит один запуск?

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

Связанные процессы

Адаптируйте под себя

Тот же рецепт, подстроенный под ваш реальный процесс.

Добавьте транскрипты обзоров

Если в категории есть видеообзоры, получите транскрипт через YouTube Subtitling и добавьте две-три цитаты с таймкодами в раздел покупателей. Обзор остаётся опытом одного человека, поэтому сохраняйте ту же пометку «анекдот», что и для постов X.

Сравните двух кандидатов

Запустите те же шаги для каждого кандидата и сравните меморандумы: заявленные функции, зафиксированная цена, повторяющаяся жалоба и открытый вопрос. Сравнение остаётся качественным, пока нет ваших продаж или возвратов.

Обновите перед закупкой

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

Справочные страницы этого рецепта и куда двигаться дальше.