Felo APIs
Web Fetch API
Ekstrak konten halaman web sebagai HTML, teks, atau Markdown dengan opsi selector dan readability.
/v2/web/extractAutentikasi
Bearer API key
Tipe konten
application/json
Catatan batas laju
Batas khusus endpoint dapat berlaku.
Web Fetch API mengekstrak konten dari URL target dan mengembalikan hasilnya dalam format yang lebih mudah diproses oleh agen, sistem RAG, dan alur kerja konten. API ini dapat mengembalikan HTML, teks biasa, atau Markdown, serta mendukung selector, opsi readability, kontrol cache, user agent kustom, dan cookie permintaan.
Endpoint
POST https://openapi.felo.ai/v2/web/extractAutentikasi
Kirim kunci API Anda di header Authorization:
Authorization: Bearer YOUR_API_KEYLihat Panduan Autentikasi untuk detail tentang membuat dan mengelola kunci API.
Penggunaan dengan Agen AI
Pasang paket felo-ai lengkap jika Anda ingin Agen mengekstrak halaman web bersama setiap Felo Skill lain yang tersedia. Installer menemukan setiap direktori paket yang berisi SKILL.md secara dinamis, sehingga tidak pernah bergantung pada daftar tetap. Pasang semua Skill yang ditemukan di Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills, atau Hermes Agent ~/.hermes/skills. Gunakan panduan penyiapan Agen AI manual untuk langkah instalasi aman dan kunci API di setiap platform.
Permintaan
Header
| Header | Wajib | Deskripsi |
|---|---|---|
Authorization | Ya | Kunci API Anda dalam format Bearer YOUR_API_KEY |
Content-Type | Ya | Harus application/json |
Parameter Isi Permintaan
| Parameter | Tipe | Wajib | Default | Deskripsi |
|---|---|---|---|---|
url | string | Ya | - | URL halaman web yang akan diekstrak. |
crawl_mode | string | Tidak | fast | Mode ekstraksi. Gunakan fast untuk pengambilan yang lebih cepat atau fine untuk crawl yang lebih presisi dan dapat menangani halaman yang lebih kaya. |
output_format | string | Tidak | html | Format output. Nilai yang didukung: html, text, markdown. |
with_readability | boolean or string | Tidak | - | Aktifkan pemrosesan readability untuk berfokus pada konten utama dan mengurangi noise halaman. |
with_links_summary | boolean | Tidak | - | Sertakan ringkasan tautan jika didukung oleh ekstraktor downstream. |
with_images_summary | boolean | Tidak | - | Sertakan ringkasan gambar jika didukung. |
with_images_readability | boolean | Tidak | - | Terapkan penanganan readability pada ekstraksi gambar jika didukung. |
with_images | boolean | Tidak | - | Sertakan informasi gambar dalam hasil ekstraksi. |
with_links | boolean | Tidak | - | Sertakan informasi tautan dalam hasil ekstraksi. |
ignore_empty_text_image | boolean | Tidak | - | Abaikan gambar yang tidak berisi teks berguna jika didukung. |
target_selector | string | Tidak | - | Selector CSS untuk elemen target yang akan diekstrak, seperti article.main-content. |
wait_for_selector | string | Tidak | - | Tunggu hingga selector CSS muncul sebelum ekstraksi. Berguna untuk halaman yang dirender secara dinamis. |
set_cookies | array | Tidak | - | Cookie yang dikirim bersama permintaan ekstraksi. |
user_agent | string | Tidak | - | String User-Agent kustom untuk permintaan ekstraksi. |
timeout | integer | Tidak | - | Batas waktu permintaan dalam milidetik. |
with_cache | boolean | Tidak | true | Apakah ekstraktor downstream boleh menggunakan cache. |
with_stypes | boolean | Tidak | false | Sertakan metadata tipe gaya jika didukung. |
Respons
Respons Berhasil
Respons menggunakan desain pass-through transparan. Field persis di dalam data dapat bervariasi bergantung pada output_format dan opsi ekstraksi lainnya.
{
"status": "ok",
"message": null,
"data": {
"content": "# Example Article\n\nExtracted article content..."
}
}Field Respons
| Field | Tipe | Deskripsi |
|---|---|---|
status | string | Status respons. Biasanya ok untuk permintaan yang berhasil. |
message | string or null | Pesan tambahan. Biasanya null untuk permintaan yang berhasil. |
data | object | Konten dan metadata hasil ekstraksi yang dikembalikan oleh layanan ekstraksi downstream. |
data.content | string or object | Konten hasil ekstraksi. Bentuknya bergantung pada output_format dan opsi yang dipilih. |
Respons Error
| Status HTTP | Kode Error | Deskripsi | Tindakan yang Disarankan |
|---|---|---|---|
| 400 | WEB_EXTRACT_FAILED | Validasi permintaan gagal, URL tidak valid, atau ekstraktor downstream mengembalikan error sisi klien. | Periksa url, selector, dan parameter permintaan. |
| 401 | UNAUTHORIZED | Kunci API tidak ada, tidak valid, atau sudah dicabut. | Verifikasi kunci API dan header otorisasi Anda. |
| 500 | WEB_EXTRACT_FAILED | Error layanan internal. | Coba ulang permintaan. Hubungi dukungan jika masalah berlanjut. |
Contoh
Ekstraksi Dasar
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"
}'Mengekstrak Markdown dengan 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
}'Mengekstrak Selector CSS Tertentu
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"
}'Menunggu Konten Dinamis
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
}'Kasus Penggunaan
- Memberi agen konteks halaman web sebelum menjawab pertanyaan.
- Mengekstrak teks artikel untuk ingest ke RAG atau pembuatan basis pengetahuan.
- Mengonversi halaman web menjadi Markdown untuk arsip atau alur kerja dokumentasi.
- Menarik konten terfokus dari halaman dengan menggunakan selector CSS.
- Mengurangi noise halaman dengan pemrosesan readability sebelum analisis AI downstream.
Catatan
- API ini menangani satu URL per permintaan.
dataditeruskan dari layanan ekstraksi downstream, sehingga field tambahan dapat muncul seiring waktu.- Mode
finemungkin lebih lambat daripadafast, tetapi berguna jika halaman memerlukan perilaku rendering yang lebih kaya. - Beberapa halaman mungkin memblokir ekstraksi, memerlukan cookie, atau memerlukan
user_agentkustom.