Felo API PlatformFelo API Platform

Araştırma

Stok sipariş etmeden önce bir ürün nişini araştırın

Kategori bağlamını toplayın, rakip sayfalarını belirtilen tarihte yakalayın, alıcı şikâyetlerini X’te okuyun ve siparişten önce incelemek için kanıtları ve notu tek bir LiveDoc’ta tutun.

Süre30 dakikaSeviyeOrtaGüncellendi2026-10-30
Kimler içinE-ticaret operatörleriÜrün araştırmacılarıDTC kurucuları

İstemi kopyalayın

Köşeli parantezli alanları değiştirip Claude Code, Codex veya terminal erişimi olan bir AI’ya yapıştırın. Felo becerisini kurar, kredi harcamadan önce sorar ve iş akışını çalıştırır.

Stok almadan veya lansmandan önce bu ürün nişini araştır: [ürün veya kategori].

Pazar: [ülke veya bölge]. Kanal: [pazaryeri / DTC / perakende]. Alıcı gönderileri dönemi: son [30] gün.
Karşılaştırılabilir ürünler veya rakip URL’leri: [URL]. Bütçe ve marj kısıtları: [kısıtlar]. Hedef kitle: [ekip].

Markdown notu şunları içersin:
1. Tek paragraflık karar: daha fazla araştırmaya değer mi ve ne fikrini değiştirir.
2. Talep sinyalleri: kaynaklar ilgi, mevsimsellik ve ikameler hakkında ne diyor.
3. Rakip ürünler: her biri ne iddia ediyor, sayfada yakalanan fiyat ve alıcıların eksik bulduğu yerler.
4. Fiyat konumlandırması: sayfalarda gerçekten bulunan fiyat noktaları, her biri yakalama tarihiyle.
5. Alıcı şikayetleri ve karşılanmayan ihtiyaçlar, alıntı, hesap ve tarihlerle.
6. Stok almadan önce çözülmesi gereken riskler ve açık sorular.
7. Kaynaklar: kullanılan her sayfa ve gönderi, URL ve tarihiyle.

Kurallar:
- Yalnızca API’nin döndürdüğünü kullan. Asla pazar büyüklüğü, satış tahmini, yorum sayısı veya rakip fiyatı uydurma.
- Fiyatları yakalandığı gibi, sayfa URL’si ve yakalama tarihiyle bildir. Asla ortalama veya normalize etme.
- X gönderilerini pazar verisi değil anekdot olarak ele al ve örneklem zayıfsa söyle.
- Satıcının iddiasını alıcının bildirdiğinden ayır.
- Kredi harcamadan önce planlanan çıkarım ve aramaları göster ve onayımı bekle.
- Tedarikçilerle iletişime geçme, sipariş verme ve X’te kimseye mesaj atma.
- Sonucu ./product-research.md dosyasına yaz ve sohbette özetle.

Kopya kurulum adımlarını ve güvenlik kurallarını da içerir.

Ne elde edersiniz

Bir çalıştırmanın örnek çıktısı. Canlı üretim değil.

Örnek not (alıntı)

Ürün araştırması — örnek kategori

Karar

Daha yakından bakmaya değer, ancak kamuya açık kanıt stok kararı için yeterli değil. Aşağıdaki açık sorular sonraki adım.

Kategori bağlamı

Alıcılar basınçtan çok tezgâh alanı ve temizlik kolaylığını karşılaştırıyor. Hiçbir kamuya açık kaynak pazar büyüklüğü tahminini desteklemiyor.

Rakip sayfaları

  • Example A — ürün sayfası (2026-10-30’da alındı)
  • Example B — ürün sayfası (2026-10-30’da alındı)

Alıcılar ne bildiriyor

  • @example_buyer: “Bir yılda üçüncü değişim; conta bozuluyor.” — 2026-10-19
  • @example_home: “Temizlik dakikalar alıyor, kimse bahsetmiyor.” — 2026-10-24

Fiyat konumlandırması

Fiyatlar 2026-10-30’da bağlantılı sayfalardan alındı. İki kademede; her sayfa doğrudan alıntılandı, ortalaması alınmadı.

Riskler ve açık sorular

  • Conta dayanıklılığı en sık tekrarlanan şikâyet.
  • Hiçbir kaynak iade oranlarını kapsamıyor.
  • Sipariş öncesi tedarikçi teslim süresini ve toplam maliyeti kontrol edin.

Kaynaklar

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

Tam çağrılar

Geliştiriciler için: aynı iş akışı kod olarak, yürütme sırasıyla.

Gerçek API çağrılarını göster
  1. Chat’ten kategori görünümü isteyin

    Boş sayfa yerine kaynaklı yanıtla başlayın: Chat kamuya açık web’i arar, sayfaları sıralar ve kullanılan kaynakları döndürür. Tek sorguda talep bağlamı, ikameler ve yaygın şikâyetleri sorun, ardından en iyi kaynakları kanıt listesi olarak saklayın.

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

    Örnek çıktı

    {
      "answer": "Buyers compare on counter space and cleanup …",
      "sources": [
        { "link": "https://example.com/category-guide", "title": "…", "snippet": "…" }
      ]
    }
  2. Rakip sayfalarını yakalayın

    İki veya üç rakip ürün sayfasını okuma moduyla Markdown olarak çıkarın. Amaç bugünkü sayfadaki iddia ve fiyattır, yeniden yazılmış özellik tablosu değil. URL’yi içerikle birlikte tutun ve yakalama tarihini yazın: tarihsiz fiyat söylentidir.

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

    Örnek çıktı

    [
      {
        "url": "https://example.com/product-a",
        "title": "Example A — product page",
        "content": "# Example A\n\nSpecs and price as displayed…"
      }
    ]
  3. Alıcıların X’te bildirdiklerini okuyun

    Tedarikçi sayfaları özellikleri listeler; alıcılar arızaları anlatır. Nişi sürtünme kelimeleriyle — teslimat, kalite, iade — 30 gün için arayın ve hesap, tarih, bağlantı saklayın. Bunlar anekdottur, talep verisi değil ve not bunu söylemelidir.

    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;

    Örnek çıktı

    { "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. Notu yazın

    Bu adım düz koddur: kategori yanıtını, yakalama tarihlerini, alıcı alıntılarını ve kaynak listesini tek Markdown’da birleştirin. Açık sorularda dürüst olun — not, sayfaların kanıtladığını tedarikçiyle doğrulanacaklardan ayırdığı için faydalıdır.

    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. Kanıtları LiveDoc’ta arşivleyin

    Niş başına bir kez çalıştırın: LiveDoc oluşturun ve short_idyi yapılandırmada saklayın. Rakip sayfalarını ve Chat kaynaklarını URL kaynağı olarak ekleyin ki arşiv tekilleştirsin, sonra notu belge olarak. Satın almadan önce yakalamaları arayın ve hangi fiyatların hareket ettiğini görün.

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

    Örnek çıktı

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

Neler dahil

  • Chat’ten kaynaklı kategori görünümü ve arkasındaki sayfalar
  • Yakalama tarihiyle rakip sayfaları Markdown olarak
  • Hesap, tarih ve bağlantılı X alıcı şikâyetleri
  • Bu girdilerden yazılmış Markdown notu
  • Kanıtları ve notu tutan bir LiveDoc

Neleri yapmaz

  • Yalnızca kamuya açık kaynaklar; ücretli raporlar, tedarikçi teklifleri ve dahili satışlar kapsam dışı
  • Pazar büyüklüğünü, hacmi veya marjı tahmin etmez
  • Fiyatlar yakalandığı gibi kaydedilir, asla normalleştirilmez veya ortalanmaz
  • X gönderileri anekdottur, talep verisi değil
  • Tedarikçilerle iletişime geçmez, sipariş vermez ve listelemeleri değiştirmez

Sorular

Pazar bağlamı nereden geliyor?

Chat API kaynaklı yanıtı ve kullanılan kamuya açık sayfaları döndürür. Rakip sayfaları sizin URL’lerinizden gelir ve Web Fetch çıkarır; alıcı gönderileri X Search’ten. Özel satış verisi kullanılmaz.

Ürünün satacağını söyler mi?

Hayır. Kamuya açık kanıtları düzenler — bağlam, yakalanan fiyatlar ve şikâyetler — ve bilinmeyeni yazar. Talebi doğrulamak sizin verinizi gerektirir: reklamlar, ön siparişler veya tedarikçi görüşmeleri.

Pazaryeri çıkarımı engellerse?

Web Fetch kamuya açık sayfaları tek URL olarak çeker ve bazı siteler engeller. Erişilebilir bir ürün veya tedarikçi sayfası kullanın ve notun fiyat tahmin etmek yerine eksik yakalamayı işaretlemesine izin verin.

Eski rakip fiyatlarından nasıl kaçınırım?

Nottaki her fiyat URL ve yakalama tarihine bağlıdır. Satın alma kararına yakın çıkarımı yeniden çalıştırın; arşiv önceki yakalamaları tutar, böylece hareketler görünür.

Tedarikçilerle veya satıcılarla iletişime geçer mi?

Hayır. İş akışı yalnızca okur: sayfaları çıkarır, kamuya açık gönderileri arar ve yerel not yazar. Mesaj göndermez, sipariş vermez ve listelemeleri değiştirmez.

Bir araştırmanın maliyeti nedir?

Her Chat, çıkarım ve X araması kullanıma göre kredi harcar; güncel tarifeler fiyat sayfasında. İstem harcamadan önce onay ister.

İlgili iş akışları

Kendinize uyarlayın

Aynı tarif, gerçekte nasıl teslim ettiğinize uyarlanmış.

Video inceleme transkriptleri ekleyin

Kategoride video incelemeler varsa YouTube Subtitling ile transkript alın ve alıcı bölümüne zaman damgalı iki veya üç alıntı ekleyin. Video inceleme tek kişinin deneyimidir: anekdot etiketini koruyun.

İki adayı karşılaştırın

Her aday için aynı adımları çalıştırın ve notları yan yana koyun: iddia edilen özellikler, yakalanan fiyat, tekrarlayan şikâyet ve açık soru. Karşılaştırma, satış veya iade veriniz olana kadar nitel kalır.

Satın almadan önce güncelleyin

Siparişten bir gün önce çıkarımı yeniden çalıştırın. Aynı LiveDoc’u tutun ve yeni not ekleyin ki arşiv araştırma ile satın alma arasında ne değiştiğini göstersin.

Bu tarifin arkasındaki referans sayfaları ve sonraki adımlar.