Felo APIs
Web Fetch API
Extraheer webpagina-inhoud als HTML, tekst of Markdown met selector- en readability-opties.
/v2/web/extractAuthenticatie
Bearer API key
Inhoudstype
application/json
Toelichting op limieten
Er kunnen limieten gelden die specifiek zijn voor het endpoint.
De Web Fetch API haalt inhoud uit een doel-URL en retourneert het resultaat in een vorm die gemakkelijker te verwerken is voor agents, RAG-systemen en contentworkflows. De API kan HTML, platte tekst of Markdown retourneren en ondersteunt selectors, readability-opties, cachebeheer, aangepaste user agents en verzoekcookies.
Endpoint
POST https://openapi.felo.ai/v2/web/extractAuthenticatie
Stuur je API-sleutel mee in de Authorization-header:
Authorization: Bearer YOUR_API_KEYZie de authenticatiehandleiding voor het aanmaken en beheren van API-sleutels.
Gebruik met AI-agents
Installeer het volledige pakket felo-ai als je wilt dat een agent webpagina's extraheert naast alle andere beschikbare Felo Skills. Het installatieprogramma ontdekt dynamisch elke pakketmap die SKILL.md bevat, dus het vertrouwt nooit op een vaste lijst. Installeer alle gevonden Skills in Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills of Hermes Agent ~/.hermes/skills. Gebruik de handleiding voor handmatige AI-agentconfiguratie voor de veilige installatie en de stappen voor de API-sleutel per platform.
Verzoek
Headers
| Header | Verplicht | Beschrijving |
|---|---|---|
Authorization | Ja | Je API-sleutel in de vorm Bearer YOUR_API_KEY |
Content-Type | Ja | Moet application/json zijn |
Bodyparameters
| Parameter | Type | Verplicht | Standaard | Beschrijving |
|---|---|---|---|---|
url | string | Ja | - | De URL van de webpagina die je wilt extraheren. |
crawl_mode | string | Nee | fast | Extractiemodus. Gebruik fast voor een snellere fetch of fine voor een nauwkeurigere crawl die rijkere pagina's aankan. |
output_format | string | Nee | html | Uitvoerformaat. Ondersteunde waarden: html, text, markdown. |
with_readability | boolean of string | Nee | - | Schakel readability-verwerking in om je op de hoofdinhoud te richten en ruis op de pagina te verminderen. |
with_links_summary | boolean | Nee | - | Neem een samenvatting van links op wanneer de downstream-extractor dit ondersteunt. |
with_images_summary | boolean | Nee | - | Neem een samenvatting van afbeeldingen op wanneer dit wordt ondersteund. |
with_images_readability | boolean | Nee | - | Pas readability-verwerking toe op het extraheren van afbeeldingen wanneer dit wordt ondersteund. |
with_images | boolean | Nee | - | Neem afbeeldingsinformatie op in het geëxtraheerde resultaat. |
with_links | boolean | Nee | - | Neem linkinformatie op in het geëxtraheerde resultaat. |
ignore_empty_text_image | boolean | Nee | - | Negeer afbeeldingen zonder bruikbare tekst wanneer dit wordt ondersteund. |
target_selector | string | Nee | - | CSS-selector voor het doelelement dat je wilt extraheren, zoals article.main-content. |
wait_for_selector | string | Nee | - | Wacht tot een CSS-selector verschijnt voordat je extraheert. Handig voor dynamisch gerenderde pagina's. |
set_cookies | array | Nee | - | Cookies die met het extractieverzoek worden meegestuurd. |
user_agent | string | Nee | - | Aangepaste User-Agent-string voor het extractieverzoek. |
timeout | integer | Nee | - | Time-out van het verzoek in milliseconden. |
with_cache | boolean | Nee | true | Of de downstream-extractor de cache mag gebruiken. |
with_stypes | boolean | Nee | false | Neem metagegevens over stijltypen op wanneer dit wordt ondersteund. |
Respons
Succesrespons
De respons gebruikt een transparant pass-through-ontwerp. De exacte velden in data kunnen variëren op basis van output_format en andere extractieopties.
{
"status": "ok",
"message": null,
"data": {
"content": "# Example Article\n\nExtracted article content..."
}
}Responsvelden
| Veld | Type | Beschrijving |
|---|---|---|
status | string | Responsstatus. Meestal ok bij een geslaagd verzoek. |
message | string of null | Aanvullend bericht. Meestal null bij geslaagde verzoeken. |
data | object | Geëxtraheerde inhoud en metadata die door de downstream-extractiedienst worden geretourneerd. |
data.content | string of object | Geëxtraheerde inhoud. De vorm hangt af van output_format en de gekozen opties. |
Foutresponsen
| HTTP-status | Foutcode | Beschrijving | Voorgestelde actie |
|---|---|---|---|
| 400 | WEB_EXTRACT_FAILED | Validatie van het verzoek is mislukt, de URL is ongeldig of de downstream-extractor retourneerde een fout aan de clientkant. | Controleer url, de selectors en de verzoekparameters. |
| 401 | UNAUTHORIZED | API-sleutel ontbreekt, is ongeldig of ingetrokken. | Controleer je API-sleutel en de autorisatieheader. |
| 500 | WEB_EXTRACT_FAILED | Interne fout in de dienst. | Probeer het verzoek opnieuw. Neem contact op met support als het probleem aanhoudt. |
Voorbeelden
Basisextractie
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"
}'Markdown extraheren met readability
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
}'Een specifieke CSS-selector extraheren
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"
}'Wachten op dynamische inhoud
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
}'Gebruiksscenario's
- Geef een agent context van een webpagina voordat hij een vraag beantwoordt.
- Extraheer artikeltekst voor RAG-opname of het maken van een kennisbank.
- Zet webpagina's om naar Markdown voor archiverings- of documentatieworkflows.
- Haal gerichte inhoud uit een pagina met CSS-selectors.
- Verminder ruis op de pagina met readability-verwerking voordat je de inhoud downstream door AI laat analyseren.
Opmerkingen
- De API verwerkt één URL per verzoek.
datawordt doorgegeven vanuit de downstream-extractiedienst, dus er kunnen na verloop van tijd extra velden verschijnen.- De modus
finekan langzamer zijn danfast, maar is nuttig wanneer de pagina uitgebreider moet worden gerenderd. - Sommige pagina's blokkeren extractie, vereisen cookies of hebben een aangepaste
user_agentnodig.