Felo API PlatformFelo API Platform

Felo APIs

Web Fetch API

Wyodrębniaj treść stron internetowych jako HTML, tekst lub Markdown, z opcjami selektora i readability.

POST/v2/web/extract

Uwierzytelnianie

Bearer API key

Typ zawartości

application/json

Uwagi o limitach

Mogą obowiązywać limity dla poszczególnych endpointów.

API Web Fetch wyodrębnia treść z docelowego adresu URL i zwraca wynik w formacie łatwiejszym do przetworzenia dla agentów, systemów RAG i przepływów pracy z treścią. Może zwracać HTML, zwykły tekst lub Markdown i obsługuje selektory, opcje czytelności, kontrolę pamięci podręcznej, niestandardowe agenty użytkownika oraz pliki cookie żądań.

Endpoint

POST https://openapi.felo.ai/v2/web/extract

Uwierzytelnianie

Wyślij klucz API w nagłówku Authorization:

Authorization: Bearer YOUR_API_KEY

Szczegóły tworzenia kluczy API i zarządzania nimi znajdziesz w przewodniku uwierzytelniania.

Użycie z agentami AI

Zainstaluj kompletny pakiet felo-ai, gdy chcesz, aby agent wyodrębniał treść stron internetowych obok każdego innego dostępnego Felo Skill. Instalator dynamicznie wykrywa każdy katalog pakietu zawierający SKILL.md, więc nigdy nie opiera się na stałej liście. Zainstaluj wszystkie wykryte Skills w Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills lub Hermes Agent ~/.hermes/skills. Użyj podręcznika konfiguracji agenta AI, aby poznać bezpieczną instalację i kroki konfiguracji klucza API dla każdej platformy.

Żądanie

Nagłówki

NagłówekWymaganyOpis
AuthorizationTakTwój klucz API w formacie Bearer YOUR_API_KEY
Content-TypeTakMusi mieć wartość application/json

Parametry treści

ParametrTypWymaganyDomyślnieOpis
urlstringTak-Adres URL strony internetowej do wyodrębnienia.
crawl_modestringNiefastTryb wyodrębniania. Użyj fast do szybszego pobierania lub fine do dokładniejszego indeksowania, które może obsłużyć bogatsze strony.
output_formatstringNiehtmlFormat wyjściowy. Obsługiwane wartości: html, text, markdown.
with_readabilityboolean or stringNie-Włącz przetwarzanie czytelności, aby skupić się na głównej treści i zmniejszyć szum strony.
with_links_summarybooleanNie-Dołącz podsumowanie linków, gdy jest obsługiwane przez podrzędny ekstraktor.
with_images_summarybooleanNie-Dołącz podsumowanie obrazów, gdy jest obsługiwane.
with_images_readabilitybooleanNie-Zastosuj obsługę czytelności do wyodrębniania obrazów, gdy jest obsługiwana.
with_imagesbooleanNie-Dołącz informacje o obrazach do wyodrębnionego wyniku.
with_linksbooleanNie-Dołącz informacje o linkach do wyodrębnionego wyniku.
ignore_empty_text_imagebooleanNie-Ignoruj obrazy niezawierające użytecznego tekstu, gdy jest obsługiwane.
target_selectorstringNie-Selektor CSS docelowego elementu do wyodrębnienia, na przykład article.main-content.
wait_for_selectorstringNie-Poczekaj, aż pojawi się selektor CSS, przed wyodrębnieniem. Przydatne dla stron renderowanych dynamicznie.
set_cookiesarrayNie-Pliki cookie do wysłania z żądaniem wyodrębniania.
user_agentstringNie-Niestandardowy ciąg User-Agent dla żądania wyodrębniania.
timeoutintegerNie-Limit czasu żądania w milisekundach.
with_cachebooleanNietrueCzy podrzędny ekstraktor może używać pamięci podręcznej.
with_stypesbooleanNiefalseDołącz metadane typu stylu, gdy jest obsługiwane.

Odpowiedź

Odpowiedź sukcesu

Odpowiedź wykorzystuje przezroczysty przekaz. Dokładne pola w data mogą się różnić w zależności od output_format i innych opcji wyodrębniania.

{
  "status": "ok",
  "message": null,
  "data": {
    "content": "# Example Article\n\nExtracted article content..."
  }
}

Pola odpowiedzi

PoleTypOpis
statusstringStan odpowiedzi. Zwykle ok dla skutecznego żądania.
messagestring or nullDodatkowy komunikat. Zwykle null dla skutecznych żądań.
dataobjectWyodrębniona treść i metadane zwrócone przez podrzędną usługę wyodrębniania.
data.contentstring or objectWyodrębniona treść. Kształt zależy od output_format i wybranych opcji.

Odpowiedzi błędów

Status HTTPKod błęduOpisSugerowane działanie
400WEB_EXTRACT_FAILEDWalidacja żądania nie powiodła się, adres URL jest nieprawidłowy lub podrzędny ekstraktor zwrócił błąd po stronie klienta.Sprawdź url, selektory i parametry żądania.
401UNAUTHORIZEDKlucz API jest brakujący, nieprawidłowy lub unieważniony.Zweryfikuj klucz API i nagłówek autoryzacji.
500WEB_EXTRACT_FAILEDWewnętrzny błąd usługi.Ponów żądanie. Skontaktuj się z pomocą techniczną, jeśli problem się utrzymuje.

Przykłady

Podstawowa ekstrakcja

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com"
  }'

Ekstrakcja Markdown z przetwarzaniem czytelności

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "output_format": "markdown",
    "with_readability": true
  }'

Ekstrakcja konkretnego selektora CSS

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "target_selector": "article.main-content",
    "output_format": "text"
  }'

Oczekiwanie na dynamiczną treść

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/app",
    "crawl_mode": "fine",
    "wait_for_selector": "#loaded-content",
    "output_format": "markdown",
    "timeout": 30000
  }'

Zastosowania

  • Daj agentowi kontekst strony internetowej przed odpowiedzią na pytanie.
  • Wyodrębnij tekst artykułu do wprowadzenia do RAG lub utworzenia bazy wiedzy.
  • Konwertuj strony internetowe na Markdown do archiwizacji lub przepływów dokumentacji.
  • Pobierz wyodrębnioną treść ze strony za pomocą selektorów CSS.
  • Zmniejsz szum strony dzięki przetwarzaniu czytelności przed dalszą analizą AI.

Uwagi

  • API obsługuje jeden adres URL na żądanie.
  • data jest przekazywane z podrzędnej usługi wyodrębniania, więc z czasem mogą pojawić się dodatkowe pola.
  • Tryb fine może być wolniejszy niż fast, ale bywa przydatny, gdy strona wymaga bogatszego renderowania.
  • Niektóre strony mogą blokować wyodrębnianie, wymagać plików cookie lub niestandardowego user_agent.