Felo APIs
Web Fetch API
ดึงเนื้อหาเว็บเพจเป็น HTML ข้อความ หรือ Markdown พร้อมตัวเลือก selector และ readability
/v2/web/extractการยืนยันตัวตน
Bearer API key
ประเภทเนื้อหา
application/json
หมายเหตุเรื่องข้อจำกัด
อาจมีข้อจำกัดเฉพาะของ endpoint
Web Fetch API สกัดเนื้อหาจาก URL เป้าหมายและส่งผลลัพธ์ในรูปแบบที่ Agent ระบบ RAG และเวิร์กโฟลว์เนื้อหาประมวลผลได้ง่ายขึ้น รองรับการส่ง HTML ข้อความล้วน หรือ Markdown และรองรับ selector ตัวเลือกเพื่อการอ่านง่าย การควบคุมแคช user agent แบบกำหนดเอง และคุกกี้ของคำขอ
Endpoint
POST https://openapi.felo.ai/v2/web/extractการรับรองความถูกต้อง
ส่งคีย์ API ใน header Authorization:
Authorization: Bearer YOUR_API_KEYดูคู่มือการรับรองความถูกต้องสำหรับรายละเอียดการสร้างและจัดการคีย์ API
ใช้กับ AI Agent
ติดตั้งแพ็กเกจ felo-ai ที่ครบถ้วนเมื่อคุณต้องการให้ Agent สกัดหน้าเว็บพร้อมกับ Felo Skill อื่น ๆ ที่มีให้ใช้ทั้งหมด ตัวติดตั้งจะค้นหาไดเรกทอรีแพ็กเกจทุกไดเรกทอรีที่มี SKILL.md แบบไดนามิก จึงไม่พึ่งพารายการแบบตายตัว ให้ติดตั้ง Skill ทั้งหมดที่ค้นพบใน Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills หรือ Hermes Agent ~/.hermes/skills ใช้คู่มือการตั้งค่า AI Agent ด้วยตนเองสำหรับการติดตั้งที่ปลอดภัยและขั้นตอนคีย์ API ของแต่ละแพลตฟอร์ม
คำขอ
Header
| Header | จำเป็น | คำอธิบาย |
|---|---|---|
Authorization | ใช่ | คีย์ API ของคุณในรูปแบบ Bearer YOUR_API_KEY |
Content-Type | ใช่ | ต้องเป็น application/json |
พารามิเตอร์ในเนื้อหาคำขอ
| พารามิเตอร์ | ชนิด | จำเป็น | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|---|
url | string | ใช่ | - | URL ของหน้าเว็บที่ต้องการสกัด |
crawl_mode | string | ไม่ | fast | โหมดการสกัด ใช้ fast เพื่อดึงข้อมูลเร็วขึ้น หรือ fine เพื่อการครอว์ลที่แม่นยำขึ้นและอาจจัดการหน้าเว็บที่ซับซ้อนได้ดีกว่า |
output_format | string | ไม่ | html | รูปแบบเอาต์พุต ค่าที่รองรับ: html, text, markdown |
with_readability | boolean หรือ string | ไม่ | - | เปิดการประมวลผลเพื่อการอ่านง่าย เพื่อเน้นเนื้อหาหลักและลดสิ่งรบกวนในหน้า |
with_links_summary | boolean | ไม่ | - | รวมสรุปของลิงก์เมื่อตัวสกัดปลายทางรองรับ |
with_images_summary | boolean | ไม่ | - | รวมสรุปของรูปภาพเมื่อรองรับ |
with_images_readability | boolean | ไม่ | - | ใช้การจัดการเพื่อการอ่านง่ายกับการสกัดรูปภาพเมื่อรองรับ |
with_images | boolean | ไม่ | - | รวมข้อมูลรูปภาพในผลลัพธ์ที่สกัด |
with_links | boolean | ไม่ | - | รวมข้อมูลลิงก์ในผลลัพธ์ที่สกัด |
ignore_empty_text_image | boolean | ไม่ | - | เพิกเฉยต่อรูปภาพที่ไม่มีข้อความที่มีประโยชน์เมื่อรองรับ |
target_selector | string | ไม่ | - | CSS selector ขององค์ประกอบเป้าหมายที่ต้องการสกัด เช่น article.main-content |
wait_for_selector | string | ไม่ | - | รอจนกว่า CSS selector จะปรากฏก่อนการสกัด มีประโยชน์สำหรับหน้าที่เรนเดอร์แบบไดนามิก |
set_cookies | array | ไม่ | - | คุกกี้ที่จะส่งไปกับคำขอสกัด |
user_agent | string | ไม่ | - | สตริง User-Agent แบบกำหนดเองสำหรับคำขอสกัด |
timeout | integer | ไม่ | - | เวลาหมดเวลาของคำขอเป็นมิลลิวินาที |
with_cache | boolean | ไม่ | true | ตัวสกัดปลายทางอาจใช้แคชหรือไม่ |
with_stypes | boolean | ไม่ | false | รวมเมทาดาทาประเภทสไตล์เมื่อรองรับ |
การตอบกลับ
การตอบกลับที่สำเร็จ
การตอบกลับใช้การออกแบบส่งผ่านแบบโปร่งใส ฟิลด์ที่แน่นอนภายใน data อาจแตกต่างกันตาม output_format และตัวเลือกการสกัดอื่น ๆ
{
"status": "ok",
"message": null,
"data": {
"content": "# Example Article\n\nExtracted article content..."
}
}ฟิลด์ของการตอบกลับ
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
status | string | สถานะการตอบกลับ โดยปกติเป็น ok สำหรับคำขอที่สำเร็จ |
message | string หรือ null | ข้อความเพิ่มเติม โดยปกติเป็น null สำหรับคำขอที่สำเร็จ |
data | object | เนื้อหาที่สกัดและเมทาดาทาที่ส่งกลับโดยบริการสกัดปลายทาง |
data.content | string หรือ object | เนื้อหาที่สกัด รูปแบบขึ้นอยู่กับ output_format และตัวเลือกที่เลือก |
การตอบกลับข้อผิดพลาด
| สถานะ HTTP | รหัสข้อผิดพลาด | คำอธิบาย | การดำเนินการที่แนะนำ |
|---|---|---|---|
| 400 | WEB_EXTRACT_FAILED | การตรวจสอบคำขอล้มเหลว URL ไม่ถูกต้อง หรือตัวสกัดปลายทางส่งข้อผิดพลาดฝั่งไคลเอนต์ | ตรวจสอบ url, selector และพารามิเตอร์ของคำขอ |
| 401 | UNAUTHORIZED | คีย์ API หายไป ไม่ถูกต้อง หรือถูกเพิกถอน | ตรวจสอบคีย์ API และ header การรับรองความถูกต้องของคุณ |
| 500 | WEB_EXTRACT_FAILED | ข้อผิดพลาดภายในบริการ | ลองส่งคำขออีกครั้ง ติดต่อฝ่ายสนับสนุนหากยังเกิดขึ้นต่อเนื่อง |
ตัวอย่าง
การสกัดพื้นฐาน
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 พร้อมการอ่านง่าย
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
}'สกัด CSS Selector ที่ระบุ
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"
}'รอเนื้อหาแบบไดนามิก
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
}'กรณีการใช้งาน
- ให้บริบทของหน้าเว็บแก่ Agent ก่อนตอบคำถาม
- สกัดข้อความบทความสำหรับการนำเข้า RAG หรือการสร้างฐานความรู้
- แปลงหน้าเว็บเป็น Markdown สำหรับเวิร์กโฟลว์การเก็บถาวรหรือเอกสาร
- ดึงเนื้อหาที่เจาะจงจากหน้าโดยใช้ CSS selector
- ลดสิ่งรบกวนในหน้าด้วยการประมวลผลเพื่อการอ่านง่ายก่อนการวิเคราะห์ด้วย AI ในขั้นถัดไป
หมายเหตุ
- API จัดการหนึ่ง URL ต่อคำขอ
dataถูกส่งผ่านจากบริการสกัดปลายทาง ฟิลด์เพิ่มเติมจึงอาจปรากฏขึ้นได้ในอนาคต- โหมด
fineอาจช้ากว่าfastแต่มีประโยชน์เมื่อหน้าเว็บต้องการการเรนเดอร์ที่ซับซ้อนขึ้น - หน้าเว็บบางหน้าอาจบล็อกการสกัด ต้องใช้คุกกี้ หรือต้องใช้
user_agentแบบกำหนดเอง