Felo API PlatformFelo API Platform

Pesquisa

Pesquise um nicho de produto antes de comprar estoque

Reúna o contexto da categoria, capture páginas de concorrentes em uma data declarada, leia o que os compradores reclamam no X e mantenha as evidências e o memorando em um LiveDoc para revisar antes de fazer o pedido.

Tempo30 minutosNívelIntermediárioAtualizado2026-10-30
Para quemOperadores de e-commercePesquisadores de produtoFundadores de DTC

Copiar o prompt

Substitua os campos entre colchetes e cole no Claude Code, Codex ou qualquer IA com acesso ao terminal. Ela instala a skill da Felo, pergunta antes de gastar créditos e executa o fluxo.

Pesquise este nicho de produto antes de comprar estoque ou lançar: [produto ou categoria].

Mercado: [país ou região]. Canal: [marketplace / DTC / varejo]. Janela de posts de compradores: últimos [30] dias.
Produtos comparáveis ou URLs de concorrentes: [URLs]. Restrições de orçamento e margem: [restrições]. Público: [equipe].

Produza um memo em Markdown com:
1. Um veredito de um parágrafo: vale aprofundar a pesquisa e o que mudaria sua opinião.
2. Sinais de demanda: o que as fontes dizem sobre interesse, sazonalidade e substitutos.
3. Produtos concorrentes: o que cada um afirma, o preço capturado na página e onde os compradores dizem que ele falha.
4. Posicionamento de preço: os preços realmente encontrados nas páginas, cada um com a data de captura.
5. Reclamações e necessidades não atendidas, com citações, contas e datas.
6. Riscos e perguntas abertas antes de comprar estoque.
7. Fontes: cada página e post usado, com URL e data.

Regras:
- Use apenas o que as APIs retornam. Nunca invente tamanho de mercado, estimativa de vendas, número de avaliações ou preço de concorrente.
- Relate os preços exatamente como capturados, com a URL da página e a data de captura. Nunca faça média nem normalize.
- Trate posts do X como anedota, não como dado de mercado, e diga quando a amostra for fraca.
- Separe o que o fornecedor afirma do que o comprador relata.
- Antes de gastar créditos, mostre as extrações e buscas planejadas e aguarde minha aprovação.
- Não contate fornecedores, não faça pedidos nem mande mensagem para ninguém no X.
- Grave o resultado em ./product-research.md e resuma no chat.

A cópia também inclui os passos de instalação e as regras de segurança.

O que você recebe

Saída de exemplo de uma execução. Não é geração ao vivo.

Exemplo de memo (trecho)

Pesquisa de produto — categoria de exemplo

Veredito

Vale olhar mais de perto, mas a evidência pública não basta para decidir estoque. As perguntas abertas abaixo são o próximo passo.

Contexto da categoria

Compradores comparam espaço na bancada e limpeza mais do que pressão. Nenhuma fonte pública sustenta estimativa de tamanho de mercado.

Páginas de concorrentes

  • Example A — página de produto (capturada em 2026-10-30)
  • Example B — página de produto (capturada em 2026-10-30)

O que os compradores relatam

  • @example_buyer: “Terceira troca em um ano; a vedação falha.” — 2026-10-19
  • @example_home: “Leva minutos para limpar e ninguém menciona.” — 2026-10-24

Posicionamento de preço

Os preços foram capturados em 2026-10-30 das páginas vinculadas. Ficam em dois níveis; cada página é citada diretamente, sem média.

Riscos e perguntas abertas

  • Durabilidade da vedação é a reclamação mais repetida.
  • Nenhuma fonte cobre taxas de devolução.
  • Verificar prazo do fornecedor e custo final antes de pedir.

Fontes

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

As chamadas exatas

Para desenvolvedores: o mesmo fluxo em código, na ordem de execução.

Mostrar as chamadas reais da API
  1. Peça ao Chat a visão da categoria

    Comece pela resposta com fontes, não por uma página em branco: o Chat pesquisa a web pública, ordena páginas e devolve os recursos usados. Pergunte sobre contexto de demanda, substitutos e reclamações comuns em uma só consulta e guarde os principais recursos como lista de evidências.

    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);

    Saída de exemplo

    {
      "answer": "Buyers compare on counter space and cleanup …",
      "sources": [
        { "link": "https://example.com/category-guide", "title": "…", "snippet": "…" }
      ]
    }
  2. Capture as páginas dos concorrentes

    Extraia duas ou três páginas de produtos concorrentes em Markdown com legibilidade. O objetivo é a afirmação e o preço na página hoje, não uma ficha técnica reescrita. Mantenha a URL ao lado do conteúdo e registre a data de captura: preço sem data é boato.

    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 })),
      ),
    );

    Saída de exemplo

    [
      {
        "url": "https://example.com/product-a",
        "title": "Example A — product page",
        "content": "# Example A\n\nSpecs and price as displayed…"
      }
    ]
  3. Leia o que os compradores relatam no X

    Páginas de fornecedores listam recursos; compradores descrevem falhas. Pesquise o nicho junto com palavras de atrito — frete, qualidade, reembolso — nos últimos 30 dias e guarde perfil, data e link. Esses posts são anedotas, não dados de demanda, e o memorando precisa dizer isso.

    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;

    Saída de exemplo

    { "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. Monte o memorando

    Este passo é código simples: junte a resposta da categoria, as datas de captura, as citações de compradores e a lista de fontes em um Markdown. Seja honesto nas perguntas em aberto — o memorando é útil porque separa o que as páginas provam do que ainda precisa ser confirmado com um fornecedor.

    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. Arquive as evidências em um LiveDoc

    Rode uma vez por nicho: crie o LiveDoc e guarde o short_id na configuração. Adicione as páginas de concorrentes e as fontes do Chat como recursos de URL para o arquivo deduplicar, depois adicione o memorando como documento. Antes da compra, consulte as capturas e veja quais preços mudaram.

    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,
    });

    Saída de exemplo

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

O que está incluído

  • Visão da categoria com fontes do Chat e as páginas por trás dela
  • Páginas de concorrentes em Markdown com data de captura
  • Reclamações de compradores no X com perfis, datas e links
  • Memorando em Markdown montado a partir dessas entradas
  • Um LiveDoc com as evidências e o memorando

O que não faz

  • Somente fontes públicas; relatórios pagos, cotações de fornecedores e vendas internas ficam de fora
  • Não estima tamanho de mercado, volume de vendas ou margem
  • Preços são registrados como capturados, nunca normalizados ou calculados em média
  • Posts do X são anedotas, não dados de demanda
  • Não contata fornecedores, não faz pedidos nem altera listagens

Perguntas

De onde vem o contexto de mercado?

O Chat API devolve uma resposta com fontes e as páginas públicas que usou. As páginas de concorrentes vêm das URLs que você fornece e são extraídas pelo Web Fetch; os posts vêm do X Search. Nenhum dado privado de vendas é usado.

Ele diz se um produto vai vender?

Não. Ele organiza evidências públicas — contexto de categoria, preços capturados e reclamações — e escreve o que é desconhecido. Validar demanda ainda exige seus dados, como anúncios, pré-vendas ou conversas com fornecedores.

E se o marketplace bloquear a extração?

O Web Fetch busca páginas públicas uma URL por vez e alguns sites bloqueiam. Use uma página de produto ou fornecedor acessível e deixe o memorando marcar a captura ausente em vez de adivinhar o preço.

Como evitar preços de concorrentes desatualizados?

Cada preço no memorando está ligado à URL e à data de captura. Rode a extração de novo perto da decisão de compra; o arquivo guarda capturas anteriores para mostrar que o preço mudou.

Ele contata fornecedores ou vendedores?

Não. O fluxo é somente leitura: extrai páginas, pesquisa posts públicos e escreve um memorando local. Nunca envia mensagens, faz pedidos ou edita listagens.

Quanto custa uma pesquisa?

Cada Chamada de Chat, extração e busca no X gasta créditos por uso; as tarifas atuais estão na página de preços. O prompt pede aprovação antes de executar.

Fluxos relacionados

Faça do seu jeito

A mesma receita, adaptada ao seu processo real.

Adicione transcrições de vídeos de review

Quando a categoria tem vídeos de review, pegue a transcrição com YouTube Subtitling e adicione duas ou três citações com timestamp à seção de compradores. Um review em vídeo ainda é a experiência de uma pessoa, então mantenha o rótulo de anedota dos posts do X.

Compare dois candidatos

Rode os mesmos passos para cada candidato e coloque os memorandos lado a lado: recursos alegados, preço capturado, reclamação recorrente e pergunta em aberto. A comparação continua qualitativa até você ter dados de vendas ou devoluções.

Atualize antes da compra

Rode a extração de novo um dia antes do pedido. Mantenha o mesmo LiveDoc e adicione um novo memorando, para o arquivo mostrar o que mudou entre a pesquisa de mesa e a compra, incluindo um preço que saiu do orçamento.

As páginas de referência por trás desta receita e para onde ir depois.