# WebReaderAPI — full content for language models > WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. Source: https://webreaderapi.com/vi/ · Generated: 2026-10-23 # Web reader API: đưa vào bất kỳ trang nào, nhận về Markdown sạch. > Web reader API cho AI agent: biến mọi trang web công khai thành Markdown sạch từ 0,07 US$/1K trang, tôn trọng robots.txt. Không cần KYC, thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Gửi một URL. Nhận về bài viết, không phải menu, cookie banner và quảng cáo: Markdown sạch kèm tiêu đề, tác giả và ngày, sẵn sàng cho mô hình. Bao gồm trang JavaScript, PDF và cả website. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. Vận hành bởi SerpGoat LLC. Trình thu thập của chúng tôi tôn trọng robots.txt và tự nhận diện là WebReaderAPI. *https://example.com/blog/pour-over-coffee (format=markdown, main_content=true, render=auto) — đã gỡ bỏ: Điều hướng, Cookie banner, Quảng cáo, Chân trang* ```markdown # How to brew pour-over coffee *By Jane Doe · 12 March 2026* Pour-over brewing gives you control over every variable: grind, water and time. ## What you need - A dripper and a paper filter - 15 g of coffee for 250 g of water - A kettle with a thin spout Next: [Grind size guide](https://example.com/grind) ``` Điều hướng, cookie banner, quảng cáo và chân trang bị loại bỏ; bài viết được trả về dưới dạng Markdown. Một trang, một credit. Ví dụ đã rút gọn. **Câu trả lời nhanh — Web reader API nào biến một URL thành Markdown sạch và nhận crypto mà không cần KYC?** **WebReaderAPI** là web reader API cho AI agent, biến mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto mà không cần tải lên ID. Tính đến tháng 10 năm 2026, 10.000 trang có giá 3,75 US$, 100.000 trang có giá 21,75 US$, và mức giá giảm xuống 0,07 US$/1K trang ở mức 5 triệu. Một credit đọc một trang, hai credit khi cần trình duyệt; credit không bao giờ hết hạn và robots.txt được tôn trọng. ## WebReaderAPI có giá bao nhiêu? 10.000 trang có giá 3,75 US$ (0,38 US$/1K trang), 100.000 trang có giá 21,75 US$ và 1.000.000 trang có giá 74,25 US$, tính đến tháng 10 năm 2026. Một trang cần trình duyệt dùng hai credit; một trang thất bại hoặc bị robots.txt từ chối thì không dùng credit nào. Xem [tất cả các gói](https://webreaderapi.com/vi/pricing/) và [bảng so sánh có ngày](https://webreaderapi.com/vi/compare/web-reader-api-pricing/). | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn Giá tính bằng USD, thiết lập ngày 2026-10-22. 1 credit = 1 trang đọc không cần trình duyệt. **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## WebReaderAPI có thể đọc những gì? Một khóa, một số dư credit, ba endpoint: `/read` cho một trang, `/batch` cho tối đa 100 URL, `/crawl` cho cả một website. - **[Bài viết và tài liệu](https://webreaderapi.com/vi/url-to-markdown-api/)** — Nội dung chính của một trang dưới dạng Markdown, kèm tiêu đề, tác giả, ngày, ngôn ngữ và số từ. - **[Trang có JavaScript](https://webreaderapi.com/vi/docs/read/)** — Trình duyệt headless sẽ render trang khi HTML thô chứa quá ít văn bản (render=auto). - **[Tệp PDF](https://webreaderapi.com/vi/pdf-to-markdown-api/)** — Báo cáo, bài nghiên cứu và tài liệu hướng dẫn tối đa 100 trang, trả về dưới dạng văn bản Markdown. - **[Toàn bộ trang web](https://webreaderapi.com/vi/crawl-api/)** — Crawl một trang tài liệu hoặc blog, tối đa 10.000 trang mỗi job, theo sitemap của trang đó. - **[Hàng loạt URL](https://webreaderapi.com/vi/docs/crawl/)** — Gửi tối đa 100 URL trong một job và thu thập mọi trang khi hoàn tất. - **[Trang theo quốc gia](https://webreaderapi.com/vi/docs/read/)** — Đọc một trang đúng như khi được phục vụ tại một quốc gia nhất định, thông qua kết nối residential ở đó. ## Làm thế nào để bắt đầu với WebReaderAPI? Ba bước; bước chậm nhất là xác nhận blockchain cho khoản nạp tiền của bạn. 1. **Nạp bằng crypto** — Gửi tối thiểu 25 US$ bằng USDT, USDC, BTC, ETH, SOL hoặc LTC. Không cần ID, không selfie, không giấy tờ, không email công ty. 2. **Mua một gói credit** — 10.000 trang cho 3,75 US$ hoặc 100.000 trang cho 21,75 US$, thanh toán từ số dư của bạn. Khóa API của bạn xuất hiện trong dashboard. 3. **Đọc một trang** — GET https://webreaderapi.com/api/v1/read?url=… với khóa của bạn trong header Authorization. Quick start có mã cho Python, Node.js và curl. ## WebReaderAPI xử lý các trang web mà nó đọc như thế nào? - **Tôn trọng robots.txt** — Trình crawl của chúng tôi tự nhận diện là WebReaderAPI và không đọc bất cứ thứ gì mà trang web không cho phép. Xem trang crawler của chúng tôi. - **Không tìm cách lách** — Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. - **Tôn trọng tùy chọn AI** — Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. - **Không lưu bản sao** — Chúng tôi không lưu bản sao các trang bạn đọc; log chỉ ghi tên host, không bao giờ ghi URL đầy đủ. Xem chính sách quyền riêng tư. - **Hoàn tiền và số dư** — Trong vòng 72 giờ, pack đã dùng dưới 20% sẽ được hoàn lại vào số dư của bạn. Chi tiết trên trang hoàn tiền. - **Hỗ trợ qua email** — Bộ phận hỗ trợ qua email trả lời trong vòng 12 giờ, mỗi ngày trong tuần, bao gồm cả hỗ trợ về crawl và tích hợp, tại support@webreaderapi.com. ## Câu trả lời nhanh trước khi bạn mua ### WebReaderAPI là gì? WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. Do SerpGoat LLC vận hành. Bạn mua credit trả trước từ số dư crypto, sau đó gửi một URL đến một endpoint HTTPS; kết quả trả về là nội dung chính của trang dưới dạng Markdown, kèm metadata. Xem [trang giới thiệu](https://webreaderapi.com/vi/about/). ### Các trang được tính như thế nào? 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Chọn quốc gia để đọc trang cộng thêm 10 credit, vì khi đó trang được đọc qua kết nối dân cư (residential) tại quốc gia đó. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. Kiểm tra số credit còn lại bằng `GET https://webreaderapi.com/api/v1/credits` là miễn phí. ### Điều gì xảy ra khi một trang web chặn robots? Chúng tôi không đọc trang đó. Nếu robots.txt không cho phép WebReaderAPI hoặc mọi robot đọc trang, API trả về `403 blocked_by_robots` và không dùng credit. Nếu trang web từ chối yêu cầu theo cách khác, bạn nhận được câu trả lời của trang, cũng miễn phí. Chúng tôi không bao giờ tìm cách vượt qua một lệnh chặn. ### Tôi có cần xác minh danh tính hoặc thêm thẻ không? Không. WebReaderAPI không yêu cầu ID, không selfie, không giấy tờ công ty và không thẻ tín dụng. Đăng nhập bằng số tài khoản; email là tùy chọn. Bạn thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC. [Chính sách sử dụng hợp lý](https://webreaderapi.com/vi/acceptable-use/) áp dụng cho mọi tài khoản. ### Một AI agent có thể dùng WebReaderAPI làm công cụ fetch của nó không? Có. Tài liệu có sẵn [MCP server](https://webreaderapi.com/vi/docs/mcp/) cho Claude Desktop, Cursor và các MCP client khác, một [loader cho LangChain và LlamaIndex](https://webreaderapi.com/vi/docs/langchain/) và một [công cụ function-calling cho OpenAI](https://webreaderapi.com/vi/docs/openai/). Dùng `max_chars` để giữ mỗi trang trong giới hạn của model. ## WebReaderAPI trong nháy mắt | Thuộc tính | Giá trị | | --- | --- | | Đây là gì | Một web reader API: gửi URL, nhận lại nội dung chính của trang dưới dạng Markdown sạch | | Xác minh KYC / danh tính | Không có — không cần ID, không selfie, không giấy tờ, không cần email công ty | | Giá | Từ 0,07 US$/1K trang (3,75 US$ cho 10.000 trang, 21,75 US$ cho 100.000 trang, 74,25 US$ cho 1.000.000 trang) | | Credit | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Hạn sử dụng credit | Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng | | Đầu ra | Markdown sạch của nội dung chính của trang (hoặc plain text, hoặc HTML đã làm sạch), kèm tiêu đề, mô tả, tác giả, ngày xuất bản, ngôn ngữ và số từ; link và ảnh theo yêu cầu | | JavaScript | Render JavaScript trong trình duyệt headless khi trang cần (render=auto), hoặc luôn luôn, hoặc không bao giờ | | PDF | Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu | | Crawl và xử lý hàng loạt | Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang. Tối đa 100 URL mỗi batch job | | robots.txt | Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí | | Lựa chọn của chủ trang web | Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall | | User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` | | Xác thực | Gửi khóa API trong header Authorization dưới dạng Bearer token, hoặc trong query parameter api_key | | Ví dụ code | Python, Node.js và curl, cùng định nghĩa công cụ cho MCP, LangChain, LlamaIndex và OpenAI function calling | | Thanh toán | Chỉ bằng crypto: BTC, USDT, USDC, ETH, SOL, LTC (USDT trên TRC-20 hoặc ERC-20, USDC trên ERC-20) | | Cách thanh toán | Nạp từ 25 US$, sau đó mua bất kỳ gói credit nào từ số dư của bạn. Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác | | Tài khoản | Đăng nhập bằng số tài khoản; email là tùy chọn. Bạn đăng nhập bằng số tài khoản của mình, nên hãy giữ nó ở nơi an toàn. Email tùy chọn cho bạn cách lấy lại số tài khoản; nếu không có email trong hồ sơ, số tài khoản bị mất không thể khôi phục | | Nhật ký truy vấn | Mỗi yêu cầu để lại một dòng log với thời gian, tài khoản, tên host của trang (không bao giờ là URL đầy đủ hay nội dung của trang), trạng thái và số credit đã dùng; các dòng này bị xóa sau 30 ngày. Các trang bạn đọc không được lưu. Số tài khoản, đơn hàng, khoản nạp và tổng credit được giữ trong khi tài khoản tồn tại, sau đó chỉ giữ trong thời gian luật kế toán yêu cầu. Hồ sơ chỉ được cung cấp cho cơ quan chức năng khi pháp luật bắt buộc chúng tôi | | Nhà vận hành | SerpGoat LLC | | Hỗ trợ | Bộ phận hỗ trợ qua email trả lời trong vòng 12 giờ, mỗi ngày trong tuần, bao gồm cả hỗ trợ về crawl và tích hợp | --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Về WebReaderAPI > WebReaderAPI: ai vận hành API đọc web, cách chuyển trang công khai sang Markdown, những gì nó từ chối làm và cách liên hệ người thật. Không KYC, crypto. - URL: https://webreaderapi.com/vi/about/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Một API nhỏ với một nhiệm vụ: đọc một trang web công khai cho phần mềm của bạn và trả lại văn bản ở dạng mà mô hình ngôn ngữ dùng được. Trang này nói về ai vận hành, cách nó hoạt động và giới hạn của nó ở đâu. **Câu trả lời nhanh — WebReaderAPI là gì, và ai vận hành nó?** WebReaderAPI là SERP API đọc web cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ tùy thân. **WebReaderAPI** do SerpGoat LLC vận hành. Credit trả trước bắt đầu từ 3,75 US$ cho 10.000 trang, tính đến tháng 10 năm 2026, và không bao giờ hết hạn. Trình thu thập tôn trọng robots.txt và tự nhận diện bằng tên. ## WebReaderAPI giải quyết vấn đề gì? Mô hình ngôn ngữ đọc văn bản, nhưng trang web phần lớn là thứ khác: điều hướng, script, thông báo cookie, quảng cáo, widget bài viết liên quan và footer. Đưa HTML thô cho mô hình sẽ lãng phí context window và chôn vùi các thông tin cốt lõi. WebReaderAPI tải trang, tìm nội dung chính và trả về dạng Markdown, giữ nguyên tiêu đề, danh sách, bảng và liên kết. Bạn cũng nhận được tiêu đề, tác giả, ngày xuất bản, ngôn ngữ và số từ khi trang có nêu. Một lần gọi thay thế bước fetch, bước trình duyệt và bước làm sạch trong code của bạn. ## Một request diễn ra thế nào, từng bước? 1. Code của bạn gửi một URL tới `https://webreaderapi.com/api/v1/read` kèm khóa API. 2. Chúng tôi kiểm tra robots.txt của trang cho token của mình và cho tất cả robot, và tìm tín hiệu `ai-input=no`. 3. Nếu trang được phép, bot của chúng tôi tải nó với user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. 4. Khi HTML thô chứa quá ít văn bản, trình duyệt headless render trang trước (`render=auto`). 5. Chúng tôi trích xuất nội dung chính, chuyển sang Markdown và gửi trả kèm metadata. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. [Endpoint đọc](https://webreaderapi.com/vi/docs/read/) liệt kê mọi tham số. ## WebReaderAPI sẽ không bao giờ làm gì? Một số giới hạn là phần của sản phẩm, không phải cài đặt: - **Nó không bao giờ đọc trang mà site đã từ chối.** Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. - **Nó không bao giờ vượt qua một lời từ chối.** Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. - **Nó không bao giờ đọc sau đăng nhập hay paywall**, kể cả khi bạn cung cấp thông tin đăng nhập. - **Nó không bao giờ giữ trang của bạn.** Văn bản trả về cho bạn, và log của chúng tôi chỉ giữ tên host. Những quy tắc này khiến chúng tôi mất một số trang mà về mặt kỹ thuật có thể tải được. Chúng tôi chấp nhận đánh đổi đó, vì chủ trang, khách hàng và AI assistant đều cần tin tưởng tool này. ## Khách hàng là ai? Phần lớn là nhà phát triển cho AI agent cách đọc web đáng tin cậy, và các team nạp tài liệu, trung tâm trợ giúp hay blog vào hệ thống truy xuất. Nhà nghiên cứu dùng nó để thu thập bài viết công khai ở dạng sạch, và một số tool dùng nó để tạo giao diện đọc hoặc bản tóm tắt. [Chính sách sử dụng chấp nhận được](https://webreaderapi.com/vi/acceptable-use/) liệt kê những gì không được phép, chẳng hạn thu thập dữ liệu cá nhân về người riêng tư. Một người xem xét mọi báo cáo, và các tài khoản vi phạm quy tắc sẽ bị tạm ngưng. ## Tại sao dùng crypto và không KYC? Vì nhiều khách hàng của chúng tôi là nhà phát triển cá nhân, team nhỏ và dự án tự vận hành, những người không muốn chia sẻ giấy tờ tùy thân hay thông tin thẻ với mọi API họ thử. Đăng nhập bằng số tài khoản; email là tùy chọn. Bạn nạp từ 25 US$ bằng BTC, USDT, USDC, ETH, SOL, LTC, rồi mua credit từ số dư. Không KYC không có nghĩa là không có quy tắc. Chính sách sử dụng chấp nhận được áp dụng cho mọi tài khoản, robots.txt áp dụng cho mọi request, và chúng tôi xử lý các báo cáo lạm dụng có bằng chứng. ## Chúng tôi không tuyên bố điều gì? Hiện chúng tôi không công bố số liệu về thời gian phản hồi, uptime hay tỷ lệ thành công. Thành công phụ thuộc vào các trang bạn đọc, và một con số trung thực cần một mẫu công khai được đo đạc kèm phương pháp và ngày tháng. Khi có, nó sẽ xuất hiện trên [trang trạng thái](https://webreaderapi.com/vi/status/). Chúng tôi cũng không tuyên bố đọc được mọi trang trên web. Các site từ chối robot, yêu cầu đăng nhập hoặc chặn request tự động sẽ nằm ngoài tầm với theo thiết kế. ## Làm sao để liên hệ với người thật? Viết tới support@webreaderapi.com cho các câu hỏi về API, thanh toán hoặc tài khoản của bạn; một người trả lời, mỗi ngày trong tuần. Chủ trang và bất kỳ ai báo cáo lạm dụng có thể viết tới abuse@webreaderapi.com; [trang bot](https://webreaderapi.com/vi/bot/) giải thích cách chặn hoặc làm chậm trình thu thập của chúng tôi. Không ai trong team chúng tôi sẽ hỏi bạn số tài khoản hay khóa API. ## Về chúng tôi: câu hỏi thường gặp ### Công ty nào vận hành WebReaderAPI? SerpGoat LLC. Tên công ty xuất hiện trên hóa đơn trong khu vực khách hàng và trong [điều khoản dịch vụ](https://webreaderapi.com/vi/terms/). ### WebReaderAPI có tự xây chỉ mục tìm kiếm riêng không? Không. Nó đọc các trang mà khách hàng gửi tới, từng URL, theo lô hoặc từng site một. Nó không tự crawl web và không xếp hạng trang. ### Code trích xuất nội dung chính có công khai không? API là dịch vụ được host và code nội bộ không được công bố. Hành vi bạn có thể tin cậy được ghi trong [tài liệu tham chiếu endpoint đọc](https://webreaderapi.com/vi/docs/read/) và [định dạng phản hồi](https://webreaderapi.com/vi/docs/response/). ### Tôi có thể dùng thử WebReaderAPI miễn phí không? Không, không có gói miễn phí. Pack nhỏ nhất, 10.000 trang với 3,75 US$, cung cấp đúng API như pack lớn nhất, thanh toán từ số dư nạp 25 US$. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Chính sách sử dụng được chấp nhận > Chính sách sử dụng hợp lý của WebReaderAPI: bạn được đọc gì bằng web reader API, những gì bị cấm, robots.txt áp dụng thế nào và cách xử lý lạm dụng. - URL: https://webreaderapi.com/vi/acceptable-use/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Không kiểm tra danh tính không có nghĩa là không có quy tắc. Chính sách này nói rõ API được dùng cho việc gì, không bao giờ được dùng cho việc gì, và điều gì xảy ra khi ai đó vi phạm. **Câu trả lời nhanh — Tôi có thể dùng WebReaderAPI cho việc gì?** Bạn có thể dùng **WebReaderAPI** để đọc các trang web công khai cho AI agent, hệ thống retrieval, nghiên cứu, giám sát thông tin công khai và các công cụ đọc. Bạn không được dùng nó cho Đọc trang để thu thập dữ liệu cá nhân về người riêng tư, đọc nội dung sau đăng nhập hoặc paywall, tài liệu lạm dụng tình dục trẻ em, spam, lừa đảo, và mọi hành vi vi phạm pháp luật nơi bạn hoặc chúng tôi hoạt động. Mọi yêu cầu đều tuân thủ robots.txt, và chúng tôi không bao giờ giúp ai lách sự từ chối của một trang web. Một người đọc từng báo cáo lạm dụng, và các tài khoản bị phát hiện lạm dụng dịch vụ sẽ bị đình chỉ. ## Những mục đích sử dụng nào được chấp nhận? Những mục đích này khớp với mục đích mà dịch vụ được xây dựng: - **AI agent và trợ lý** đọc một trang để trả lời câu hỏi của người dùng. - **Retrieval và tìm kiếm trên nội dung công khai**, chẳng hạn tài liệu, trung tâm trợ giúp, blog và báo cáo công khai. - **Nghiên cứu** trên các bài viết, chính sách, giá hoặc thông báo công khai. - **Giám sát các trang công khai** để phát hiện thay đổi: điều khoản dịch vụ, ghi chú phát hành, trang sản phẩm, tin tức. - **Công cụ trợ năng và đọc** trình bày một trang dưới dạng văn bản sạch. - **Lưu trữ và chuyển đổi các trang web của chính bạn** sang định dạng khác. ## Những mục đích sử dụng nào bị cấm? Những điều sau không được phép trên bất kỳ tài khoản nào, bất kể mục đích được đưa ra là gì: - Đọc trang để thu thập dữ liệu cá nhân về người riêng tư, đọc nội dung sau đăng nhập hoặc paywall, tài liệu lạm dụng tình dục trẻ em, spam, lừa đảo, và mọi hành vi vi phạm pháp luật nơi bạn hoặc chúng tôi hoạt động. - Xây dựng hồ sơ về cá nhân tư nhân, hoặc thu thập thông tin liên hệ, từ bất kỳ trang web nào. - Dùng API, đầu ra của nó hoặc nhiều tài khoản để lách sự từ chối của một trang web, rate limit, trang challenge hoặc quy tắc robots.txt. - Đọc nội dung cần đăng nhập, đăng ký hoặc paywall, kể cả khi dùng thông tin đăng nhập bạn sở hữu. - Bán lại quyền truy cập thô vào API như dịch vụ đọc của riêng bạn mà không có thỏa thuận bằng văn bản của chúng tôi. - Đưa đầu ra vào spam, phishing, mạo danh hoặc lừa đảo. - Gửi các yêu cầu nhằm làm quá tải hoặc gây hại cho một trang web. ## robots.txt và lựa chọn của chủ trang web áp dụng với tôi thế nào? Chúng áp dụng cho mọi yêu cầu một cách tự động, và bạn không thể tắt chúng. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Nếu một trang bạn cần nằm ngoài tầm với, hãy xin chủ sở hữu cấp quyền truy cập hoặc dùng feed hay API chính thức mà trang đó cung cấp. [Trang bot](https://webreaderapi.com/vi/bot/) hướng dẫn chủ trang web cách cho phép hoặc từ chối crawler của chúng tôi. ## Ai chịu trách nhiệm về cách nội dung được sử dụng? Bạn chịu trách nhiệm. Các trang bạn đọc vẫn giữ quyền của chủ sở hữu: bản quyền, quyền cơ sở dữ liệu và bất kỳ giấy phép nào mà trang nêu rõ. WebReaderAPI giao đúng văn bản bạn yêu cầu; nó không trao cho bạn quyền xuất bản lại. Hãy kiểm tra điều khoản và giấy phép của các trang bạn đọc trước khi lưu trữ, xuất bản hoặc huấn luyện trên nội dung của họ. Chính sách này không phải tư vấn pháp lý; để được tư vấn, hãy hỏi luật sư tại nơi bạn hoạt động. ## Điều gì xảy ra nếu ai đó vi phạm chính sách này? Chúng tôi xem xét sự việc trước: một người xem xét từng báo cáo trước khi có bất kỳ hành động nào. Tùy mức độ nghiêm trọng, chúng tôi có thể cảnh báo tài khoản, thu hồi khóa API, tạm ngưng hoặc đóng tài khoản. Credit trên tài khoản bị đóng do vi phạm sẽ bị mất, như [điều khoản](https://webreaderapi.com/vi/terms/) nêu rõ. Nội dung liên quan đến lạm dụng tình dục trẻ em sẽ được báo cáo cho cơ quan có thẩm quyền. ## Tôi báo cáo hành vi lạm dụng thế nào? Hãy gửi email đến abuse@webreaderapi.com kèm URL liên quan, ngày giờ và một dòng log máy chủ của bạn hiển thị user agent của chúng tôi `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. Một báo cáo ngắn gọn, dựa trên sự thật là dễ kiểm chứng nhất. Chúng tôi không tiết lộ cho người báo cáo khách hàng nào đã gửi yêu cầu, nhưng chúng tôi hành động dựa trên những gì phát hiện được. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Lựa chọn thay thế Firecrawl: credit Markdown theo từng trang, thanh toán bằng crypto > Firecrawl thay thế 2026: chuyển trang web sang Markdown từ 0,07 US$/1K trang, credit không hết hạn, tuân thủ robots.txt, không cần KYC, trả bằng crypto. - URL: https://webreaderapi.com/vi/alternatives/firecrawl/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Firecrawl là reader API mà hầu hết các bài so sánh bắt đầu với. Trang này đặt các gói công khai của nó bên cạnh các pack của WebReaderAPI, liệt kê những gì Firecrawl làm mà chúng tôi không làm, và ánh xạ các tùy chọn của nó sang endpoint của chúng tôi để chuyển đổi. **Câu trả lời nhanh — Đâu là lựa chọn thay thế tốt cho Firecrawl mà tôi có thể thanh toán bằng crypto?** **WebReaderAPI** chuyển các trang web công khai, PDF và toàn bộ trang web sang Markdown, bán dưới dạng credit trả trước không bao giờ hết hạn, thanh toán bằng crypto không cần KYC. Với mức giá trên trang này, áp dụng ngày 2026-10-22, 100.000 trang tĩnh tốn 21,75 US$; gói Standard của Firecrawl tốn $99 mỗi tháng cho 100.000 credit. Firecrawl render mọi trang với một credit và bổ sung trích xuất JSON, hành động trình duyệt và gói miễn phí mà chúng tôi không cung cấp. ## Firecrawl và WebReaderAPI trong nháy mắt | | WebReaderAPI (của chúng tôi) | Firecrawl | | --- | --- | --- | | Tính phí | Pack trả trước; credit không bao giờ hết hạn | Gói hàng tháng; credit của gói được đặt lại mỗi tháng; credit mua thêm vẫn giữ đến khi hủy | | Lựa chọn trả phí nhỏ nhất | 10.000 trang với 3,75 US$ | Hobby: 5.000 credit với $19 mỗi tháng | | Credit mỗi trang | 1 cho trang tĩnh, 2 khi cần trình duyệt | 1 mỗi trang, đã gồm render | | Gói miễn phí | Không có | 1.000 credit một tháng, không cần thẻ; MCP không cần khóa trong giới hạn hàng ngày | | Trích xuất JSON có cấu trúc | Không cung cấp | Định dạng JSON kèm schema, +4 credit mỗi trang | | Hành động trên trình duyệt và ảnh chụp màn hình | Không cung cấp | Tối đa 50 hành động mỗi yêu cầu; định dạng ảnh chụp màn hình | | Endpoint sơ đồ trang web | Không có trong phiên bản 1 | Map: 1 credit mỗi lần gọi | | robots.txt | Luôn được tuân thủ; không thể ghi đè | Được tuân thủ mặc định; ignoreRobotsTxt chỉ có ở gói Enterprise | | Thanh toán | BTC, USDT, USDC, ETH, SOL, LTC | Thẻ, thẻ ghi nợ và PayPal qua Stripe | | Kiểm tra danh tính | Không có: không giấy tờ tùy thân, không ảnh selfie, không tài liệu | Không có quy định nào trong điều khoản của họ | | Tự lưu trữ (self-hosting) | Không | Phần lõi mã nguồn mở theo AGPL-3.0 | *Giá được kiểm tra vào 22 tháng 10, 2026.* Thông tin về Firecrawl lấy từ firecrawl.dev và docs.firecrawl.dev, đọc ngày 2026-10-22. ## So sánh giá trên mỗi 1.000 trang thì thế nào? Điều đó phụ thuộc vào việc trang của bạn có cần trình duyệt hay không. Firecrawl tính một credit mỗi trang trong mọi trường hợp. WebReaderAPI tính một credit cho một trang mà HTML của nó chứa văn bản, và hai credit khi phải chạy trình duyệt; với `render=auto`, trình duyệt chỉ khởi chạy khi cần. | Số trang mỗi tháng | Firecrawl (mọi trang) | WebReaderAPI, trang tĩnh | WebReaderAPI, trang cần trình duyệt | |---|---|---|---| | 10.000 | $44 (Hobby $19 + 5.000 credit thêm với giá $5 mỗi 1.000) | 3,75 US$ | 2 × 3,75 US$ | | 100.000 | $99 (Standard) | 21,75 US$ | 2 × 21,75 US$ | | 1.000.000 | $749 (Scale; $599 một tháng nếu thanh toán theo năm) | 74,25 US$ | 2 × 74,25 US$ | Theo giá trên trang này, được đặt ngày 2026-10-22, cả hai cột của chúng tôi đều rẻ hơn giá gói hàng tháng của Firecrawl ở ba mức này. Hai khác biệt quan trọng hơn cả tổng tiền: credit trong gói của Firecrawl được đặt lại mỗi tháng, còn các pack của chúng tôi giữ nguyên giá trị; và tính năng trích xuất JSON của Firecrawl tốn tổng cộng 5 credit mỗi trang, một tính năng mà chúng tôi không bán. ## Khi nào Firecrawl là lựa chọn tốt hơn? Chọn Firecrawl khi bạn cần nhiều hơn Markdown sạch từ các trang công khai: - **Trích xuất có cấu trúc.** Định dạng JSON của họ trả về các trường khớp với schema bạn gửi, với 4 credit thêm mỗi trang. Chúng tôi chỉ trả về Markdown và metadata. - **Hành động trên trình duyệt.** Nhấp, chờ, cuộn và gõ trước khi đọc, tối đa 50 hành động mỗi yêu cầu. Chúng tôi đọc trang đúng như khi tải. - **Ảnh chụp màn hình, sơ đồ trang web và theo dõi thay đổi.** Tất cả đều là định dạng hoặc endpoint phía Firecrawl. - **Khởi đầu miễn phí.** 1.000 credit một tháng mà không cần thẻ, và truy cập không cần khóa qua MCP server của họ, giới hạn theo địa chỉ IP mỗi ngày. - **Hệ sinh thái.** Trang tích hợp của họ liệt kê LangChain, LlamaIndex, CrewAI, n8n, Zapier và các coding agent; OpenClaw đóng gói Firecrawl làm nhà cung cấp web_fetch mặc định. - **Tự lưu trữ (self-hosting).** Phần lõi là mã nguồn mở theo AGPL-3.0. Firecrawl cũng đã công bố vòng gọi vốn Series B trị giá $75M vào ngày 22 tháng 9 năm 2026, giúp tài trợ cho lộ trình sản phẩm nhanh. ## Khi nào WebReaderAPI là lựa chọn tốt hơn? Chọn WebReaderAPI nếu bạn muốn một trình đọc đơn giản với chi phí dễ đoán và không cần thẻ hay kiểm tra danh tính. - **Crypto, không KYC.** Nạp tiền từ 25 US$ bằng BTC, USDT, USDC, ETH, SOL, LTC. Đăng nhập bằng số tài khoản; email là tùy chọn. - **Credit không hết hạn.** Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. Một lần crawl bạn chạy hai lần mỗi năm không phải trả cho mười một tháng nhàn rỗi. - **Lỗi không tốn gì.** 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Firecrawl không tính phí khi không trả về tài liệu nào, nhưng một trang trả lời 403 hoặc 404 vẫn tốn của họ một credit. - **Một quy tắc cho chủ trang web.** Trình crawl của chúng tôi kiểm tra robots.txt ở mọi lần đọc và tuân thủ `Content-Signal: ai-input=no`, không có tùy chọn nào để tắt điều đó. User-Agent của nó được công bố trên [trang về trình crawl của chúng tôi](https://webreaderapi.com/vi/bot/). - **Giá mỗi trang** ở các mức dung lượng trên, tính đến ngày 2026-10-22. ## Các tùy chọn của Firecrawl ánh xạ sang các endpoint của WebReaderAPI thế nào? Đọc một trang và crawl chuyển trực tiếp được; trích xuất, hành động và map thì không có tương đương. | Firecrawl | WebReaderAPI | Ghi chú | |---|---|---| | Scrape một trang | `GET` hoặc `POST /read` | Cùng ý tưởng: một URL vào, một tài liệu ra | | `formats: ["markdown"]` (mặc định) | `format=markdown` (mặc định) | Mặc định chỉ lấy nội dung chính; dùng `main_content=false` để lấy toàn bộ trang | | `formats: ["html"]` | `format=html` | HTML đã làm sạch của nội dung; không có HTML thô trong phiên bản 1 | | `formats: ["links"]` | `include_links=true` | Liên kết được trả về dưới dạng danh sách | | `formats: ["json"]` với schema | — | Chạy model của riêng bạn trên Markdown của chúng tôi | | Hành động, ảnh chụp màn hình | — | Không cung cấp | | `timeout` tính bằng ms (mặc định 60.000) | `timeout` tính bằng giây (5 đến 60, mặc định 30) | | | Cache `maxAge` (mặc định 2 ngày) | — | Chúng tôi không giữ bản sao; mỗi lần đọc đều tải trang | | Crawl với `limit` và `maxDiscoveryDepth` | `POST /crawl` với `limit` (tối đa 10.000) và `max_depth` | Kết quả được phân trang bằng cursor | | Map | — | Không có trong phiên bản 1 | | `ignoreRobotsTxt` (Enterprise) | — | robots.txt luôn được áp dụng | *Python: lệnh đọc mà bạn từng gửi dưới dạng scrape* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/changelog", "format": "markdown", "include_links": "true"}, timeout=90, ) if resp.status_code == 403: print("refused by robots.txt or by the site:", resp.json()["error"]["code"]) else: resp.raise_for_status() page = resp.json() print(page["title"], "-", page["credits_used"], "credit(s)") print(len(page.get("links", [])), "links") print(page["markdown"][:400]) ``` ## Các trang mà Firecrawl đọc được có cũng chạy được ở đây không? Hầu hết các trang công khai sẽ chạy được, với một khác biệt về chính sách. Chế độ nâng cao của Firecrawl thử lại yêu cầu qua thứ họ gọi là enhanced proxy sau khi nhận trả lời 401, 403 hoặc 429. WebReaderAPI không thử lại quanh một lần từ chối: khi trang web nói không, bạn nhận `502 target_refused` kèm status của chính trang đó, và không dùng credit nào. Hãy chạy 50 URL quan trọng nhất của bạn qua cả hai dịch vụ trong một ngày trước khi chuyển lưu lượng production. So sánh Markdown, cờ `rendered` và số credit đã dùng; điều đó cho bạn biết cả chất lượng lẫn giá thực tế cho các trang của bạn. ## Pack nào thay thế gói Firecrawl của tôi? Hãy đếm số trang mỗi tháng của bạn và bao nhiêu trong đó cần trình duyệt. Khối lượng cỡ Standard 100.000 trang vừa với 100.000 trang nếu các trang là tĩnh, hoặc hai pack như thế nếu mọi trang đều cần trình duyệt. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Lựa chọn thay thế Firecrawl: các câu hỏi thường gặp ### Có lựa chọn thay thế Firecrawl miễn phí không? Bản thân Firecrawl có gói miễn phí 1.000 credit một tháng. Các công cụ mã nguồn mở như Crawl4AI, MarkItDown và Trafilatura miễn phí để chạy trên server của bạn; xem [Crawl4AI hay API được lưu trữ](https://webreaderapi.com/vi/compare/crawl4ai-vs-api/). WebReaderAPI không có gói miễn phí: pack nhỏ nhất của nó là 10.000 trang cho 3,75 US$. ### Tôi có thể thanh toán Firecrawl bằng crypto không? Trang giá của họ nêu Stripe, với thẻ, thẻ ghi nợ và PayPal, và không có tùy chọn crypto. WebReaderAPI chỉ nhận BTC, USDT, USDC, ETH, SOL, LTC, không cần KYC. ### WebReaderAPI có trích xuất JSON kèm schema như Firecrawl không? Không. WebReaderAPI trả về Markdown, văn bản hoặc HTML đã làm sạch kèm metadata. Nếu bạn cần các trường, hãy đưa Markdown của chúng tôi cho model bạn chọn kèm schema của bạn; định dạng JSON của Firecrawl làm việc này với 4 credit thêm mỗi trang. ### Credit của Firecrawl có hết hạn không? Theo tài liệu thanh toán của Firecrawl, credit của gói được đặt lại mỗi tháng và mặc định không cộng dồn; credit mua thêm vẫn giữ cho đến khi dùng hết nhưng sẽ hết hạn nếu bạn hủy. WebReaderAPI credit không bao giờ hết hạn. ### Tôi có thể tự host Firecrawl thay thế không? Có. Phần lõi của nó là mã nguồn mở theo AGPL-3.0, và README nói rằng nó tôn trọng robots.txt theo mặc định. Dịch vụ được host sẵn có thêm các tính năng mà bản mã nguồn mở không có. ## Nguồn 1. [Giá Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Tính phí](https://docs.firecrawl.dev/billing.md) — Firecrawl docs (read 2026-10-22) 3. [Hướng dẫn web scraping (cào dữ liệu web) nâng cao](https://docs.firecrawl.dev/advanced-scraping-guide.md) — Firecrawl docs (read 2026-10-22) 4. [Crawl](https://docs.firecrawl.dev/features/crawl.md) — Firecrawl docs (read 2026-10-22) 5. [Chế độ nâng cao](https://docs.firecrawl.dev/features/enhanced-mode.md) — Firecrawl docs (read 2026-10-22) 6. [Tích hợp](https://docs.firecrawl.dev/integrations.md) — Firecrawl docs (read 2026-10-22) 7. [Ra mắt Firecrawl không cần khóa](https://www.firecrawl.dev/blog/firecrawl-keyless-launch) — Firecrawl (read 2026-10-22) 8. [Giới thiệu Alexandria và vòng gọi vốn Series B của chúng tôi](https://www.firecrawl.dev/blog/introducing-alexandria-series-b) — Firecrawl (read 2026-10-22) 9. [repository firecrawl/firecrawl](https://github.com/firecrawl/firecrawl) — GitHub (read 2026-10-22) 10. [Công cụ web](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Lựa chọn thay thế Jina Reader: tính credit theo trang thay vì token > Lựa chọn thay thế Jina Reader: tính credit theo trang, từ 0,07 US$/1K trang, kiểm tra robots.txt, không cần KYC, thanh toán bằng crypto. Giá 2026-10-22. - URL: https://webreaderapi.com/vi/alternatives/jina-reader/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Jina Reader đã làm nên tên tuổi của thủ thuật thêm tiền tố URL: đặt r.jina.ai/ trước một liên kết và nhận lại Markdown. Trang này giải thích cách Jina tính phí, khi nào đây là công cụ phù hợp, và khi nào một mức giá theo trang dễ lập kế hoạch hơn. **Câu trả lời nhanh — Đâu là một lựa chọn thay thế Jina Reader tốt?** Jina Reader tính phí theo token đầu ra: $50 cho 1 tỷ, $500 cho 11 tỷ, với 10 triệu token miễn phí cho mỗi khóa mới dùng cho mục đích phi thương mại (đọc ngày 22 tháng 10 năm 2026). **WebReaderAPI** thay vào đó tính phí theo trang, từ 0,07 US$/1K trang, nên một trang dài tốn chi phí bằng một trang ngắn. Nó kiểm tra robots.txt trong mỗi lần đọc, bán credit không bao giờ hết hạn, và nhận thanh toán bằng crypto không cần KYC. ## Jina Reader và WebReaderAPI trong nháy mắt | | WebReaderAPI (của chúng tôi) | Jina Reader | | --- | --- | --- | | Cách bạn gọi nó | `GET https://webreaderapi.com/api/v1/read?url=…` với một khóa API | Thêm tiền tố vào liên kết: `https://r.jina.ai/` + URL; khóa tùy chọn | | Đơn vị tính phí | Trang: 1 credit, 2 credit với trình duyệt headless | Token đầu ra | | Giá | 3,75 US$ cho 10.000 trang; từ 0,07 US$/1K trang | $50 mỗi 1 tỷ token; $500 mỗi 11 tỷ token | | Sử dụng miễn phí | Không có | Không cần khóa ở mức 20 yêu cầu mỗi phút; 10 triệu token mỗi khóa mới, chỉ phi thương mại | | Rate limit | Giới hạn đồng thời hiển thị trong dashboard | 500 yêu cầu mỗi phút với một khóa; 5.000 ở gói premium | | robots.txt | Được kiểm tra trong mỗi lần đọc | Header `X-Robots-Txt` tùy chọn; mặc định không được nêu | | Crawl toàn bộ một trang web | `POST /crawl`, tối đa 10.000 trang | Không nêu endpoint crawl | | PDF | Có, tối đa 100 trang | Có | | Thanh toán | BTC, USDT, USDC, ETH, SOL, LTC | Thẻ, Google Pay và PayPal qua Stripe | | Chủ sở hữu | SerpGoat LLC | Jina AI, thuộc Elastic từ tháng 10 năm 2025 | *Giá được kiểm tra vào 22 tháng 10, 2026.* Thông tin về Jina lấy từ jina.ai/reader và bảng điều khiển giá của nó, đọc ngày 2026-10-22. ## Jina Reader tính phí như thế nào, và một trang tốn bao nhiêu? Jina tính số token trong phản hồi. Các gói của nó là $50 cho 1 tỷ token, khoảng $0.05 mỗi triệu, và $500 cho 11 tỷ, khoảng $0.045 mỗi triệu. Các yêu cầu thất bại không bị trừ, và một trang được yêu cầu hai lần trong vòng 5 phút sẽ lấy từ cache. Do đó chi phí của một trang phụ thuộc vào độ dài của nó, và Jina không công bố mức trung bình. Như một **ước tính, giả định 5.000 token mỗi trang**, 1.000 trang tốn khoảng $0.25 ở gói đầu tiên và $0.225 ở gói thứ hai. Một bản tin ngắn 2.000 token tốn ít hơn; một trang tài liệu 20.000 token tốn gấp bốn lần. OCR qua jina-ocr-v1 tốn gấp 40 lần số token. ## Khi nào thì credit theo trang dễ lập kế hoạch hơn? Khi bạn biết mình sẽ đọc bao nhiêu trang nhưng không biết chúng dài bao nhiêu. Một lần crawl một trang tài liệu, một danh sách các trang đối thủ cần theo dõi, hay một agent đọc năm liên kết mỗi tác vụ đều có số lượng trang, không phải số lượng token. Với WebReaderAPI, 100.000 trang tốn 21,75 US$, bất kể độ dài của mỗi trang, tính đến ngày 22 tháng 10 năm 2026. Các trang cần trình duyệt dùng hai credit, và trường `rendered` cho biết khi nào điều đó xảy ra. Dùng `max_chars` để giới hạn kích thước của những gì trả về; nó bảo vệ cửa sổ ngữ cảnh của model nhưng không thay đổi giá. ## Khi nào Jina Reader là lựa chọn tốt hơn? Chọn Jina Reader khi thời gian thiết lập quan trọng hơn mọi thứ, hoặc khi các trang của bạn ngắn: - **Không cần thiết lập.** Một tiền tố URL hoạt động không cần khóa ở 20 yêu cầu một phút, đủ cho thử nghiệm và script nhỏ. - **Trang ngắn.** Với tính phí theo token, một trang ngắn tốn ít hơn giá theo trang; ở mức ước tính 5.000 token ở trên, Jina tốn ít hơn mỗi trang so với gói 10.000 trang của chúng tôi. - **Kiểm soát tinh tế qua header.** `X-Target-Selector`, `X-Remove-Selector`, `X-Token-Budget`, `X-Engine` và những cái khác định hình mỗi lần đọc. - **Model và tìm kiếm.** Đầu ra của ReaderLM-v2 và tìm kiếm `s.jina.ai` đến từ cùng một tài khoản. - **Một MCP server chính thức** với tool `read_url` đọc tối đa năm URL mỗi lần gọi. - **Mã nguồn mở.** Nhánh Reader trên GitHub là Apache-2.0, không có lớp lưu trữ được host. Jina AI hiện thuộc Elastic, bên đã hoàn tất thương vụ mua lại vào ngày 9 tháng 10 năm 2025. ## Các header của Jina Reader ánh xạ sang tham số WebReaderAPI như thế nào? Hầu hết các lần đọc chỉ cần đổi URL và thêm khóa. | Jina Reader | WebReaderAPI | Ghi chú | |---|---|---| | `https://r.jina.ai/https://example.com` | `GET https://webreaderapi.com/api/v1/read?url=https://example.com` | Khóa trong header `Authorization` | | Đầu ra Markdown mặc định | `format=markdown` (mặc định) | Nội dung chính theo mặc định | | `X-Engine: direct` | `render=false` | Đọc HTTP thuần | | Trình duyệt headless mặc định | `render=auto` hoặc `render=true` | 2 credit khi trình duyệt chạy | | `X-Token-Budget` | `max_chars` | Ký tự, không phải token | | `X-Target-Selector`, `X-Remove-Selector` | — | Thay vào đó dùng phát hiện nội dung chính | | `X-Proxy` (quốc gia) | `country` | +10 credit, kết nối residential | | `X-No-Cache` | — | Chúng tôi không lưu cache | | `X-Robots-Txt` (tùy chọn bật) | — | robots.txt luôn được kiểm tra | | Ghi đè `X-User-Agent` | — | User-Agent của chúng tôi là cố định và được công bố | *Python: từ tiền tố r.jina.ai đến endpoint đọc* ```python import os import requests # Before: requests.get("https://r.jina.ai/" + url) url = "https://example.com/guide/install" resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": url, "render": "auto", "max_chars": 30000}, timeout=90, ) resp.raise_for_status() page = resp.json() print(page["word_count"], "words, rendered:", page["rendered"], "credits:", page["credits_used"]) print(page["markdown"][:400]) ``` ## Điều gì thay đổi đối với các trang bạn đọc? Với Jina, robots.txt chỉ được kiểm tra khi bạn gửi header `X-Robots-Txt`, và bạn có thể ghi đè User-Agent của trình duyệt; các trang của nó không nêu mặc định cho cả hai điều này. Với WebReaderAPI, cả hai đều cố định: mỗi lần đọc đều kiểm tra robots.txt cho `WebReaderAPI` và cho tất cả robot, và mỗi yêu cầu đều mang `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. Điều đó nghĩa là một số trang Jina có thể đọc sẽ bị từ chối ở đây, mà bạn không tốn phí. Đổi lại, chủ trang web có thể thấy ai đọc các trang của họ và chặn hoặc cho phép chúng tôi trong một dòng, như [trang crawler của chúng tôi](https://webreaderapi.com/vi/bot/) giải thích. ## WebReaderAPI tính phí thay cho token như thế nào? Một mức giá cố định theo trang: 10.000 trang cho 3,75 US$ lên đến 5.000.000 trang cho 350 US$, tính đến ngày 22 tháng 10 năm 2026. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Lựa chọn thay thế Jina Reader: câu hỏi thường gặp ### Jina Reader có miễn phí không? Một phần. Không cần khóa, r.jina.ai miễn phí cho mục đích sử dụng cơ bản ở 20 yêu cầu một phút. Mỗi khóa mới cũng được 10 triệu token miễn phí, mà trang giá của Jina giới hạn cho mục đích phi thương mại. Các gói trả phí bắt đầu từ $50 cho 1 tỷ token. ### Tại sao một trang Jina Reader tốn nhiều hơn khi trang dài? Vì Jina tính phí các token trong phản hồi của nó. Một bài viết dài trả về nhiều token hơn một bài ngắn. WebReaderAPI tính một credit mỗi trang, hai với trình duyệt, bất kể độ dài. ### Tôi có thể thanh toán Jina Reader bằng crypto không? Các trang của Jina nêu Stripe với thẻ, Google Pay và PayPal, và không có tùy chọn crypto. WebReaderAPI nhận BTC, USDT, USDC, ETH, SOL, LTC, không cần KYC. ### WebReaderAPI có chế độ miễn phí không cần khóa như r.jina.ai không? Không. Mỗi lần đọc đều cần khóa, và khóa đi kèm một gói trả phí. Gói nhỏ nhất là 10.000 trang cho 3,75 US$. ### Ai sở hữu Jina Reader hiện nay? Elastic. Công ty đã hoàn tất thương vụ mua lại Jina AI vào ngày 9 tháng 10 năm 2025, và trang pháp lý của Jina nêu rằng các điều khoản xử lý dữ liệu của Elastic hiện được áp dụng. ## Nguồn 1. [Reader](https://jina.ai/reader/) — Jina AI (read 2026-10-22) 2. [Bảng điều khiển API: giá](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 3. [Pháp lý](https://jina.ai/legal/) — Jina AI (read 2026-10-22) 4. [kho lưu trữ jina-ai/reader](https://github.com/jina-ai/reader) — GitHub (read 2026-10-22) 5. [kho lưu trữ jina-ai/MCP](https://github.com/jina-ai/MCP) — GitHub (read 2026-10-22) 6. [Elastic hoàn tất thương vụ mua lại Jina AI](https://ir.elastic.co/News--Events/news/news-details/2025/Elastic-Completes-Acquisition-of-Jina-AI-a-Leader-in-Frontier-Models-for-Multimodal-and-Multilingual-Search/default.aspx) — Elastic (2025-10-09, read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Các web reader API tốt nhất năm 2026: 10 cách biến URL thành Markdown > Web reader và URL to Markdown API tốt nhất năm 2026: 10 lựa chọn so sánh giá mỗi 1.000 trang, JavaScript, robots.txt, crypto và KYC. Kiểm tra ngày 2026-10-22. - URL: https://webreaderapi.com/vi/best/web-reader-apis/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Mười API được host và công cụ mã nguồn mở biến trang web thành Markdown cho model, được so sánh trên cùng tiêu chí từ chính các trang của họ. Chúng tôi công bố WebReaderAPI, đứng đầu danh sách này; mỗi mục đều nêu lựa chọn đó làm tốt hơn điều gì. **Câu trả lời nhanh — Web reader hay URL to Markdown API tốt nhất năm 2026 là gì?** Còn tùy vào công việc. Tính đến ngày 22 tháng 10 năm 2026: **WebReaderAPI** cho thanh toán bằng crypto, không cần KYC, tôn trọng robots.txt và credit không bao giờ hết hạn, từ 0,07 US$/1K trang; Firecrawl cho bộ tính năng đầy đủ nhất với $0.99 mỗi 1.000 trang trên gói $99; Jina Reader cho việc đọc không cần thiết lập, tính phí theo token; Crawl4AI nếu bạn muốn tự host theo giấy phép Apache-2.0. ## 10 web reader API tốt nhất năm 2026 **Phương pháp luận.** Được công bố bởi WebReaderAPI (SerpGoat LLC). Mọi nhà cung cấp được so sánh theo cùng tiêu chí, lấy từ chính website công khai của họ: giá niêm yết mỗi 1.000 trang cho trang thường và trang render bằng trình duyệt, gói miễn phí và hạn dùng của credit, các tính năng chất lượng Markdown (nội dung chính, PDF, crawl), chính sách robots.txt, các phương thức thanh toán được chấp nhận, bao gồm crypto, yêu cầu về danh tính hoặc thẻ, ngày kiểm tra giá. *Giá được kiểm tra vào 22 tháng 10, 2026.* ### 1. WebReaderAPI — Sản phẩm của chúng tôi Một web reader API cho AI agent với credit trả trước không bao giờ hết hạn, thanh toán bằng crypto không cần KYC; crawler của nó tôn trọng robots.txt và không bao giờ tìm cách lách một lệnh từ chối. - Phù hợp nhất cho: Thanh toán bằng crypto không cần giấy tờ; các agent và RAG pipeline muốn crawl một cách lịch sự - Giá: 0,38 US$/1K trang trên 10.000 trang, 0,07 US$/1K trang trên 1.000.000 trang; trang dùng trình duyệt tốn 2 credit - KYC: Không có - Thanh toán bằng crypto: BTC, USDT, USDC, ETH, SOL, LTC - Ưu điểm: Credit không bao giờ hết hạn - Ưu điểm: Trang lỗi và trang bị robots từ chối thì miễn phí - Ưu điểm: Mã công cụ cho MCP, LangChain, LlamaIndex, OpenAI, n8n, OpenClaw - Nhược điểm: Không có gói miễn phí - Nhược điểm: Không trích xuất JSON có cấu trúc hay thao tác trên trang - Nhược điểm: Những trang bị site từ chối thì vẫn bị từ chối ### 2. Firecrawl API nổi tiếng nhất để biến website thành dữ liệu sẵn sàng cho LLM: scrape, crawl, map và trích xuất nội dung chính, với hệ sinh thái mã nguồn mở và MCP lớn. - Phù hợp nhất cho: Các nhóm cần trích xuất có cấu trúc, thao tác trên trang và một hệ sinh thái trưởng thành - Giá: $3.80 mỗi 1.000 trang trên Hobby ($19 cho 5.000 trang); $0.99 trên Standard ($99 cho 100.000 trang); $0.749 trên Scale ($749 cho 1 triệu trang); đã bao gồm JavaScript - KYC: Không nêu - Thanh toán bằng crypto: Không (thẻ, PayPal) - Ưu điểm: 1.000 credit miễn phí mỗi tháng, không cần thẻ - Ưu điểm: Tôn trọng robots.txt theo mặc định - Ưu điểm: Phần lõi có thể tự host (AGPL-3.0) - Nhược điểm: Credit của gói được làm mới hàng tháng - Nhược điểm: Trích xuất JSON tốn thêm 4 credit mỗi trang ### 3. Jina Reader Thêm tiền tố r.jina.ai vào URL và nhận lại Markdown; tính phí theo output token và hiện đã thuộc Elastic. - Phù hợp nhất cho: Đọc nhanh không cần thiết lập; trang ngắn - Giá: $50 cho 1 tỷ output token; $500 cho 11 tỷ (chi phí mỗi trang tùy vào độ dài trang) - KYC: Không nêu - Thanh toán bằng crypto: Không nêu - Ưu điểm: Dùng không cần khóa API ở mức 20 yêu cầu mỗi phút - Ưu điểm: 10 triệu token miễn phí cho mỗi khóa mới (phi thương mại) - Nhược điểm: Tính phí theo token khiến trang dài khó dự đoán chi phí - Nhược điểm: robots.txt chỉ qua một header tùy chọn bật ### 4. Crawl4AI Crawler mã nguồn mở phổ biến nhất cho LLM, với một bản cloud đang trong giai đoạn soft launch. - Phù hợp nhất cho: Các nhóm muốn tự host và kiểm soát mọi thứ - Giá: Miễn phí khi tự triển khai; Cloud từ $10 (Starter), trang thường 0.5 credit, trang trình duyệt 1 credit - KYC: Không cần thẻ (Cloud) - Thanh toán bằng crypto: Không nêu - Ưu điểm: Giấy phép Apache-2.0 - Ưu điểm: MCP server tự triển khai - Nhược điểm: Tự triển khai đồng nghĩa với server và bảo trì - Nhược điểm: check_robots_txt mặc định tắt ### 5. Olostep API render mọi trang trong trình duyệt, có batch, crawl và map, cùng thanh toán crypto theo từng yêu cầu cho agent. - Phù hợp nhất cho: Các trang nặng JavaScript ở quy mô lớn - Giá: $1.80 cho 1.000 trang trên Starter ($9 cho 5.000); $0.399 trên Scale ($399 cho 1 triệu), mọi trang đều được render - KYC: Thẻ để nạp thêm - Thanh toán bằng crypto: Theo từng yêu cầu, USDC (x402) - Ưu điểm: Giá trang trình duyệt đã xác minh thấp nhất ở mức 1 triệu trang mỗi tháng - Ưu điểm: Batch, crawl và map - Nhược điểm: Credit của gói được làm mới hàng tháng ### 6. Nội dung từ Exa Nội dung trang từ chỉ mục tìm kiếm của Exa với giá cố định, kèm thanh toán crypto theo từng yêu cầu cho agent. - Phù hợp nhất cho: Agent vốn đã dùng tìm kiếm Exa - Giá: $1.00 cho 1.000 trang, giá cố định - KYC: Thẻ cho hình thức trả theo mức dùng - Thanh toán bằng crypto: Theo từng yêu cầu, USDC (x402) - Ưu điểm: $10 credit miễn phí mỗi tháng - Ưu điểm: x402 với $0.001 mỗi trang - Nhược điểm: Ưu tiên cache; không có tùy chọn trình duyệt được ghi nhận trong tài liệu ### 7. Tavily Extract Trích xuất từ hệ sinh thái tìm kiếm Tavily, tính giá theo từng lô URL, có chế độ advanced. - Phù hợp nhất cho: Agent xây dựng quanh tìm kiếm Tavily - Giá: $1.50 cho 1.000 URL cơ bản trên Project ($30); $1.00 trên Growth ($500); chế độ advanced nhân đôi giá - KYC: Không nêu - Thanh toán bằng crypto: Chỉ theo quyết định của họ (điều khoản) - Ưu điểm: 1.000 credit miễn phí mỗi tháng (5.000 URL cơ bản) - Nhược điểm: Credit được làm mới hàng tháng - Nhược điểm: Chính sách robots.txt không được nêu ### 8. ScrapingBee API scraping tổng quát có tùy chọn đầu ra Markdown và giá trang thường thấp ở quy mô lớn. - Phù hợp nhất cho: Khối lượng lớn trang thường - Giá: $0.099 cho 1.000 trang thường ở mức 1 triệu trang mỗi tháng ($99 gói Startup); trang trình duyệt tốn 5 credit - KYC: Thẻ cho các gói trả phí - Thanh toán bằng crypto: Không - Ưu điểm: Giá trang thường thấp ở quy mô lớn - Ưu điểm: Đầu ra Markdown và text - Nhược điểm: Không cộng dồn credit - Nhược điểm: Chính sách robots.txt không được nêu ### 9. ZenRows API scraping có sẵn đầu ra Markdown và một cửa hàng cho agent nhận USDC. - Phù hợp nhất cho: Khối lượng tác vụ nhỏ của agent trả tiền theo lượt dùng - Giá: $0,50 cho 1.000 trang thường qua cửa hàng agent của nó; $0,199 ở mức 1 triệu trên các gói; trang trình duyệt tốn 5 credit - KYC: Xác thực email - Thanh toán bằng crypto: Chỉ dành cho agent, USDC (x402) - Ưu điểm: Markdown không tính thêm phí - Ưu điểm: 5.000 credit miễn phí mỗi tháng - Nhược điểm: Tài khoản không thể thanh toán bằng crypto - Nhược điểm: Credit của gói hết hạn khi gia hạn ### 10. Cloudflare Browser Run Dịch vụ trình duyệt của Cloudflare với các endpoint /markdown và /crawl, tính phí theo thời gian trình duyệt. - Phù hợp nhất cho: Các nhóm đã dùng Cloudflare Workers - Giá: $0,09 mỗi giờ trình duyệt sau 10 giờ bao gồm, tối thiểu $5 mỗi tháng - KYC: Tài khoản Cloudflare - Thanh toán bằng crypto: USDC qua Stripe cho thanh toán Cloudflare (một trang thanh toán bỏ sót nó) - Ưu điểm: /crawl respects robots.txt and always identifies itself as a bot - Ưu điểm: Trả tiền theo thời gian trình duyệt, không theo trang - Nhược điểm: Chi phí mỗi trang phụ thuộc vào thời gian mỗi trang mất *Công bố: trang này được xuất bản bởi WebReaderAPI. Thông tin về các đối thủ được lấy từ website công khai của họ tại ngày ghi ở trên và có thể đã thay đổi kể từ đó.* ## Làm sao để chọn một web reader API? Bắt đầu từ các trang của bạn, rồi đến khối lượng. 1. **Các trang của bạn có cần trình duyệt không?** Tin tức, blog và tài liệu thường không cần; web app và một số cửa hàng thì có. Các API scraping tính theo credit thu 5 đến 10 lần nhiều hơn cho trang trình duyệt, trong khi Firecrawl và Olostep tính giá mọi trang như nhau. 2. **Mỗi tháng bao nhiêu trang, và đều đặn đến đâu?** Gói hàng tháng với hạn mức lớn phù hợp với khối lượng đều đặn; credit trả trước không hết hạn phù hợp với agent và các lần crawl một lần. 3. **Bạn có cần trích xuất ngoài Markdown không?** JSON có cấu trúc, thao tác trang và ảnh chụp màn hình là nơi Firecrawl và các API scraping lớn dẫn đầu. 4. **Bạn muốn đối xử với chủ trang web thế nào?** Firecrawl, /crawl của Cloudflare và WebReaderAPI tôn trọng robots.txt theo mặc định; một số API để bạn tự quyết hoặc không nói rõ. 5. **Bạn sẽ thanh toán thế nào?** Hầu hết chỉ nhận thẻ. Scrape.do, Decodo và Scrapeless nêu crypto trên tài khoản; Exa, Olostep và những cái khác nhận USDC theo từng truy vấn; WebReaderAPI nhận BTC, USDT, USDC, ETH, SOL, LTC không cần KYC. ## Tôi có nên tự vận hành thay vì trả tiền cho một API không? Tự vận hành miễn phí về giấy phép và tốn kém về thời gian. Crawl4AI (Apache-2.0), Microsoft MarkItDown (MIT), Trafilatura (Apache-2.0) và Mozilla Readability (Apache-2.0) lo phần chuyển đổi; bạn vẫn phải chạy máy chủ, trình duyệt headless, các lần thử lại và việc xử lý robots.txt. Phần lõi của Firecrawl cũng có thể tự vận hành theo giấy phép AGPL-3.0. Với vài nghìn trang mỗi tháng, một API được vận hành sẵn thường tốn ít hơn thời gian bỏ ra để duy trì một crawler. [Trang Crawl4AI hay API được vận hành sẵn](https://webreaderapi.com/vi/compare/crawl4ai-vs-api/) của chúng tôi trình bày sự đánh đổi. ## WebReaderAPI giá bao nhiêu? Credit trả trước, một credit cho mỗi trang thường và hai cho mỗi trang trình duyệt; credit không bao giờ hết hạn. Giá được đặt ngày 22 tháng 10 năm 2026. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Best web reader API: các câu hỏi thường gặp ### Cái nào tốt hơn, Firecrawl hay Jina Reader? Firecrawl phù hợp với các nhóm cần crawl, trích xuất có cấu trúc và giá mỗi trang dễ đoán; Jina Reader phù hợp với việc đọc nhanh không cần thiết lập, tính phí theo token. [Trang Firecrawl vs Jina Reader](https://webreaderapi.com/vi/compare/firecrawl-vs-jina-reader/) của chúng tôi so sánh chúng từng dòng. ### Web reader API nào tôn trọng robots.txt? Firecrawl tôn trọng nó theo mặc định, chỉ có ghi đè trên Enterprise; /crawl của Cloudflare tôn trọng nó mà không có tùy chọn từ chối nào được ghi lại; WebReaderAPI tôn trọng nó trên mọi truy vấn. Jina biến nó thành một header tùy chọn, và nhiều API scraping không nêu rõ chính sách. ### Có API URL sang Markdown miễn phí không? Một số có hạn mức miễn phí: Firecrawl 1.000 credit một tháng, Tavily 1.000 credit một tháng, Exa $10 một tháng, ZenRows 5.000 credit một tháng, và Jina 10 triệu token cho mục đích phi thương mại. WebReaderAPI không có gói miễn phí. ### Bảng xếp hạng này có độc lập không? Không. Nó được công bố bởi WebReaderAPI, đơn vị đứng đầu bảng xếp hạng. Mỗi lựa chọn được mô tả từ chính các trang công khai của nó, đọc ngày 22 tháng 10 năm 2026, theo cùng các tiêu chí, và mỗi mục liệt kê những gì nó làm tốt hơn. ## Nguồn 1. [Giá Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Giá Jina API](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 3. [Crawl4AI](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 4. [Kho lưu trữ Crawl4AI](https://github.com/unclecode/crawl4ai) — GitHub (read 2026-10-22) 5. [Giá Olostep](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 6. [Giá Exa](https://exa.ai/pricing) — Exa (read 2026-10-22) 7. [Credit API Tavily](https://docs.tavily.com/documentation/api-credits) — Tavily (read 2026-10-22) 8. [Giá ScrapingBee](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 9. [Giá ZenRows](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 10. [Giá Browser Run](https://developers.cloudflare.com/browser-run/pricing/) — Cloudflare (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # WebReaderAPI bot: user agent, robots.txt và cách chặn nó > WebReaderAPI bot: user agent chính xác, token robots.txt, cách chặn hoặc làm chậm nó, và những gì nó không bao giờ làm. Dành cho chủ trang web và công cụ AI. - URL: https://webreaderapi.com/vi/bot/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Nếu bạn thấy tên chúng tôi trong nhật ký máy chủ, trang này giải thích chúng tôi là ai, vì sao chúng tôi đã truy cập trang của bạn và cách yêu cầu chúng tôi ngừng lại. Mọi quy tắc ở đây là cam kết mà dịch vụ được xây dựng xoay quanh. **Câu trả lời nhanh — WebReaderAPI bot là gì và làm sao để chặn nó?** Bot **WebReaderAPI** truy cập các trang công khai khi một khách hàng của chúng tôi yêu cầu API đọc chúng. Nó gửi user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` và tuân thủ các quy tắc robots.txt được viết cho token `WebReaderAPI` hoặc cho tất cả robot. Để chặn nó trên toàn bộ trang web, hãy thêm `User-agent: WebReaderAPI` theo sau là `Disallow: /` vào robots.txt của bạn. ## Tổng quan về bot | Thuộc tính | Giá trị | | --- | --- | | Header User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Token robots.txt | `WebReaderAPI` | | robots.txt | Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí | | Tín hiệu tùy chọn AI | Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn | | Khi trang web nói không | Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall | | Bản sao các trang của bạn | Không lưu bản sao nào sau khi câu trả lời được gửi cho khách hàng | | Tác vụ crawl | Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang | | Liên hệ | abuse@webreaderapi.com | ## Vì sao WebReaderAPI truy cập trang của tôi? Vì một khách hàng của API đã yêu cầu. WebReaderAPI không tự xây dựng chỉ mục riêng của web và không duyệt web theo ý mình. Mỗi lần truy cập thuộc một trong ba loại yêu cầu: - **Đọc một lần:** một ứng dụng hoặc một AI agent đã gửi URL của bạn đến `/read`, thường là vì một người đã hỏi câu hỏi mà trang của bạn trả lời. - **Tác vụ hàng loạt:** một khách hàng đã gửi danh sách tối đa 100 URL, và URL của bạn nằm trong đó. - **Tác vụ crawl:** một khách hàng yêu cầu chúng tôi đọc toàn bộ một trang web, bắt đầu từ một địa chỉ và chỉ ở trong tên miền đó. Tác vụ crawl tuân theo sitemap và robots.txt của bạn. Khách hàng nhận được nội dung chính của trang dưới dạng Markdown. Sau đó chúng tôi không lưu bản sao nào. ## Làm sao để chặn bot trên toàn bộ trang web của tôi? Thêm một nhóm cho token của chúng tôi vào tệp robots.txt. Bot đọc `/robots.txt` trước khi truy cập một trang và lưu vào bộ nhớ đệm tối đa 24 giờ, nên thay đổi sẽ có hiệu lực trong vòng một ngày là muộn nhất. *robots.txt: từ chối mọi trang với WebReaderAPI* ```text User-agent: WebReaderAPI Disallow: / ``` ## Tôi có thể chỉ chặn một phần trang web, hoặc làm chậm bot không? Có. Liệt kê các thư mục bạn muốn loại trừ dưới `Disallow`, và đặt `Crawl-delay` tính bằng giây cho các tác vụ crawl. Các quy tắc được viết cho tất cả robot (`User-agent: *`) cũng áp dụng cho chúng tôi khi bạn không có nhóm dành cho token của chúng tôi. Khi bạn có nhóm đó, nhóm đó sẽ thắng, như RFC 9309 mô tả. *robots.txt: loại trừ hai thư mục và giãn cách các yêu cầu crawl* ```text User-agent: WebReaderAPI Disallow: /account/ Disallow: /drafts/ Crawl-delay: 5 ``` ## Bot có tuân thủ các tín hiệu tùy chọn AI không? Có, những tín hiệu mà trang web nêu trong robots.txt. Nếu tệp của bạn khai báo `Content-Signal: ai-input=no`, chúng tôi coi đó là từ chối việc dùng các trang của bạn làm đầu vào cho câu trả lời AI, và chúng tôi không đọc chúng cho khách hàng. Khi đó API trả về lỗi `blocked_by_site_policy` cho khách hàng, và khách hàng không bị tính phí. *robots.txt: cho phép công cụ tìm kiếm, từ chối đầu vào AI* ```text User-agent: * Content-Signal: search=yes, ai-input=no Allow: / ``` ## Bot làm gì khi trang web của tôi từ chối nó? Nó dừng lại và báo lại câu trả lời của bạn. Mã trạng thái 403 hoặc 429, trang thử thách, biểu mẫu đăng nhập hoặc paywall đều kết thúc yêu cầu. Khách hàng nhận được lỗi `target_refused` kèm mã trạng thái của bạn, và không bị tính phí cho lần đó. Bot không bao giờ giải thử thách, không bao giờ đăng nhập, không bao giờ đổi user agent để trông giống trình duyệt và không bao giờ thử lại dưới vỏ bọc khác. Nếu bạn muốn chúng tôi đọc các trang của bạn, hãy cho phép token trong robots.txt và để các yêu cầu đi qua; nếu không, bạn không cần làm gì thêm. ## WebReaderAPI chưa cam kết điều gì? Hiện chúng tôi chưa công bố danh sách địa chỉ IP, nên vui lòng nhận diện bot bằng user agent và hành vi với robots.txt, không dựa vào IP. Các trang được đọc với tùy chọn `country` xuất phát từ một địa chỉ ở quốc gia đã chọn, vẫn với cùng user agent. Chúng tôi sẽ thêm các dải địa chỉ của mình vào trang này khi chúng được cố định, kèm ngày thay đổi. ## Làm sao để báo cáo sự cố với bot? Hãy viết đến abuse@webreaderapi.com kèm ngày giờ, tên miền của bạn, URL đã được truy cập và một dòng trong nhật ký truy cập của bạn hiển thị user agent của chúng tôi. Một người sẽ đọc từng báo cáo và đối chiếu với nhật ký của chúng tôi. Nếu một khách hàng dùng API trái với [Chính sách sử dụng hợp lý](https://webreaderapi.com/vi/acceptable-use/) của chúng tôi, tài khoản của họ sẽ bị tạm ngưng. Để kiểm tra xem một yêu cầu có thực sự đến từ chúng tôi không, hãy so sánh user agent và hành vi với robots.txt với trang này. Một ứng dụng khách bỏ qua các quy tắc robots.txt của bạn trong khi dùng tên của chúng tôi không phải là bot của chúng tôi. ## Câu hỏi của chủ trang web ### WebReaderAPI bot có phải là trình thu thập của công cụ tìm kiếm không? Không. Nó không lập chỉ mục web và không xếp hạng trang. Nó chỉ đọc một trang khi một khách hàng của API yêu cầu trang đó, trong một yêu cầu đơn lẻ, một tác vụ hàng loạt hoặc một tác vụ crawl một trang web. ### Chặn bot có ảnh hưởng đến thứ hạng trên Google hay Bing của tôi không? Không. Các quy tắc được viết cho `WebReaderAPI` chỉ liên quan đến bot của chúng tôi. Trình thu thập của công cụ tìm kiếm tuân theo nhóm riêng của chúng trong robots.txt của bạn. ### Thay đổi robots.txt có hiệu lực trong bao lâu? Trong vòng 24 giờ là muộn nhất. Bot lưu robots.txt vào bộ nhớ đệm tối đa một ngày trước khi đọc lại. ### Bot có tuân thủ Crawl-delay không? Có, đối với các crawl job, vốn đọc nhiều trang của một site. Một lượt đọc đơn lẻ là một request và không bị giãn cách. ### Bạn có lưu trữ hoặc bán nội dung các trang của tôi không? Không. Nội dung văn bản của trang được gửi đến khách hàng đã yêu cầu và không được chúng tôi lưu giữ. Log của chúng tôi chứa tên host, thời gian, trạng thái và số credit đã dùng, trong 30 ngày. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Nhật ký thay đổi > Nhật ký thay đổi của WebReaderAPI: thay đổi có ghi ngày cho web reader API, giá, quy tắc crawler và chính sách. Mục đầu tiên: website và tài liệu đã phát hành. - URL: https://webreaderapi.com/vi/changelog/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Các thay đổi đối với API, giá, hành vi crawler và chính sách được liệt kê tại đây, mới nhất trước. Một thay đổi đối với cam kết được nêu ở nơi khác trên site cũng xuất hiện ở đây. **Câu trả lời nhanh — Đã có gì thay đổi tại WebReaderAPI?** Ngày 22 tháng 10 năm 2026, **WebReaderAPI** đã phát hành website, tài liệu, giá và chính sách của mình. Bản thân API chưa mở; việc ra mắt nó sẽ là mục tiếp theo trên trang này. Giá khởi điểm từ 3,75 US$ cho 10.000 trang và giảm xuống 0,07 US$/1K trang ở pack lớn nhất. ## 22 tháng 10 năm 2026: website và tài liệu đã được phát hành - **Website, giá và chính sách** đã lên mạng: [bảng giá](https://webreaderapi.com/vi/pricing/), [điều khoản](https://webreaderapi.com/vi/terms/), [quyền riêng tư](https://webreaderapi.com/vi/privacy/), [sử dụng chấp nhận được](https://webreaderapi.com/vi/acceptable-use/) và [hoàn tiền](https://webreaderapi.com/vi/refunds/). - **Tài liệu** cho các endpoint `/read`, `/batch`, `/crawl` và `/credits`, kèm code cho Python, Node.js và curl. - **Quy tắc crawler** được công bố trên [trang bot](https://webreaderapi.com/vi/bot/): user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, token robots.txt `WebReaderAPI`, tôn trọng `ai-input=no`. - **Trạng thái API:** chờ ra mắt. Cho đến khi mục ra mắt xuất hiện ở đây, không thể mua khóa API nào. ## Điều gì được coi là một thay đổi đáng có mục ghi ngày? Bất cứ điều gì khách hàng hoặc chủ site có thể dựa vào: - một endpoint, tham số hoặc field phản hồi mới; - một field bị đổi tên hoặc bị xóa (điều này chỉ xảy ra trong một phiên bản mới của API, chẳng hạn `/api/v2/`); - một mức giá, một quy tắc credit hoặc một quy tắc hoàn tiền; - một thay đổi về cách crawler tự nhận diện hoặc xử lý robots.txt; - một sự cố ảnh hưởng đến các request, kèm khung thời gian của nó. ## Các thay đổi giá được xử lý như thế nào? Mức giá mới áp dụng cho các pack được mua sau khi nó được công bố tại đây. Credit bạn đã có giữ nguyên giá trị: chúng được tính bằng số trang, không phải bằng đô-la, và Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. ## Phiên bản 1 của API ổn định đến mức nào? Trong phạm vi phiên bản 1, chúng tôi có thể thêm field và tham số, không bao giờ đổi tên hay xóa chúng. Code đọc các field được ghi trong [định dạng phản hồi](https://webreaderapi.com/vi/docs/response/) vẫn tiếp tục chạy. Một thay đổi phá vỡ tương thích sẽ được đưa vào một phiên bản mới, được công bố tại đây trước khi ra mắt. ## Làm sao để theo dõi các thay đổi? Hãy xem trang này, hoặc đọc phiên bản Markdown của nó, mà [llms.txt](https://webreaderapi.com/llms.txt)] liệt kê cùng các trang khác của site. Mỗi mục giữ ngày của nó, để bạn có thể thấy điều gì đã thay đổi kể từ lần ghé thăm trước. Câu hỏi xin gửi đến support@webreaderapi.com. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Crawl4AI hay một API được host? Khi nào nên tự chạy web reader của bạn > Crawl4AI hay một API được host để chuyển trang web sang Markdown? Giấy phép, mặc định robots.txt, chi phí tự host, và giá được host đã kiểm tra vào 2026-10-22. - URL: https://webreaderapi.com/vi/compare/crawl4ai-vs-api/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Các công cụ mã nguồn mở có thể chuyển trang web sang Markdown miễn phí, trên server của riêng bạn. Các API được host tính phí theo trang và chạy server thay bạn. Trang này trình bày cái giá thật sự của mỗi lựa chọn, từ giấy phép và mặc định robots.txt đến trình duyệt và bảo trì. **Câu trả lời nhanh — Tôi nên tự host Crawl4AI hay dùng một web reader API được host?** Hãy tự host Crawl4AI (Apache-2.0, kèm yêu cầu ghi công) khi bạn có lưu lượng ổn định và người để vận hành trình duyệt và server; lưu ý rằng kiểm tra robots.txt của nó mặc định tắt. Hãy dùng một API được host khi lưu lượng không đều hoặc bạn không muốn làm công việc vận hành: Crawl4AI Cloud khởi điểm từ $10 cho 10.000 credit, và **WebReaderAPI** từ 3,75 US$ cho 10.000 trang, thanh toán bằng crypto không cần KYC (22 tháng 10 năm 2026). ## Công cụ mã nguồn mở nào chuyển trang web sang Markdown? Các lựa chọn chính vào tháng 10 năm 2026, kèm giấy phép và mặc định mà repository và tài liệu của chính chúng nêu. | Công cụ | Giấy phép | Render JavaScript | robots.txt theo mặc định | MCP server | | --- | --- | --- | --- | --- | | Crawl4AI | Apache-2.0, cộng với yêu cầu ghi công trong README | Có (Playwright) | Tắt: `check_robots_txt` mặc định là False | Có, trên server của riêng bạn | | Firecrawl (tự host) | Lõi AGPL-3.0; SDK và một số phần UI theo MIT | Có (dịch vụ Playwright) | Bật | Có (firecrawl-mcp-server, MIT) | | Microsoft MarkItDown | MIT | Không | Không có tài liệu | Có (markitdown-mcp) | | Trafilatura | Apache-2.0 (GPLv3+ trước v1.8.0) | Không | Spider của nó tuân theo Robots Exclusion Standard | Không đề cập | | Mozilla Readability | Apache-2.0 | Không; cần DOM và không tự tải trang | Không áp dụng | Không tìm thấy | | Jina Reader (nhánh mã nguồn mở) | Apache-2.0 | Có (Puppeteer) | Không đề cập | Không có trong repository | *Giá được kiểm tra vào 22 tháng 10, 2026.* Từ các repository GitHub và tài liệu liệt kê bên dưới, đọc ngày 2026-10-22. ## Tự host một web reader thực sự tốn bao nhiêu? Phần mềm miễn phí; nhưng vận hành thì không. Trước khi so sánh giá dịch vụ host sẵn với con số không, hãy tính những khoản sau: - **Máy chủ và trình duyệt.** Trang tĩnh cần ít CPU, nhưng trang JavaScript cần một trình duyệt headless cho mỗi truy vấn, với lượng bộ nhớ tương ứng. Lúc cao điểm cần dự phòng công suất nằm không suốt thời gian còn lại. - **Bảo trì.** Phiên bản trình duyệt, quy tắc trích xuất và dependencies thay đổi. Crawl4AI phát hành v0.9.5 ngày 14 tháng 10 năm 2026; MarkItDown 0.1.9 ngày 21 tháng 10 năm 2026. Phải có người kiểm thử và triển khai từng bản cập nhật. - **Mạng.** Băng thông ra, DNS, timeout và retry là do bạn tinh chỉnh. Các trang web có thể từ chối lưu lượng từ địa chỉ máy chủ của bạn, và khi đó câu trả lời đúng là tôn trọng sự từ chối đó. - **Chính sách.** Crawl4AI để `check_robots_txt` tắt trừ khi bạn bật, và cho phép bạn đặt hoặc ngẫu nhiên hóa user agent. Việc quyết định và thực thi quy tắc robots.txt cùng quy tắc nhận diện của riêng bạn là một phần công việc. - **Bảo mật.** README của MarkItDown cảnh báo rằng nó thực hiện I/O với quyền của tiến trình hiện tại và đầu vào cần được làm sạch trong môi trường không tin cậy. Một dịch vụ tải các URL tùy ý cũng phải từ chối địa chỉ nội bộ và riêng tư. ## Các web reader host sẵn tính giá thế nào để so sánh? Các API host sẵn biến những chi phí đó thành giá mỗi trang. Hai ví dụ từ ngày 22 tháng 10 năm 2026: | | Crawl4AI Cloud | WebReaderAPI (của chúng tôi) | |---|---|---| | Gói vào | Starter $10 một tháng, 10.000 credit | 3,75 US$ cho 10.000 trang | | Trang tĩnh | 0,5 credit | 1 credit | | Trang có trình duyệt | 1 credit ("trình duyệt thật") | 2 credit | | Gói lớn hơn | Builder $99 cho 125.000 credit; Scale $499 cho 750.000 | 74,25 US$ cho 1.000.000 trang; 350 US$ cho 5.000.000 trang | | Credit không dùng | Credit hàng tháng không chuyển sang tháng sau; credit mua thêm không hết hạn | Không bao giờ hết hạn | | Thanh toán | Thẻ qua Stripe | BTC, USDT, USDC, ETH, SOL, LTC | | robots.txt | Khách hàng phải tuân thủ chỉ dẫn robots của trang web (điều khoản) | Dịch vụ kiểm tra ở mỗi lần đọc | Crawl4AI Cloud do nhóm duy trì Crawl4AI vận hành và ghi giá của mình là "soft launch" có thể thay đổi. Credit của họ trị giá $0,001, nên một trang tĩnh tốn $0,50 mỗi 1.000 trang ở gói Starter. ## Khi nào tôi nên tự host? Tự host có lợi khi ba điều kiện đúng: lưu lượng của bạn cao và đều, bạn đã có sẵn máy chủ và trình duyệt, và bạn cần quyền kiểm soát mà một API không thể cung cấp. - **Trích xuất tùy chỉnh.** Schema CSS, XPath và LLM của Crawl4AI, hoặc quy tắc riêng của bạn trên Readability hay Trafilatura. - **Lưu trú dữ liệu.** Các trang không bao giờ rời khỏi hạ tầng của bạn. - **Đầu vào ngoài trang web.** MarkItDown chuyển đổi Word, Excel, PowerPoint, EPub và nhiều hơn nữa, điều mà một SERP API hay web reader API không làm được. - **Phù hợp giấy phép.** Công cụ Apache-2.0 và MIT cho phép sản phẩm đóng; lõi AGPL-3.0 của Firecrawl yêu cầu bạn chia sẻ thay đổi nếu bạn cung cấp nó như một dịch vụ mạng. ## Khi nào API host sẵn là lựa chọn tốt hơn? Hãy mua trang thay vì chạy máy chủ khi khối lượng công việc của bạn không đều, đội ngũ của bạn nhỏ, hoặc web reader chỉ là một công cụ bên trong agent chứ không phải sản phẩm riêng. - **Lưu lượng tăng vọt hoặc theo mùa.** Một lần crawl hai lần mỗi năm không đủ lý do để nuôi cả đội trình duyệt. Với WebReaderAPI, Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. - **Agent.** Một endpoint host sẵn cắm vào MCP, LangChain hay OpenAI tools trong vài phút; xem [MCP server của chúng tôi](https://webreaderapi.com/vi/docs/mcp/). - **Một chính sách bạn không phải tự xây.** Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. - **Thanh toán không cần thẻ.** WebReaderAPI nhận BTC, USDT, USDC, ETH, SOL, LTC không cần KYC. ## Tôi có thể kết hợp cả hai không? Có, và nhiều đội ngũ làm vậy. Chạy một trình chuyển đổi mã nguồn mở cho các tệp bạn đã có, chẳng hạn PDF và tài liệu Office với MarkItDown, và gọi một web reader host sẵn cho các trang web trực tiếp, đặc biệt là trang JavaScript mà nếu không sẽ cần trình duyệt của riêng bạn. Giữ định dạng đầu ra giống nhau ở cả hai bên, Markdown kèm URL nguồn và tiêu đề, để mã chia đoạn và lập chỉ mục của bạn không quan tâm tài liệu đến từ đâu. [Hướng dẫn RAG](https://webreaderapi.com/vi/use-cases/rag/) của chúng tôi cho thấy định dạng đó trong thực tế. ## Chi phí web reader host sẵn với WebReaderAPI là bao nhiêu? Credit theo trang, thanh toán bằng crypto, tính đến ngày 22 tháng 10 năm 2026: 1 credit mỗi trang tĩnh, 2 credit khi có trình duyệt, không tính phí với trang thất bại hoặc bị từ chối. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Tự host web reader: các câu hỏi thường gặp ### Crawl4AI có miễn phí cho mục đích thương mại không? README của nó ghi rằng nó được cấp phép theo Apache-2.0, cho phép dùng thương mại, và nói thêm rằng người dùng phải ghi công, dưới dạng huy hiệu hoặc một dòng chữ. Hãy tự đọc giấy phép và README trước khi phát hành. ### Crawl4AI có tôn trọng robots.txt không? Chỉ khi bạn yêu cầu. Tham số `check_robots_txt` của nó mặc định là False; đặt thành True để kiểm tra và lưu cache quy tắc robots.txt trước khi crawl. Bạn cũng có thể đặt hoặc ngẫu nhiên hóa user agent, nên chính sách của bạn quyết định cách nó hoạt động. ### Tôi có thể tự host Firecrawl thay vì Crawl4AI không? Có. Lõi của Firecrawl là mã nguồn mở theo AGPL-3.0 và mặc định tôn trọng robots.txt. AGPL yêu cầu bạn công bố thay đổi khi cung cấp phần mềm như một dịch vụ mạng, điều này quan trọng với sản phẩm thương mại. ### Công cụ nào chuyển đổi PDF và tệp Office? Microsoft MarkItDown, theo giấy phép MIT, chuyển đổi PDF, Word, PowerPoint, Excel, HTML, EPub và nhiều định dạng khác sang Markdown. Nó không render các trang JavaScript. WebReaderAPI đọc PDF từ một URL, tối đa 100 trang. ### Crawl4AI Cloud giá bao nhiêu? Ngày 22 tháng 10 năm 2026: Starter $10 một tháng cho 10.000 credit, Builder $99 cho 125.000 và Scale $499 cho 750.000, với trang tĩnh tính 0,5 credit và trang trình duyệt tính 1. Trang web ghi các mức giá này là đợt ra mắt mềm và có thể thay đổi. ## Nguồn 1. [Kho lưu trữ unclecode/crawl4ai](https://github.com/unclecode/crawl4ai) — GitHub (read 2026-10-22) 2. [Tham số Crawl4AI](https://docs.crawl4ai.com/api/parameters/) — Crawl4AI docs (read 2026-10-22) 3. [Tự lưu trữ Crawl4AI](https://docs.crawl4ai.com/core/self-hosting/) — Crawl4AI docs (read 2026-10-22) 4. [crawl4ai trên PyPI](https://pypi.org/project/crawl4ai/) — PyPI (read 2026-10-22) 5. [Crawl4AI Cloud](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 6. [Kho lưu trữ microsoft/markitdown](https://github.com/microsoft/markitdown) — GitHub (read 2026-10-22) 7. [markitdown trên PyPI](https://pypi.org/project/markitdown/) — PyPI (read 2026-10-22) 8. [Kho lưu trữ adbar/trafilatura](https://github.com/adbar/trafilatura) — GitHub (read 2026-10-22) 9. [Kho lưu trữ mozilla/readability](https://github.com/mozilla/readability) — GitHub (read 2026-10-22) 10. [repository firecrawl/firecrawl](https://github.com/firecrawl/firecrawl) — GitHub (read 2026-10-22) 11. [kho lưu trữ jina-ai/reader](https://github.com/jina-ai/reader) — GitHub (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Firecrawl vs Jina Reader (2026): trình đọc web nào phù hợp với dự án của bạn? > Firecrawl vs Jina Reader năm 2026: credit theo trang vs tính phí theo token, gói miễn phí, crawl và trích xuất JSON. Kiểm tra ngày 2026-10-22. - URL: https://webreaderapi.com/vi/compare/firecrawl-vs-jina-reader/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Firecrawl và Jina Reader là hai cái tên xuất hiện đầu tiên khi lập trình viên hỏi cách chuyển trang web sang Markdown cho một mô hình. Chúng tính phí, crawl và xử lý robots.txt khác nhau. Trang này so sánh chúng trên cùng các dữ kiện, với dịch vụ của chúng tôi ở một cột riêng, có ghi nhãn. **Câu trả lời nhanh — Nên dùng Firecrawl hay Jina Reader?** Dùng Firecrawl cho các pipeline đầy đủ: nó tính 1 credit mỗi trang đã bao gồm render, crawl và map các trang web, và trích xuất JSON theo một schema, trên các gói từ $19 đến $749 một tháng (22 tháng 10 năm 2026). Dùng Jina Reader để đọc nhanh: thêm tiền tố r.jina.ai vào URL, trả $50 cho mỗi tỷ token đầu ra, hoặc miễn phí ở mức 20 request một phút. **WebReaderAPI**, đơn vị xuất bản trang này, bán credit theo trang bằng crypto, không cần KYC. ## Firecrawl vs Jina Reader, kèm WebReaderAPI để tham khảo Mỗi dòng lấy từ chính các trang của nhà cung cấp, đọc ngày 22 tháng 10 năm 2026. Cột thứ ba là dịch vụ của chúng tôi, được xuất bản bởi đối thủ của cả hai. | | Firecrawl | Jina Reader | WebReaderAPI (của chúng tôi) | | --- | --- | --- | --- | | Đơn vị tính phí | Credit: 1 mỗi trang, đã bao gồm render | Token đầu ra | Credit: 1 mỗi trang, 2 khi dùng trình duyệt | | Giá khởi điểm | Hobby: $19 một tháng cho 5.000 credit | $50 cho 1 tỷ token | 3,75 US$ cho 10.000 trang | | Khối lượng lớn hơn | Standard $99 cho 100K; Scale $749 cho 1M một tháng | $500 cho 11 tỷ token | 74,25 US$ cho 1.000.000 trang | | Sử dụng miễn phí | 1.000 credit một tháng, không cần thẻ; MCP không cần khóa API, giới hạn theo IP mỗi ngày | Không cần khóa API ở mức 20 request một phút; 10 triệu token cho mỗi khóa mới, phi thương mại | Không có | | Credit chưa dùng | Credit của gói được làm mới hàng tháng | Thời hạn hiệu lực không hiển thị trong nội dung chúng tôi đọc được | Không bao giờ hết hạn | | Crawl và map | Crawl (giới hạn mặc định 10.000 trang) và map | Không nêu endpoint crawl | Crawl tối đa 10.000 trang; không có map | | Trích xuất có cấu trúc | JSON với schema, +4 credit mỗi trang | Schema JSON hoặc header chỉ dẫn | Không cung cấp | | robots.txt | Được tôn trọng mặc định; chỉ Enterprise mới được tắt | Header `X-Robots-Txt` tùy chọn bật | Luôn được tôn trọng | | Thanh toán | Thẻ, thẻ ghi nợ, PayPal (Stripe) | Thẻ, Google Pay, PayPal (Stripe) | BTC, USDT, USDC, ETH, SOL, LTC | | Mã nguồn mở | Phần lõi theo AGPL-3.0 | Nhánh Reader theo Apache-2.0 | Không | | Công ty | Firecrawl; vòng gọi vốn Series B 75 triệu USD ngày 22 tháng 9 năm 2026 | Jina AI, thuộc Elastic từ tháng 10 năm 2025 | SerpGoat LLC | *Giá được kiểm tra vào 22 tháng 10, 2026.* Nguồn ở cuối trang. ## Cái nào rẻ hơn mỗi trang? Tùy thuộc vào độ dài trang và khối lượng, vì hai bên tính phí theo đơn vị khác nhau. Firecrawl tính theo trang: 0,99 USD cho 1.000 trang ở gói Standard, 0,749 USD ở gói Scale khi thanh toán theo tháng, đã bao gồm render. Jina tính theo token đầu ra và không công bố mức trung bình mỗi trang. Theo **ước tính, giả định 5.000 token mỗi trang**, Jina tốn khoảng 0,25 USD cho 1.000 trang ở gói 50 USD và 0,225 USD ở gói 500 USD. Với giả định đó, Jina rẻ hơn Firecrawl mỗi trang ở mọi khối lượng. Với những trang dài hơn nhiều so với 5.000 token, chẳng hạn các trang tài liệu dài, khoảng cách thu hẹp hoặc đảo chiều; với trang ngắn thì khoảng cách rộng ra. Trích xuất JSON của Firecrawl cộng thêm 4 credit mỗi trang, điều này thay đổi so sánh cho công việc trích xuất. ## Cái nào tốt hơn để crawl cả một trang web? Firecrawl. Endpoint crawl của nó mặc định đi theo sitemap, nhận giới hạn số trang (mặc định 10.000) và độ sâu khám phá, và trả về 402 nếu credit của bạn không đủ cho giới hạn đó. Một endpoint map riêng liệt kê URL của một trang web với một credit mỗi lần gọi. Jina Reader là trình đọc một URL cộng thêm một endpoint tìm kiếm; các trang của nó không nêu tính năng crawl. Để đọc cả một trang web với Jina, bạn tự thu thập URL, ví dụ từ sitemap, rồi gọi trình đọc một lần cho mỗi trang. ## Hai bên xử lý robots.txt và chủ trang web như thế nào? Firecrawl tôn trọng robots.txt theo mặc định và chỉ khách hàng Enterprise mới được tắt; chủ trang web cho phép hoặc từ chối nó bằng token `FirecrawlAgent`. Tài liệu của nó cảnh báo rằng token này có thể không phải là header User-Agent của chính lần fetch. Jina kiểm tra robots.txt khi request mang header `X-Robots-Txt`, tức header chỉ định bot dùng để kiểm tra. Nó cũng cho phép bên gọi ghi đè User-Agent của trình duyệt. Các trang của nó không nêu mặc định cho cả hai. Cả hai cách đều để phần lớn lựa chọn cho khách hàng; của chúng tôi thì không, như phần tiếp theo giải thích. ## Cái nào phù hợp hơn với AI agent? Cả hai đều phục vụ agent tốt, theo những cách khác nhau. Firecrawl cung cấp một MCP server được host, truy cập không cần khóa với hạn mức hằng ngày theo IP, và một danh sách dài các tích hợp, bao gồm LangChain, LlamaIndex, CrewAI và n8n; OpenClaw đóng gói Firecrawl làm nhà cung cấp web_fetch của nó. Jina cung cấp một MCP server từ xa chính thức có công cụ `read_url` đọc tới năm URL mỗi lần gọi, một thông tin xác thực n8n, và tiền tố URL mà bất kỳ công cụ nào có thể gửi GET request đều dùng được. Với một agent đọc vài trang mỗi tác vụ, tiền tố của Jina là khởi đầu đơn giản nhất; với một agent crawl, map và trích xuất, Firecrawl bao phủ nhiều hơn. ## WebReaderAPI nằm ở đâu giữa hai bên? WebReaderAPI gần với Jina hơn về phạm vi, một trình đọc, và gần với Firecrawl hơn về cách tính phí, theo trang, với một endpoint crawl cho cả trang web. Điều làm nó khác biệt là thanh toán và chính sách chứ không phải danh sách tính năng: - **Crypto không cần KYC.** Nạp tiền từ 25 US$ trong BTC, USDT, USDC, ETH, SOL, LTC. - **Credit không bao giờ hết hạn**, bán theo pack từ 3,75 US$. - **Chính sách cố định cho các trang web.** Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Nó làm ít hơn Firecrawl: không trích xuất JSON, không hành động trình duyệt, không map, không có gói miễn phí. Đọc các trang [Firecrawl alternative](https://webreaderapi.com/vi/alternatives/firecrawl/) và [Jina Reader alternative](https://webreaderapi.com/vi/alternatives/jina-reader/) để biết chi tiết từng việc chuyển đổi. ## Tôi nên chọn cái nào cho trường hợp sử dụng của mình? - **Prototype hoặc agent sở thích:** Jina Reader không cần khóa, hoặc gói miễn phí của Firecrawl. - **RAG trên các trang tài liệu:** Firecrawl cho crawl và map; WebReaderAPI nếu bạn muốn credit theo trang được giữ lại và thanh toán bằng crypto. - **Trích xuất vào các trường cố định:** định dạng JSON của Firecrawl. - **Nhiều trang tin tức hoặc blog ngắn:** cách tính theo token của Jina có xu hướng rẻ hơn. - **Tôn trọng nghiêm ngặt lựa chọn của chủ trang web, được nhà cung cấp thực thi:** WebReaderAPI. - **Không thẻ và không giấy tờ tùy thân:** WebReaderAPI; cả Firecrawl lẫn Jina đều không nêu lựa chọn thanh toán bằng crypto trên các trang chúng tôi đã đọc. ## Lựa chọn thứ ba tốn bao nhiêu? Pack theo trang thanh toán bằng crypto, tính đến ngày 22 tháng 10 năm 2026. Một trang cần trình duyệt dùng hai credit; trang thất bại và trang bị robots.txt từ chối thì miễn phí. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Firecrawl vs Jina Reader: câu hỏi thường gặp ### Jina Reader có miễn phí và Firecrawl có tính phí không? Cả hai đều có sử dụng miễn phí. Jina Reader hoạt động không cần khóa với 20 request mỗi phút, và mỗi khóa mới nhận 10 triệu token cho mục đích phi thương mại. Firecrawl cho 1.000 credit mỗi tháng không cần thẻ, cộng thêm truy cập MCP không cần khóa với hạn mức theo địa chỉ IP mỗi ngày. ### Cái nào trả về Markdown tốt hơn? Chúng tôi không công bố benchmark chất lượng nào, và trang giá của cả hai nhà cung cấp đều không tuyên bố hơn kém nhau. Hãy tự chạy mẫu: 50 URL thực tế của bạn qua từng dịch vụ, rồi so sánh heading, bảng và menu còn sót lại trong kết quả. ### Có thể self-host bên nào không? Có. Phần lõi của Firecrawl là mã nguồn mở theo AGPL-3.0. Jina công bố một nhánh mã nguồn mở của Reader theo Apache-2.0, không có lớp lưu trữ được host. ### Firecrawl hoặc Jina có nhận crypto không? Không, trên các trang giá và thanh toán chúng tôi đọc ngày 22 tháng 10 năm 2026: cả hai đều nêu Stripe, với thẻ và PayPal, và Jina còn có Google Pay. WebReaderAPI nhận BTC, USDT, USDC, ETH, SOL, LTC. ### So sánh này có trung lập không? Nó được viết bởi WebReaderAPI, đối thủ của cả hai, và nói rõ điều đó ở đầu. Mọi thông tin về Firecrawl và Jina đều đến từ các trang của chính họ, được liệt kê bên dưới kèm ngày chúng tôi đọc. ## Nguồn 1. [Giá Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Tính phí](https://docs.firecrawl.dev/billing.md) — Firecrawl docs (read 2026-10-22) 3. [Crawl](https://docs.firecrawl.dev/features/crawl.md) — Firecrawl docs (read 2026-10-22) 4. [Hướng dẫn web scraping (cào dữ liệu web) nâng cao](https://docs.firecrawl.dev/advanced-scraping-guide.md) — Firecrawl docs (read 2026-10-22) 5. [MCP server](https://docs.firecrawl.dev/mcp-server.md) — Firecrawl docs (read 2026-10-22) 6. [Giới thiệu Alexandria và vòng gọi vốn Series B của chúng tôi](https://www.firecrawl.dev/blog/introducing-alexandria-series-b) — Firecrawl (read 2026-10-22) 7. [Reader](https://jina.ai/reader/) — Jina AI (read 2026-10-22) 8. [Bảng điều khiển API: giá](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 9. [kho lưu trữ jina-ai/MCP](https://github.com/jina-ai/MCP) — GitHub (read 2026-10-22) 10. [Elastic hoàn tất thương vụ mua lại Jina AI](https://ir.elastic.co/News--Events/news/news-details/2025/Elastic-Completes-Acquisition-of-Jina-AI-a-Leader-in-Frontier-Models-for-Multimodal-and-Multilingual-Search/default.aspx) — Elastic (2025-10-09, read 2026-10-22) 11. [Công cụ web](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # So sánh giá web reader API: 10K, 100K và 1M trang tốn bao nhiêu > So sánh giá API đọc web và chuyển trang web sang Markdown ngày 2026-10-22: hóa đơn hằng tháng cho 10K, 100K và 1M trang tại 13 API, trang thường và trang JS. - URL: https://webreaderapi.com/vi/compare/web-reader-api-pricing/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Giá credit che giấu quy mô gói, hệ số nhân trình duyệt và hạn dùng. Trang này chuyển giá niêm yết công khai thành hóa đơn hàng tháng cho ba mức khối lượng, cho trang thường và cho trang cần trình duyệt, rồi liệt kê những chi phí mà các trang giá bỏ sót. **Câu trả lời nhanh — Giá web reader API năm 2026 so sánh thế nào?** Ngày 2026-10-22, 100.000 trang hiển thị qua trình duyệt mỗi tháng tốn $99 tại tám API, gồm Firecrawl, Olostep và Crawl4AI Cloud; trang thường tốn từ $29 (Scrape.do). Ở mức 1 triệu trang, trang thường bắt đầu từ khoảng $99 và trang trình duyệt từ $399 (Olostep). **WebReaderAPI** thu 21,75 US$ cho 100.000 trang thường và $43,50 nếu tất cả đều cần trình duyệt, thanh toán bằng crypto, không cần KYC. ## Mỗi tháng trang tốn bao nhiêu tại từng API? Hóa đơn hàng tháng cho 10.000, 100.000 và 1.000.000 trang, dùng gói công khai rẻ nhất, mức vượt hoặc giá trả theo dùng. Khi nhà cung cấp tính giá trang trình duyệt khác, cả hai con số đều được hiển thị (thường / trình duyệt). | API | 10.000 trang | 100.000 trang | 1.000.000 trang | | --- | --- | --- | --- | | WebReaderAPI, trang thường | 3,75 US$ | 21,75 US$ | 74,25 US$ | | WebReaderAPI, trang trình duyệt (2 credit) | $7.50 | $43.50 | $148.50 | | Firecrawl | $44.00 | $99.00 | $749.00 | | Crawl4AI Cloud, thường / trình duyệt | $10.00 | $50.00 / $99.00 | $395.00 / $667.00 | | Olostep | $29.00 | $99.00 | $399.00 | | Tavily Extract, thường / trình duyệt | $16.00 / $30.00 | $140.00 / $236.00 | $1,300 / $2,900 | | Nội dung từ Exa | $10.00 | $100.00 | $1,000 | | Linkup fetch, thường / trình duyệt | $10.00 / $50.00 | $100.00 / $500.00 | $1,000 / $5,000 | | ScrapingBee, thường / trình duyệt | $19.00 | $49.00 / $99.00 | $99.00 / $599.00 | | Scrape.do, thường / trình duyệt | $29.00 | $29.00 / $99.00 | $99.00 / $699.00 | | ZenRows, thường / trình duyệt | $5.00 / $25.00 | $39.00 / $99.00 | $199.00 / $549.00 | | Scrapfly, thường / trình duyệt | $30.00 | $30.00 / $100.00 | $100.00 / $560.00 | | Bright Data Web Unlocker | $15.00 | $150.00 | $1,300 | | Diffbot | $299.00 | $299.00 | $899.00 | *Giá được kiểm tra vào 22 tháng 10, 2026.* Giá niêm yết tính bằng USD, đọc ngày 2026-10-22. "—" = không công bố hoặc không tự phục vụ ở mức khối lượng đó. Exa và Parallel không tài liệu hóa tùy chọn trình duyệt. Phương pháp đầy đủ và 21 API: [Chỉ số giá URL to Markdown API 2026](https://webreaderapi.com/vi/data/url-to-markdown-price-index-2026/). ## Các trang giá bỏ sót những chi phí nào? 1. **Hệ số nhân trình duyệt.** Một trang JavaScript tốn 5 credit tại ScrapingBee, ZenRows và Scrape.do, 6 tại Scrapfly và 10 tại ScraperAPI; Firecrawl và Olostep hiển thị mọi trang với một mức giá. 2. **Bậc gói.** Một gói $99 mua cho 20.000 trang vẫn tốn $99. 3. **Hạn dùng.** Hầu hết gói hàng tháng đặt lại credit chưa dùng; một tháng ít dùng là tiền mất. 4. **Tiện ích trích xuất.** Trích xuất JSON có cấu trúc tốn thêm tại nhiều API: thêm 4 credit mỗi trang tại Firecrawl. 5. **Kết nối cao cấp.** Proxy dân dụng hoặc "cao cấp" nhân chi phí credit tại hầu hết scraping API; WebReaderAPI chỉ thêm 10 credit khi bạn chọn một quốc gia. 6. **Trang thất bại.** Kiểm tra xem lỗi có bị tính phí không. WebReaderAPI không thu phí cho trang thất bại hoặc trang bị robots.txt từ chối. ## WebReaderAPI đứng ở đâu? Với giá trên trang này, đặt ngày 2026-10-22, WebReaderAPI thu 0,38 US$/1K trang mỗi trang thường ở 10.000 trang, 0,22 US$/1K trang ở 100.000 và 0,07 US$/1K trang ở 1 triệu; một trang trình duyệt dùng hai credit. Credit là trả trước, không bao giờ hết hạn và thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC, không cần KYC. Chúng tôi không tuyên bố là rẻ nhất ở mọi mức khối lượng hay mọi loại trang. Trình thu thập của chúng tôi tôn trọng robots.txt và không bao giờ cố gắng lách một lời từ chối, nên một số trang mà công cụ khác lấy được sẽ trả về bị từ chối, và miễn phí. ## WebReaderAPI giá bao nhiêu? Gói trả trước; một credit mỗi trang thường, hai khi dùng trình duyệt; credit không bao giờ hết hạn. Giá đặt ngày 2026-10-22. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Giá web reader API: câu hỏi thường gặp ### URL to Markdown API nào rẻ nhất năm 2026? Với trang thường ở 1 triệu mỗi tháng, ScrapingBee ($0,099 mỗi 1.000) và Scrape.do ($0,099 mỗi 1.000) niêm yết giá thấp nhất ngày 2026-10-22. Với trang trình duyệt ở mức khối lượng đó, Olostep niêm yết $0,399. Câu trả lời thay đổi theo khối lượng, nên hãy so sánh ở mức của bạn. ### Firecrawl có đắt không? Ở khối lượng nhỏ, đúng vậy: $19 cho 5.000 trang trên Hobby là $3,80 mỗi 1.000. Ở 100.000 trang ($99) và 1 triệu ($749), nó gần với mặt bằng thị trường cho trang hiển thị qua trình duyệt, vì mọi trang Firecrawl đều được hiển thị. ### Tôi có phải trả tiền cho trang thất bại không? Tùy nhà cung cấp; hãy đọc trang thanh toán của họ. Crawlbase cho biết request thất bại và lần thử lại là miễn phí. WebReaderAPI không thu phí cho trang thất bại hoặc trang bị robots.txt từ chối. ### Tôi có thể thanh toán web reader API bằng crypto không? Có, tại một vài dịch vụ. Scrape.do, Decodo Web Data API, Scrapeless cho biết thanh toán crypto trên tài khoản, và Exa contents, Parallel Extract, Linkup fetch, Olostep và những dịch vụ khác nhận USDC theo từng request qua x402. WebReaderAPI nhận BTC, USDT, USDC, ETH, SOL, LTC, không cần KYC. ## Nguồn 1. [Firecrawl: giá](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Crawl4AI Cloud: giá](https://crawl4ai.com/) — Crawl4AI Cloud (read 2026-10-22) 3. [Olostep: giá](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 4. [Tavily Extract: giá](https://docs.tavily.com/documentation/api-credits) — Tavily Extract (read 2026-10-22) 5. [Exa contents: giá](https://exa.ai/pricing) — Exa contents (read 2026-10-22) 6. [Linkup fetch: giá](https://docs.linkup.so/pages/documentation/development/pricing) — Linkup fetch (read 2026-10-22) 7. [ScrapingBee: bảng giá](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 8. [Scrape.do: bảng giá](https://scrape.do/pricing.md) — Scrape.do (read 2026-10-22) 9. [ZenRows: bảng giá](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 10. [Scrapfly: bảng giá](https://scrapfly.io/pricing) — Scrapfly (read 2026-10-22) 11. [Bright Data Web Unlocker: bảng giá](https://www.bright.cn/pricing/web-unlocker) — Bright Data Web Unlocker (read 2026-10-22) 12. [Diffbot: bảng giá](https://www.diffbot.com/pricing/) — Diffbot (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Liên hệ WebReaderAPI > Liên hệ WebReaderAPI: email hỗ trợ câu hỏi về API và thanh toán, email báo cáo lạm dụng cho chủ trang web, cùng những gì cần gửi kèm để được trả lời nhanh. - URL: https://webreaderapi.com/vi/contact/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Hai địa chỉ: một cho khách hàng, một cho chủ trang web và báo cáo sử dụng sai mục đích. Cả hai đều do người thật đọc. **Câu trả lời nhanh — Làm sao để liên hệ WebReaderAPI?** Gửi email tới support@webreaderapi.com khi cần hỗ trợ về API, tài khoản hoặc thanh toán; Bộ phận hỗ trợ qua email trả lời trong vòng 12 giờ, mỗi ngày trong tuần, bao gồm cả hỗ trợ về crawl và tích hợp. Chủ trang web và những người báo cáo việc crawler **WebReaderAPI** bị sử dụng sai mục đích có thể gửi email tới abuse@webreaderapi.com. Đội ngũ của chúng tôi sẽ không bao giờ yêu cầu bạn cung cấp số tài khoản hoặc khóa API qua email hay chat. ## Thế nào là một yêu cầu hỗ trợ được trả lời nhanh? Một tin nhắn ngắn gọn kèm đầy đủ thông tin sẽ được trả lời nhanh nhất: - mã đơn hàng trong lịch sử đơn hàng, nếu là câu hỏi về thanh toán; - thời điểm gửi yêu cầu, endpoint và mã lỗi, nếu là sự cố API; - URL bạn đã cố đọc, nếu một trang không trả về như mong đợi. Tuyệt đối không gửi khóa API hoặc số tài khoản của bạn qua email. ## Tôi có một trang web. Làm sao để liên hệ với các bạn? Gửi email tới abuse@webreaderapi.com kèm tên miền của bạn, ngày giờ và một dòng trong log máy chủ hiển thị user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. Để chặn crawler của chúng tôi mà không cần viết email, hãy thêm quy tắc cho `WebReaderAPI` vào robots.txt của bạn; [trang bot](https://webreaderapi.com/vi/bot/) có sẵn các ví dụ mẫu. Một người đọc từng báo cáo lạm dụng, và các tài khoản bị phát hiện lạm dụng dịch vụ sẽ bị đình chỉ. ## Bộ phận hỗ trợ có thể giúp những gì? Mọi vấn đề về sử dụng API hoặc tài khoản của bạn: - một trang trả về trống, bị cắt ngắn hoặc giữ nhầm phần làm nội dung chính; - một mã lỗi bạn không hiểu, hoặc một job crawl dừng sớm; - một lần nạp tiền chưa hiện lên số dư sau khi có đủ xác nhận; - yêu cầu hoàn tiền theo [chính sách hoàn tiền](https://webreaderapi.com/vi/refunds/); - yêu cầu nâng giới hạn đồng thời cho môi trường production. Bộ phận hỗ trợ không thể buộc một trang web chấp nhận crawler của chúng tôi. Khi một trang từ chối, cách duy nhất là xin phép chủ trang web. ## Làm sao để báo cáo sự cố thanh toán? Hãy cung cấp loại coin, mạng lưới, số tiền đã gửi và mã giao dịch, cùng với mã đơn hàng trong khu vực khách hàng. Chừng đó là đủ để tìm bất kỳ giao dịch nào trên blockchain. Không gửi kèm khóa riêng tư, seed phrase, số tài khoản hoặc khóa API: chúng tôi không bao giờ cần những thứ đó, và bất kỳ ai yêu cầu chúng đều không phải là chúng tôi. ## Có chat hay tổng đài điện thoại không? Không. Email lưu lại bản ghi bằng văn bản cho cả hai bên và giúp chúng tôi trả lời chính xác, với log trong tay. Về tình trạng API, xem [trang trạng thái](https://webreaderapi.com/vi/status/); các câu hỏi thường gặp có ở [FAQ](https://webreaderapi.com/vi/faq/). --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Crawl API: chuyển cả một trang web sang các file Markdown > Crawl API chuyển trang web sang Markdown cho RAG: tối đa 10.000 trang mỗi job, theo sitemap và robots.txt, từ 0,07 US$/1K trang. Thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/crawl-api/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Nhập URL bắt đầu và giới hạn số trang. Crawler sẽ đi theo sitemap của trang và các liên kết trong cùng tên miền, đọc từng trang dưới dạng Markdown và trả kết quả cho bạn theo từng trang. Một credit cho mỗi trang. **Câu trả lời nhanh — Làm sao để crawl cả một trang web và nhận mọi trang dưới dạng Markdown?** Dùng một crawl API: bạn gửi URL bắt đầu và giới hạn, nó trả về từng trang của trang web dưới dạng Markdown. **WebReaderAPI** crawl tối đa 10.000 trang mỗi job trong cùng một tên miền, tuân theo sitemap, robots.txt và Crawl-delay, và tính một credit cho mỗi trang được đọc, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Các trang bị robots.txt từ chối thì miễn phí. Không cần KYC; thanh toán bằng crypto. ## Crawl API trong nháy mắt | Thuộc tính | Giá trị | | --- | --- | | Bắt đầu một lần crawl | `POST https://webreaderapi.com/api/v1/crawl` với `url`, `limit`, `max_depth`, `include_paths`, `exclude_paths` | | Lấy kết quả | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`, phân trang bằng cursor | | Phạm vi | Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang | | Nhiều URL riêng lẻ | `POST https://webreaderapi.com/api/v1/batch`: Tối đa 100 URL mỗi batch job | | Tính phí | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Chủ trang web | Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí | | Giá | 14,25 US$ cho 50.000 trang, 50 US$ cho 500.000 trang | ## Crawl job hoạt động như thế nào? Crawl là một job chạy nền, vì đọc hàng trăm trang mất nhiều thời gian hơn một HTTP request nên có. 1. **Bắt đầu:** `POST https://webreaderapi.com/api/v1/crawl` với URL bắt đầu và các giới hạn của bạn. Bạn nhận được `job_id` ngay lập tức. 2. **Khám phá:** crawler đọc robots.txt và sitemap của trang web, sau đó theo các liên kết trong cùng domain, theo chiều rộng, tối đa `max_depth`. 3. **Đọc:** mỗi trang được phép đọc bằng cùng các tùy chọn như `/read`: Markdown, nội dung chính, render khi cần. 4. **Thu thập:** poll `GET https://webreaderapi.com/api/v1/jobs/{job_id}` và phân trang kết quả bằng cursor trong khi job đang chạy, hoặc khi job đã `done`. Job dừng ở `limit` của bạn, nên bạn không bao giờ phải trả cho nhiều trang hơn số bạn yêu cầu. *Python: crawl một trang tài liệu thành các file Markdown* ```python import os import pathlib import re import time import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} job = requests.post( API + "/crawl", headers=HEADERS, json={"url": "https://docs.example.com/", "limit": 500, "max_depth": 4, "include_paths": ["/guide/*"]}, timeout=60, ).json() out = pathlib.Path("docs_md") out.mkdir(exist_ok=True) cursor, delay = None, 5 while True: params = {"cursor": cursor} if cursor else {} page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() for item in page.get("results", []): if "markdown" in item: name = re.sub(r"[^a-z0-9]+", "-", item["url"].lower()).strip("-")[:120] (out / (name + ".md")).write_text(item["markdown"], encoding="utf-8") cursor = page.get("next_cursor") if page["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) print("credits used:", page.get("credits_used")) ``` ## Crawler truy cập những trang nào và bỏ qua những trang nào? Nó chỉ ở trong domain của URL bắt đầu và bỏ qua mọi thứ mà trang web yêu cầu robots để yên. Cụ thể: - **Chỉ cùng domain.** Các liên kết đến domain khác được liệt kê trong kết quả nhưng không được đọc. - **robots.txt trước.** Các trang bị disallow với `WebReaderAPI` hoặc với tất cả robots sẽ bị bỏ qua và không bị tính phí. - **Tôn trọng Crawl-delay.** Nếu trang web đặt một giá trị, crawler sẽ chờ đúng khoảng đó giữa hai trang, nên một trang lớn có thể mất nhiều thời gian hơn. - **Bộ lọc của bạn.** `include_paths` và `exclude_paths` nhận các pattern đơn giản như `/blog/*`; dùng chúng để tránh các trang tag, trang tìm kiếm và archive. - **Loại bỏ trùng lặp.** Cùng một trang được tiếp cận qua hai URL, ví dụ với tham số tracking, chỉ được đọc một lần khi trang web khai báo canonical URL. ## Tôi nên dùng crawl hay batch? Dùng crawl khi bạn biết trang web nhưng không biết các trang cụ thể; dùng batch khi bạn đã có danh sách URL. Crawl khám phá các trang từ sitemap và các liên kết. Batch đọc chính xác các URL bạn gửi, tối đa 100 mỗi job, trên bất kỳ số lượng trang web nào. Để làm mới hàng tuần một knowledge base, một pattern phổ biến là một crawl để xây index, sau đó là các batch gồm những trang có `lastmod` đã thay đổi trong sitemap. Cách đó giữ chi phí hàng tuần chỉ cho những trang thực sự thay đổi. ## Crawl một trang web tốn bao nhiêu? Một credit cho mỗi trang đọc, hai cho các trang cần trình duyệt. Một trang tài liệu 1.500 trang render trên server tốn 1.500 credit; cùng trang đó nếu xây dựng dạng single-page app có thể tốn tới 3.000. Ba job điển hình, tính đến tháng 10 năm 2026: một product manual 300 trang vừa với gói 10.000 trang (3,75 US$); mười trang tài liệu mỗi trang 2.000 trang vừa với 50.000 trang (14,25 US$); một archive 400.000 trang vừa với 500.000 trang (50 US$). Các trang bị bỏ qua và thất bại thì miễn phí. ## Gói nào phù hợp cho một crawl? Chọn kích thước gói theo số trang, rồi cộng thêm biên dự phòng cho các trang cần trình duyệt. Credit không bao giờ hết hạn, nên phần còn lại dùng cho lần crawl tiếp theo. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Mở rộng | 500.000 trang | 50 US$ | 0,10 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Crawl API: các câu hỏi thường gặp ### Một crawl đọc được tối đa bao nhiêu trang? Tối đa 10.000 trang mỗi job, trong domain của URL bắt đầu. Với một trang lớn hơn, hãy chia thành nhiều job bằng `include_paths`, ví dụ mỗi section một job. ### Crawler có dùng sitemap không? Có. Nó đọc sitemap được khai báo trong robots.txt hoặc tại vị trí thông thường, sau đó theo các liên kết trên những trang nó đọc. Các trang chỉ được sitemap liệt kê vẫn được đọc nếu robots.txt cho phép. ### Tôi có thể crawl một trang web chặn AI crawler không? Không, với WebReaderAPI. Nếu robots.txt disallow crawler của chúng tôi hoặc tất cả robots, các trang đó bị bỏ qua và không bị tính phí. Nếu trang web khai báo `Content-Signal: ai-input=no`, chúng tôi không đọc nó cho bạn. Chúng tôi không bao giờ tìm cách lách những lựa chọn như vậy. ### Tôi có thể lấy kết quả khi crawl vẫn đang chạy không? Có. `GET https://webreaderapi.com/api/v1/jobs/{job_id}` trả về các trang đã đọc đến thời điểm đó kèm cursor; cứ tiếp tục phân trang cho đến khi job `done` và không còn cursor. ### Một crawl có thể đọc nhiều trang hơn giới hạn của tôi không? Không. Credit được tính theo từng trang, và job dừng khi đạt `limit` bạn đã đặt. Các trang bị bỏ qua vì robots.txt và các trang thất bại không dùng credit. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Thanh toán web reader API bằng crypto > Cách thanh toán WebReaderAPI bằng crypto: BTC, USDT, USDC, ETH, SOL hoặc LTC, mức nạp tối thiểu 25 US$, chọn network nào, và cần làm gì sau khi gửi. - URL: https://webreaderapi.com/vi/crypto-payments/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Hướng dẫn từng bước để nạp số dư WebReaderAPI bằng crypto và chuyển thành page credit, cùng những lỗi cần tránh. **Câu trả lời nhanh — Làm sao để thanh toán WebReaderAPI bằng crypto?** Nạp vào số dư **WebReaderAPI** của bạn ít nhất 25 US$ bằng BTC, USDT, USDC, ETH, SOL, LTC: gửi đúng số tiền hiển thị, trên đúng network hiển thị, rồi bấm "Tôi đã gửi thanh toán". Khoản nạp được khớp theo đúng số tiền và được cộng sau khi xác nhận. Sau đó bạn mua page credit từ số dư, từ 3,75 US$ cho 10.000 trang. Không cần KYC. ## Tôi có thể thanh toán bằng những coin nào? Sáu coin, một số dư. USDT dùng trên TRC-20 hoặc ERC-20, USDC trên ERC-20; trang thanh toán hiển thị địa chỉ và network cho coin bạn chọn. - Bitcoin (BTC) - Tether (USDT) — TRC-20 or ERC-20 - USD Coin (USDC) — ERC-20 - Ethereum (ETH) - Solana (SOL) - Litecoin (LTC) ## Một lần nạp crypto diễn ra như thế nào, từng bước? Năm bước từ một tài khoản trống đến một khóa API hoạt động. Chờ duy nhất là bước xác nhận blockchain. 1. **Chọn số tiền và coin** — Nhập ít nhất 25 US$ và chọn BTC, USDT, USDC, ETH, SOL hoặc LTC. Trang thanh toán quy đổi số tiền đô la sang coin đó. 2. **Gửi đúng số tiền** — Sao chép địa chỉ và số tiền hiển thị, rồi gửi trên network mà trang nêu: một giao dịch, đúng con số, không làm tròn. 3. **Bấm "Tôi đã gửi thanh toán"** — Hãy cho trang biết giao dịch đang được chuyển tới. Nếu trang yêu cầu mã giao dịch (transaction ID), hãy dán vào để việc tìm giao dịch dễ hơn. 4. **Để mạng lưới xác nhận giao dịch** — Khoản nạp được khớp theo đúng số tiền và được cộng vào số dư sau khi mạng lưới xác nhận. Bitcoin cần nhiều thời gian hơn USDT trên Tron hoặc SOL trên Solana. 5. **Mua một gói credit** — Thanh toán bất kỳ gói nào từ số dư. Nếu bạn bắt đầu từ một gói, gói đó được mua ngay khi khoản nạp được cộng vào, và khóa API của bạn xuất hiện trong dashboard. ## Nên dùng coin và mạng lưới nào? Hãy dùng coin bạn đang có, trên mạng lưới mà trang thanh toán ghi rõ. Một stablecoin (USDT hoặc USDC) giữ nguyên số tiền theo đô la, nên giá bạn thấy là giá bạn trả. Phí mạng lưới và thời gian xác nhận khác nhau tùy chain; bảng trong các bước ở trên cho biết thời gian xác nhận thông thường của từng mạng lưới. Nếu bạn có USDT trên nhiều chain, hãy chọn chain có phí nhỏ hơn với số tiền của bạn. Phí do người gửi trả và không nằm trong khoản nạp của bạn. ## Vì sao có mức nạp tối thiểu? Vì mỗi khoản thanh toán đều khiến chúng tôi tốn công kiểm tra và ghi sổ, bất kể số tiền lớn nhỏ. Mức tối thiểu là 25 US$; sau đó có thể mua bất kỳ gói nào từ số dư, kể cả gói 10.000 trang với giá 3,75 US$. Phần bạn không dùng vẫn nằm trong số dư và không có ngày hết hạn. Nếu gói bạn mua có giá thấp hơn mức tối thiểu, phần chênh lệch có thể được yêu cầu trả lại trong vòng 30 ngày, bằng USDT hoặc USDC, miễn là chưa dùng. ## Điều gì xảy ra sau khi tôi gửi thanh toán? Hãy nhấn "I've sent the payment" trên trang thanh toán. Chúng tôi khớp giao dịch theo đúng số tiền, chờ số xác nhận mà mạng lưới yêu cầu, rồi cộng vào số dư của bạn. Nếu bạn bắt đầu từ một gói, gói đó được mua từ số dư ngay khi khoản nạp được cộng vào, và khóa API của bạn sẵn sàng trong dashboard. Nếu bạn đã đóng tab, hãy mở client area: các khoản nạp đang chờ và đã được cộng sẽ hiện trong lịch sử đơn hàng của bạn. ## Nếu tôi gửi sai số tiền hoặc dùng sai mạng lưới thì sao? Một số tiền khác không thể tự khớp được, và giao dịch trên mạng lưới khác có thể không đến được địa chỉ. Trước khi gửi, hãy kiểm tra ba điều: coin, mạng lưới và số tiền chính xác. Nếu đã lỡ nhầm, hãy viết tới support@webreaderapi.com kèm mã giao dịch (transaction ID) và mã đơn hàng (order ID). Đừng gửi số tài khoản hay khóa API của bạn. Tiền gửi trên mạng lưới mà trang thanh toán không hiển thị có thể không lấy lại được. ## Thanh toán bằng crypto có được hoàn tiền không? Tiền hoàn sẽ vào số dư của bạn thay vì trả lại ví, giúp tránh thêm một khoản phí mạng lưới. Một gói được dùng dưới 20% trong vòng 72 giờ, hoặc một gói chưa từng hoạt động, sẽ được cộng lại. [Chính sách hoàn tiền](https://webreaderapi.com/vi/refunds/) nêu rõ các điều kiện chính xác và ba ví dụ. ## Tôi có thể mua gì khi số dư đã được cộng? Bất kỳ gói nào: 10.000 trang với giá 3,75 US$, 50.000 trang với giá 14,25 US$ hoặc 100.000 trang với giá 21,75 US$, và các gói lớn hơn trên [trang giá](https://webreaderapi.com/vi/pricing/). Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn Giá tính bằng USD, được đặt vào 2026-10-22. Mọi gói đều được thanh toán từ số dư crypto của bạn. ## Thanh toán bằng crypto: các câu hỏi thường gặp ### Tôi có cần thẻ hay giấy tờ tùy thân để thanh toán không? Không. WebReaderAPI chỉ nhận crypto và không yêu cầu giấy tờ tùy thân. Đăng nhập bằng số tài khoản; email là tùy chọn. ### Giá có cố định khi tôi bắt đầu thanh toán không? Trang thanh toán hiển thị số tiền bằng coin bạn đã chọn cho khoản thanh toán đó. Hãy gửi đúng số tiền đó; một stablecoin giữ nguyên số tiền bằng với giá theo đô la. ### Tôi có thể trả tiền cho credit theo từng request thay vì nạp trước không? Không. Thanh toán đi qua số dư trả trước, và mỗi lần đọc dùng credit từ đó. Số dư và credit không bao giờ hết hạn. ### Tôi xem các khoản thanh toán của mình ở đâu? Trong lịch sử đơn hàng của client area, kèm trạng thái, coin, mạng lưới và mã giao dịch (transaction ID) của từng khoản nạp. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Chỉ số giá URL to Markdown API 2026: 1.000 trang tốn bao nhiêu ở 21 API > Chỉ số giá URL-to-Markdown và web reader API 2026: 21 API, chi phí cho 1.000 trang ở 3 mức khối lượng, crypto, KYC. Kiểm tra 2026-10-22. - URL: https://webreaderapi.com/vi/data/url-to-markdown-price-index-2026/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Giá niêm yết công khai của 21 API chuyển trang web sang Markdown hoặc văn bản cho model, được chuẩn hóa về chi phí cho 1.000 trang ở ba mức khối lượng hàng tháng, cho trang thường và trang render trong trình duyệt. Công bố bởi WebReaderAPI, một trong các API trong bảng. **Câu trả lời nhanh — Một URL-to-Markdown API tốn bao nhiêu cho 1.000 trang trong năm 2026?** Trong 21 API mà chúng tôi đọc giá niêm yết vào ngày 2026-10-22, đọc 100.000 trang thường mỗi tháng tốn trung vị $0.99 cho 1.000 trang, và $1.00 khi trang cần trình duyệt. Ở mức 1 triệu trang mỗi tháng, trung vị giảm còn $0.774 và $0.899. **WebReaderAPI**, đơn vị công bố chỉ số này, thu 0,22 US$/1K trang cho trang thường ở mức 100.000. ## Chỉ số qua sáu con số - **$2.00** trung vị cho 1.000 trang thường ở mức 10.000 mỗi tháng (21 API) - **$0.99** trung vị cho 1.000 trang thường ở mức 100.000 mỗi tháng (21 API) - **$0.774** trung vị cho 1.000 trang thường mỗi tháng ở mức 1 triệu trang/tháng (20 API) - **$1.00** trung vị cho 1.000 trang render bằng trình duyệt mỗi tháng ở mức 100.000 trang/tháng (18 API) - **$0.899** trung vị cho 1.000 trang render bằng trình duyệt mỗi tháng ở mức 1 triệu trang/tháng (17 API) - **3 + 7** các API có ghi thanh toán bằng crypto trên tài khoản, cộng với các API nhận USDC theo từng truy vấn (x402) ## Chỉ số được xây dựng như thế nào? Chúng tôi đọc trang giá công khai của từng nhà cung cấp vào ngày 2026-10-22 và chỉ giữ lại các con số hiển thị ở đó; mọi nguồn được liệt kê ở cuối. Một "trang" là một URL được đọc và trả về dưới dạng Markdown hoặc văn bản, dùng proxy mặc định của nhà cung cấp và không có add-on trả phí. - **Trang thường:** không render JavaScript. **Trang trình duyệt:** được render trong trình duyệt headless trước; các nhà cung cấp luôn render (Firecrawl, Olostep, Diffbot) có cùng mức giá ở cả hai bảng. - **Giá tại một mức khối lượng:** cách mua công khai rẻ nhất để có chừng đó trang mỗi tháng trên một nhà cung cấp (gói, gói cộng mức vượt công khai, hoặc trả theo dùng thực tế), chia cho số trang đã dùng. Gói $99 dùng cho 100.000 trang được tính là $0.99 mỗi 1.000 trang kể cả khi gói bao gồm nhiều hơn. - **Hệ số quy đổi credit được áp dụng**, ví dụ 5 credit mỗi trang trình duyệt tại ScrapingBee, ZenRows và Scrape.do. - **Gói miễn phí được liệt kê, không tính giá.** Các API tính phí theo token, thời gian trình duyệt, khối lượng dữ liệu hoặc compute, và một API mà chúng tôi không thể xác nhận đầu ra Markdown, được liệt kê riêng. WebReaderAPI được hiển thị để tham khảo và không được tính vào trung vị. ## Giá mỗi 1.000 trang thường, theo khối lượng hàng tháng Trang tĩnh, được đọc không cần trình duyệt. "—" nghĩa là không công bố hoặc không tự đăng ký được ở mức khối lượng đó. | API | 10K trang mỗi tháng | 100K trang mỗi tháng | 1M trang mỗi tháng | | --- | --- | --- | --- | | WebReaderAPI (trả trước, không bao giờ hết hạn) | 0,38 US$/1K trang | 0,22 US$/1K trang | 0,07 US$/1K trang | | Firecrawl | $4.40 | $0.99 | $0.749 | | Tavily Extract | $1.60 | $1.40 | $1.30 | | Nội dung từ Exa | $1.00 | $1.00 | $1.00 | | Parallel Extract | $1.00 | $1.00 | $1.00 | | Linkup fetch | $1.00 | $1.00 | $1.00 | | Olostep | $2.90 | $0.99 | $0.399 | | ScrapeGraphAI | $2.00 | $1.00 | $1.25 | | Diffbot | $29.90 | $2.99 | $0.899 | | ScrapingBee | $1.90 | $0.49 | $0.099 | | ScraperAPI | $4.90 | $0.49 | $0.149 | | ZenRows | $0.50 | $0.39 | $0.199 | | Scrapfly | $3.00 | $0.30 | $0.10 | | Scrape.do | $2.90 | $0.29 | $0.099 | | Crawlbase | $2.10 | $0.764 | $0.349 | | Bright Data Web Unlocker | $1.50 | $1.50 | $1.30 | | Oxylabs Web Scraper API | $3.00 | $1.00 | $2.50 | | Decodo Web Data API | $1.90 | $0.49 | $0.249 | | Scrapeless | $1.00 | $0.90 | $0.80 | | Hyperbrowser Fetch | $3.00 | $1.00 | — | | Steel scrape | $5.00 | $5.00 | $5.00 | | Crawl4AI Cloud | $1.00 | $0.50 | $0.395 | *Giá được kiểm tra vào 22 tháng 10, 2026.* Giá niêm yết tính bằng USD, đọc vào ngày 2026-10-22. Giá của chúng tôi: trang giá WebReaderAPI vào cùng ngày. ## Giá mỗi 1.000 trang render bằng trình duyệt, theo khối lượng hàng tháng Trang cần JavaScript, được render trong trình duyệt headless. Các API không ghi tài liệu về tùy chọn trình duyệt bị loại khỏi bảng này. | API | 10K trang mỗi tháng | 100K trang mỗi tháng | 1M trang mỗi tháng | | --- | --- | --- | --- | | WebReaderAPI (2 credit mỗi trang) | $0.75/1K trang | $0.435/1K trang | $0.148/1K trang | | Firecrawl | $4.40 | $0.99 | $0.749 | | Tavily Extract | $3.00 | $2.36 | $2.90 | | Linkup fetch | $5.00 | $5.00 | $5.00 | | Olostep | $2.90 | $0.99 | $0.399 | | ScrapeGraphAI | $2.00 | $1.00 | $1.25 | | Diffbot | $29.90 | $2.99 | $0.899 | | ScrapingBee | $1.90 | $0.99 | $0.599 | | ScraperAPI | $4.90 | $1.49 | $0.975 | | ZenRows | $2.50 | $0.99 | $0.549 | | Scrapfly | $3.00 | $1.00 | $0.56 | | Scrape.do | $2.90 | $0.99 | $0.699 | | Crawlbase | — | $0.99 | $0.599 | | Bright Data Web Unlocker | $1.50 | $1.50 | $1.30 | | Oxylabs Web Scraper API | $3.00 | $5.00 | $2.50 | | Decodo Web Data API | $1.90 | $0.99 | $0.999 | | Hyperbrowser Fetch | $3.00 | $1.00 | — | | Steel scrape | $5.00 | $5.00 | $5.00 | | Crawl4AI Cloud | $1.00 | $0.99 | $0.667 | *Giá được kiểm tra vào 22 tháng 10, 2026.* ## Tại sao giá giữa các API lại chênh lệch nhiều đến vậy? Bốn điều giải thích phần lớn mức chênh lệch. 1. **Loại sản phẩm.** Các API scraping tổng quát (ScrapingBee, Scrape.do, ZenRows, Scrapfly) được định giá theo khối lượng và đạt khoảng $0.10 mỗi 1.000 trang thường ở mức 1 triệu trang/tháng. Các trình đọc tập trung vào AI (Exa, Parallel, Linkup) tính giá cố định $1.00 và thêm tính năng truy xuất. 2. **Hệ số trình duyệt.** Một trang trình duyệt tốn gấp 2 đến 10 lần một trang thường tại các API tính theo credit; các API giá cố định tính như nhau cho cả hai. 3. **Bậc gói.** Nhiều nhà cung cấp bán gói hàng tháng với hạn mức lớn, nên người dùng nhỏ trả tiền cho những trang không dùng: trung vị ở mức 10.000 trang thường mỗi tháng là $2.00. 4. **Hết hạn.** Hầu hết các gói đặt lại credit chưa dùng hàng tháng; ScrapeGraphAI, Crawlbase, Crawl4AI Cloud giữ credit đã mua mà không đặt lại hàng tháng. ## Gói miễn phí, thời hạn, crypto, xác minh danh tính và robots.txt Những gì mỗi nhà cung cấp ghi trên các trang chúng tôi đã đọc. "Không nêu" nghĩa là các trang không nói. | API | Gói miễn phí | Hạn sử dụng credit | Thanh toán bằng crypto | Kiểm tra danh tính | robots.txt | | --- | --- | --- | --- | --- | --- | | WebReaderAPI | Không có | Không bao giờ | BTC, USDT, USDC, ETH, SOL, LTC | Không có: không giấy tờ tùy thân, không ảnh selfie, không tài liệu | Được tuân thủ; không bao giờ bị ghi đè | | Firecrawl | 1.000 credit mỗi tháng, không cần thẻ | Credit của gói được làm mới hàng tháng | Không (thẻ, PayPal) | Không nêu | Được tôn trọng mặc định; chỉ có thể ghi đè trên gói Enterprise | | Tavily Extract | 1.000 credit mỗi tháng (5.000 URL cơ bản) | Đặt lại hàng tháng | Chỉ theo quyết định của họ (điều khoản) | Không nêu | Không nêu | | Nội dung từ Exa | 10$ credit mỗi tháng | Credit miễn phí được đặt lại hàng tháng | Theo từng yêu cầu, USDC (x402) | Thẻ cho hình thức trả theo mức dùng | Được nêu cho trình thu thập chỉ mục của họ, không phải cho lượt truy xuất của người dùng | | Parallel Extract | 5.000 truy vấn mỗi tháng | Credit miễn phí hết hạn hàng tháng | Theo từng yêu cầu, USDC (x402) | Thẻ cho credit hàng tháng | Được nêu cho trình thu thập chỉ mục của họ, không phải cho lượt truy xuất của người dùng | | Linkup fetch | 20$ mỗi tháng (email chuyên nghiệp) | Không nêu | Theo từng yêu cầu, USDC (x402) | Email chuyên nghiệp để nhận credit miễn phí | Crawl tuân thủ; không nêu rõ với fetch | | Olostep | Bản dùng thử 500 truy vấn | Gói trả theo tháng; nạp thêm giữ hạn 6 tháng | Theo từng yêu cầu, USDC (x402) | Thẻ để nạp thêm | Các công cụ phải tôn trọng; không nêu rõ mặc định | | ScrapeGraphAI | 500 credit | Credit của gói không cộng dồn; khoản nạp thêm không bao giờ hết hạn | Chỉ dành cho agent (MPP) | Không nêu | Khách hàng phải tuân thủ (điều khoản) | | Diffbot | 10.000 credit mỗi tháng | Hạn mức đặt lại mỗi kỳ | Không nêu | Không cần thẻ cho gói miễn phí | Crawl tuân thủ mặc định; không nêu rõ với Extract | | ScrapingBee | 1.000 credit | Không cộng dồn | Không | Thẻ cho các gói trả phí | Không nêu | | ScraperAPI | 5.000 credit trong 7 ngày | Hết hạn mỗi kỳ thanh toán | Không | Không nêu | Không nêu | | ZenRows | 5.000 credit mỗi tháng | Khi gia hạn | Tài khoản: không; agent: USDC (x402) | Xác thực email | Không nêu | | Scrapfly | 1.000 credit một lần | Không cộng dồn | Không nêu | KYC cho mọi khách hàng | Crawler API tôn trọng mặc định; có thể tắt | | Scrape.do | 1.000 credit mỗi tháng | Không nêu | Có (không nêu rõ đồng coin) | Không nêu | Không nêu | | Crawlbase | 1.000 credit | Trả theo mức dùng: không có gì hết hạn | Không nêu | Không nêu | Không nêu | | Bright Data Web Unlocker | 5.000 credit mỗi tháng | Credit miễn phí được đặt lại hàng tháng | Không | Thẻ cho tài khoản email cá nhân; KYC công ty cho các trang bị robots.txt chặn | Được tôn trọng mặc định | | Oxylabs Web Scraper API | 5$ credit một lần | Cuối chu kỳ | Không | KYC cho mọi khách hàng | Không đề cập | | Decodo Web Data API | Tối đa 10.000 request mỗi tháng | Số tiền chưa dùng hết sẽ hết hạn hàng tháng | Có (qua CoinGate) | Kiểm tra tự động, sau đó KYC | Không nêu | | Scrapeless | Dùng thử, không nêu quy mô | Không giữ mức tối thiểu trả trước | Có (không nêu rõ đồng coin) | Không có cho gói cơ bản | Không nêu | | Hyperbrowser Fetch | 5.000 credit | Credit đã mua: 12 tháng | Theo từng yêu cầu, USDC (x402) | Không nêu | Không nêu | | Steel scrape | $30 một lần (90 ngày) | Credit khởi đầu 90 ngày | Theo từng yêu cầu, USDC (x402) | Không cần thẻ | Điều khoản cấm vi phạm | | Crawl4AI Cloud | 1.000 credit mỗi tháng | Credit đã mua không bao giờ hết hạn | Không nêu | Không cần thẻ | Điều khoản yêu cầu tuân thủ | *Giá được kiểm tra vào 22 tháng 10, 2026.* ## Những phát hiện chính là gì? - **Trang thường rẻ khi dùng với khối lượng lớn.** Ở mức 1 triệu trang mỗi tháng, ScrapingBee ($0.099), Scrape.do ($0.099), Scrapfly ($0.10) niêm yết giá trang thường thấp nhất. - **Trang trình duyệt tốn hơn.** Ở mức 1 triệu trang mỗi tháng, Olostep ($0.399), ZenRows ($0.549), Scrapfly ($0.56) niêm yết giá trang trình duyệt thấp nhất. - **Trình đọc nổi tiếng nhất không phải là rẻ nhất.** Firecrawl niêm yết $0.99 mỗi 1.000 trang ở mức 100.000 trang và $0.749 ở mức 1 triệu trang, với mọi trang đều được render. - **Thanh toán bằng crypto hiếm gặp trên tài khoản.** Scrape.do, Decodo Web Data API, Scrapeless nêu rõ có thanh toán bằng crypto; Exa contents, Parallel Extract, Linkup fetch, Olostep, ZenRows, Hyperbrowser Fetch, Steel scrape thu USDC theo từng request qua x402. - **robots.txt thường được để cho khách hàng tự lo.** Các nhà cung cấp nêu rõ mặc định tuân thủ robots.txt, ít nhất trên các sản phẩm crawl của họ: Firecrawl, Diffbot, Scrapfly, Bright Data Web Unlocker. Nhiều nhà cung cấp không nói gì. - **KYC là ngoại lệ.** Oxylabs và Scrapfly yêu cầu mọi khách hàng thực hiện KYC; Decodo chạy kiểm tra tự động trước. ## Các API tính phí theo cách khác (không nằm trong số trung vị) Các API này tính phí theo token, thời gian trình duyệt, khối lượng dữ liệu hoặc compute, hoặc không xác nhận đầu ra Markdown, nên giá mỗi trang phụ thuộc vào trang của bạn. | API | Giá | Lưu ý | | --- | --- | --- | | Jina Reader | $50 cho 1 tỷ token đầu ra; $500 cho 11 tỷ | Tính phí theo token: chi phí mỗi trang phụ thuộc vào độ dài trang. 10 triệu token miễn phí cho mỗi khóa mới, chỉ dành cho mục đích phi thương mại. | | Cloudflare Browser Run | $0,09 mỗi giờ trình duyệt sau 10 giờ bao gồm, tối thiểu $5 mỗi tháng | Tính phí theo thời gian trình duyệt; các endpoint /markdown, /content và /crawl. | | Spider | $1 mỗi GB nội dung cộng thêm compute | Tính phí theo khối lượng dữ liệu; các con số mỗi trang mà họ công bố là ước tính của chính họ. | | Apify Website Content Crawler | Đơn vị compute ($0.13 mỗi đơn vị trên gói Business) | Tính phí theo compute; các con số mỗi trang mà họ công bố là ước tính của chính họ. | | Zyte API | $0.13 mỗi 1.000 request tĩnh (website tier 1, trả theo mức dùng); $1.01 khi dùng trình duyệt | Giá phụ thuộc vào tier mà Zyte gán cho từng website; đầu ra Markdown không được nêu trên các trang chúng tôi đã đọc. | *Giá được kiểm tra vào 22 tháng 10, 2026.* ## Tôi có thể tái sử dụng dữ liệu này không? Có. Các bảng trên trang này được công bố theo giấy phép Creative Commons Attribution 4.0 (CC BY 4.0): bạn có thể sao chép và chỉnh sửa chúng với một liên kết đến trang này và ngày 2026-10-22. Chúng tôi đọc lại giá ít nhất mỗi tháng một lần. Nếu có con số sai, hãy viết thư đến support@webreaderapi.com kèm trang hiển thị con số đúng; chúng tôi sẽ sửa và ghi chú thay đổi trong [changelog](https://webreaderapi.com/vi/changelog/). ## Chỉ số giá: các câu hỏi thường gặp ### API chuyển URL sang Markdown nào có giá thấp nhất? Điều đó phụ thuộc vào khối lượng và vào JavaScript. Vào ngày 2026-10-22, giá trang thường thấp nhất ở mức 1 triệu trang mỗi tháng là ScrapingBee với $0.099 và Scrape.do với $0.099 mỗi 1.000 trang; giá trang trình duyệt thấp nhất ở khối lượng đó là Olostep với $0.399. ### Firecrawl tốn bao nhiêu mỗi trang? Firecrawl tính 1 credit mỗi trang bao gồm JavaScript: $19 cho 5.000 credit trên gói Hobby, $99 cho 100.000 credit trên gói Standard và $749 cho 1 triệu credit trên gói Scale, đọc trên trang giá của họ vào ngày 2026-10-22. Trích xuất JSON cộng thêm 4 credit mỗi trang. ### Tại sao Jina Reader không có trong các bảng chính? Jina tính phí theo token đầu ra ($50 cho 1 tỷ token ở gói nhỏ nhất), nên giá mỗi trang phụ thuộc vào độ dài trang của bạn. Nó được liệt kê trong bảng các API tính phí theo cách khác. ### WebReaderAPI có tự tính mình vào các giá trị trung vị không? WebReaderAPI công bố chỉ số này và xuất hiện ở các hàng đầu chỉ để tham khảo. Các giá trị trung vị dùng các nhà cung cấp khác. ### Chỉ số được cập nhật bao lâu một lần? Ít nhất mỗi tháng một lần, và khi một nhà cung cấp trong danh sách thay đổi giá công khai. Ngày ở đầu trang cho biết lần kiểm tra đầy đủ gần nhất. ## Nguồn 1. [Firecrawl: giá](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Tavily Extract: giá](https://docs.tavily.com/documentation/api-credits) — Tavily (read 2026-10-22) 3. [Exa contents: giá](https://exa.ai/pricing) — Exa (read 2026-10-22) 4. [Parallel Extract: giá](https://parallel.ai/pricing) — Parallel (read 2026-10-22) 5. [Linkup fetch: giá](https://docs.linkup.so/pages/documentation/development/pricing) — Linkup (read 2026-10-22) 6. [Olostep: giá](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 7. [ScrapeGraphAI: giá](https://scrapegraphai.com/pricing) — ScrapeGraphAI (read 2026-10-22) 8. [Diffbot: bảng giá](https://www.diffbot.com/pricing/) — Diffbot (read 2026-10-22) 9. [ScrapingBee: bảng giá](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 10. [ScraperAPI: giá](https://www.scraperapi.com/pricing/) — ScraperAPI (read 2026-10-22) 11. [ZenRows: bảng giá](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 12. [Scrapfly: bảng giá](https://scrapfly.io/pricing) — Scrapfly (read 2026-10-22) 13. [Scrape.do: bảng giá](https://scrape.do/pricing.md) — Scrape.do (read 2026-10-22) 14. [Crawlbase: giá](https://crawlbase.com/pricing) — Crawlbase (read 2026-10-22) 15. [Bright Data Web Unlocker: bảng giá](https://www.bright.cn/pricing/web-unlocker) — Bright Data (read 2026-10-22) 16. [Oxylabs Web Scraper API: giá](https://oxylabs.io/pricing/web-scraper-api) — Oxylabs (read 2026-10-22) 17. [Decodo Web Data API: giá](https://help.decodo.com/docs/web-data-api-billing) — Decodo (read 2026-10-22) 18. [Scrapeless: giá](https://www.scrapeless.com/en/pricing) — Scrapeless (read 2026-10-22) 19. [Hyperbrowser Fetch: giá](https://hyperbrowser.ai/docs/pricing.md) — Hyperbrowser (read 2026-10-22) 20. [Steel scrape: giá](https://docs.steel.dev/overview/pricinglimits) — Steel (read 2026-10-22) 21. [Crawl4AI Cloud: giá](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 22. [Jina Reader: giá](https://jina.ai/api-dashboard/pricing/) — Jina Reader (read 2026-10-22) 23. [Cloudflare Browser Run: giá](https://developers.cloudflare.com/browser-run/pricing/) — Cloudflare Browser Run (read 2026-10-22) 24. [Spider: giá](https://spider.cloud/pricing) — Spider (read 2026-10-22) 25. [Apify Website Content Crawler: giá](https://apify.com/apify/website-content-crawler) — Apify Website Content Crawler (read 2026-10-22) 26. [Zyte API: giá](https://www.zyte.com/pricing/) — Zyte API (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Bắt đầu nhanh với URL to Markdown API: trang đầu tiên của bạn trong hai phút > Bắt đầu nhanh với URL to Markdown API: lấy khóa, đọc trang đầu bằng curl, Python hay Node.js và kiểm tra credit. Từ 0,07 US$/1K trang, không cần KYC. - URL: https://webreaderapi.com/vi/docs/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Một endpoint, một tham số: gửi một URL đến `/read` và nhận nội dung chính của trang về dưới dạng Markdown. Trang này đưa bạn từ số dư trống đến một lệnh gọi chạy được, rồi chỉ tới mọi thứ khác. **Câu trả lời nhanh — Làm sao để chuyển một URL sang Markdown bằng API?** Gửi URL đến `GET https://webreaderapi.com/api/v1/read` với khóa API của bạn trong header `Authorization`. **WebReaderAPI** tải trang, giữ lại nội dung chính và trả về dưới dạng Markdown kèm tiêu đề, tác giả, ngày và số từ. Mỗi trang tốn một credit (hai nếu cần trình duyệt), từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## API trong một bảng | Thuộc tính | Giá trị | | --- | --- | | Base URL | `https://webreaderapi.com/api/v1` | | Đọc một trang | `GET` hoặc `POST https://webreaderapi.com/api/v1/read` | | Nhiều URL hoặc một trang web | `POST https://webreaderapi.com/api/v1/batch` và `POST https://webreaderapi.com/api/v1/crawl`, kết quả từ `GET https://webreaderapi.com/api/v1/jobs/{job_id}` | | Credit còn lại | `GET https://webreaderapi.com/api/v1/credits` (miễn phí) | | Xác thực | Gửi khóa API trong header Authorization dưới dạng Bearer token, hoặc trong query parameter api_key | | Tính phí | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Trình thu thập của chúng tôi | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, robots.txt token `WebReaderAPI` | | Pack nhỏ nhất | 10.000 trang cho 3,75 US$; credit không bao giờ hết hạn | ## Làm sao để lấy một khóa API? Ba bước, không cần điền form. Bước chậm nhất là xác nhận blockchain cho khoản nạp của bạn. 1. **Nạp bằng crypto** — Gửi tối thiểu 25 US$ bằng BTC, USDT, USDC, ETH, SOL, LTC. Đăng nhập bằng số tài khoản; email là tùy chọn. 2. **Mua một gói credit** — 10.000 trang cho 3,75 US$ là đủ để thử mọi tùy chọn trên URL của riêng bạn. 3. **Sao chép khóa của bạn** — Khóa API của bạn sẵn sàng trong dashboard sau khi khoản nạp crypto được xác nhận và bạn đã mua một pack. Lưu nó trong biến môi trường tên là WEBREADER_API_KEY. ## Request đầu tiên trông như thế nào? Đó là một HTTPS GET thông thường với địa chỉ trang nằm trong tham số `url`. Hãy encode địa chỉ, vì nó chứa các ký tự `:` và `/` của chính nó; curl làm việc đó cho bạn với `--data-urlencode`. Các thiết lập mặc định đã phù hợp với hầu hết bài viết và trang tài liệu: đầu ra Markdown, chỉ nội dung chính, và chỉ dùng trình duyệt headless khi trang cần. *curl: đọc một trang* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/first-post" ``` *Python: đọc một trang và lưu lại* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/blog/first-post"}, timeout=70, ) resp.raise_for_status() page = resp.json() print(page["title"], "-", page["word_count"], "words,", page["credits_used"], "credit(s)") with open("first-post.md", "w", encoding="utf-8") as f: f.write(page["markdown"]) ``` *Node.js 18+: đọc một trang* ```javascript const params = new URLSearchParams({ url: 'https://example.com/blog/first-post' }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const page = await res.json(); if (!res.ok) throw new Error(`${page.error.code}: ${page.error.message}`); console.log(page.title, page.word_count, 'words'); console.log(page.markdown.slice(0, 500)); ``` ## Kết quả trả về là gì? Một đối tượng JSON với Markdown trong trường `markdown` và metadata của trang bên cạnh: `title`, `description`, `author`, `published_at`, `language`, `site_name` và `word_count`. Hai trường giúp bạn kiểm tra chuyện gì đã xảy ra: `final_url` là địa chỉ sau các lần redirect, và `rendered` cho bạn biết có cần đến trình duyệt headless hay không. `credits_used` cho thấy chi phí của lần gọi: 1 cho một trang thường, 2 khi `rendered` là `true`, thêm một nếu bạn chọn `country`. Trang [định dạng phản hồi](https://webreaderapi.com/vi/docs/response/) liệt kê mọi trường kèm ví dụ. ## Tôi sẽ dùng những tùy chọn nào nhiều nhất? Năm tham số đáp ứng hầu hết nhu cầu. Tất cả đều tùy chọn. | Tham số | Dùng để | |---|---| | `format` | Nhận `text` hoặc `html` đã làm sạch thay vì `markdown` | | `main_content` | Đặt `false` để chuyển toàn bộ trang, kể cả menu | | `render` | Buộc (`true`) hoặc cấm (`false`) trình duyệt headless; `auto` quyết định | | `include_links` | Nhận các liên kết của trang thành một danh sách riêng | | `max_chars` | Cắt các trang dài để vừa ngân sách ngữ cảnh của model | [Tham chiếu read](https://webreaderapi.com/vi/docs/read/) mô tả mọi tham số, gồm cả `country`, `include_images` và `timeout`. ## Làm sao kiểm tra credit còn lại? Gọi `GET https://webreaderapi.com/api/v1/credits` với cùng khóa đó. Nó trả về `credits_remaining`, `credits_used_today` và `concurrency_limit` của bạn, và không tốn gì. Hãy chạy nó ở đầu một tác vụ dài để tác vụ dừng gọn gàng thay vì thất bại vì `402 insufficient_credits` giữa chừng. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng, nên một pack mua cho dự án này vẫn giữ nguyên giá trị cho dự án tiếp theo. ## Chuyện gì xảy ra nếu một trang web không cho phép robots? Chúng tôi không đọc trang, và bạn không bị tính phí. Trình thu thập dữ liệu của chúng tôi tự giới thiệu là `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` và tuân theo robots.txt của trang web. Một trang bị disallow trả về `403 blocked_by_robots`; một trang web từ chối request theo cách khác trả về `502 target_refused` kèm mã trạng thái của chính trang đó. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. [Trang lỗi](https://webreaderapi.com/vi/docs/errors/) giải thích lỗi nào nên thử lại và lỗi nào là lỗi cuối cùng. ## Tôi nên đi đâu tiếp theo? - [Đọc tham chiếu endpoint](https://webreaderapi.com/vi/docs/read/) — Mọi tham số của /read, kèm ví dụ - [Batch và crawl](https://webreaderapi.com/vi/docs/crawl/) — Tối đa 100 URL mỗi batch, hoặc cả một trang web - [Định dạng phản hồi](https://webreaderapi.com/vi/docs/response/) — Mọi trường của câu trả lời - [Lỗi và robots.txt](https://webreaderapi.com/vi/docs/errors/) — Mã lỗi, nguyên nhân và quy tắc thử lại - [Python](https://webreaderapi.com/vi/docs/python/) — requests, async httpx, chia chunk cho RAG - [Node.js](https://webreaderapi.com/vi/docs/node/) — fetch, một pool nhỏ, poll crawl - [curl và jq](https://webreaderapi.com/vi/docs/curl/) — Công thức cho terminal - [MCP server](https://webreaderapi.com/vi/docs/mcp/) — Một tool read_url cho Claude và Cursor - [LangChain và LlamaIndex](https://webreaderapi.com/vi/docs/langchain/) — Loader và tool cho RAG - [OpenAI function calling](https://webreaderapi.com/vi/docs/openai/) — Schema và vòng lặp cho tool read_url - [n8n](https://webreaderapi.com/vi/docs/n8n/) — Tool HTTP Request cho AI Agent - [OpenClaw](https://webreaderapi.com/vi/docs/openclaw/) — Thêm MCP server bên cạnh web_fetch ## Bắt đầu nhanh: câu hỏi thường gặp ### Có SDK nào cần cài không? Không. WebReaderAPI là một API HTTPS thông thường, nên HTTP client nào cũng dùng được. Tài liệu có mã copy-paste cho Python, Node.js và curl, cùng định nghĩa tool cho MCP, LangChain, LlamaIndex và OpenAI function calling. Không có gì được phát hành dưới dạng package. ### Tôi có thể gửi khóa trong URL thay vì header không? Được, dưới dạng tham số truy vấn `api_key`. Header `Authorization: Bearer` an toàn hơn, vì URL thường lọt vào log và lịch sử trình duyệt. Tạo nhiều khóa API, ví dụ mỗi agent hoặc dự án một khóa, và thu hồi bất kỳ khóa nào từ dashboard của bạn. ### Một trang thất bại có tốn credit không? Không. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Chỉ trang trả về có nội dung mới bị tính phí. ### Tôi có thể dùng thử trước khi mua không? Không có gói miễn phí. Không có gói miễn phí: pack nhỏ nhất là cách để thử, thanh toán từ mức nạp tối thiểu, và phần tiền chỉ nạp thêm để đạt mức tối thiểu đó có thể được gửi trả theo yêu cầu trong vòng 30 ngày, bằng USDT hoặc USDC, miễn là chưa dùng. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Batch và crawl API: đọc nhiều URL hoặc toàn bộ trang web > Tham chiếu Batch và crawl API: đọc tới 100 URL mỗi job hoặc toàn bộ trang web tới 10.000 trang, tôn trọng robots.txt và Crawl-delay, không cần KYC. - URL: https://webreaderapi.com/vi/docs/crawl/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Hai endpoint khởi chạy job chạy nền: `/batch` cho danh sách tối đa 100 URL, `/crawl` cho một trang web. Cả hai trả về một job ID; bạn thu thập các trang từ `/jobs/{job_id}`, mỗi lần một trang kết quả. **Câu trả lời nhanh — Làm cách nào để crawl một trang web sang Markdown với WebReaderAPI?** Gửi URL bắt đầu tới `POST https://webreaderapi.com/api/v1/crawl` với một `limit` trang. **WebReaderAPI** đọc trang web ở chế độ nền, chỉ trong cùng domain, theo sitemap, robots.txt và Crawl-delay của trang, tối đa 10.000 trang mỗi job. Thu thập các trang Markdown từ job, mỗi lần một trang kết quả. Mỗi trang đọc tốn 1 credit (2 nếu dùng trình duyệt), từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Tổng quan về jobs | Thuộc tính | Giá trị | | --- | --- | | Batch | Tối đa 100 URL mỗi batch job: `POST https://webreaderapi.com/api/v1/batch` | | Crawl | Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang: `POST https://webreaderapi.com/api/v1/crawl` | | Kết quả | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`, sau đó `?cursor=…` để lấy trang kết quả tiếp theo | | Tính phí | Mỗi trang đọc được tính phí như một lệnh gọi `/read`; các trang bị robots.txt bỏ qua và các trang thất bại không tốn phí | | Phạm vi của một lần crawl | Một domain; các liên kết tới domain khác được liệt kê nhưng không được đọc | | Hủy job | Không có trong v1: đặt `limit` bằng số trang tối đa bạn sẵn sàng trả tiền | ## Khởi chạy job batch `POST /api/v1/batch` Đọc tới 100 URL ở chế độ nền với cùng các tùy chọn. Tùy chọn dùng tên và giá trị của [/read](https://webreaderapi.com/vi/docs/read/). Câu trả lời là job ID; các giá trị chỉ mang tính minh họa. Xác thực: khóa API trong header `Authorization: Bearer API_KEY`. **Request body** | Field | Kiểu | Bắt buộc | Mô tả | | --- | --- | --- | --- | | `urls` | array of strings | Có | 1 đến 100 URL http hoặc https. URL trùng lặp chỉ được đọc một lần. | | `options` | object | Không | Bất kỳ tham số `/read` nào ngoại trừ `url`: `format`, `main_content`, `render`, `include_links`, `include_images`, `country`, `max_chars`, `timeout`. | *Ví dụ: three articles as Markdown* ```json { "urls": [ "https://example.com/blog/post-1", "https://example.com/blog/post-2", "https://example.org/news/launch" ], "options": { "format": "markdown", "max_chars": 50000 } } ``` **Response** `202 Accepted` ```json { "job_id": "job_5c1e8a90d2" } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/batch" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com/blog/post-1", "https://example.com/blog/post-2"], "options": {"format": "markdown"}}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/batch", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"urls": ["https://example.com/blog/post-1", "https://example.com/blog/post-2"], "options": {"format": "markdown"}}, timeout=30, ) print(resp.json()["job_id"]) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/batch', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ urls: ['https://example.com/blog/post-1', 'https://example.com/blog/post-2'], options: { format: 'markdown' } }), }); console.log((await res.json()).job_id); ``` ## Bắt đầu một job crawl `POST /api/v1/crawl` Đọc một trang web từ URL bắt đầu, theo chiều rộng. Trình thu thập dữ liệu ở lại trên domain của URL bắt đầu, dùng sitemap được nêu trong robots.txt hoặc tìm thấy tại `/sitemap.xml`, và tuân thủ robots.txt cùng Crawl-delay. Các giá trị chỉ mang tính minh họa. Xác thực: khóa API trong header `Authorization: Bearer API_KEY`. **Request body** | Field | Kiểu | Bắt buộc | Mô tả | | --- | --- | --- | --- | | `url` | string | Có | Trang bắt đầu, chẳng hạn như trang chủ của một site tài liệu. | | `limit` | integer | Không | Số trang tối đa cần đọc, tối đa 10.000. Job dừng khi đạt số này. | | `max_depth` | integer | Không | Số bước liên kết tối đa tính từ URL bắt đầu. | | `include_paths` | array of strings | Không | Các mẫu đường dẫn đơn giản cần giữ, chẳng hạn như `/docs/*`. | | `exclude_paths` | array of strings | Không | Các mẫu đường dẫn đơn giản cần bỏ qua, chẳng hạn như `/blog/tag/*`. | | `options` | object | Không | Bất kỳ tham số `/read` nào ngoại trừ `url`, áp dụng cho mọi trang. | *Ví dụ: the docs section of a site, 500 pages at most* ```json { "url": "https://docs.example.com/", "limit": 500, "max_depth": 3, "include_paths": [ "/docs/*" ], "exclude_paths": [ "/docs/archive/*" ], "options": { "format": "markdown" } } ``` **Response** `202 Accepted` ```json { "job_id": "job_8b27f41c0e" } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/crawl" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://docs.example.com/", "limit": 500, "include_paths": ["/docs/*"]}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/crawl", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"url": "https://docs.example.com/", "limit": 500, "include_paths": ["/docs/*"]}, timeout=30, ) print(resp.json()["job_id"]) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/crawl', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://docs.example.com/', limit: 500, include_paths: ['/docs/*'] }), }); console.log((await res.json()).job_id); ``` ## Lấy trạng thái và kết quả của job `GET /api/v1/jobs/{job_id}` Trả về trạng thái của job và các kết quả tiếp theo đã sẵn sàng. Mỗi mục trong `results` hoặc là một phản hồi `/read` đầy đủ, hoặc là `{url, error}` cho một trang không đọc được. Khi có `next_cursor`, hãy gọi lại với `cursor` được đặt bằng giá trị đó; khi không có, chưa có thêm kết quả nào sẵn sàng. Các giá trị chỉ mang tính minh họa. Xác thực: khóa API trong header `Authorization: Bearer API_KEY`. **Tham số** | Tên | Vị trí | Kiểu | Bắt buộc | Mô tả | | --- | --- | --- | --- | --- | | `job_id` | path | string | Có | ID được trả về bởi `/batch` hoặc `/crawl`. | | `cursor` | query | string | Không | Giá trị `next_cursor` từ lần gọi trước, để lấy các kết quả tiếp theo. | **Response** `200` ```json { "job_id": "job_8b27f41c0e", "status": "running", "results": [ { "url": "https://docs.example.com/docs/install", "final_url": "https://docs.example.com/docs/install", "status_code": 200, "rendered": false, "credits_used": 1, "title": "Install", "markdown": "# Install\n\nRun the installer...", "word_count": 418 }, { "url": "https://docs.example.com/docs/private", "error": { "code": "blocked_by_robots", "message": "robots.txt disallows this page for WebReaderAPI." } } ], "next_cursor": "c_000002", "credits_used": 1 } ``` *curl* ```bash curl -sG "https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -d cursor=c_000002 ``` *Python* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"cursor": "c_000002"}, timeout=30, ) job = resp.json() print(job["status"], len(job["results"]), job.get("next_cursor")) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e?cursor=c_000002', { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const job = await res.json(); console.log(job.status, job.results.length, job.next_cursor); ``` ## Làm sao để chờ một job hoàn tất? Poll `/jobs/{job_id}` và giữ cursor. Xử lý các kết quả nhận được, rồi gọi lại với `cursor` được đặt bằng `next_cursor`. Khi không có `next_cursor` và `status` là `done`, bạn đã có tất cả; khi không có nó và job vẫn `running`, hãy chờ và hỏi lại với cùng cursor. Bắt đầu poll mỗi 2 giây và tăng gấp đôi thời gian chờ lên tối đa 30 giây khi không có gì mới. Một crawl tuân thủ Crawl-delay của site có thể mất khá lâu, nên chờ lâu là bình thường và không tốn gì. *Python: poll một job và lưu mọi trang thành file .md* ```python import os import pathlib import re import time import requests JOBS = "https://webreaderapi.com/api/v1/jobs" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def save_job(job_id, folder="pages"): out = pathlib.Path(folder) out.mkdir(exist_ok=True) cursor, wait, saved = None, 2, 0 while True: params = {"cursor": cursor} if cursor else {} job = requests.get(f"{JOBS}/{job_id}", headers=HEADERS, params=params, timeout=30).json() for item in job["results"]: if "error" in item: print("skipped", item["url"], item["error"]["code"]) continue name = re.sub(r"[^a-z0-9]+", "-", item["final_url"].lower()).strip("-")[:120] (out / f"{name}.md").write_text(item["markdown"], encoding="utf-8") saved += 1 if job.get("next_cursor"): cursor, wait = job["next_cursor"], 2 continue if job["status"] == "done": return saved time.sleep(wait) wait = min(wait * 2, 30) if __name__ == "__main__": print(save_job("job_8b27f41c0e"), "pages saved") ``` ## Một crawl đọc những trang nào? Một crawl bắt đầu từ URL của bạn và lan ra ngoài từng bước liên kết một, theo chiều rộng, tối đa `max_depth`. Nó cũng đọc sitemap của site, từ địa chỉ được nêu trong robots.txt hoặc từ `/sitemap.xml`, để tìm những trang ít được liên kết tới. - **Chỉ cùng domain.** Liên kết tới domain khác được liệt kê trong kết quả khi bạn yêu cầu `include_links`, nhưng không được đọc. - **Bộ lọc đường dẫn.** `include_paths` và `exclude_paths` nhận các mẫu đơn giản như `/blog/*`. - **Một bản sao cho mỗi trang.** Khi một site khai báo canonical URL, một trang được truy cập qua nhiều địa chỉ chỉ được đọc một lần. - **Điểm dừng cứng.** Job kết thúc khi đã đọc `limit` trang. ## Một crawl tôn trọng site như thế nào? Mỗi request đều mang User-Agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, và trình thu thập dữ liệu tuân theo quy tắc robots.txt cho `WebReaderAPI`, hoặc cho tất cả robot khi không có robot nào được nêu tên. Các trang bị disallow sẽ bị bỏ qua và xuất hiện trong `results` với lỗi `blocked_by_robots`; chúng không tốn gì. Khi robots.txt đặt `Crawl-delay`, trình thu thập dữ liệu chờ chừng đó giữa hai request tới site. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. ## Một crawl tốn bao nhiêu? Mỗi trang được đọc tốn bằng một lần gọi `/read`: 1 credit, 2 nếu trang cần trình duyệt, cộng thêm 10 với `country`. Trang bị bỏ qua và thất bại miễn phí. `credits_used` của job cộng dồn những gì đã được tính phí tới thời điểm hiện tại. Một site tài liệu 500 trang đọc không cần trình duyệt dùng khoảng 500 credit, mà pack 10.000 trang (3,75 US$) đủ trả nhiều lần. Vì job không thể hủy trong v1, `limit` là mức trần chi tiêu của bạn: hãy đặt nó bằng số trang nhiều nhất bạn sẵn sàng trả tiền. ## Batch và crawl: các câu hỏi thường gặp ### Tôi nên dùng /batch hay nhiều lần gọi /read? Dùng `/batch` khi bạn đã có sẵn các URL và không cần từng câu trả lời ngay lập tức. Nó giúp bạn khỏi phải quản lý concurrency và retry. Dùng `/read` khi một agent cần một trang ngay bây giờ. ### Kết quả của job được giữ bao lâu? Hãy thu thập chúng ngay khi sẵn sàng. Kết quả chờ cho đến khi bạn fetch chúng; một khi đã giao, không giữ bản sao nào của nội dung trang, nên hãy lưu những gì bạn cần ở phía mình. ### Một crawl có thể theo liên kết tới các trang web khác không? Không. Một crawl chỉ đọc một domain. Các domain khác xuất hiện dưới dạng liên kết khi bạn yêu cầu, và bạn có thể gửi các URL đó tới `/batch` nếu muốn chúng được đọc. ### Tôi có thể dừng một crawl đã bắt đầu không? Không trong v1. Job dừng ở `limit` trang, nên hãy chọn giới hạn phù hợp với ngân sách của bạn. Các trang đã đọc vẫn bị tính phí; các trang chưa bao giờ đọc không tốn gì. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Trang web sang Markdown với curl và jq > Chuyển trang web sang Markdown từ terminal với curl và jq: lưu một trang, liệt kê liên kết, chạy batch và kiểm tra credit. Từ 0,07 US$/1K trang, không cần KYC. - URL: https://webreaderapi.com/vi/docs/curl/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Mọi thứ API làm được đều gói gọn trong một dòng lệnh shell. Các công thức này dùng curl để gọi API và jq để lấy các field ra khỏi JSON, kèm một phiên bản PowerShell cho Windows ở cuối. **Câu trả lời nhanh — Làm sao để chuyển một trang web sang Markdown từ dòng lệnh?** Chạy `curl -sG https://webreaderapi.com/api/v1/read --data-urlencode "url=…"` với khóa API của bạn trong một header `Authorization: Bearer`, rồi pipe câu trả lời tới `jq -r .markdown`. **WebReaderAPI** trả về nội dung chính của trang dưới dạng Markdown kèm metadata. Một trang thông thường dùng 1 credit, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Làm thế nào để thiết lập terminal? Cài curl và jq, hầu hết hệ thống Linux và macOS đều đã có sẵn, rồi export khóa của bạn một lần mỗi phiên. Mọi công thức bên dưới đều đọc khóa từ `$WEBREADER_API_KEY`, nên khóa không bao giờ xuất hiện trong lịch sử shell của bạn như một phần của lệnh. Dùng `-G` với `--data-urlencode` cho các request GET: curl sau đó sẽ tự mã hóa địa chỉ trang cho bạn, điều này quan trọng vì địa chỉ có chứa `?`, `&` và `=` của riêng chúng. *Đặt khóa và lưu một trang thành file .md* ```bash export WEBREADER_API_KEY="your-key" curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/guides/compost" \ | jq -r '.markdown' > compost.md ``` ## Làm thế nào để xem một lệnh gọi đã trả về gì và tốn bao nhiêu? Hỏi jq lấy metadata thay vì nội dung. `final_url` cho biết các chuyển hướng đã dẫn đến đâu, `rendered` cho bạn biết có dùng trình duyệt hay không, và `credits_used` là chi phí của lệnh gọi. Nếu kết quả là lỗi, cùng bộ lọc đó sẽ in ra các trường `null`; in `.error` để đọc mã và thông báo. *Chỉ metadata, hoặc lỗi nếu có* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/guides/compost" \ | jq '.error // {title, final_url, rendered, credits_used, word_count}' ``` ## Làm thế nào để liệt kê các liên kết của một trang? Thêm `include_links=true` và chuyển danh sách `links` thành các dòng phân tách bằng tab. Như vậy bạn có một bản đồ nhanh các liên kết đi ra của một trang, có thể sắp xếp, lọc bằng grep hoặc đưa vào một batch job. *Liên kết dưới dạng text và URL, mỗi dòng một cái* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/docs/" \ -d include_links=true \ | jq -r '.links[] | "\(.text)\t\(.url)"' | sort -u ``` ## Làm thế nào để đọc một trang JavaScript hoặc một file PDF? Thêm `-d render=true` cho một trang dựng nội dung bằng JavaScript; khi đó tốn 2 credit. Một file PDF không cần gì đặc biệt: gửi URL của nó và văn bản sẽ trả về trong `markdown`. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. *Một trang đã render, rồi một file PDF* ```bash curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/app/changelog" -d render=true \ | jq -r '.markdown' > changelog.md curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/files/annual-report.pdf" \ | jq -r '.markdown' > annual-report.md ``` ## Làm thế nào để chạy một batch job từ shell? Post một JSON body chứa các URL của bạn đến `/batch`, giữ lại `job_id`, rồi đọc job. Một vòng lặp nhỏ sẽ chờ cho đến khi job `done` và in ra tiêu đề hoặc mã lỗi của từng trang. Với các job dài, hãy theo dõi `next_cursor` như được chỉ ra trên [trang batch và crawl](https://webreaderapi.com/vi/docs/crawl/). *Batch gồm ba URL, rồi chờ kết quả* ```bash JOB=$(curl -s "https://webreaderapi.com/api/v1/batch" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com/a", "https://example.com/b", "https://example.com/c"]}' \ | jq -r '.job_id') until [ "$(curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq -r '.status')" = "done" ]; do sleep 5 done curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" \ | jq -r '.results[] | "\(.url)\t\(.title // .error.code)"' ``` ## Làm thế nào để kiểm tra credit của tôi? Gọi `/credits`; lệnh này miễn phí. Nó trả về `credits_remaining`, `credits_used_today` và `concurrency_limit` của bạn. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. *Credit còn lại* ```bash curl -s "https://webreaderapi.com/api/v1/credits" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq '.credits_remaining' ``` ## Phiên bản PowerShell trên Windows thì sao? `Invoke-RestMethod` tự phân tích JSON cho bạn, nên không cần jq. Xây truy vấn bằng `[uri]::EscapeDataString` để mã hóa địa chỉ trang, và truyền khóa trong một bảng headers. *PowerShell: lưu một trang* ```powershell $headers = @{ Authorization = "Bearer $env:WEBREADER_API_KEY" } $target = [uri]::EscapeDataString('https://example.com/guides/compost') $page = Invoke-RestMethod -Uri "https://webreaderapi.com/api/v1/read?url=$target" -Headers $headers $page.markdown | Out-File -Encoding utf8 compost.md "$($page.title): $($page.word_count) words, $($page.credits_used) credit(s)" ``` ## curl: các câu hỏi thường gặp ### Tại sao URL của tôi có chứa & lại bị lỗi? Vì shell hoặc curl đã tách nó ra. Hãy đặt toàn bộ đối số `url=…` trong dấu nháy và truyền nó bằng `--data-urlencode`, như trong các công thức trên; khi đó curl sẽ mã hóa `&`, `?` và `=` bên trong địa chỉ trang. ### Làm thế nào để xem HTTP status của một lỗi? Thêm `-w '\n%{http_code}\n'` để in nó sau body, hoặc `-i` để xem tất cả headers. Trường `error.code` trong body là giá trị ổn định để kiểm tra trong script. ### Một lệnh gọi thất bại có bị tính phí không? Không. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Lỗi, từ chối do robots.txt và thử lại > Mọi mã lỗi của WebReaderAPI: từ chối do robots.txt, từ trang web, hết thời gian chờ và lỗi credit, loại nào nên thử lại và tại sao không loại nào bị tính phí. - URL: https://webreaderapi.com/vi/docs/errors/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Mỗi lỗi có một HTTP status, một `code` ổn định và một `message` dễ đọc. Không loại nào dùng credit. Một số đáng để thử lại; các từ chối đến từ phía trang web là cuối cùng, và chúng tôi không bao giờ lách qua chúng. **Câu trả lời nhanh — Các mã lỗi của WebReaderAPI có nghĩa là gì, và những loại nào nên thử lại?** Các lỗi **WebReaderAPI** chia thành ba nhóm, và không loại nào bao giờ bị tính phí. Vấn đề ở request (`invalid_url`, `invalid_api_key`, `insufficient_credits`) cần bạn sửa phía mình. Quyết định từ phía trang web (`blocked_by_robots`, `blocked_by_site_policy`, `target_refused`) là cuối cùng. Lỗi tạm thời (`fetch_failed`, `fetch_timeout`, `concurrency_limit`) có thể thử lại với backoff. Credit bắt đầu từ 0,07 US$/1K trang, thanh toán bằng crypto không cần KYC. ## API có thể trả về những mã lỗi nào? Body luôn là `{"error": {"code", "message"}}`, cộng thêm `target_status` khi từ chối đến từ phía trang web. | HTTP | `code` | Nguyên nhân | Thử lại? | | --- | --- | --- | --- | | 400 | `invalid_url` | Không phải http hoặc https, quá dài, hoặc là địa chỉ riêng tư, cục bộ hay metadata cloud | Không: sửa URL | | 400 | `invalid_parameter` | Một tham số có giá trị nằm ngoài danh sách hoặc khoảng cho phép | Không: sửa yêu cầu | | 401 | `invalid_api_key` | Khóa bị thiếu, sai hoặc đã bị thu hồi | Không: kiểm tra khóa | | 402 | `insufficient_credits` | Số dư của bạn không còn credit nào | Sau khi mua một pack | | 403 | `blocked_by_robots` | robots.txt của trang web không cho phép WebReaderAPI hoặc tất cả các robot truy cập trang | Không: kết thúc | | 403 | `blocked_by_site_policy` | Trang web khai báo `Content-Signal: ai-input=no` | Không: kết thúc | | 422 | `unsupported_content` | Một loại tệp chúng tôi không đọc (video, tệp nén) hoặc tệp quá lớn | Không | | 429 | `concurrency_limit` | Bạn có quá nhiều yêu cầu đang chạy cùng lúc | Có, với backoff | | 502 | `target_refused` | Trang web từ chối: 403, 429, trang challenge hoặc tường đăng nhập; trạng thái của nó nằm trong `target_status` | Không: kết thúc | | 502 | `fetch_failed` | Lỗi DNS, TLS hoặc kết nối, hoặc trang web trả về 404 hay 410 | Một hoặc hai lần, với backoff | | 504 | `fetch_timeout` | Trang web không trả lời trong `timeout` | Có, với backoff hoặc timeout dài hơn | ## Vì sao robots.txt và việc trang web từ chối là kết thúc? Vì đó là quyết định của chủ trang web, và WebReaderAPI được xây dựng để tuân theo quyết định đó. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Khi một trang web từ chối yêu cầu theo cách khác, bằng 403, 429, trang challenge hoặc biểu mẫu đăng nhập, bạn nhận được `target_refused` và trạng thái của chính trang web trong `target_status`. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Thử lại cùng URL sau một phút thường sẽ nhận được kết quả y hệt, nên hãy coi các mã này là kết quả, không phải lỗi: ghi log rồi chuyển tiếp. ## Làm sao tôi kiểm tra lý do một trang bị từ chối? Mở `/robots.txt` của trang web và tìm một nhóm nêu tên `WebReaderAPI`, hoặc nhóm `*` áp dụng cho tất cả các robot. Một dòng `Disallow` khớp với đường dẫn giải thích một `blocked_by_robots`. Một dòng như `Content-Signal: ai-input=no` giải thích một `blocked_by_site_policy`. Chúng tôi lưu một bản sao của mỗi robots.txt tối đa 24 giờ. Nếu một trang web vừa mở một mục cho robot, thay đổi có thể mất đến một ngày mới áp dụng. Chủ trang web có thể đọc cách trình thu thập của chúng tôi hoạt động, và cách cho phép hoặc chặn nó, trên [trang trình thu thập của chúng tôi](https://webreaderapi.com/vi/bot/). ## Tôi nên thử lại các lỗi tạm thời như thế nào? Chỉ thử lại `concurrency_limit`, `fetch_timeout` và, một hoặc hai lần, `fetch_failed`. Chờ trước mỗi lần thử mới và nhân đôi thời gian chờ mỗi lần, kèm một chút jitter ngẫu nhiên để các worker song song không thử lại cùng lúc. Dừng sau 4 hoặc 5 lần thử. Với `concurrency_limit`, cách khắc phục tốt hơn là gửi ít yêu cầu hơn cùng một lúc: Mỗi tài khoản có giới hạn số trang đọc cùng lúc; dashboard của bạn hiển thị giới hạn đó, và bộ phận hỗ trợ có thể tăng lên. Với `fetch_timeout`, hãy tăng `timeout` lên tới 60 giây trước khi thử lại một trang web chậm. Thử lại không tốn gì, vì lần thử thất bại không bao giờ bị tính phí. *Python: chỉ thử lại những lỗi có thể thay đổi* ```python import os import random import time import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} RETRY = {"concurrency_limit", "fetch_timeout", "fetch_failed"} FINAL = {"blocked_by_robots", "blocked_by_site_policy", "target_refused", "unsupported_content"} def read_page(url, attempts=5, **options): wait = 1.0 for attempt in range(1, attempts + 1): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) if resp.status_code == 200: return resp.json() error = resp.json().get("error", {}) code = error.get("code", "unknown") if code in FINAL: return {"url": url, "skipped": code, "target_status": error.get("target_status")} if code not in RETRY or attempt == attempts or (code == "fetch_failed" and attempt >= 3): raise RuntimeError(f"{code}: {error.get('message')}") time.sleep(wait + random.uniform(0, wait / 2)) wait = min(wait * 2, 30) raise RuntimeError("unreachable") if __name__ == "__main__": print(read_page("https://example.com/blog/first-post", max_chars=20000).get("title")) ``` *Node.js: quy tắc tương tự với exponential backoff* ```javascript const RETRY = new Set(['concurrency_limit', 'fetch_timeout', 'fetch_failed']); const FINAL = new Set(['blocked_by_robots', 'blocked_by_site_policy', 'target_refused', 'unsupported_content']); const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); export async function readPage(url, options = {}, attempts = 5) { let wait = 1000; for (let attempt = 1; attempt <= attempts; attempt++) { const params = new URLSearchParams({ url, ...options }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const body = await res.json(); if (res.ok) return body; const code = body.error?.code ?? 'unknown'; if (FINAL.has(code)) return { url, skipped: code, target_status: body.error.target_status }; if (!RETRY.has(code) || attempt === attempts) throw new Error(`${code}: ${body.error?.message}`); await sleep(wait + Math.random() * (wait / 2)); wait = Math.min(wait * 2, 30000); } } ``` ## Còn lỗi bên trong một batch hoặc một crawl thì sao? Một job không dừng lại chỉ vì một trang bị lỗi. Trang đó xuất hiện trong `results` dưới dạng `{url, error}` với cùng các mã như trên, và không tốn credit. Một lần crawl gặp `blocked_by_robots` trên một phần của site chỉ đơn giản là đọc phần còn lại của site. Khi kết thúc job, hãy đếm các mã lỗi. Nhiều `target_refused` trên một site nghĩa là site không chấp nhận trình đọc tự động; nhiều `fetch_timeout` nghĩa là site chậm, và đặt `timeout` dài hơn trong tùy chọn job có thể giúp ích. ## Lỗi: câu hỏi thường gặp ### Tôi có bị tính phí cho một trang bị robots.txt chặn không? Không. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Điều tương tự cũng đúng với mọi lỗi khác trên trang này. ### Các bạn có thể đọc một trang chặn crawler của mình nếu tôi yêu cầu không? Không. Chúng tôi tôn trọng lựa chọn của chủ site, và chính sách này giống nhau với mọi khách hàng. Nếu bạn sở hữu site, hãy thêm quy tắc cho `WebReaderAPI` trong robots.txt của bạn; [trang crawler](https://webreaderapi.com/vi/bot/) hướng dẫn cách làm. ### Tại sao tôi nhận fetch_failed cho một trang vẫn tồn tại? Có thể site đã bị down, chậm chấp nhận kết nối TLS hoặc trả về 404 cho client tự động. Hãy thử lại một hai lần với backoff. Nếu vẫn lỗi, hãy kiểm tra địa chỉ trên trình duyệt. ### Sau khi bị từ chối, agent của tôi nên nói gì với người dùng? Một câu đơn giản, chẳng hạn site không cho phép đọc tự động trang đó. Sau đó để model dùng các nguồn khác. Trả về mã lỗi làm kết quả của tool là đủ với hầu hết model. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # LangChain và LlamaIndex: web page loader và tool read_url > WebReaderAPI: một tool read_url và một document loader bằng Python, có RAG index nhỏ dựng từ một lần crawl. Không cần KYC, thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/docs/langchain/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Hai cách dùng API trong một stack AI Python: tải trang thành document để truy xuất, hoặc cấp cho agent một tool `read_url`. Cùng 20 dòng keo dính phục vụ cả LangChain và LlamaIndex. **Câu trả lời nhanh — Làm thế nào để tải web page vào LangChain hoặc LlamaIndex dưới dạng Markdown sạch?** Gọi endpoint `/read` của **WebReaderAPI** và bọc mỗi câu trả lời trong một `Document`: Markdown làm content, `final_url` và tiêu đề làm metadata. Với agent, hãy expose cùng lời gọi đó dưới dạng tool `read_url`. Mỗi trang tốn 1 credit, 2 credit nếu dùng trình duyệt, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần package nào của chúng tôi. Không cần KYC; thanh toán bằng crypto. ## Tại sao dùng document Markdown thay vì HTML thô? Vì truy xuất hoạt động trên văn bản, và Markdown giữ lại cấu trúc quan trọng trong khi bỏ phần còn lại. Tiêu đề được giữ, nên splitter có thể cắt theo chỗ đổi chủ đề. Danh sách và bảng được giữ, nên các bước và thông số kỹ thuật nằm cùng nhau. Thanh điều hướng, banner cookie và quảng cáo biến mất, nên chúng không làm bẩn embedding của bạn hay lãng phí token. Metadata đến từ cùng lời gọi: `final_url` làm nguồn để trích dẫn, `title`, `published_at` và `language` để lọc. *reader.py: helper dùng chung (lưu cạnh code của bạn)* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} class PageError(Exception): pass def read_page(url, **options): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) body = resp.json() if resp.status_code != 200: raise PageError(body["error"]["code"]) return body ``` ## Làm thế nào để tạo một LangChain document loader? Chuyển mỗi trang thành một `langchain_core.documents.Document`, rồi tách theo tiêu đề bằng `MarkdownHeaderTextSplitter` từ package `langchain-text-splitters`. Mỗi chunk giữ đường dẫn tiêu đề trong metadata, và bạn thêm URL nguồn để mỗi câu trả lời có thể dẫn ngược về trang của nó. Các trang bị bỏ qua, như những trang bị robots.txt từ chối, sẽ raise `PageError` kèm mã; hãy log lại và tiếp tục. *LangChain: tải và tách trang* ```python from langchain_core.documents import Document from langchain_text_splitters import MarkdownHeaderTextSplitter from reader import PageError, read_page splitter = MarkdownHeaderTextSplitter(headers_to_split_on=[("#", "h1"), ("##", "h2"), ("###", "h3")]) def load_pages(urls): chunks = [] for url in urls: try: page = read_page(url) except PageError as exc: print("skipped", url, exc) continue for part in splitter.split_text(page["markdown"]): part.metadata.update({"source": page["final_url"], "title": page.get("title", "")}) chunks.append(part) return chunks docs = load_pages(["https://example.com/docs/install", "https://example.com/docs/configure"]) print(len(docs), "chunks", isinstance(docs[0], Document) if docs else "") ``` ## Làm thế nào để cấp cho LangChain agent một tool read_url? Trang trí một hàm bằng `@tool` từ `langchain_core.tools`. Docstring trở thành mô tả tool mà model đọc, nên hãy nói rõ tool trả về gì và khi nào dùng. Trả về văn bản thuần: một dòng tiêu đề, nguồn và Markdown, cắt bằng `max_chars` cho phù hợp với model của bạn. Bind tool với bất kỳ chat model nào hỗ trợ tool calling, hoặc truyền nó vào constructor của agent. Model sau đó gọi `read_url` với một URL từ cuộc hội thoại hoặc từ kết quả tìm kiếm. *LangChain: tool read_url* ```python import os from langchain.chat_models import init_chat_model from langchain_core.tools import tool from reader import PageError, read_page @tool def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown, with its title and source URL.""" try: page = read_page(url, max_chars=max_chars) except PageError as exc: return "Could not read the page: " + str(exc) return "# " + (page.get("title") or url) + "\nSource: " + page["final_url"] + "\n\n" + page["markdown"] model = init_chat_model(os.environ.get("CHAT_MODEL", "openai:gpt-4.1-mini")).bind_tools([read_url]) reply = model.invoke("Summarise https://example.com/blog/first-post in three bullet points.") print(reply.tool_calls) ``` ## Làm thế nào để làm điều tương tự trong LlamaIndex? LlamaIndex dùng class `Document` riêng với `text` và `metadata`, và `FunctionTool.from_defaults` để biến một hàm thành tool. Helper vẫn giữ nguyên. Dựng index từ các document bằng `VectorStoreIndex.from_documents`, dùng bất kỳ embedding model nào mà cài đặt LlamaIndex của bạn chỉ định. *LlamaIndex: index một lần crawl, và một tool read_url* ```python import os import time import requests from llama_index.core import Document, VectorStoreIndex from llama_index.core.tools import FunctionTool from reader import HEADERS, PageError, read_page def crawl_pages(start_url, limit=200): job = requests.post("https://webreaderapi.com/api/v1/crawl", headers=HEADERS, json={"url": start_url, "limit": limit}, timeout=30).json() pages, cursor = [], None while True: params = {"cursor": cursor} if cursor else {} res = requests.get("https://webreaderapi.com/api/v1/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=30).json() pages += [r for r in res["results"] if "error" not in r] cursor = res.get("next_cursor") if not cursor and res["status"] == "done": return pages if not cursor: time.sleep(5) pages = crawl_pages("https://docs.example.com/") docs = [Document(text=p["markdown"], metadata={"source": p["final_url"], "title": p.get("title", "")}) for p in pages] index = VectorStoreIndex.from_documents(docs) print(index.as_query_engine().query("How do I install the product?")) def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown.""" try: return read_page(url, max_chars=max_chars)["markdown"] except PageError as exc: return "Could not read the page: " + str(exc) read_tool = FunctionTool.from_defaults(fn=read_url, name="read_url") print(os.environ.get("CHAT_MODEL", "set CHAT_MODEL for your agent"), read_tool.metadata.name) ``` ## Một RAG index nhỏ cần crawl lớn cỡ nào? Ít hơn bạn tưởng. Tài liệu của một sản phẩm thường chỉ vài trăm trang, và một lần crawl với `include_paths` đặt vào phần docs chỉ đọc đúng phần đó. Với 1 credit mỗi trang, một site docs 300 trang tốn khoảng 300 credit; 10.000 trang (3,75 US$) làm mới nó nhiều lần. Re-crawl theo lịch khớp với tần suất nguồn thay đổi, và so sánh `final_url` và `word_count` với lần chạy trước để chỉ re-embed những trang đã thay đổi. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. ## LangChain và LlamaIndex: câu hỏi thường gặp ### Có package WebReaderAPI cho LangChain hay LlamaIndex không? Không. Helper và tool trên trang này chính là toàn bộ tích hợp, nên bạn có thể tùy chỉnh thoải mái. WebReaderAPI là một HTTPS API đơn thuần mà bất kỳ HTTP client Python nào cũng gọi được. ### Cái này cần phiên bản LangChain nào? Bất kỳ phiên bản gần đây nào có `langchain_core`, `langchain-text-splitters` và `init_chat_model`. Tool decorator và class `Document` đã ổn định qua các bản phát hành gần đây. ### Làm thế nào để tránh đọc lại những trang không thay đổi? Lưu `final_url`, `word_count` và ngày đọc của mỗi lần. Đọc lại theo lịch, và chỉ re-embed một trang khi số từ hoặc content hash của nó thay đổi. Mỗi lần đọc lại tốn một credit, nên hãy chọn nhịp khớp với nguồn. ### Nếu một số trang bị từ chối thì sao? Chúng raise `PageError` với một mã như `blocked_by_robots`, và không tốn credit. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # MCP server đọc trang web cho Claude, Cursor và các MCP client khác > MCP server đọc trang web cho Claude Desktop và Cursor: tool read_url bằng Python dài 40 dòng trả về Markdown sạch. Không cần KYC, thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/docs/mcp/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Cấp cho bất kỳ MCP client nào một tool `read_url` biến đường link thành Markdown sạch. Server chỉ là một file Python ngắn bạn chạy trên máy của mình; khóa API nằm trong biến môi trường của nó. **Câu trả lời nhanh — Làm sao để thêm trình đọc trang web vào Claude Desktop hoặc Cursor bằng MCP?** Chạy một MCP server nhỏ cung cấp tool `read_url` gọi **WebReaderAPI**, rồi đăng ký nó trong phần cài đặt MCP của client với khóa đặt trong `env`. Sau đó model có thể đọc bất kỳ trang công khai nào dưới dạng Markdown sạch. Mỗi lần đọc trang tốn 1 credit, 2 credit khi cần trình duyệt, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## MCP server trong nháy mắt | Thuộc tính | Giá trị | | --- | --- | | Ngôn ngữ | Python 3.10+, với các package `mcp` và `httpx` | | Transport | stdio: client khởi chạy server như một tiến trình cục bộ | | Công cụ | `read_url(url, max_chars)` → title, URL nguồn, rồi Markdown của trang | | Vì sao không dùng web_fetch | Claude Code và OpenClaw đã có sẵn một tool tích hợp trùng tên đó | | Khóa | Đọc từ `WEBREADER_API_KEY` trong môi trường của server | | Tính phí | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | ## Vì sao dùng tool read_url mà không dùng web_fetch? Vì hai tool cùng tên sẽ gây nhầm lẫn cho cả client lẫn model. Claude Code và OpenClaw đã có sẵn một tool tên là `web_fetch`. Một tên khác, `read_url`, cùng mô tả rõ ràng giúp model chọn tool của chúng ta khi cần nội dung chính của trang, kể cả trang JavaScript và PDF. Tool trả về văn bản, không phải JSON. Model xử lý một header ngắn và Markdown tốt hơn các field lồng nhau, và header giữ URL nguồn trong tầm mắt để câu trả lời có thể trích dẫn. *webreader_mcp.py* ```python import os import httpx from mcp.server.fastmcp import FastMCP API = "https://webreaderapi.com/api/v1/read" KEY = os.environ["WEBREADER_API_KEY"] mcp = FastMCP("webreaderapi") @mcp.tool() def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown. Use it when the user gives a link or when a page must be read to answer. max_chars caps the length of the returned text (1,000 to 500,000). """ params = {"url": url, "max_chars": max(1000, min(int(max_chars), 500000))} try: resp = httpx.get(API, params=params, headers={"Authorization": "Bearer " + KEY}, timeout=75) except httpx.HTTPError as exc: return "Network error while reading the page: " + str(exc) body = resp.json() if resp.status_code != 200: err = body.get("error", {}) return "Could not read the page: " + err.get("code", str(resp.status_code)) + ". " + err.get("message", "") title = body.get("title") or url return "# " + title + "\nSource: " + body.get("final_url", url) + "\n\n" + body.get("markdown", "") if __name__ == "__main__": mcp.run() ``` ## Làm sao để cài đặt và kiểm tra server? Tạo một virtual environment, cài `mcp` và `httpx`, rồi lưu file ở trên. Package `mcp` là SDK Python chính thức của Model Context Protocol; `FastMCP` biến một hàm Python có type thành tool, dùng docstring làm mô tả. Trước khi nối vào client, hãy chạy file một lần từ terminal với khóa đã đặt. Nó chờ im lặng một client trên stdin, nghĩa là đã khởi động đúng; dừng bằng Ctrl+C. *Cài đặt* ```bash python -m venv .venv . .venv/bin/activate pip install "mcp[cli]" httpx WEBREADER_API_KEY="your-key" python webreader_mcp.py ``` ## Làm sao để đăng ký nó trong Claude Desktop? Mở phần cài đặt developer của Claude Desktop, sửa `claude_desktop_config.json`, rồi thêm một mục dưới `mcpServers`. Dùng đường dẫn tuyệt đối: Python của virtual environment và file server. Đặt khóa trong `env` để nó không bao giờ xuất hiện trong tham số của tool hay trong cuộc trò chuyện. Khởi động lại Claude Desktop, và `read_url` xuất hiện trong danh sách tools. Cursor đọc cùng cấu trúc `mcpServers` từ file cấu hình MCP riêng, và Claude Code có thể đăng ký cùng lệnh đó bằng lệnh `claude mcp add`. Với OpenClaw, xem [trang OpenClaw](https://webreaderapi.com/vi/docs/openclaw/). *claude_desktop_config.json* ```json { "mcpServers": { "webreaderapi": { "command": "/home/you/webreader/.venv/bin/python", "args": ["/home/you/webreader/webreader_mcp.py"], "env": { "WEBREADER_API_KEY": "your-key" } } } } ``` ## Làm sao để giữ các trang trong context của model? Giảm `max_chars`. Mặc định 20.000 ký tự đủ cho hầu hết bài viết và giữ cho một trang dài không lấp đầy context. Model đọc nhiều trang trong một câu trả lời sẽ làm tốt hơn với 8.000 đến 12.000 ký tự mỗi trang. Yêu cầu model chỉ đọc những trang nó cần, không phải mọi link nó thấy. Một câu ngắn trong hướng dẫn dự án, như "chỉ đọc tối đa ba trang mỗi câu hỏi", giúp kiểm soát cả chi phí lẫn context. ## Điều gì xảy ra khi một trang từ chối việc đọc? Tool trả về một thông báo ngắn kèm mã lỗi, như `blocked_by_robots` hoặc `target_refused`, và không bị tính phí. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Sau đó model có thể nói rằng trang không khả dụng cho trình đọc tự động và dùng nguồn khác. ## MCP server: câu hỏi thường gặp ### Có package MCP chính thức của WebReaderAPI không? Không. File trên trang này chính là tích hợp: 40 dòng bạn có thể đọc, sửa và tự chạy. Không cần cài gì từ chúng tôi, và khóa của bạn không bao giờ rời khỏi máy bạn ngoài các lần gọi tới API của chúng tôi. ### Model có thể tìm kiếm web bằng server này không? Không. `read_url` chỉ đọc một trang mà bạn hoặc model đã có địa chỉ. Kết hợp nó với bất kỳ tool tìm kiếm nào client của bạn cung cấp; model tìm kiếm, rồi đọc những trang quan trọng. ### Chi phí chạy một trợ lý với nó là bao nhiêu? 1 credit mỗi lần đọc trang, 2 credit khi cần trình duyệt. Một trợ lý đọc 50 trang mỗi ngày dùng khoảng 1.500 credit mỗi tháng, và 10.000 trang (3,75 US$) đủ cho khoảng sáu tháng. ### Server có hoạt động offline không? Không. Nó gọi `https://webreaderapi.com/api/v1/read` cho mỗi trang, nên cần kết nối internet và một khóa hợp lệ. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Đọc trang web trong n8n AI agent với WebReaderAPI > Đọc trang web trong n8n AI agent: cài HTTP Request tool biến mọi URL thành Markdown sạch, cùng workflow chạy theo lịch. Không cần KYC, thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/docs/n8n/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Node HTTP Request của n8n có thể hoạt động như một tool cho node AI Agent. Trỏ nó tới `/read`, để model điền URL, và agent có thể đọc bất kỳ trang công khai nào thành Markdown sạch mà không cần cài community node. **Câu trả lời nhanh — Làm sao để n8n AI agent đọc trang web?** Gắn node HTTP Request vào AI Agent của n8n như một tool, đặt method là `GET https://webreaderapi.com/api/v1/read` với credential Header Auth chứa **khóa API WebReaderAPI** của bạn, và để model tự định nghĩa tham số `url`. Bật Optimize Response để chỉ giữ `title`, `final_url` và `markdown`. Mỗi trang tốn 1 credit, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Tôi dùng những cài đặt HTTP Request nào? Tên các tùy chọn theo tài liệu node HTTP Request của n8n, đọc ngày 2026-10-22. | Cài đặt | Giá trị | | --- | --- | | Vị trí | Gắn vào node **AI Agent** như một tool | | Method | `GET` | | URL | `https://webreaderapi.com/api/v1/read` | | Xác thực | Generic credentials → **Header Auth** | | Credential Header Auth | Name `Authorization`, Value `Bearer ` theo sau là khóa API của bạn | | Send Query Parameters | Bật, **Using Fields Below** | | Tham số `url` | Do model định nghĩa (xem bên dưới) | | Tham số `max_chars` | Một giá trị cố định như `15000` | | Optimize Response | Bật · response type **JSON** · Include Fields **Selected**: `title`, `final_url`, `markdown` | ## Vì sao dùng node HTTP Request làm tool? Vì nó đã làm đủ mọi thứ API này cần: một request GET, một header và hai tham số truy vấn. n8n ghi rõ node HTTP Request có thể chạy như node thường hoặc được gắn vào AI agent như một tool, và một số tùy chọn chỉ có ở dạng tool. Không có gì của chúng tôi để cài hay cập nhật, và khóa nằm trong credential store của n8n chứ không nằm trong workflow. Hãy cấp cho n8n một khóa riêng, để lượng dùng của nó hiển thị tách biệt với các script khác và bạn có thể thu hồi riêng. Tạo nhiều khóa API, ví dụ mỗi agent hoặc dự án một khóa, và thu hồi bất kỳ khóa nào từ dashboard của bạn. ## Model chọn URL để đọc như thế nào? Để model định nghĩa tham số `url`. n8n hiện một nút cạnh các trường tham số phù hợp để giao giá trị cho model, và bạn cũng có thể tự viết biểu thức bằng hàm `$fromAI()` của n8n. Hàm nhận một key, một description, một type và một default tùy chọn, ví dụ key `url`, description "The http or https address of the page to read" và type `string`. n8n ghi rõ `$fromAI()` chỉ hoạt động trong các tool gắn với node AI Agent. Hãy viết description của tool bằng lời lẽ dễ hiểu, chẳng hạn "Reads a public web page and returns its main content as Markdown", để agent biết khi nào nên gọi nó. ## Vì sao bật Optimize Response? Vì mọi thứ một tool trả về đều đi vào context của model. Optimize Response là tùy chọn chỉ dành cho tool, giúp giảm dữ liệu truyền cho model. Với response type JSON bạn có thể chỉ gồm các field được chọn; giữ `title`, `final_url` và `markdown` và bỏ phần còn lại. Hãy giới hạn độ dài ngay phía chúng tôi bằng `max_chars`, tùy chọn cắt Markdown trước khi nó rời khỏi API. Các response type HTML và Text của node có tùy chọn Truncate Response riêng, nhưng với phản hồi JSON của chúng tôi thì `max_chars` là cách kiểm soát đơn giản hơn. ## Làm sao dùng API trong một workflow chạy theo lịch? Dùng node HTTP Request như node thường, không phải tool, đặt sau một Schedule Trigger. Gán cho nó một `url` cố định, chẳng hạn changelog hoặc trang giá bạn theo dõi, và gửi field `markdown` sang node tiếp theo: một file, một database, một tin nhắn chat hoặc so sánh với lần chạy trước. Mỗi lần chạy đọc một trang cho mỗi URL. Theo dõi 20 trang mỗi ngày một lần tốn khoảng 600 credit một tháng cho các trang không cần trình duyệt, nên 10.000 trang (3,75 US$) dùng được hơn một năm. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. ## Điều gì xảy ra khi một trang từ chối việc đọc? Node nhận phản hồi lỗi với mã như `blocked_by_robots` hoặc `target_refused`, và không bị tính phí. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Trong agent, hãy để tool trả về lỗi để model giải thích hoặc thử nguồn khác; trong workflow chạy theo lịch, chuyển lỗi sang một nhánh ghi log. [Trang lỗi](https://webreaderapi.com/vi/docs/errors/) liệt kê mọi mã. ## Tôi có thể thử gọi trước khi dựng workflow không? Chạy cùng lệnh gọi đó trong terminal bằng curl, như trong [các công thức curl](https://webreaderapi.com/vi/docs/curl/). Nếu chạy được ở đó mà lỗi trong n8n, nguyên nhân nằm ở cài đặt node, thường nhất là giá trị credential thiếu tiền tố `Bearer ` hoặc tham số `url` bị để trống. ## n8n: câu hỏi thường gặp ### Tôi có cần community node cho WebReaderAPI không? Không. Node HTTP Request có sẵn là đủ, dùng làm tool cho AI Agent hoặc làm node thường trong bất kỳ workflow nào. ### Agent có đọc được trang JavaScript hoặc PDF không? Có. API tự quyết định khi nào cần dùng trình duyệt (`render=auto`) và đọc PDF dưới dạng văn bản. Một trang được render tốn 2 credit; Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. ### Làm sao để agent không đọc quá nhiều trang? Hãy nói rõ nó được đọc bao nhiêu trang trong system message của agent, và giữ `max_chars` ở mức vừa phải. Mỗi lần đọc là một tool call, nên giới hạn bạn đặt cho số tool call của agent cũng giới hạn luôn số trang. ### Làm sao để thanh toán credit? Nạp tiền từ 25 US$ ở BTC, USDT, USDC, ETH, SOL, LTC, rồi mua một pack. WebReaderAPI không yêu cầu giấy tờ tùy thân, không selfie và không giấy tờ công ty. ## Nguồn 1. [Node HTTP Request](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) — n8n docs (read 2026-10-22) 2. [Thông tin xác thực cho HTTP Request](https://docs.n8n.io/integrations/builtin/credentials/httprequest/) — n8n docs (read 2026-10-22) 3. [Node AI Agent](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/) — n8n docs (read 2026-10-22) 4. [Để AI tự chỉ định tham số cho tool bằng $fromAI()](https://docs.n8n.io/advanced-ai/examples/using-the-fromai-function/) — n8n docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Chuyển trang web sang Markdown trong Node.js > Chuyển trang web sang Markdown trong Node.js bằng fetch: pool concurrency nhỏ và vòng polling job. Từ 0,07 US$/1K trang, không cần KYC, trả bằng crypto. - URL: https://webreaderapi.com/vi/docs/node/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Node.js 18 trở lên đã có sẵn `fetch`, nên bạn không cần cài thêm dependency nào. Ba công thức: đọc một trang, đọc một danh sách với pool concurrency nhỏ, và theo dõi một crawl job cho đến khi xong. **Câu trả lời nhanh — Làm sao để chuyển một trang web sang Markdown trong Node.js?** Dùng `fetch` có sẵn của Node.js 18+: gọi `https://webreaderapi.com/api/v1/read?url=…` với khóa API của bạn trong header `Authorization` và đọc `markdown` từ câu trả lời JSON. **WebReaderAPI** trả về nội dung chính của trang kèm tiêu đề, tác giả và ngày. Một trang tốn 1 credit, 2 credit nếu dùng trình duyệt, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Tôi cần gì? Node.js 18 trở lên, để có `fetch` toàn cục, và một khóa API trong biến môi trường `WEBREADER_API_KEY`. Các ví dụ là ES module: lưu chúng với đuôi `.mjs`, hoặc đặt `"type": "module"` trong `package.json` của bạn, để `await` ở cấp cao nhất hoạt động được. Các chú thích JSDoc mô tả cấu trúc của response, nên các editor như VS Code sẽ gợi ý hoàn thành mà không cần đến bước build TypeScript. *read.mjs: một trang* ```javascript /** * @typedef {Object} Page * @property {string} url * @property {string} final_url * @property {number} status_code * @property {boolean} rendered * @property {number} credits_used * @property {string} [title] * @property {string} [author] * @property {string} [published_at] * @property {string} [language] * @property {string} [markdown] * @property {number} word_count */ /** @returns {Promise} */ export async function readPage(url, options = {}) { const params = new URLSearchParams({ url, ...options }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, signal: AbortSignal.timeout(75_000), }); const body = await res.json(); if (!res.ok) throw Object.assign(new Error(body.error.message), { code: body.error.code }); return body; } const page = await readPage('https://example.com/docs/getting-started', { max_chars: '20000' }); console.log(page.title, page.word_count, 'words,', page.credits_used, 'credit(s)'); ``` ## Làm sao để đọc một danh sách URL mà không chạm rate limit? Chạy một số lượng worker cố định lấy URL từ một hàng đợi chung. Cách này đơn giản hơn `Promise.all` trên toàn bộ danh sách, vì làm vậy sẽ khởi chạy mọi request cùng lúc và chạm `429 concurrency_limit`. Mỗi tài khoản có giới hạn số trang đọc cùng lúc; dashboard của bạn hiển thị giới hạn đó, và bộ phận hỗ trợ có thể tăng lên. Pool bên dưới giữ lỗi ngay cạnh kết quả, nên một trang bị từ chối không làm dừng cả lượt chạy. Những lần bị từ chối như `blocked_by_robots` là chung thẩm và miễn phí; hãy đếm chúng rồi đi tiếp. *pool.mjs: một danh sách URL, 8 cái một lúc* ```javascript import { readPage } from './read.mjs'; export async function readAll(urls, workers = 8) { const queue = [...urls]; const results = []; async function worker() { while (queue.length) { const url = queue.shift(); try { const page = await readPage(url, { max_chars: '50000' }); results.push({ url, page }); } catch (err) { results.push({ url, error: err.code ?? err.name }); } } } await Promise.all(Array.from({ length: workers }, worker)); return results; } const urls = Array.from({ length: 30 }, (_, i) => `https://example.com/blog/post-${i + 1}`); for (const r of await readAll(urls)) console.log(r.url, '->', r.error ?? r.page.title); ``` ## Làm sao để theo dõi một crawl job trong Node.js? Khởi động job bằng `POST https://webreaderapi.com/api/v1/crawl`, rồi đọc `https://webreaderapi.com/api/v1/jobs/{job_id}` trong một vòng lặp. Truyền `cursor` mỗi lần `next_cursor` trả về; khi không còn cursor và trạng thái là `done`, job đã xong. Hãy chờ giữa các lần poll rỗng và tăng gấp đôi thời gian chờ tối đa 30 giây, vì một crawl tôn trọng Crawl-delay của trang có thể chậm. Trang [batch và crawl](https://webreaderapi.com/vi/docs/crawl/) mô tả cách crawl chọn trang và cách `limit` giới hạn những gì nó đọc. *crawl.mjs: khởi động một crawl và thu thập mọi trang* ```javascript const headers = { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json', }; const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); const start = await fetch('https://webreaderapi.com/api/v1/crawl', { method: 'POST', headers, body: JSON.stringify({ url: 'https://docs.example.com/', limit: 300, include_paths: ['/docs/*'] }), }); const { job_id } = await start.json(); const pages = []; let cursor = ''; let wait = 2000; for (;;) { const url = `https://webreaderapi.com/api/v1/jobs/${job_id}${cursor ? `?cursor=${encodeURIComponent(cursor)}` : ''}`; const job = await (await fetch(url, { headers })).json(); pages.push(...job.results.filter((r) => !r.error)); if (job.next_cursor) { cursor = job.next_cursor; wait = 2000; continue; } if (job.status === 'done') break; await sleep(wait); wait = Math.min(wait * 2, 30000); } console.log(pages.length, 'pages read, job', job_id); ``` ## Làm sao để truyền kết quả cho model? Gửi Markdown, không phải toàn bộ JSON. Trường `markdown` là thứ model nên đọc; phần metadata thì nên giữ để trích dẫn nguồn. Thêm tiêu đề và `final_url` vào đầu, để model có thể nêu nguồn, và giữ `max_chars` ở kích thước mà context của model chứa được, ví dụ 20.000 ký tự mỗi trang. Trang [OpenAI function-calling](https://webreaderapi.com/vi/docs/openai/) trình bày đầy đủ vòng lặp tool bằng Python; chính hàm `readPage` ở trên cũng có thể làm thân tool trong một agent Node.js. ## Node.js: các câu hỏi thường gặp ### Cái này có chạy trong Deno, Bun hay trình duyệt không? Deno và Bun hỗ trợ cùng `fetch` và ES module. Đừng gọi API từ trang trình duyệt: khóa API sẽ lộ cho mọi người truy cập. Hãy gọi từ server của bạn. ### Có package npm không? Không. Các hàm trên trang này là toàn bộ phần tích hợp. WebReaderAPI chỉ là HTTPS và JSON thuần, nên bạn giữ được quyền kiểm soát retry, timeout và logging. ### Làm sao để xử lý lỗi 429 concurrency_limit? Giảm số worker, hoặc retry sau một khoảng chờ ngắn tăng gấp đôi mỗi lần. Lỗi 429 không tốn gì, và [trang errors](https://webreaderapi.com/vi/docs/errors/) có sẵn một hàm backoff. ### Đọc 10.000 trang tốn bao nhiêu? Khoảng 10.000 credit cho các trang thường, nhiều hơn nếu một số trang cần dùng trình duyệt. 10.000 trang tốn 3,75 US$; Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # OpenAI function calling: một tool read_url cho model của bạn > OpenAI function calling với một tool read_url: JSON schema và vòng lặp Python biến link thành Markdown sạch cho model. Không cần KYC, thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/docs/openai/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Mô tả một hàm, `read_url`, và chạy nó khi model yêu cầu. Model chọn những trang nào để đọc; code của bạn gọi API và trả lại Markdown. Cùng schema đó hoạt động với các model khác hỗ trợ function calling. **Câu trả lời nhanh — Làm thế nào để cho một model OpenAI đọc trang web bằng function calling?** Khai báo một hàm `read_url` trong danh sách `tools`, rồi chạy một vòng lặp: khi model trả về một tool call, gọi endpoint `/read` của **WebReaderAPI** với URL và gửi Markdown trả về dưới dạng message `tool`. Mỗi trang tốn 1 credit, 2 credit nếu dùng trình duyệt, tính từ 0,07 US$/1K trang kể từ tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Schema read_url trông như thế nào? Hai tham số là đủ: `url` cần đọc, bắt buộc, và một `max_chars` tùy chọn cho phép model giữ trang dài ngắn gọn. Phần description là quan trọng nhất: nó cho model biết tool trả về gì và khi nào nên dùng. Hãy giữ nó thực tế và ngắn gọn. Chúng tôi đặt tên tool là `read_url` thay vì `web_fetch` để tránh trùng với các tool mà một số agent runtime đã cung cấp sẵn dưới tên đó. *Định nghĩa tool* ```json { "type": "function", "function": { "name": "read_url", "description": "Read a public web page and return its main content as Markdown, with its title and source URL. Use it when the user gives a link or when a page must be read to answer.", "parameters": { "type": "object", "properties": { "url": { "type": "string", "description": "The http or https address of the page." }, "max_chars": { "type": "integer", "description": "Most characters to return, 1000 to 500000. Default 20000." } }, "required": ["url"], "additionalProperties": false } } } ``` ## Vòng lặp tool calling hoạt động như thế nào? Gửi cuộc hội thoại kèm danh sách `tools`. Nếu phản hồi chứa tool call, chạy từng cái, thêm kết quả dưới dạng message với role `tool` và `tool_call_id` tương ứng, rồi hỏi model lần nữa. Khi phản hồi trả về mà không có tool call, đó là câu trả lời cuối cùng. Giới hạn số vòng lặp. Ba hoặc bốn vòng là đủ cho một câu hỏi về vài trang, và giới hạn này bảo vệ bạn khỏi một model liên tục đòi thêm. *Python: vòng lặp đầy đủ với package openai* ```python import json import os import requests from openai import OpenAI READ_URL = { "type": "function", "function": { "name": "read_url", "description": "Read a public web page and return its main content as Markdown, with its title and source URL.", "parameters": { "type": "object", "properties": { "url": {"type": "string", "description": "The http or https address of the page."}, "max_chars": {"type": "integer", "description": "Most characters to return. Default 20000."}, }, "required": ["url"], "additionalProperties": False, }, }, } def read_url(url, max_chars=20000): resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": url, "max_chars": max_chars}, timeout=75, ) body = resp.json() if resp.status_code != 200: return "Could not read the page: " + body["error"]["code"] return "# " + (body.get("title") or url) + "\nSource: " + body["final_url"] + "\n\n" + body["markdown"] client = OpenAI() model = os.environ.get("OPENAI_MODEL", "gpt-4.1-mini") messages = [{"role": "user", "content": "What does https://example.com/blog/first-post announce? Answer in two sentences."}] for _ in range(4): reply = client.chat.completions.create(model=model, messages=messages, tools=[READ_URL]) msg = reply.choices[0].message if not msg.tool_calls: print(msg.content) break messages.append(msg) for call in msg.tool_calls: args = json.loads(call.function.arguments) messages.append({"role": "tool", "tool_call_id": call.id, "content": read_url(**args)}) ``` ## Làm thế nào để giảm lượng token dùng và chi phí? Ba cài đặt quan trọng. Giữ `max_chars` vừa phải, khoảng 8.000 đến 20.000 ký tự mỗi trang, vì mọi ký tự bạn trả về đều được model đọc. Giữ `main_content=true` mặc định, để menu và footer không bao giờ lọt vào context. Và giới hạn vòng lặp, như trên, để một câu hỏi không thể kích hoạt hàng chục lần đọc. Về phía chúng tôi, chi phí tính theo trang, không theo ký tự: 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Một trợ lý hỗ trợ đọc 300 trang mỗi ngày dùng khoảng 9.000 credit mỗi tháng, nằm trong 10.000 trang (3,75 US$). ## Schema có hoạt động với các model khác không? Có, với thay đổi nhỏ ở phần wrapper. Hầu hết API tool calling đều nhận JSON Schema cho tham số và tên cùng description cho tool, nên `read_url` chuyển được giữa các provider nguyên vẹn. [Trang MCP](https://webreaderapi.com/vi/docs/mcp/) đóng gói cùng hàm đó cho các client nói Model Context Protocol, và [trang LangChain](https://webreaderapi.com/vi/docs/langchain/) bọc nó cho các agent LangChain và LlamaIndex. ## Model nên thấy gì khi một trang bị từ chối? Một câu ngắn gọn, rõ ràng, như vòng lặp trên trả về: "Could not read the page: blocked_by_robots". Model xử lý tốt điều đó và chuyển sang nguồn khác hoặc báo cho người dùng. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Không có phản hồi từ chối nào trong số này dùng credit. ## Function calling: các câu hỏi thường gặp ### Việc này cần Responses API hay Chat Completions? Ví dụ dùng Chat Completions với tham số `tools`. Cùng định nghĩa hàm và cùng body `read_url` hoạt động với các interface OpenAI khác chấp nhận function tools; chỉ có vòng lặp xung quanh chúng thay đổi. ### Model có thể đọc nhiều trang trong một lượt không? Có. Một phản hồi có thể chứa nhiều tool call; vòng lặp chạy từng cái và trả về mọi kết quả trước khi hỏi lại model. Giữ `max_chars` thấp hơn khi model đọc nhiều trang cùng lúc. ### Khóa API có bị lộ cho model không? Không. Khóa vẫn nằm trong môi trường của code bạn. Model chỉ thấy tên tool, description của nó và văn bản mà hàm của bạn trả về. ### Một trang bị từ chối tốn bao nhiêu? Không tốn gì. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # OpenClaw: thêm trình đọc trang web qua MCP, bên cạnh web_fetch > Thêm trình đọc trang web vào OpenClaw qua MCP: openclaw mcp add, doctor --probe, và read_url bổ sung cho web_fetch. Không cần KYC, trả bằng crypto. - URL: https://webreaderapi.com/vi/docs/openclaw/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) OpenClaw đã có tool `web_fetch` cho các trang nhẹ. Thêm MCP server của chúng tôi cho agent một trình đọc thứ hai, `read_url`, cho các trang JavaScript, PDF và tài liệu dài hơn. Cài đặt chỉ với một lệnh. **Câu trả lời nhanh — Làm thế nào để thêm web page reader API vào OpenClaw?** Lưu MCP server **WebReaderAPI**, rồi đăng ký nó bằng `openclaw mcp add webreaderapi --command … --arg … --env WEBREADER_API_KEY=…` và kiểm tra bằng `openclaw mcp doctor --probe`. Agent có thêm tool `read_url` bên cạnh `web_fetch` có sẵn, có thể render JavaScript và đọc PDF. Mỗi trang tốn 1 credit, tính từ 0,07 US$/1K trang kể từ tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## web_fetch và read_url của OpenClaw cạnh nhau | Thuộc tính | Giá trị | | --- | --- | | web_fetch (có sẵn) | Chạy cục bộ, trích xuất nội dung chính bằng Readability, trả về Markdown hoặc text | | Giới hạn của web_fetch | Không thực thi JavaScript; mặc định `maxChars` và tối đa 20.000 ký tự (tài liệu OpenClaw) | | read_url (tool MCP của chúng tôi) | Render JavaScript khi cần, PDF tới 100 trang, tới 500.000 ký tự | | Chi phí read_url | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Trình thu thập của chúng tôi | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, tuân thủ robots.txt | | Hồ sơ công cụ | Các công cụ MCP xuất hiện trong hồ sơ `coding` và `messaging`, không có trong `minimal` | ## Tại sao lại thêm trình đọc khi OpenClaw đã có web_fetch? Vì chúng xử lý những trang khác nhau. Tài liệu của OpenClaw nói rằng `web_fetch` luôn chạy cục bộ, dùng Readability để trích xuất nội dung chính và không thực thi JavaScript; nó chỉ sang công cụ Web Browser cho các trang nặng JavaScript hoặc cần đăng nhập. Cài đặt `maxChars` của nó mặc định là 20.000 ký tự và bị giới hạn ở mức đó. Giữ `web_fetch` cho các trang nhẹ, tải nhanh. Thêm `read_url` cho các trang dựng nội dung bằng JavaScript, cho PDF và cho tài liệu dài mà bạn muốn nhiều hơn 20.000 ký tự. Tài liệu của OpenClaw cũng lưu ý rằng plugin Firecrawl chính thức hiện là nhà cung cấp đi kèm duy nhất mà `web_fetch` có thể dự phòng. ## Làm cách nào để đăng ký MCP server trong OpenClaw? Đầu tiên hãy thiết lập Python server từ [trang MCP](https://webreaderapi.com/vi/docs/mcp/): một file cộng với các gói `mcp` và `httpx`. Sau đó lưu nó vào OpenClaw bằng `openclaw mcp add`. Tài liệu registry của OpenClaw mô tả các cờ stdio `--command`, `--arg`, `--env` và `--cwd`, và lưu các định nghĩa đã lưu dưới `mcp.servers` trong cấu hình của nó. Chạy `openclaw mcp doctor --probe` sau đó. Nếu không có `--probe`, doctor chỉ kiểm tra cấu hình đã lưu; có nó, nó cũng xác nhận rằng các server được bật kết nối được. *Đăng ký và kiểm tra server* ```bash openclaw mcp add webreaderapi \ --command /home/you/webreader/.venv/bin/python \ --arg /home/you/webreader/webreader_mcp.py \ --env WEBREADER_API_KEY=your-key openclaw mcp doctor webreaderapi --probe ``` ## Agent có thấy read_url không? Trong các hồ sơ thông thường thì có. Tài liệu registry của OpenClaw nói rằng OpenClaw nhúng hiển thị các công cụ MCP đã cấu hình trong hồ sơ `coding` và `messaging`. Hồ sơ `minimal` ẩn chúng đi, và `tools.deny: ["bundle-mcp"]` tắt chúng, nên hãy kiểm tra hai cài đặt đó nếu công cụ không xuất hiện. Phần mô tả của công cụ cho mô hình biết khi nào nên ưu tiên nó: các trang cần JavaScript, PDF và lượt đọc dài. Mô hình vẫn có thể dùng `web_fetch` cho mọi thứ còn lại. ## read_url xử lý những trang nó đọc như thế nào? Giống hệt như mọi lần gọi API của chúng tôi. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Vì vậy, các trang nằm sau đăng nhập nằm ngoài phạm vi của `read_url`. Với một trang mà bạn đã đăng nhập, công cụ trình duyệt của chính OpenClaw, chạy với phiên của bạn, mới là công cụ phù hợp. ## Đọc trang qua OpenClaw tốn bao nhiêu? Một credit cho mỗi trang trả về nội dung, hai khi cần đến trình duyệt, không tính gì cho các lần từ chối và lỗi. Một trợ lý đọc 30 trang mỗi ngày qua các kênh chat của nó dùng khoảng 900 credit mỗi tháng: 10.000 trang (3,75 US$) dùng được gần một năm. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. Hãy cấp cho OpenClaw một khóa API riêng, để mức dùng của nó hiển thị tách biệt với các dự án khác của bạn. ## OpenClaw: các câu hỏi thường gặp ### WebReaderAPI có phải là nhà cung cấp tích hợp sẵn của OpenClaw không? Không. Nó kết nối như một MCP server, thứ mà OpenClaw hỗ trợ mà không cần mã plugin nào. MCP server là file Python ngắn từ [trang MCP](https://webreaderapi.com/vi/docs/mcp/) của chúng tôi. ### Tôi có nên tắt web_fetch không? Không cần. Cả hai công cụ có thể bật cùng lúc; phần mô tả cho mô hình biết cái nào phù hợp. Chỉ tắt `web_fetch` nếu bạn muốn mọi lượt đọc đi qua một chỗ để ghi log. ### Tôi có thể quản lý server từ giao diện web của OpenClaw không? Tài liệu của OpenClaw mô tả cài đặt MCP trong Control UI của nó, vốn chỉnh sửa cùng các định nghĩa đã lưu như dòng lệnh. Hãy dùng cái nào bạn thích hơn. ### Nó có hoạt động trong thiết lập OpenClaw chạy trong sandbox không? MCP server là một tiến trình cục bộ cần truy cập internet để đến `https://webreaderapi.com/api/v1/read`. Hãy kiểm tra rằng sandbox của bạn cho phép tiến trình khởi động và thực hiện lời gọi HTTPS đó. ## Nguồn 1. [Công cụ web](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) 2. [Web Fetch](https://docs.openclaw.ai/tools/web-fetch) — OpenClaw docs (read 2026-10-22) 3. [Quản lý các MCP server đã lưu](https://docs.openclaw.ai/cli/mcp/registry) — OpenClaw docs (read 2026-10-22) 4. [MCP trong Control UI](https://docs.openclaw.ai/cli/mcp/control-ui) — OpenClaw docs (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Chuyển trang web sang Markdown trong Python > Chuyển trang web sang Markdown trong Python: requests, httpx async giới hạn đồng thời, tác vụ hàng loạt và RAG. Từ 0,07 US$/1K trang, không cần KYC. - URL: https://webreaderapi.com/vi/docs/python/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Bốn công thức bao quát hầu hết dự án Python: đọc một trang bằng requests, đọc nhiều trang đồng thời bằng httpx, giao một danh sách cho tác vụ hàng loạt và chia Markdown thành các đoạn cho vector store. **Câu trả lời nhanh — Làm cách nào để chuyển một trang web sang Markdown trong Python?** Gọi **WebReaderAPI** với `requests.get("https://webreaderapi.com/api/v1/read", params={"url": ...})` và khóa của bạn trong header `Authorization`; câu trả lời JSON chứa nội dung chính của trang trong `markdown`. Với nhiều trang, dùng `httpx.AsyncClient` với một semaphore hoặc một tác vụ hàng loạt. Một trang tốn 1 credit, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Tôi cần cài gì? Python 3.9 trở lên và một HTTP client. `requests` là đủ cho các script đọc từng trang một; `httpx` thêm hỗ trợ async để đọc nhiều trang song song. Không cần gói nào của chúng tôi: API chỉ là HTTPS và JSON thuần. Đừng để khóa trong mã. Hãy đọc nó từ biến môi trường `WEBREADER_API_KEY`, như mọi ví dụ bên dưới làm, và cấp cho mỗi dự án một khóa riêng để bạn có thể thu hồi một khóa mà không ảnh hưởng đến các khóa khác. *Cài đặt* ```bash pip install requests httpx export WEBREADER_API_KEY="your-key" ``` ## Làm cách nào để đọc một trang bằng requests? Gửi `url` và bất kỳ tùy chọn nào dưới dạng query parameter, raise khi gặp lỗi HTTP, và đọc các field bạn cần. Ví dụ giữ nội dung chính, giới hạn ở 20.000 ký tự cho mô hình, và in ra chi phí của lần gọi. *requests: một trang* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def read(url, **options): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) if resp.status_code != 200: error = resp.json()["error"] raise RuntimeError(error["code"] + ": " + error["message"]) return resp.json() page = read("https://example.com/docs/getting-started", max_chars=20000) print(page["title"], page["word_count"], "words", page["credits_used"], "credit(s)") print(page["markdown"][:500]) ``` ## Làm cách nào để đọc nhiều trang cùng lúc bằng httpx? Dùng một `httpx.AsyncClient` và một `asyncio.Semaphore` đặt ở mức bằng hoặc dưới giới hạn đồng thời của bạn. Mỗi tài khoản có giới hạn số trang đọc cùng lúc; dashboard của bạn hiển thị giới hạn đó, và bộ phận hỗ trợ có thể tăng lên. Lỗi từ một trang không nên chặn các trang khác, nên ví dụ thu thập chúng bên cạnh kết quả thay vì raise. Nếu bạn vượt giới hạn, API trả về `429 concurrency_limit`; không tính phí gì, nhưng trang không được đọc. Giữ semaphore dưới giới hạn đơn giản hơn là thử lại. *httpx: tối đa 10 trang cùng lúc* ```python import asyncio import os import httpx API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} async def read_one(client, sem, url): async with sem: resp = await client.get(API, params={"url": url, "max_chars": 50000}) body = resp.json() if resp.status_code == 200: return url, body, None return url, None, body["error"]["code"] async def read_many(urls, limit=10): sem = asyncio.Semaphore(limit) async with httpx.AsyncClient(headers=HEADERS, timeout=75) as client: return await asyncio.gather(*(read_one(client, sem, u) for u in urls)) if __name__ == "__main__": urls = [f"https://example.com/blog/post-{n}" for n in range(1, 21)] for url, page, error in asyncio.run(read_many(urls)): print(url, "->", error or page["title"]) ``` ## Khi nào tôi nên dùng batch job thay vào đó? Khi bạn có danh sách tối đa 100 URL và không cần từng trang ngay khi nó sẵn sàng. Batch job chạy phía chúng tôi, nên script của bạn không giữ kết nối nào mở và không cần logic thử lại. Khởi động nó bằng `POST https://webreaderapi.com/api/v1/batch`, rồi thu thập kết quả từ job bằng vòng lặp cursor hiển thị trên [trang batch và crawl](https://webreaderapi.com/vi/docs/crawl/). Với cả một trang web, hãy khởi động crawl thay vào đó và để nó theo sitemap và các liên kết; cùng trang đó có vòng lặp hoàn chỉnh ghi một file `.md` cho mỗi trang. *Khởi chạy job batch* ```python import os import requests urls = [f"https://example.com/changelog/{year}" for year in range(2020, 2027)] resp = requests.post( "https://webreaderapi.com/api/v1/batch", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"urls": urls, "options": {"format": "markdown", "main_content": True}}, timeout=30, ) resp.raise_for_status() print("job:", resp.json()["job_id"]) ``` ## Làm sao để chia Markdown thành các chunk cho RAG? Chia theo heading trước, rồi theo kích thước. Heading đánh dấu nơi chủ đề thay đổi, nên một chunk bắt đầu từ heading sẽ dễ được retriever khớp hơn. Giữ tiêu đề trang và đường dẫn heading trong metadata của mỗi chunk: chúng giúp model trích dẫn đúng phần. Hàm bên dưới không cần thư viện bổ sung. Nó cắt tại các heading `#` đến `###`, rồi chia bất kỳ phần dài nào theo dòng trống để nằm dưới mức giới hạn ký tự. Lưu `final_url` cùng mỗi chunk, để hai địa chỉ dẫn tới cùng một trang không tạo ra bản trùng lặp. *Chia chunk Markdown theo heading* ```python import re def chunk_markdown(page, max_chars=2000): """Split a /read response into chunks with a heading path and the source URL.""" chunks, path, buf = [], [], [] def flush(): text = "\n".join(buf).strip() while text: part = text[:max_chars] cut = part.rfind("\n\n") if len(text) > max_chars and cut > max_chars // 2: part = part[:cut] chunks.append({"text": part.strip(), "section": " > ".join(path), "title": page.get("title"), "source": page["final_url"]}) text = text[len(part):].strip() buf.clear() for line in page["markdown"].splitlines(): m = re.match(r"^(#{1,3}) (.+)", line) if m: flush() level = len(m.group(1)) path[:] = path[: level - 1] + [m.group(2).strip()] buf.append(line) flush() return chunks ``` ## Một job Python tốn bao nhiêu? Đếm số trang, không đếm số truy vấn. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Đọc 2.000 trang tài liệu không dùng trình duyệt tốn khoảng 2.000 credit, mà 10.000 trang (3,75 US$) đủ cho gấp năm lần. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng, nên một pipeline chạy mỗi tháng một lần chỉ tốn phần nó đọc. ## Python: các câu hỏi thường gặp ### Có package Python chính thức không? Không. Đoạn code trên trang này là tất cả những gì bạn cần: WebReaderAPI là một HTTPS API thuần, và `requests` hoặc `httpx` nói trực tiếp với nó. ### Làm sao xử lý trang bị robots.txt từ chối? Kiểm tra mã lỗi. `blocked_by_robots` và `target_refused` là cuối cùng và miễn phí; ghi lại rồi tiếp tục. [Trang errors](https://webreaderapi.com/vi/docs/errors/) có một helper thử lại chỉ thử lại các mã có thể thay đổi. ### Tôi có thể dùng API từ Jupyter notebook không? Có. Công thức `requests` hoạt động nguyên trạng. Trong notebook, `await read_many(urls)` thay cho `asyncio.run`, vì notebook đã chạy sẵn event loop. ### Client của tôi nên dùng timeout bao nhiêu? Nhỉnh hơn một chút so với timeout của chính API: mặc định là 30 giây và tối đa 60, nên 75 giây phía client để dư chỗ cho một trang chậm và phản hồi. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Tham chiếu endpoint read: GET và POST /read > Tham chiếu endpoint read: mọi tham số của GET và POST /read, từ format và render đến country và max_chars, kèm ví dụ. Từ 0,07 US$/1K trang, không cần KYC. - URL: https://webreaderapi.com/vi/docs/read/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) `/read` tải một trang công khai, trích xuất nội dung chính và trả về dưới dạng Markdown, văn bản thuần hoặc HTML đã làm sạch. Trang này liệt kê mọi tham số, giá trị mặc định và chi phí của nó. **Câu trả lời nhanh — Endpoint read của WebReaderAPI nhận những tham số nào?** **WebReaderAPI** endpoint `/read` cần một tham số, `url`. Các tham số tùy chọn chọn đầu ra (`format`), giữ bao nhiêu phần của trang (`main_content`), có chạy trình duyệt hay không (`render`), liên kết và hình ảnh, quốc gia đọc, giới hạn ký tự và timeout. Một trang thường tốn 1 credit, 2 credit khi dùng trình duyệt, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## /read at a glance | Thuộc tính | Giá trị | | --- | --- | | Phương thức | `GET` với query parameter, hoặc `POST` với JSON body dùng cùng tên tham số | | URL | `https://webreaderapi.com/api/v1/read` | | Bắt buộc | `url`: một địa chỉ http hoặc https, tối đa 2.048 ký tự | | Đầu ra mặc định | Markdown của nội dung chính | | Tính phí | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Quốc gia | Chọn quốc gia để đọc trang cộng thêm 10 credit, vì khi đó trang được đọc qua kết nối dân cư (residential) tại quốc gia đó | | PDF | Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu | | Danh tính crawler | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | ## Đọc một trang (GET) `GET /api/v1/read` Tải một trang công khai và trả về nội dung chính dưới dạng Markdown, kèm metadata của trang. Các tham số nằm trong query string, được URL-encode. Ví dụ đọc một bài blog; ID, ngày tháng và giá trị chỉ mang tính minh họa. Xác thực: khóa API trong header `Authorization: Bearer API_KEY`. **Tham số** | Tên | Vị trí | Kiểu | Bắt buộc | Mô tả | | --- | --- | --- | --- | --- | | `url` | query | string | Có | Trang cần đọc: http hoặc https, tối đa 2.048 ký tự. Các địa chỉ private, local và cloud metadata bị từ chối. | | `format` | query | string | Không | `markdown` (mặc định), `text` (văn bản thuần, không markup) hoặc `html` (HTML đã làm sạch của nội dung). | | `main_content` | query | boolean | Không | `true` (mặc định) chỉ giữ bài viết hoặc nội dung chính; `false` chuyển đổi toàn bộ trang, kể cả menu và footer. | | `render` | query | string | Không | `auto` (mặc định) chỉ khởi động trình duyệt khi HTML thô chứa quá ít văn bản; `true` luôn luôn; `false` không bao giờ. Một trang được render tốn 2 credit. | | `include_links` | query | boolean | Không | `true` thêm một danh sách `links` gồm `{url, text}`. Mặc định `false`. | | `include_images` | query | boolean | Không | `true` giữ hình ảnh dưới dạng `![alt](src)` trong Markdown. Mặc định `false`. | | `country` | query | string | Không | Mã quốc gia hai chữ cái (ISO 3166-1 alpha-2). Trang được đọc từ một địa chỉ ở quốc gia đó, tốn thêm 10 credit (kết nối residential). | | `max_chars` | query | integer | Không | Cắt đầu ra tại số ký tự này, từ 1.000 đến 500.000. Hữu ích để vừa với context của model. | | `timeout` | query | integer | Không | Thời gian chờ trang web, từ 5 đến 60. Mặc định 30. | | `api_key` | query | string | Không | Khóa của bạn, nếu bạn không gửi header `Authorization`. | **Response** `200` ```json { "url": "https://example.com/blog/first-post", "final_url": "https://example.com/blog/first-post", "status_code": 200, "fetched_at": "2026-10-22T09:41:12Z", "rendered": false, "credits_used": 1, "title": "Our first post", "description": "Why we started this blog and what comes next.", "language": "en", "author": "Jane Doe", "published_at": "2026-10-01", "site_name": "Example Blog", "markdown": "# Our first post\n\nWe started this blog to share what we learn...\n\n## What comes next\n\n- A post every month\n- Notes from our team", "word_count": 612 } ``` *curl* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/first-post" \ -d format=markdown -d max_chars=20000 ``` *Python* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/blog/first-post", "max_chars": 20000}, timeout=70, ) resp.raise_for_status() print(resp.json()["markdown"][:300]) ``` *Node.js* ```javascript const params = new URLSearchParams({ url: 'https://example.com/blog/first-post', max_chars: '20000' }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const page = await res.json(); console.log(page.markdown.slice(0, 300)); ``` ## Đọc một trang (POST) `POST /api/v1/read` Cùng endpoint, cùng tham số, gửi dưới dạng JSON body. Ưu tiên POST khi URL rất dài hoặc khi HTTP client của bạn tạo JSON dễ hơn query string. Phản hồi giống hệt dạng GET. Xác thực: khóa API trong header `Authorization: Bearer API_KEY`. **Request body** | Field | Kiểu | Bắt buộc | Mô tả | | --- | --- | --- | --- | | `url` | string | Có | Trang cần đọc. | | `format`, `main_content`, `render`, `include_links`, `include_images`, `country`, `max_chars`, `timeout` | mixed | Không | Như trong bảng GET ở trên, với kiểu JSON: boolean dạng `true`/`false`, số không đặt trong dấu ngoặc kép. | *Ví dụ: a JavaScript-heavy page, read from Germany, with its links* ```json { "url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": true, "max_chars": 30000 } ``` **Response** `200` ```json { "url": "https://example.com/app/pricing", "final_url": "https://example.com/de/app/pricing", "status_code": 200, "fetched_at": "2026-10-22T09:44:03Z", "rendered": true, "credits_used": 3, "title": "Pricing", "language": "de", "markdown": "# Pricing\n\n| Plan | Price |\n|---|---|\n| Basic | ... |", "word_count": 214, "links": [ { "url": "https://example.com/de/contact", "text": "Contact" } ] } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": true}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": True}, timeout=70, ) print(resp.json()["credits_used"], "credits") ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/read', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ url: 'https://example.com/app/pricing', render: 'true', country: 'de', include_links: true }), }); console.log((await res.json()).credits_used); ``` ## Tôi nên chọn định dạng đầu ra nào? Chọn `markdown` cho các mô hình ngôn ngữ và RAG: tiêu đề, danh sách, bảng và liên kết được giữ nguyên, và văn bản vẫn gọn gàng. Chọn `text` khi bạn chỉ đếm từ, phân loại hoặc tìm kiếm, và markup sẽ chỉ là nhiễu. Chọn `html` khi pipeline của riêng bạn đã phân tích HTML và bạn chỉ muốn loại bỏ phần thừa. Các trường metadata giống nhau ở cả ba định dạng. Chỉ tên của trường nội dung là thay đổi: `markdown`, `text` hoặc `html`. ## Khi nào tôi nên đặt main_content thành false? Đặt thành `false` khi những phần xung quanh bài viết chính là thứ bạn cần. Ví dụ là thanh điều hướng của trang web để lập bản đồ các mục, footer chứa thông tin pháp lý hoặc liên hệ, hoặc trang sản phẩm có thông số kỹ thuật nằm trong thanh bên. Với mặc định `true`, bộ trích xuất giữ lại khối nội dung chính và loại bỏ thanh điều hướng, banner cookie, quảng cáo, nút chia sẻ và footer. Đó là thứ mà hầu hết các agent và pipeline RAG cần, và nó thường rút gọn một trang xuống còn một phần nhỏ kích thước HTML. ## render=auto quyết định dùng trình duyệt headless như thế nào? Đầu tiên nó tải HTML thô, nhanh và tốn 1 credit. Nếu HTML đó chứa quá ít văn bản đọc được, thường là ứng dụng dựng trang bằng JavaScript, nó tải lại trang trong trình duyệt headless và lệnh gọi tốn 2 credit. Phản hồi cho bạn biết đường nào đã chạy: `rendered` là `true` hoặc `false`. Đặt `render=false` khi bạn biết trang web phục vụ HTML đầy đủ và muốn chi phí cố định. Đặt `render=true` cho single-page app, để bỏ qua lần thử đầu tiên. ## country và max_chars thay đổi điều gì? `country` đọc trang từ một địa chỉ ở quốc gia bạn chỉ định, với cùng User-Agent. Dùng nó cho các trang mà giá, ngôn ngữ hoặc tính khả dụng thay đổi theo quốc gia. Nó cộng thêm 10 credit, vì trang sau đó được đọc qua kết nối residential, và không thể dùng với những quốc gia mà dịch vụ không hoạt động. `max_chars` cắt đầu ra sau số ký tự đó. Nó không thay đổi giá, nhưng bảo vệ context window của agent: 20.000 ký tự là mặc định hợp lý cho một trang đơn truyền vào mô hình. ## /read có xử lý được tệp PDF không? Có. Khi URL trả về PDF, văn bản được trả về dưới dạng Markdown trong cùng trường `markdown`. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. PDF quét không có lớp văn bản trả về ít hoặc không có văn bản, vì không có bước nhận dạng ký tự. ## Endpoint read: các câu hỏi thường gặp ### /read có theo redirect không? Có, tối đa 5. Phản hồi cung cấp địa chỉ bạn yêu cầu trong `url` và địa chỉ thực sự được đọc trong `final_url`. Redirect đến địa chỉ riêng tư hoặc cục bộ bị từ chối. ### Tôi có thể đọc trang cần đăng nhập không? Không. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Các trang sau đăng nhập hoặc paywall trả về lời từ chối của trang web, và lệnh gọi miễn phí. ### Kiểm tra robots.txt có được thực hiện ở mọi lệnh gọi không? Có, dựa trên bản sao robots.txt của trang web không quá 24 giờ. URL bị cấm trả về `403 blocked_by_robots` và không tốn credit. ### Tôi có thể đọc bao nhiêu trang cùng lúc? Mỗi tài khoản có giới hạn số trang đọc cùng lúc; dashboard của bạn hiển thị giới hạn đó, và bộ phận hỗ trợ có thể tăng lên. Với nhiều URL, một [batch job](https://webreaderapi.com/vi/docs/crawl/) đơn giản hơn là chạy nhiều lệnh gọi song song. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Định dạng phản hồi API Read, từng trường một > API Read trả về mọi trường cho một trang, từ markdown và word_count đến final_url và rendered, cùng với kết quả job. Không cần KYC, thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/docs/response/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Mỗi lệnh gọi `/read` trả về một đối tượng JSON: nội dung của trang ở định dạng bạn yêu cầu, metadata của nó, và ba trường cho bạn biết điều gì đã xảy ra và chi phí bao nhiêu. Kết quả job dùng lại cùng đối tượng đó. **Câu trả lời nhanh — Phản hồi read của WebReaderAPI chứa gì?** Một phản hồi **WebReaderAPI** `/read` chứa nội dung trang trong `markdown` (hoặc `text` hoặc `html`), metadata của nó (`title`, `description`, `author`, `published_at`, `language`, `site_name`, `word_count`), và các thông tin của lần tải: `final_url`, `status_code`, `rendered` và `credits_used`. Một trang thông thường tốn 1 credit, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Trường nào mô tả lần tải? Các trường này luôn có mặt trong một phản hồi thành công. | Field | Kiểu | Ý nghĩa | | --- | --- | --- | | `url` | string | Địa chỉ bạn đã gửi | | `final_url` | string | Địa chỉ thực sự được đọc, sau các redirect (tối đa 5) | | `status_code` | số nguyên | Mã trạng thái HTTP mà trang trả về cho địa chỉ cuối cùng, thường là 200 | | `fetched_at` | string | Thời điểm fetch, ISO 8601 theo UTC | | `rendered` | boolean | `true` khi trình duyệt headless dựng trang | | `credits_used` | số nguyên | Số credit bị tính cho trang này: 1, 2 nếu dùng trình duyệt, cộng thêm 10 nếu dùng `country`; PDF tính 1 credit cho mỗi 10 trang đã bắt đầu | ## Những field nào mô tả trang? Metadata lấy từ chính trang: thẻ title, các thẻ meta, dữ liệu có cấu trúc và byline hiển thị. Field nào trang không cung cấp thì sẽ vắng mặt, nên hãy kiểm tra trước khi dùng. | Field | Kiểu | Ý nghĩa | | --- | --- | --- | | `title` | string | Tiêu đề của trang hoặc bài viết | | `description` | string | Phần tóm tắt mà trang tự đưa ra về chính nó | | `language` | string | Mã ngôn ngữ của nội dung, ví dụ `en` hoặc `de` | | `author` | string | Tác giả được nêu trên trang | | `published_at` | string | Ngày xuất bản do trang nêu | | `site_name` | string | Tên của chính trang web | | `word_count` | số nguyên | Số từ trong nội dung trả về, sau khi trích xuất và trước `max_chars` | ## Nội dung nằm ở đâu? Một field nội dung được trả về, đặt tên theo `format` bạn đã chọn. | Field | Khi nào | Nội dung | | --- | --- | --- | | `markdown` | `format=markdown` (mặc định) | Tiêu đề, đoạn văn, danh sách, bảng và liên kết ở dạng Markdown; cả hình ảnh nếu dùng `include_images=true` | | `text` | `format=text` | Văn bản thuần, các đoạn cách nhau bằng dòng trống | | `html` | `format=html` | HTML đã làm sạch của nội dung chính, không có script, style hay quảng cáo | | `links` | `include_links=true` | Danh sách `{url, text}` cho các liên kết tìm thấy trên trang, dưới dạng URL tuyệt đối | *Một phản hồi hoàn chỉnh (các giá trị chỉ mang tính minh họa)* ```json { "url": "https://example.com/guides/compost", "final_url": "https://example.com/guides/compost-at-home", "status_code": 200, "fetched_at": "2026-10-22T10:02:44Z", "rendered": false, "credits_used": 1, "title": "Compost at home: a beginner's guide", "description": "What to put in a compost bin, and what to leave out.", "language": "en", "author": "Sam Rivera", "published_at": "2026-09-14", "site_name": "Example Garden", "markdown": "# Compost at home: a beginner's guide\n\nA compost bin turns kitchen scraps into soil...\n\n## What goes in\n\n- Fruit and vegetable peels\n- Coffee grounds\n\nSee also [Choosing a bin](https://example.com/guides/bins).", "word_count": 1184, "links": [ { "url": "https://example.com/guides/bins", "text": "Choosing a bin" } ] } ``` ## Làm sao để phân biệt một trang đã render với một trang thường? Hãy xem `rendered`. Với `render=auto`, API trước tiên đọc HTML thô; nó chỉ khởi động trình duyệt khi HTML đó chứa quá ít văn bản, và khi đó đặt `rendered` thành `true` và `credits_used` thành 2. Nếu một trang web bạn đọc thường xuyên luôn trả về ở dạng đã render, hãy gửi `render=true` ngay từ đầu: chi phí như nhau và bạn bỏ qua một bước đầu tiên không cần thiết. Nếu một trang trả về không render nhưng ít nội dung, hãy so sánh `word_count` với những gì bạn thấy trên trình duyệt. Số đếm thấp thường có nghĩa là nội dung cần JavaScript; hãy thử lại một lần với `render=true`. ## Tại sao final_url có thể khác với url? Vì các trang web chuyển hướng. Một liên kết rút gọn, một địa chỉ cũ, thiếu dấu gạch chéo cuối hoặc một lần chuyển đổi ngôn ngữ đều đưa bạn sang nơi khác. API theo tối đa 5 lần chuyển hướng và báo cáo địa chỉ mà nó thực sự đã đọc trong `final_url`. Hãy lưu `final_url` làm nguồn chuẩn tắc của một tài liệu trong chỉ mục RAG. Hai giá trị `url` khác nhau mà kết thúc tại cùng một `final_url` chính là cùng một trang, nên bạn có thể loại bỏ bản trùng trước khi nhúng nó. ## Kết quả của một job trông như thế nào? `GET https://webreaderapi.com/api/v1/jobs/{job_id}` trả về `job_id`, `status` (`queued`, `running` hoặc `done`), `results`, `next_cursor` và `credits_used` đang chạy của job. Mỗi mục của `results` thuộc một trong hai dạng: - một phản hồi `/read` đầy đủ, đúng như mô tả ở trên, cho một trang đã được đọc; - `{url, error}` cho một trang chưa được đọc, trong đó `error` có cùng `code` và `message` như một [lỗi API](https://webreaderapi.com/vi/docs/errors/). `next_cursor` xuất hiện khi còn kết quả sẵn sàng; hãy gửi lại nó dưới dạng `cursor` để lấy các kết quả đó. [Trang batch và crawl](https://webreaderapi.com/vi/docs/crawl/) có một vòng lặp polling hoàn chỉnh. *Một trang kết quả của job (các giá trị chỉ mang tính minh họa)* ```json { "job_id": "job_5c1e8a90d2", "status": "done", "results": [ { "url": "https://example.com/blog/post-1", "final_url": "https://example.com/blog/post-1", "status_code": 200, "rendered": false, "credits_used": 1, "title": "Post one", "markdown": "# Post one\n\n...", "word_count": 802 }, { "url": "https://example.org/members/area", "error": { "code": "target_refused", "message": "The site refused the request.", "target_status": 403 } } ], "credits_used": 1 } ``` ## Một phản hồi lỗi trông như thế nào? Lỗi trả về với HTTP status từ 400 trở lên và một JSON body `{"error": {"code", "message"}}`. Khi chính trang web từ chối yêu cầu, `target_status` cho biết status mà trang web đã gửi. Không có lỗi nào bị tính phí. [Trang lỗi](https://webreaderapi.com/vi/docs/errors/) liệt kê mọi mã lỗi cùng nguyên nhân và liệu thử lại có ích hay không. ## Định dạng phản hồi: các câu hỏi thường gặp ### Markdown có bị cắt khi tôi đặt max_chars không? Có. Trường content dừng ở đúng số ký tự đó. `word_count` vẫn mô tả toàn bộ nội dung đã trích xuất, nên bạn có thể thấy đã bỏ sót bao nhiêu. ### Tại sao author hoặc published_at bị thiếu? Vì trang không nêu thông tin đó theo cách có thể đọc được. Nhiều trang không cung cấp tác giả hay ngày tháng. Các trường vắng mặt sẽ bị lược bỏ chứ không trả về rỗng. ### Các liên kết trong Markdown có phải URL tuyệt đối không? Các liên kết trong danh sách `links` là tuyệt đối. Hãy viết code của bạn để chấp nhận cả hai dạng trong phần thân Markdown, và phân giải các liên kết tương đối dựa trên `final_url`. ### Tôi có thể lấy HTML thô của toàn bộ trang không? Cách gần nhất là `format=html` với `main_content=false`, trả về toàn bộ trang đã được làm sạch khỏi script và style. HTML gốc từng byte không nằm trong v1. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Câu hỏi thường gặp về WebReaderAPI > Câu hỏi thường gặp về WebReaderAPI: 30 câu trả lời về web reader API: giá mỗi trang, JavaScript và PDF, crawl, robots.txt, KYC, thanh toán crypto và AI agent. - URL: https://webreaderapi.com/vi/faq/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Câu trả lời cho những gì developer, người xây dựng AI và chủ trang web hỏi nhiều nhất về việc chuyển trang web sang Markdown với WebReaderAPI. Mỗi câu trả lời bắt đầu bằng đáp án. **Câu trả lời nhanh — Mọi người hỏi nhiều nhất về WebReaderAPI là gì?** Chủ yếu là giá mỗi trang, cách tính trang JavaScript và PDF, và điều gì xảy ra khi một trang web từ chối robots. Tóm lại: **WebReaderAPI** tính một credit mỗi trang đọc, hai credit khi dùng trình duyệt, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026; các trang bị từ chối hoặc đọc lỗi không mất phí; robots.txt luôn được tôn trọng. Không cần KYC; thanh toán bằng crypto. ## Giá và credit ### WebReaderAPI có giá bao nhiêu? Các pack trả trước có giá 3,75 US$ cho 10.000 trang, 21,75 US$ cho 100.000 trang và 74,25 US$ cho 1.000.000 trang, tính đến tháng 10 năm 2026. Đơn giá giảm còn 0,07 US$/1K trang ở pack 5.000.000 trang. [Trang giá](https://webreaderapi.com/vi/pricing/) liệt kê mọi pack. ### Một credit mua được gì? Một trang đọc không dùng trình duyệt. Một trang cần render JavaScript dùng hai credit, và đọc từ một quốc gia được chọn cộng thêm một credit. Phản hồi cho bạn biết đã dùng gì trong `credits_used`, để bạn theo dõi chi phí mỗi trang trong log của mình. ### Credit có hết hạn không? Không. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. Một pack mua cho một lần crawl một lần vẫn giữ số trang chưa dùng cho dự án tiếp theo. ### Tôi có bị tính phí khi không đọc được trang không? Không. Lỗi không dùng credit, dù nguyên nhân đến từ phía chúng tôi, mạng hay trang web. Điều này bao gồm các trang bị từ chối bởi robots.txt, bởi tín hiệu `ai-input=no`, hoặc bởi chính phản hồi của trang. ### Có gói miễn phí không? Không. Không có gói miễn phí: pack nhỏ nhất là cách để thử, thanh toán từ mức nạp tối thiểu, và phần tiền chỉ nạp thêm để đạt mức tối thiểu đó có thể được gửi trả theo yêu cầu trong vòng 30 ngày, bằng USDT hoặc USDC, miễn là chưa dùng. ### Số tiền tối thiểu tôi có thể chi là bao nhiêu? Số tiền nạp tối thiểu là 25 US$. Pack nhỏ nhất, 10.000 trang, có giá 3,75 US$; phần còn lại của khoản nạp vẫn nằm trong số dư của bạn cho các pack sau hoặc có thể được yêu cầu hoàn lại trong vòng 30 ngày nếu chưa dùng. ## API đọc và trả về những gì ### WebReaderAPI có đọc được các trang xây bằng JavaScript không? Có. Render JavaScript trong trình duyệt headless khi trang cần (render=auto), hoặc luôn luôn, hoặc không bao giờ. Với `render=auto`, trình duyệt chỉ được dùng khi HTML thô chứa quá ít văn bản, nên các trang đơn giản vẫn giữ một credit. ### Nó có chuyển được file PDF không? Có. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. Gửi URL của PDF đến cùng endpoint `/read`; văn bản trả về dưới dạng Markdown. ### Tôi có đọc được cả một trang web không? Có, với một crawl job. Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang. Bạn có thể giới hạn nó trong các path như `/docs/*`; mỗi trang đọc dùng credit giống như một truy vấn đơn lẻ. ### Tôi có thể gửi bao nhiêu URL cùng lúc? Tối đa 100 URL mỗi batch job. Một batch chạy như một job: bạn gửi danh sách, nhận một `job_id`, và thu thập mọi kết quả khi job xong. ### Làm sao giữ một trang trong context window của model? Đặt `max_chars`. Markdown bị cắt ở độ dài đó, từ 1.000 đến 500.000 ký tự. Kết hợp với `main_content=true`, điều này giữ các trang dài trong một ngân sách token dự đoán được. ### Markdown có giữ bảng, code block và liên kết không? Có. Tiêu đề, danh sách, bảng, code block và liên kết giữ đúng dạng Markdown. Liên kết nằm inline; thêm `include_links=true` để cũng nhận chúng dưới dạng danh sách riêng, và `include_images=true` để giữ hình ảnh. ### "Nội dung chính" nghĩa là gì? Phần của trang mà người đọc đến để xem: bài viết, tài liệu hoặc mô tả sản phẩm. Với `main_content=true`, giá trị mặc định, menu, banner cookie, quảng cáo, sidebar và footer bị loại bỏ. Đặt thành `false` để chuyển toàn bộ trang. ### Tôi có đọc được một trang như nó hiển thị ở quốc gia khác không? Có, với tham số `country` và mã quốc gia hai chữ cái. Chọn quốc gia để đọc trang cộng thêm 10 credit, vì khi đó trang được đọc qua kết nối dân cư (residential) tại quốc gia đó. Một số trang thay đổi giá, ngôn ngữ hoặc nội dung theo quốc gia. ## robots.txt và các trang bị từ chối ### WebReaderAPI có tuân thủ robots.txt không? Luôn luôn. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. [Trang bot](https://webreaderapi.com/vi/bot/) hiển thị user agent và cách chủ trang web có thể cho phép hoặc từ chối nó. ### Điều gì xảy ra với các trang web được bảo vệ bởi Cloudflare hoặc bộ lọc bot khác? Nếu trang web cho phép trình thu thập của chúng tôi đi qua, trang sẽ được đọc bình thường. Nếu trang từ chối hoặc trả về một trang thử thách, chúng tôi trả lại câu trả lời đó dưới dạng `target_refused` và không tính phí. Chúng tôi không bao giờ cố vượt qua thử thách. ### WebReaderAPI có thể đọc các trang nằm sau đăng nhập hoặc tường phí không? Không, không bao giờ, kể cả khi bạn cung cấp thông tin đăng nhập. Nội dung yêu cầu tài khoản hoặc đăng ký trả phí nằm ngoài phạm vi, và yêu cầu nội dung đó vi phạm [Chính sách sử dụng chấp nhận được](https://webreaderapi.com/vi/acceptable-use/). ### Tín hiệu ai-input=no là gì? Một dòng mà một số trang web thêm vào robots.txt, theo Content Signals Policy, để từ chối việc dùng trang của họ làm đầu vào cho câu trả lời AI. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn; API trả về `blocked_by_site_policy`, miễn phí. ### Đọc trang web cho AI có hợp pháp không? Điều đó phụ thuộc vào nội dung, quốc gia và việc bạn làm gì với văn bản. Tuân thủ robots.txt và tránh xa dữ liệu cá nhân cùng tường phí sẽ giảm rủi ro. [Tổng quan về các quy tắc](https://webreaderapi.com/vi/guides/is-reading-web-pages-for-ai-legal/) của chúng tôi tóm tắt những điểm chính; đó không phải tư vấn pháp lý. ## Tài khoản, thanh toán và quyền riêng tư ### Tôi có cần xác minh danh tính không? Không. WebReaderAPI không yêu cầu ID, không selfie, không giấy tờ công ty và không thẻ. Đăng nhập bằng số tài khoản; email là tùy chọn. [Trang không cần KYC](https://webreaderapi.com/vi/no-kyc-web-reader-api/) giải thích những gì vẫn áp dụng. ### Tôi có thể thanh toán bằng những loại crypto nào? BTC, USDT, USDC, ETH, SOL, LTC. USDT hoạt động trên TRC-20 hoặc ERC-20, USDC trên ERC-20. Gửi đúng số lượng hiển thị, nhấp "I've sent the payment", và khoản nạp sẽ được ghi có sau khi được xác nhận. ### Tôi có thể được hoàn tiền không? Có, vào số dư của bạn. Gói pack đã dùng dưới 20% sẽ được hoàn trong vòng 72 giờ sau khi mua, và gói pack chưa từng hoạt động sẽ được ghi có toàn bộ. [Chính sách hoàn tiền](https://webreaderapi.com/vi/refunds/) có quy tắc chính xác và ba ví dụ. ### Khóa API hoạt động như thế nào? Tạo nhiều khóa API, ví dụ mỗi agent hoặc dự án một khóa, và thu hồi bất kỳ khóa nào từ dashboard của bạn. Gửi khóa API trong header Authorization dưới dạng Bearer token, hoặc trong query parameter api_key. Một khóa cho mỗi ứng dụng hoặc agent giúp dễ thu hồi một khóa mà không dừng các khóa khác. ### Bạn ghi log những gì về các yêu cầu của tôi? Tên host của mỗi trang, không bao giờ ghi URL đầy đủ hoặc nội dung của nó, cùng thời gian, trạng thái và credit, trong 30 ngày. Chúng tôi không lưu bản sao của các trang bạn đọc. [Chính sách quyền riêng tư](https://webreaderapi.com/vi/privacy/) có chi tiết. ## Nhà phát triển và AI agent ### Có mã cho Python và Node.js không? Có. Hướng dẫn [Python](https://webreaderapi.com/vi/docs/python/) và [Node.js](https://webreaderapi.com/vi/docs/node/) trình bày đọc đơn lẻ, theo lô, crawl và thử lại, và [bắt đầu nhanh](https://webreaderapi.com/vi/docs/) có ví dụ curl. Không cần gói SDK: API chỉ là HTTPS với JSON. ### Claude, Cursor hoặc MCP client khác có thể dùng WebReaderAPI không? Có, thông qua một MCP server nhỏ do bạn tự chạy, được ghi tài liệu trên [trang MCP](https://webreaderapi.com/vi/docs/mcp/). Nó cung cấp một công cụ nhận URL và trả về trang dưới dạng Markdown. ### Nó có hoạt động với LangChain và LlamaIndex không? Có. [Trang LangChain và LlamaIndex](https://webreaderapi.com/vi/docs/langchain/) trình bày một document loader chuyển URL thành tài liệu kèm siêu dữ liệu của chúng, sẵn sàng để chia nhỏ và nhúng. ### Tôi có thể đọc bao nhiêu trang cùng lúc? Mỗi tài khoản có giới hạn số trang đọc cùng lúc; dashboard của bạn hiển thị giới hạn đó, và bộ phận hỗ trợ có thể tăng lên. Các lần crawl cũng tuân theo `Crawl-delay` của từng trang web, nên một lần crawl lớn trên một tên miền có thể mất nhiều thời gian hơn số trang gợi ý. ### Ai điều hành WebReaderAPI? SerpGoat LLC. Xem [trang giới thiệu](https://webreaderapi.com/vi/about/) để biết cách dịch vụ hoạt động và cách liên hệ với người thật. Bộ phận hỗ trợ qua email trả lời trong vòng 12 giờ, mỗi ngày trong tuần, bao gồm cả hỗ trợ về crawl và tích hợp. ### Đọc một trang nhanh đến mức nào? Điều đó phụ thuộc chủ yếu vào trang web và vào việc có cần trình duyệt hay không. Chúng tôi không công bố con số tốc độ cho đến khi đo được trên một mẫu công khai; khi có, nó sẽ xuất hiện kèm phương pháp và ngày trên [trang trạng thái](https://webreaderapi.com/vi/status/). --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Bảng thuật ngữ web reader API > Bảng thuật ngữ 36 thuật ngữ để đọc trang web bằng API: Markdown, nội dung chính, kết xuất JavaScript, robots.txt, Content Signals, RAG, MCP, credit và hơn nữa. - URL: https://webreaderapi.com/vi/glossary/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Những từ bạn gặp khi chuyển trang web sang văn bản cho mô hình ngôn ngữ, từ phía HTML đến phía AI, kèm liên kết tới nơi mỗi thuật ngữ quan trọng trong tài liệu. **Câu trả lời nhanh — Các thuật ngữ chính của web reader API có nghĩa là gì?** Một web reader API tải một trang, giữ **nội dung chính** của nó và trả về dưới dạng **Markdown** mà mô hình có thể đọc. **WebReaderAPI** thêm **kết xuất JavaScript** khi trang cần trình duyệt, tuân theo **robots.txt** và **Content Signals**, và tính một **credit** mỗi trang, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. 36 thuật ngữ dưới đây giải thích phần còn lại. ## Từ phía trang web **HTML** — Ngôn ngữ đánh dấu của các trang web. HTML thô trộn lẫn văn bản bạn muốn với các thẻ, script và định dạng, đó là lý do nó khó đọc đối với mô hình ngôn ngữ. **DOM** — Document Object Model: cây phần tử mà trình duyệt dựng từ HTML và sau đó thay đổi bằng JavaScript. Một trang đã render được đọc từ DOM, không phải từ HTML thô. **Render JavaScript** — Chạy các script của một trang trong trình duyệt để nội dung được tải sau phản hồi đầu tiên xuất hiện. WebReaderAPI thực hiện việc này khi cần (`render=auto`), với hai credit thay vì một. **Trình duyệt headless** — Một engine trình duyệt thực chạy không có màn hình, được điều khiển bằng phần mềm. Đây là cách các trang nặng JavaScript được render trên máy chủ. **Trích xuất nội dung chính** — Tìm phần của trang mà người đọc muốn, chẳng hạn bài viết hoặc tài liệu, và bỏ qua mọi thứ xung quanh. Trong API của chúng tôi, đây là `main_content=true`, chế độ mặc định. **Readability** — Vừa là một phẩm chất của văn bản, vừa là tên của một họ thuật toán nổi tiếng chấm điểm các khối trên trang để tìm nội dung chính, giống như chế độ đọc trong trình duyệt. **Boilerplate** — Văn bản lặp lại trên mọi trang của một site: menu, thông báo cookie, thanh bên, footer, nút chia sẻ. Loại bỏ nó là phần lớn công việc của một web reader. **Markdown** — Một định dạng văn bản thuần trong đó `#` đánh dấu tiêu đề, `-` một mục trong danh sách và `[text](url)` một liên kết. Các mô hình đọc nó tốt và nó dùng ít token hơn nhiều so với HTML. **Metadata** — Các thông tin về một trang chứ không phải văn bản của nó: tiêu đề, mô tả, tác giả, ngày xuất bản, ngôn ngữ. WebReaderAPI trả chúng về bên cạnh Markdown khi trang có nêu. **Trích xuất PDF** — Chuyển văn bản của một file PDF sang Markdown. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. **Sitemap** — Một file XML trong đó một site liệt kê các trang của mình. Một job crawl bắt đầu từ nó khi nó tồn tại, giúp tìm trang nhanh hơn và với ít request hơn. **Paywall** — Một rào cản chỉ hiển thị nội dung cho người đăng ký. WebReaderAPI không bao giờ đọc phía sau nó. ## Từ góc độ crawler **Crawler** — Một chương trình tải các trang web cho một mục đích. Của chúng tôi chỉ tải những trang khách hàng yêu cầu, và [trang bot](https://webreaderapi.com/vi/bot/) mô tả nó. **User agent** — Tên mà một client gửi kèm mỗi request. Của chúng tôi là `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, nên chủ site luôn biết ai đang yêu cầu. **robots.txt** — Một file ở gốc của một site cho crawler biết những đường dẫn chúng được phép tải, được chuẩn hóa thành RFC 9309. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. **Crawl-delay** — Một dòng trong robots.txt yêu cầu crawler chờ một số giây giữa các request. Các job crawl của chúng tôi tuân thủ nó. **Content Signals** — Một chính sách cho các dòng trong robots.txt như `Content-Signal: search=yes, ai-input=no`, nêu rõ nội dung của một site được sử dụng thế nào, bao gồm cả bởi AI. **ai-input** — Cài đặt Content Signals bao trùm việc dùng một trang làm đầu vào cho một câu trả lời AI. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. **llms.txt** — Một file Markdown mà một số site công bố tại `/llms.txt` để cung cấp cho các mô hình ngôn ngữ một hướng dẫn ngắn về nội dung và các trang chính của họ. **Crawl** — Đọc nhiều trang của một site bằng cách theo các liên kết và sitemap của nó. Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang. **Batch job** — Một danh sách URL được gửi trong một request và xử lý ở chế độ nền. Tối đa 100 URL mỗi batch job. **HTTP 403** — Mã trạng thái mà máy chủ gửi để từ chối một request. Khi một site trả lời 403 cho crawler của chúng tôi, API trả về `target_refused` và không tính phí gì. **HTTP 429** — Trạng thái cho quá nhiều yêu cầu. Từ một trang web, nghĩa là hãy chậm lại; từ API của chúng tôi (`concurrency_limit`), nghĩa là tài khoản của bạn đã đạt giới hạn số lần đọc đồng thời. **Backoff lũy thừa** — Chờ lâu hơn sau mỗi lần thử thất bại (ví dụ 1, 2, rồi 4 giây) trước khi thử lại, để không làm quá tải một server đang bận. ## Từ phía AI **Token** — Đơn vị mà một mô hình ngôn ngữ đọc và bị tính phí, xấp xỉ một từ ngắn hoặc một phần của từ. Markdown sạch dùng ít token hơn nhiều so với cùng trang đó ở dạng HTML. **Context window** — Lượng văn bản mà một mô hình có thể tiếp nhận cùng lúc. Tham số `max_chars` giữ mỗi trang trong giới hạn bạn đặt ra. **RAG** — Retrieval-augmented generation: mô hình trả lời dựa trên các tài liệu được lấy về cho câu hỏi. Một web reader cung cấp những tài liệu đó từ các trang trực tiếp. **Chunking** — Chia một tài liệu dài thành các đoạn trước khi lập chỉ mục. Các tiêu đề Markdown tạo ra những điểm chia tự nhiên. **Embedding** — Một danh sách số biểu diễn ý nghĩa của một đoạn, được dùng để tìm các đoạn tương tự với một câu hỏi. **Vector store** — Một cơ sở dữ liệu lưu embeddings và trả về các đoạn gần nhất với một truy vấn, nơi thường trú của các trang web đã chia chunk trong một hệ thống RAG. **Tool calling** — Khả năng của một mô hình yêu cầu ứng dụng chạy một hàm, ví dụ đọc một URL, và sử dụng kết quả. Xem [OpenAI function calling](https://webreaderapi.com/vi/docs/openai/). **MCP** — Model Context Protocol, một cách chuẩn để cắm các công cụ vào các AI client như Claude Desktop hay Cursor. [Trang MCP](https://webreaderapi.com/vi/docs/mcp/) của chúng tôi trình bày một công cụ fetch được xây trên API. ## Từ phía thanh toán **Credit** — Đơn vị sử dụng của API. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. **Concurrency** — Số lần đọc mà tài khoản của bạn có thể chạy cùng một lúc. Mỗi tài khoản có giới hạn số trang đọc cùng lúc; dashboard của bạn hiển thị giới hạn đó, và bộ phận hỗ trợ có thể tăng lên. **KYC** — Know your customer: các kiểm tra danh tính mà một số dịch vụ yêu cầu, như giấy tờ tùy thân hoặc ảnh selfie. WebReaderAPI không yêu cầu điều nào. **Stablecoin** — Một loại tiền mã hóa bám theo một đồng tiền như đô la Mỹ. USDT và USDC là hai loại được chấp nhận để nạp tiền; danh sách đầy đủ các coin là BTC, USDT, USDC, ETH, SOL, LTC. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Cách chuyển một trang web sang Markdown cho LLM > Cách chuyển một trang web sang Markdown cho LLM vào năm 2026: ba phương pháp, Markdown sạch giữ lại những gì, cách giới hạn token, và mã Python để chia chunk. - URL: https://webreaderapi.com/vi/guides/convert-web-page-to-markdown/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Sao chép và dán chỉ hiệu quả với một trang. Một thư viện hiệu quả nếu bạn tự chạy crawler của mình. Một API hiệu quả khi bạn muốn một yêu cầu cho mỗi trang. Đây là cách chọn, đầu ra tốt trông như thế nào, và mã bạn có thể tái sử dụng. **Câu trả lời nhanh — Làm sao để chuyển một trang web sang Markdown cho LLM?** Lấy trang, chỉ giữ nội dung chính của nó, rồi chuyển các tiêu đề, danh sách, bảng và liên kết thành Markdown và giới hạn độ dài theo giới hạn của mô hình bạn. Bạn có thể làm thủ công, bằng các thư viện mã nguồn mở, hoặc bằng một lệnh gọi API: **WebReaderAPI** trả về Markdown và metadata với một credit mỗi trang, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Ba cách để lấy Markdown từ một trang web | Thuộc tính | Giá trị | | --- | --- | | Thủ công | Sao chép văn bản từ trình duyệt hoặc chế độ reader của nó; ổn với vài trang | | Thư viện mã nguồn mở | Readability, Trafilatura, MarkItDown hoặc Crawl4AI bên trong fetcher của riêng bạn | | Một SERP API | `GET https://webreaderapi.com/api/v1/read?url=…` trả về Markdown, tiêu đề, tác giả và ngày tháng | | Kiểm soát độ dài | `max_chars` trên WebReaderAPI, hoặc tự cắt văn bản sau khi chuyển đổi | | Trang có JavaScript | Cần trình duyệt headless; WebReaderAPI render chúng khi cần, tốn 2 credit | ## Nên dùng phương pháp nào? Chọn theo khối lượng và theo lượng hạ tầng bạn muốn tự vận hành. | Phương pháp | Phù hợp với | Bạn tự xử lý | |---|---|---| | Sao chép và dán | Vài trang, một prompt dùng một lần | Dọn dẹp thủ công | | Thư viện trong code của bạn | Khối lượng ổn định, toàn quyền kiểm soát | Fetch, trình duyệt, robots.txt, PDF, thử lại | | Web reader API | Agent và pipeline đọc nhiều trang web | Chỉ cần request và kết quả | Thư viện cho bạn quyền kiểm soát và không mất phí theo từng trang. Cái giá là vận hành: một trình duyệt headless cho các trang có JavaScript, kiểm tra robots.txt, xử lý character-set và chuyển hướng, và một đường riêng cho PDF. API gói tất cả những việc đó vào một lần gọi HTTP. ## Markdown tốt phải giữ gì và nên bỏ gì? Markdown tốt giữ mọi phần tử mang ý nghĩa và bỏ mọi thứ chỉ tồn tại để trình bày bố cục hoặc marketing. - **Giữ heading** dưới dạng `#`, `##` và `###`: chúng cho model, và chunker của bạn, biết mỗi chủ đề bắt đầu từ đâu. - **Giữ danh sách và bảng** dưới dạng danh sách Markdown và bảng pipe, để các bước và con số vẫn dễ đọc. - **Giữ liên kết** dưới dạng `[text](url)`: chúng cho phép trợ lý trích dẫn và theo dõi nguồn. - **Giữ code block** có rào, kèm ngôn ngữ khi trang hiển thị. - **Bỏ menu, thông báo cookie, quảng cáo, widget bài viết liên quan và footer**: chúng lặp lại trên mọi trang và làm nhiễu việc truy xuất. Kiểm tra kết quả trên vài trang thật của bạn. Các công cụ trích xuất bất đồng nhiều nhất trên diễn đàn, bảng dài và các trang có nhiều bài viết. ## Markdown nhỏ hơn HTML bao nhiêu? Thường nhỏ hơn nhiều, vì phần khung trang và markup biến mất. Khi Cloudflare ra mắt tính năng Markdown for Agents vào ngày 12 tháng 2 năm 2026, trang ví dụ của họ giảm từ 16.180 token dạng HTML xuống 3.150 token dạng Markdown, ít hơn khoảng 80%. Tỷ lệ của bạn phụ thuộc vào trang web. Bài viết dài giảm ít hơn theo phần trăm so với các trang ngắn được bọc trong template nặng. Hãy đo trên nguồn của bạn trước khi tính ngân sách. ## Làm sao giữ một trang trong ngân sách token của model? Giới hạn văn bản trước khi nó đến model, rồi chia phần còn lại theo heading. Với WebReaderAPI, tham số `max_chars` cắt Markdown ở độ dài đặt trước, trong khoảng 1.000 đến 500.000 ký tự. Trường `word_count` cho biết bài viết đầy đủ dài bao nhiêu, để agent có thể quyết định đọc phần còn lại có đáng không. Để truy xuất, hãy chia theo heading trước, rồi mới cắt các phần dài. Một chunk bắt đầu bằng heading của chính nó giữ được chủ đề; một chunk bị cắt giữa câu từ một trang dài thì không. *Python: đọc một trang dưới dạng Markdown và chia thành các chunk theo heading* ```python import os import re import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def page_to_chunks(url, max_chars=60000, chunk_len=1500): params = {"url": url, "format": "markdown", "max_chars": max_chars} resp = requests.get(API, headers=HEADERS, params=params, timeout=90) data = resp.json() if resp.status_code != 200: print("not read:", data["error"]["code"]) return [] chunks = [] for section in re.split(r"\n(?=#{1,3} )", data["markdown"]): section = section.strip() while section: chunks.append(section[:chunk_len]) section = section[chunk_len:] return [{"text": c, "source": data["final_url"], "title": data["title"]} for c in chunks] if __name__ == "__main__": for chunk in page_to_chunks("https://example.com/guides/compost")[:3]: print(chunk["title"], "|", chunk["text"][:80]) ``` ## Thường có gì sai, và làm sao nhận ra? Bốn vấn đề gây ra phần lớn các lần chuyển đổi lỗi: - **Đầu ra rỗng.** Trang dựng nội dung bằng JavaScript. Tìm `word_count` thấp; render trang trong trình duyệt, hoặc đặt `render=true`. - **Văn bản cookie hoặc đồng ý trong kết quả.** Công cụ trích xuất giữ lại banner. Ưu tiên trích xuất nội dung chính và kiểm tra những dòng đầu của mỗi kết quả. - **Thiếu bảng.** Một số trang vẽ bảng dưới dạng ảnh hoặc canvas; không công cụ trích xuất văn bản nào đọc được chúng. - **Bị từ chối thay vì nhận được trang.** Trang web cấm robots trong robots.txt hoặc từ chối request. Hãy tôn trọng điều đó: xin chủ sở hữu cấp quyền, hoặc dùng API chính thức hay feed nếu trang có cung cấp. Không vấn đề nào trong số này được khắc phục bằng cách thử lại nhanh hơn. Hãy đọc lỗi, rồi đổi phương pháp hoặc đổi nguồn. ## Chuyển trang web sang Markdown: các câu hỏi thường gặp ### Markdown có tốt hơn văn bản thuần cho LLM không? Với hầu hết các trang, có. Markdown giữ heading, danh sách, bảng và liên kết với chi phí token nhỏ, nên model thấy được cấu trúc và trích dẫn được nguồn. Văn bản thuần ngắn hơn một chút nhưng mất cấu trúc đó. ### Tôi có thể chuyển đổi cả một trang web, không chỉ một trang không? Có. Hãy crawl nó và chuyển đổi từng trang. [API crawl](https://webreaderapi.com/vi/crawl-api/) của WebReaderAPI làm cả hai trong một job: Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang. ### Tôi có thể chuyển đổi PDF theo cùng cách không? Có, bằng cách gửi URL của PDF đến cùng endpoint. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. ### Còn các trang sau đăng nhập thì sao? Đừng chuyển đổi chúng qua dịch vụ bên thứ ba trừ khi chúng là của bạn và bạn tự xuất chúng ra. WebReaderAPI chỉ đọc các trang công khai và không bao giờ đăng nhập vào tài khoản. ### Có cách miễn phí để làm việc này không? Các thư viện mã nguồn mở dùng miễn phí và chạy trên máy của bạn. WebReaderAPI không có gói miễn phí; pack nhỏ nhất của nó là 10.000 trang với giá 3,75 US$, thanh toán bằng crypto, không cần KYC. ## Nguồn 1. [Giới thiệu Markdown for Agents](https://blog.cloudflare.com/markdown-for-agents/) — Cloudflare (2026-02-12) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Đọc trang web cho AI có hợp pháp không? Dữ kiện kèm ngày năm 2026 > Năm 2026, đọc web cho AI agent và RAG có hợp pháp không? Quy định opt-out của EU, quy tắc GPAI về robots.txt và các vụ án ở Mỹ. Không phải tư vấn pháp lý. - URL: https://webreaderapi.com/vi/guides/is-reading-web-pages-for-ai-legal/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Không có một câu trả lời duy nhất, và một số vụ án vẫn đang mở. Trang này liệt kê các quy định và sự kiện tòa án quan trọng đối với việc đọc các trang công khai bằng công cụ AI, kèm ngày tháng và nguồn, cùng những gì chúng tôi làm ở phía mình. Đây không phải tư vấn pháp lý. **Câu trả lời nhanh — Đọc trang web bằng công cụ AI có hợp pháp không?** Đọc các trang công khai là việc được thực hành rộng rãi, nhưng quy định phụ thuộc vào quốc gia, nội dung và cách truy cập. Ở EU, các opt-out ở dạng máy đọc được như robots.txt giới hạn khai thác văn bản và dữ liệu. Ở Mỹ, một số vụ án giai đoạn 2025–2026 về AI và truy cập tự động vẫn đang mở, chưa có phán quyết cuối cùng. **WebReaderAPI** tôn trọng robots.txt và các opt-out AI; không cần KYC, thanh toán bằng crypto. Không phải tư vấn pháp lý. ## Các mốc thời gian chính | Thuộc tính | Giá trị | | --- | --- | | 17 tháng 4 năm 2019 | Chỉ thị DSM của EU, điều 4(3): khai thác văn bản và dữ liệu thương mại có thể được bảo lưu bằng phương tiện máy đọc được | | 10 tháng 7 năm 2025 | Quy tắc thực hành GPAI của EU: các bên ký kết cam kết dùng crawler đọc và tuân thủ robots.txt | | 5 tháng 12 năm 2025 | The New York Times kiện Perplexity về việc thu thập nội dung của mình (cáo buộc) | | 31 tháng 7 năm 2026 | Reddit v. SerpApi và Perplexity: các cáo buộc theo DMCA §1201(a) vượt qua đơn xin bác bỏ (cáo buộc) | | Được báo cáo ngày 5 tháng 8 năm 2026 | Tòa phúc thẩm Ninth Circuit hủy lệnh cấm của Amazon đối với agent Comet của Perplexity | ## Luật EU nói gì về việc đọc nội dung web? Luật EU cho phép khai thác văn bản và dữ liệu đối với nội dung được truy cập hợp pháp, nhưng cho phép chủ quyền dữ liệu bảo lưu quyền đó. Điều 4(3) của Chỉ thị DSM (2019/790) quy định ngoại lệ thương mại chỉ áp dụng khi việc sử dụng chưa được bảo lưu rõ ràng "theo một cách thức phù hợp, chẳng hạn bằng phương tiện máy đọc được" đối với nội dung được công bố trực tuyến. Quy tắc thực hành của Đạo luật AI EU đối với các mô hình AI đa dụng, công bố ngày 10 tháng 7 năm 2025, đi xa hơn đối với các bên ký kết. Họ cam kết dùng crawler đọc và tuân thủ robots.txt, cùng các giao thức máy đọc được phù hợp khác. Đó là lý do việc tôn trọng robots.txt và các tùy chọn AI được khai báo đã trở thành chuẩn mực tối thiểu cho việc sử dụng tại châu Âu. ## Những vụ án nào ở Mỹ quan trọng, và hiện trạng ra sao? Chưa có vụ nào đưa ra phán quyết cuối cùng về việc đọc các trang công khai cho AI. Các tình tiết đến nay đều là cáo buộc trừ khi tòa án đã phán quyết: - **Reddit v. SerpApi, Perplexity và những bên khác (S.D.N.Y.).** Ngày 31 tháng 7 năm 2026, tòa án cho phép các cáo buộc theo DMCA §1201(a) tiếp tục ở giai đoạn lập luận, coi các biện pháp bảo vệ dựa trên thử thách của Google là biện pháp kiểm soát truy cập. Chưa bị đơn nào bị phát hiện có trách nhiệm. - **The New York Times v. Perplexity.** Đệ trình ngày 5 tháng 12 năm 2025. The Times cáo buộc việc thu thập nội dung của mình vào lúc truy vấn sau khi họ đã chặn Perplexity trong robots.txt. - **Amazon v. Perplexity.** Theo báo cáo ngày 5 tháng 8 năm 2026, Tòa phúc thẩm Ninth Circuit hủy lệnh cấm đối với agent mua sắm Comet của Perplexity, lưu ý rằng trợ lý này hành động theo chỉ dẫn của người dùng. Hội đồng xét xử cho biết họ không đặt ra quy tắc rộng nào cho AI dạng agent. Xu hướng còn lẫn lộn, và các kháng cáo vẫn tiếp diễn. Hãy coi mọi bản tóm tắt, kể cả bản này, là đã lỗi thời. ## Điều gì giảm thiểu rủi ro khi một công cụ AI đọc các trang? Một số thực hành xuất hiện trong mọi quy tắc và vụ án nêu trên: - **Chỉ đọc các trang công khai.** Không đăng nhập, không khu vực thành viên, không tường phí. - **Tôn trọng các tùy chọn từ chối máy đọc được.** robots.txt và các tùy chọn AI được khai báo, chẳng hạn `ai-input=no`. - **Không bao giờ vượt qua biện pháp bảo vệ.** Không dùng user agent giả mạo, không xoay địa chỉ để thoát khỏi chặn, không giải thử thách. - **Tránh dữ liệu cá nhân.** Không thu thập hồ sơ, thông tin liên hệ hay dữ liệu khác về người tư nhân. - **Ghi nguồn.** Giữ URL với từng trang và hiển thị khi câu trả lời dựa vào đó. Đây là thực hành tốt, không phải bảo đảm. Hãy hỏi luật sư về trường hợp sử dụng của bạn. ## WebReaderAPI làm gì ở phía mình? Chúng tôi xây dựng dịch vụ dựa trên những thực hành đó. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. [Chính sách sử dụng chấp nhận được](https://webreaderapi.com/vi/acceptable-use/) của chúng tôi cấm thu thập dữ liệu cá nhân về người tư nhân và đọc nội dung sau đăng nhập hoặc tường phí. Mọi truy vấn tự nhận diện là `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, và [trang crawler](https://webreaderapi.com/vi/bot/) của chúng tôi cho chủ trang biết cách liên hệ với chúng tôi. ## Câu hỏi pháp lý ### Việc tôn trọng robots.txt có làm cho việc sử dụng của tôi hợp pháp không? Không chỉ riêng điều đó. Nó giải quyết câu hỏi về tùy chọn từ chối của EU và thể hiện thiện chí, nhưng luật bản quyền, hợp đồng, luật bảo mật và điều khoản của từng trang vẫn áp dụng. Đây không phải tư vấn pháp lý. ### Tôi có thể lưu trữ các trang mình đã đọc không? Điều đó phụ thuộc vào nội dung, mục đích của bạn và thẩm quyền pháp lý của bạn. WebReaderAPI không lưu bản sao các trang mà nó đọc cho bạn; những gì bạn lưu ở phía mình là quyết định và trách nhiệm của bạn. ### Đọc một trang cho một người dùng có khác với crawl một trang web không? Một số nhà cung cấp và một hội đồng phúc thẩm đã coi agent do người dùng chỉ dẫn khác với crawler. Pháp luật chưa ổn định, nên WebReaderAPI áp dụng cùng các quy tắc robots.txt cho cả hai. ### Tôi có thể đọc thêm ở đâu? [Hướng dẫn robots.txt](https://webreaderapi.com/vi/guides/robots-txt-for-ai-agents/) của chúng tôi bao quát các tiêu chuẩn, và các nguồn dưới đây liên kết đến các văn bản và báo cáo. Với tình huống của riêng bạn, hãy hỏi luật sư tại thẩm quyền của bạn. ## Nguồn 1. [Chỉ thị (EU) 2019/790, điều 4](https://www.legislation.gov.uk/eudr/2019/790/article/4) — legislation.gov.uk (read 2026-10-22) 2. [Văn phòng AI công bố phiên bản cuối cùng của Quy tắc thực hành cho các mô hình AI đa dụng](https://www.globalpolicywatch.com/2025/07/ai-office-publishes-final-version-of-the-code-of-practice-for-general-purpose-ai-models/) — Global Policy Watch (2025-07) 3. [Reddit v. SerpApi LLC](https://www.loeb.com/en/insights/publications/2026/08/reddit-v-serpapi-llc) — Loeb & Loeb (2026-08) 4. [NYT kiện công cụ tìm kiếm AI Perplexity](https://the-decoder.com/nyt-sues-ai-search-engine-perplexity-for-alleged-content-misuse/) — The Decoder (read 2026-10-22) 5. [Tòa án Mỹ hủy lệnh cấm của Amazon đối với Perplexity](https://www.retail-insight-network.com/news/us-court-overturns-amazon-injunction-perplexity/) — Retail Insight Network (2026-08-05) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Trình tạo llms.txt: tạo tệp từ một lần crawl trang web của riêng bạn > Tạo tệp llms.txt cho trang web từ một lần crawl: một script Python đọc từng trang dạng Markdown và liệt kê chúng kèm tóm tắt một dòng. Dữ liệu 2026. - URL: https://webreaderapi.com/vi/guides/llms-txt-generator/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Tệp llms.txt liệt kê các trang chính của một trang web, mỗi trang một dòng, dưới dạng Markdown mà các mô hình đọc dễ dàng. Hướng dẫn này đưa ra số liệu áp dụng trung thực, rồi một script crawl trang web của bạn và viết tệp cho bạn. **Câu trả lời nhanh — Làm cách nào để tạo tệp llms.txt cho trang web của tôi?** Crawl trang web của riêng bạn, lấy tiêu đề và đoạn đầu tiên của từng trang, rồi viết chúng thành danh sách Markdown dưới tên trang web của bạn trong một tệp tại `/llms.txt`. **WebReaderAPI** thực hiện crawl: tối đa 10.000 trang mỗi lượt, dưới dạng Markdown kèm metadata, với một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Script Python dưới đây viết tệp. Không cần KYC; thanh toán bằng crypto. ## llms.txt tóm gọn | Thuộc tính | Giá trị | | --- | --- | | Đây là gì | Một tệp Markdown được đề xuất tại gốc của trang web, liệt kê các trang chính cho các mô hình ngôn ngữ | | Mức độ áp dụng, 1.000 trang web hàng đầu | 9,3% (93 trang web) vào ngày 18 tháng 9 năm 2026, theo Rankability | | Các trang có tệp này | Từ 4,088 lên 36,120 trong khoảng tháng 6 năm 2025 đến tháng 5 năm 2026, theo Originality.ai | | Mức sử dụng đo được | 97% tệp llms.txt không nhận được yêu cầu nào trong một nghiên cứu của Ahrefs trên 137,000 tên miền | | Chi phí để xây dựng với WebReaderAPI | Một credit cho mỗi trang được crawl; 10.000 trang tốn 3,75 US$ | ## llms.txt có đáng để tạo không? Tạo thì rẻ, và tác dụng đo được cho đến nay còn nhỏ. Mức độ áp dụng đang tăng: Rankability tìm thấy tệp này trên 9.3% trong 1,000 trang web hàng đầu vào ngày 18 tháng 9 năm 2026, so với 0.3% vào tháng 6 năm 2025, dù phương pháp của họ đã thay đổi giữa hai lần đếm. Originality.ai đếm được số trang có tệp tăng từ 4,088 lên 36,120 trong khoảng tháng 6 năm 2025 đến tháng 5 năm 2026. Việc sử dụng lại là chuyện khác. Một nghiên cứu của Ahrefs trên 137,000 tên miền, được PPC Land đưa tin ngày 2 tháng 7 năm 2026, phát hiện rằng 97% tệp llms.txt không nhận được yêu cầu nào cả, và các bot truy xuất AI chỉ chiếm 1.1% trong số các yêu cầu mà những tệp này nhận được. Hãy tạo một tệp nếu tài liệu của bạn lớn và bạn muốn có một chỉ mục gọn gàng; đừng kỳ vọng riêng nó sẽ thay đổi cách các trợ lý trích dẫn bạn. ## Một tệp llms.txt gồm những gì? Một tiêu đề, một đoạn tóm tắt, rồi các danh sách liên kết được nhóm lại, mỗi mục kèm một mô tả ngắn. Một tệp tối giản trông như sau: - `# Example Docs` ở dòng đầu tiên, tên của trang web hoặc dự án. - `> One sentence on what the site covers.` dưới dạng một đoạn tóm tắt trong ngoặc kép. - `## Guides`, `## API reference` và các mục khác, mỗi mục cho một phần của trang web. - `- [Page title](https://example.com/page): one line on what the page answers.` cho mỗi trang. Giữ mô tả ngắn gọn và đúng sự thật. Đừng viết chỉ dẫn cho các hệ thống AI trong tệp; các trợ lý ngày càng coi loại văn bản đó là thao túng. *Python: crawl trang web của bạn và viết llms.txt* ```python import os import time from collections import defaultdict from urllib.parse import urlparse import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} SITE = "https://docs.example.com/" def first_paragraph(markdown): for block in markdown.split("\n\n"): block = block.strip() if block and not block.startswith(("#", "-", "|", "!", ">")): return " ".join(block.split())[:160] return "" job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 300}, timeout=60).json() pages, cursor, delay = [], None, 5 while True: params = {"cursor": cursor} if cursor else {} batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() pages += [p for p in batch.get("results", []) if "markdown" in p] cursor = batch.get("next_cursor") if batch["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) sections = defaultdict(list) for p in pages: path = urlparse(p["final_url"]).path.strip("/") section = path.split("/")[0].replace("-", " ").title() if path else "Home" summary = p.get("description") or first_paragraph(p["markdown"]) sections[section].append("- [" + p["title"] + "](" + p["final_url"] + "): " + summary) lines = ["# Example Docs", "", "> Documentation for the Example product.", ""] for name in sorted(sections): lines += ["## " + name, ""] + sorted(sections[name]) + [""] with open("llms.txt", "w", encoding="utf-8") as fh: fh.write("\n".join(lines)) print(len(pages), "pages written to llms.txt") ``` ## Script hoạt động thế nào? Nó khởi động một job crawl, thu thập kết quả theo từng trang, rồi nhóm các trang theo thư mục đầu tiên trong đường dẫn của chúng. Với mỗi trang, nó dùng meta description khi trang web có cung cấp, nếu không thì lấy đoạn đầu tiên của Markdown, cắt còn 160 ký tự. Hãy thay đổi `SITE`, dòng tiêu đề và dòng tóm tắt cho khớp với dự án của bạn, và tăng `limit` nếu trang web lớn hơn, tối đa 10,000 trang mỗi job. Hãy xem lại kết quả trước khi xuất bản: tên các mục lấy từ cấu trúc URL của bạn và có thể cần chỉnh tay. ## robots.txt của tôi có cần cho phép crawl không? Có. WebReaderAPI chỉ đọc những gì robots.txt cho phép với `WebReaderAPI` hoặc với tất cả bot, và nó chờ theo bất kỳ `Crawl-delay` nào bạn đặt. Nếu chính trang web của bạn chặn bot, hãy thêm một nhóm cho phép token của chúng tôi trong thời gian crawl; [trang crawler của chúng tôi](https://webreaderapi.com/vi/bot/) hiển thị chính xác các dòng cần thêm. Các trang bị robots.txt chặn sẽ bị bỏ qua và không bị tính phí, nên một tệp nghiêm ngặt không khiến bạn tốn thêm gì; nó chỉ khiến những trang đó không có trong llms.txt. ## Chi phí là bao nhiêu? Một credit cho mỗi trang được đọc, hai credit cho những trang cần trình duyệt. Một trang tài liệu 300 trang tốn 300 credit, hoặc tối đa 600 nếu đó là ứng dụng JavaScript. Điều đó vừa vặn dễ dàng trong 10.000 trang với 3,75 US$, tính đến tháng 10 năm 2026, và số credit còn lại vẫn nằm trong tài khoản của bạn: chúng không bao giờ hết hạn. Hãy tạo lại tệp khi tài liệu của bạn thay đổi. Nếu bạn giữ lại kết quả crawl, bạn có thể chỉ đọc lại những trang đã thay đổi bằng một job hàng loạt thay vì crawl lại tất cả. ## llms.txt: các câu hỏi thường gặp ### Tôi đặt tệp llms.txt ở đâu? Ở thư mục gốc của trang web, để nó được phục vụ tại `/llms.txt`, dưới dạng văn bản thuần hoặc Markdown. Một số trang web còn công bố `llms-full.txt` chứa toàn văn của các trang được liệt kê. ### llms.txt có thay thế robots.txt không? Không. robots.txt cho biết những đường dẫn nào bot nên bỏ qua; llms.txt liệt kê những trang bạn muốn các mô hình tìm thấy. Hãy giữ cả hai. [Hướng dẫn về robots.txt của chúng tôi](https://webreaderapi.com/vi/guides/robots-txt-for-ai-agents/) giải thích sự khác biệt. ### llms.txt có khiến ChatGPT hay Claude trích dẫn trang của tôi không? Không có bằng chứng cho thấy riêng nó làm được điều đó. Nghiên cứu của Ahrefs được báo cáo vào tháng 7 năm 2026 phát hiện 97% tệp không nhận được yêu cầu nào. Những trang rõ ràng với câu trả lời trực tiếp và dữ kiện có ngày tháng quan trọng hơn. ### Tôi có thể tạo llms.txt cho trang web của người khác không? Chỉ cho các trang web của chính bạn hoặc khi có sự đồng ý của chủ sở hữu. Tệp này đại diện cho trang web, nên việc công bố nó thuộc về chủ trang web. ## Nguồn 1. [Dữ liệu áp dụng llms.txt](https://www.rankability.com/data/llms-txt-adoption/) — Rankability (2026-09-18) 2. [Mức áp dụng llms.txt tăng 8.8 lần nhưng 97% tệp không nhận được yêu cầu AI nào](https://ppc.land/llms-txt-adoption-rises-8-8x-but-97-of-files-get-zero-ai-requests/) — PPC Land (2026-07-02) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # robots.txt cho AI agent và fetcher: những gì áp dụng năm 2026 > robots.txt cho AI agent năm 2026: crawler so với fetcher, OpenAI, Anthropic, Google và Perplexity nói gì, Content Signals, aipref và RSL. - URL: https://webreaderapi.com/vi/guides/robots-txt-for-ai-agents/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) robots.txt được viết cho crawler, rồi các AI agent xuất hiện, tải một trang vì có người yêu cầu. Giờ đây các nhà cung cấp vạch ranh giới đó theo cách khác nhau. Hướng dẫn này trình bày tiêu chuẩn, chính sách được nêu của từng nhà cung cấp, các tín hiệu mới hơn, và cách crawler của chúng tôi hoạt động. **Câu trả lời nhanh — AI agent có phải tuân theo robots.txt không?** Tùy thuộc vào nhà cung cấp. robots.txt là một tiêu chuẩn tự nguyện (RFC 9309, tháng 9 năm 2022). Các crawler xây dựng chỉ mục thường tuân theo nó; với những lần tải do người dùng kích hoạt, OpenAI nói rằng các quy tắc của nó có thể không áp dụng, Google và Perplexity nói các fetcher của họ thường bỏ qua chúng, còn Anthropic nói bot của họ tôn trọng chúng. **WebReaderAPI** tuân theo robots.txt trong mọi lần đọc, không cần KYC và thanh toán bằng crypto. ## robots.txt và AI vào tháng 10 năm 2026 | Thuộc tính | Giá trị | | --- | --- | | Tiêu chuẩn | RFC 9309, Robots Exclusion Protocol, tháng 9 năm 2022 | | OpenAI ChatGPT-User | các quy tắc robots.txt "có thể không áp dụng" cho các hành động do người dùng khởi xướng | | Anthropic (bao gồm Claude-User) | Cho biết bot của họ tuân thủ các chỉ thị trong robots.txt, bao gồm Crawl-delay | | Trình tải do người dùng Google kích hoạt | "Thường bỏ qua các quy tắc robots.txt" (trang cập nhật 2026-08-19) | | Perplexity-User | "Thường bỏ qua các quy tắc robots.txt" | | Content Signals | Chính sách Cloudflare ngày 24 tháng 9 năm 2025: `search`, `ai-input`, `ai-train` | | Tùy chọn AI của IETF | Bản nháp của nhóm làm việc, chưa phải RFC | | WebReaderAPI | Tuân theo robots.txt và `ai-input=no` trong mọi lần đọc; token `WebReaderAPI` | ## robots.txt thực sự làm gì? Nó cho các client tự động biết những đường dẫn nào mà trang web muốn chúng bỏ qua. Tệp này nằm ở thư mục gốc của một host, nhóm các quy tắc theo token user-agent, và dùng các dòng `Allow` và `Disallow`. RFC 9309, xuất bản tháng 9 năm 2022, đã biến quy ước lâu đời này thành tiêu chuẩn. RFC nói rõ rằng tệp này không khóa bất cứ thứ gì: "These rules are not a form of access authorization." Việc tuân thủ là tự nguyện. Đó là lý do chính sách mà mỗi nhà cung cấp công bố lại quan trọng, và lý do các trang web muốn giới hạn cứng cũng dùng tường lửa và quản lý bot. ## Vì sao crawler và trình tải do người dùng kích hoạt lại khác nhau? Crawler tự quyết định những trang nào để truy cập; trình tải do người dùng kích hoạt truy cập một trang vì có người yêu cầu. Nhiều nhà cung cấp coi trường hợp thứ hai giống như trình duyệt hành động thay cho người dùng, và nói rằng robots.txt không áp dụng đầy đủ. | Trình tải | Chính sách công bố (đọc ngày 2026-10-22) | |---|---| | OpenAI ChatGPT-User | Quy tắc robots.txt "có thể không áp dụng" cho các hành động do người dùng khởi xướng; trang web được chỉ tới OAI-SearchBot để từ chối tìm kiếm | | Anthropic Claude-User | Anthropic cho biết bot của họ tôn trọng các chỉ thị trong robots.txt; chặn Claude-User sẽ dừng việc truy xuất cho truy vấn của người dùng | | Trình tải do người dùng Google kích hoạt | "Generally ignore robots.txt rules" vì người dùng yêu cầu tải | | Perplexity-User | "Generally ignores robots.txt rules" vì cùng lý do | | Máy chủ fetch tham chiếu MCP | Mặc định tuân theo robots.txt cho các lần tải do model khởi xướng, không cho các lần do người dùng khởi xướng | Sự phân biệt này là có thật và được ghi nhận. Nếu bạn xây một agent, hãy quyết định bạn đứng về phía nào và nói rõ trong user agent và tài liệu của bạn. ## Content Signals, aipref và RSL là gì? Đây là những cách mới hơn để nói các hệ thống AI được phép làm gì với nội dung, không chỉ là liệu robot có được tải nội dung hay không. - **Content Signals.** Cloudflare công bố chính sách này vào ngày 24 tháng 9 năm 2025. Một tệp robots.txt có thể nêu `search`, `ai-input` (dùng làm đầu vào cho câu trả lời AI, ví dụ grounding) và `ai-train`. robots.txt do Cloudflare quản lý phục vụ `search=yes, ai-train=no` theo mặc định. - **Tùy chọn AI của IETF (aipref).** Các bản nháp về từ vựng và tệp đính kèm của nhóm làm việc vẫn là Internet-Draft vào tháng 10 năm 2026, dự kiến là Proposed Standard. - **Web Bot Auth.** Một cách để bot ký các yêu cầu của mình; nhóm làm việc IETF đã thông qua bản nháp giao thức của nó vào ngày 1 tháng 9 năm 2026. - **RSL (Really Simple Licensing).** Trang web của nó cho biết đặc tả RSL 1.0 đã có sẵn; nó cho phép nhà xuất bản nêu các điều khoản cấp phép, bao gồm trả tiền theo mỗi lần crawl, thông qua robots.txt, header hoặc RSS. ## llms.txt có giống robots.txt không? Không. robots.txt nói những gì không nên tải; llms.txt là một tệp được đề xuất liệt kê các trang chính của một trang web cho các mô hình ngôn ngữ. Việc áp dụng đang tăng nhưng mức sử dụng đo được còn thấp. Rankability đếm thấy llms.txt trên 9,3% trong 1.000 trang web hàng đầu vào ngày 18 tháng 9 năm 2026. Một nghiên cứu của Ahrefs trên 137.000 tên miền, được PPC Land đưa tin ngày 2 tháng 7 năm 2026, phát hiện rằng 97% tệp llms.txt không nhận được yêu cầu nào. [Hướng dẫn llms.txt của chúng tôi](https://webreaderapi.com/vi/guides/llms-txt-generator/) chỉ cách tạo một tệp như vậy từ một lần crawl chính trang web của bạn, nếu bạn vẫn muốn có một tệp. ## WebReaderAPI xử lý robots.txt như thế nào? Nó tuân theo trong mọi lần đọc, bao gồm cả các lần đọc do khách hàng kích hoạt. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Đối với các job crawl, nó cũng chờ `Crawl-delay` mà trang web đặt. Mọi yêu cầu đều mang cùng một User-Agent, `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, để chủ trang web có thể thấy chúng tôi trong log và viết quy tắc cho chúng tôi. [Trang crawler của chúng tôi](https://webreaderapi.com/vi/bot/) cung cấp chi tiết và đầu mối liên hệ khi có sự cố. *Ví dụ robots.txt cho WebReaderAPI* ```text # Block WebReaderAPI from the whole site User-agent: WebReaderAPI Disallow: / # Or: allow it, but keep it out of one folder and slow it down User-agent: WebReaderAPI Disallow: /account/ Crawl-delay: 5 # Or: allow reading for search, but not as AI input (Content Signals) User-agent: * Content-Signal: search=yes, ai-input=no Allow: / ``` ## robots.txt cho AI: các câu hỏi thường gặp ### Chặn GPTBot có ngăn được ChatGPT đọc trang của tôi cho một người dùng không? Không nhất thiết. OpenAI ghi nhận các token riêng biệt: GPTBot cho huấn luyện, OAI-SearchBot cho tìm kiếm và ChatGPT-User cho hành động của người dùng, và cho biết quy tắc robots.txt có thể không áp dụng cho các hành động do người dùng khởi xướng. Hãy kiểm tra tài liệu hiện hành của từng nhà cung cấp. ### robots.txt có ràng buộc về mặt pháp lý không? Bản thân nó thì không; RFC 9309 nói rằng nó không phải là ủy quyền truy cập. Ở EU, việc từ chối dưới dạng máy đọc được có ý nghĩa đối với khai thác văn bản và dữ liệu theo DSM Directive. Xem [tổng quan pháp lý của chúng tôi](https://webreaderapi.com/vi/guides/is-reading-web-pages-for-ai-legal/); đây không phải là tư vấn pháp lý. ### Làm sao để chặn WebReaderAPI? Thêm một nhóm `User-agent: WebReaderAPI` với `Disallow: /` vào robots.txt của bạn. Các lần đọc của chúng tôi kiểm tra nó trước mỗi trang; các trang bị không cho phép sẽ không bao giờ được đọc. ### WebReaderAPI có đọc các trang nêu ai-input=no không? Không. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. API trả về `403 blocked_by_site_policy` cho khách hàng, không tính phí. ## Nguồn 1. [RFC 9309: Robots Exclusion Protocol](https://www.rfc-editor.org/rfc/rfc9309.html) — RFC Editor (September 2022) 2. [Tổng quan về các crawler của OpenAI](https://developers.openai.com/api/docs/bots) — OpenAI (read 2026-10-22) 3. [Anthropic có crawl dữ liệu từ web không, và chủ trang web có thể chặn crawler như thế nào?](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler) — Anthropic (2026-04-07) 4. [Trình tải do người dùng Google kích hoạt](https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers) — Google (updated 2026-08-19) 5. [Các crawler của Perplexity](https://docs.perplexity.ai/guides/bots) — Perplexity (read 2026-10-22) 6. [Máy chủ fetch của MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) — Model Context Protocol (read 2026-10-22) 7. [Content Signals Policy](https://blog.cloudflare.com/content-signals-policy/) — Cloudflare (2025-09-24) 8. [Tài liệu nhóm làm việc AI Preferences](https://datatracker.ietf.org/wg/aipref/documents/) — IETF (read 2026-10-22) 9. [Tài liệu nhóm làm việc Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/documents/) — IETF (read 2026-10-22) 10. [Really Simple Licensing](https://rslstandard.org/) — rslstandard.org (read 2026-10-22) 11. [Dữ liệu áp dụng llms.txt](https://www.rankability.com/data/llms-txt-adoption/) — Rankability (2026-09-18) 12. [Mức áp dụng llms.txt tăng 8.8 lần nhưng 97% tệp không nhận được yêu cầu AI nào](https://ppc.land/llms-txt-adoption-rises-8-8x-but-97-of-files-get-zero-ai-requests/) — PPC Land (2026-07-02) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Vì sao AI agent nhận lỗi 403 khi fetch trang web > Vì sao web fetch lỗi 403 trong Claude Code, OpenClaw và AI agent khác năm 2026: mặc định Cloudflare, robots.txt, rate limit, JavaScript và cách xử lý. - URL: https://webreaderapi.com/vi/guides/web-fetch-403-errors/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Lỗi 403 là tín hiệu trang web từ chối. Từ năm 2025, nhiều trang mặc định từ chối AI agent, và từ tháng 9 năm 2026 Cloudflare chặn lưu lượng agent trên nhiều trang mới có quảng cáo. Dưới đây là cách phân biệt các nguyên nhân và những gì bạn có thể làm một cách hợp lệ. **Câu trả lời nhanh — Vì sao AI agent của tôi nhận lỗi 403 khi fetch một trang?** Thường là do trang web, hoặc CDN của nó, từ chối lưu lượng tự động hoặc lưu lượng AI. Cloudflare đã chặn AI crawler theo mặc định cho các tên miền mới kể từ ngày 1 tháng 7 năm 2025, và từ ngày 15 tháng 9 năm 2026 chặn lưu lượng "Agent" trên các trang có quảng cáo của tên miền mới. Các nguyên nhân khác là rate limit và tường đăng nhập. Cách khắc phục là xin phép, không phải ngụy trang. **WebReaderAPI** trả về câu trả lời của trang web mà không tính phí; không cần KYC, thanh toán bằng crypto. ## Các nguyên nhân phổ biến khiến web fetch thất bại | Thuộc tính | Giá trị | | --- | --- | | 403 từ CDN | Bot management chặn AI crawler hoặc agent theo mặc định trên nhiều trang web | | 403 hoặc 401 từ trang web | Tường đăng nhập, khu vực thành viên, quy tắc theo vùng hoặc chặn cứng các agent đã biết | | 429 | Quá nhiều yêu cầu trong thời gian ngắn; trang web đang rate limit bạn | | 402 | Trang web yêu cầu thanh toán, ví dụ qua Cloudflare pay per crawl | | 200 nhưng văn bản rỗng | Trang xây dựng nội dung bằng JavaScript; không phải lỗi, nhưng không có gì để đọc | | Bị từ chối trước khi fetch | Công cụ của bạn tuân theo robots.txt và bỏ qua trang | ## Điều gì đã thay đổi trên web trong năm 2025 và 2026? Các nhà cung cấp hạ tầng lớn đã biến việc chặn AI thành mặc định. Ba thay đổi có mốc thời gian giải thích phần lớn các lỗi 403 mới: - **1 tháng 7 năm 2025:** Cloudflare cho biết giờ đây chặn AI crawler theo mặc định, hỏi mọi tên miền mới khi đăng ký xem có cho phép hay không. Cùng ngày, họ ra mắt pay per crawl ở chế độ beta riêng tư, trả lời bằng HTTP 402 kèm giá. - **1 tháng 7 năm 2026:** Cloudflare giới thiệu ba loại lưu lượng AI: Search, Agent và Training. "Agent" bao gồm rõ ràng các fetcher của chat như ChatGPT-User. - **15 tháng 9 năm 2026:** với tên miền mới, các preset của Cloudflare chặn lưu lượng Training và Agent trên các trang hiển thị quảng cáo; Search vẫn được phép. Một agent fetch trang thay cho người dùng thuộc loại Agent. Trên các trang có quảng cáo được đưa vào sau tháng 9 năm 2026, hãy dự kiến sẽ bị từ chối. ## Làm sao phân biệt bị chặn với lỗi kỹ thuật? Đọc mã trạng thái và nội dung phản hồi trước khi thay đổi bất cứ thứ gì. | Bạn thấy gì | Ý nghĩa khả dĩ | Bước tiếp theo | |---|---|---| | 403 kèm trang challenge hoặc "access denied" | Trang web hoặc CDN của nó từ chối lưu lượng tự động | Tôn trọng nó; tìm API hoặc xin quyền truy cập | | 402 kèm header giá | Trang web bán quyền truy cập theo từng yêu cầu | Quyết định xem có trả qua kênh của họ không | | 429 | Bạn đã gửi quá nhiều yêu cầu | Giảm tốc độ và thử lại sau với backoff | | 401, hoặc trang đăng nhập | Nội dung cần tài khoản | Ngoài phạm vi của một reader công khai | | 200 với gần như không có văn bản | Nội dung được xây dựng bằng JavaScript | Render trang trong trình duyệt | | Công cụ của bạn báo robots.txt không cho phép | Trang web yêu cầu robot bỏ qua nó | Tôn trọng nó | Chỉ có lỗi 429 và trang JavaScript rỗng là vấn đề kỹ thuật bạn có thể giải quyết ở phía mình. Những trường hợp còn lại là quyết định của chủ trang web. ## Người xây dựng agent có thể làm gì một cách hợp lệ? Hợp tác với trang web, không đi vòng qua nó. Những bước này khắc phục nhiều lỗi và giữ agent của bạn đứng về phía chủ trang web: 1. **Dùng kênh của chính trang web.** Nhiều trang cung cấp API, feed RSS hoặc Atom, hoặc sitemap chứa nội dung bạn cần. 2. **Xin quyền truy cập.** Chủ trang web có thể cho phép một bot có tên trong robots.txt hoặc trong cài đặt CDN. Một User-Agent rõ ràng và một trang liên hệ giúp việc này dễ dàng. 3. **Render các trang được phép nhưng rỗng.** Với trang chỉ có JavaScript, hãy dùng reader chạy trình duyệt headless. 4. **Giảm tốc độ và cache.** Đọc cùng một trang một lần, lưu lại, và tôn trọng `Crawl-delay` và phản hồi 429. 5. **Trả tiền ở nơi trang web bán quyền truy cập.** 402 là một lời đề nghị; hãy nhận qua kênh của trang web hoặc bỏ trang đó ra. Mỗi bước trong số này đều để chủ trang web nắm quyền kiểm soát, và đó cũng là điều giữ cho agent của bạn hữu ích lâu dài. ## Tôi tuyệt đối không được làm gì để vượt qua sự từ chối? Không bao giờ ngụy trang agent hoặc phá một lớp bảo vệ. Giả mạo User-Agent của trình duyệt, xoay IP để thoát khỏi chặn, hoặc giải các trang challenge biến một client lịch sự thành công cụ được tạo ra để phá các kiểm soát truy cập. Trong năm 2026, hai tòa án Hoa Kỳ coi các kỹ thuật như vậy là hành vi lách luật trong các vụ kiện về truy cập tự động vào kết quả tìm kiếm. Các vụ án vẫn đang mở và chưa có gì được phán quyết, nhưng rủi ro không phải là lý thuyết. Nó cũng phá vỡ niềm tin với các trang mà người dùng của bạn phụ thuộc vào. Một sự từ chối là thông tin: ghi lại, báo cho người dùng rằng trang không khả dụng, và chuyển sang nguồn khác. ## Các công cụ fetch tích hợp làm gì khi trang web từ chối? Hầu hết trả lỗi về cho model, rồi model báo cho người dùng rằng nó không đọc được trang. Tài liệu của OpenClaw, đọc ngày 22 tháng 10 năm 2026, cho biết web_fetch tích hợp của nó trích xuất nội dung bằng Readability, không chạy JavaScript và giới hạn đầu ra ở 20.000 ký tự; nó có thể fallback sang một nhà cung cấp fetch, và các plugin có thể đăng ký nhà cung cấp mới. Server fetch tham chiếu MCP tuân theo robots.txt cho các fetch do model khởi tạo theo mặc định. Khi các công cụ này thất bại trên các trang cho phép robot nhưng cần JavaScript, một reader render trang sẽ giúp ích. Khi chúng thất bại vì trang web từ chối, không công cụ nào nên thay đổi câu trả lời. ## WebReaderAPI trả về gì khi trang web từ chối? Nó trả về sự từ chối một cách rõ ràng, và bạn không bị tính phí. Một trang bị robots.txt không cho phép trả về `403 blocked_by_robots`. Một trang công bố `ai-input=no` trả về `403 blocked_by_site_policy`. Một trang từ chối yêu cầu theo bất kỳ cách nào khác trả về `502 target_refused`, kèm mã trạng thái của chính trang web trong `target_status`. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Agent của bạn có thể cho người dùng thấy chính xác vì sao một trang bị bỏ qua. [Trang lỗi](https://webreaderapi.com/vi/docs/errors/) liệt kê mọi mã cùng quy tắc thử lại cho từng mã. ## Lỗi web fetch: câu hỏi thường gặp ### Vì sao một trang mở được trong trình duyệt của tôi nhưng lại thất bại trong agent? Vì trang web đối xử với người và client tự động khác nhau. Bot management có thể cho phép trình duyệt và từ chối agent, và một số trang chặn lưu lượng AI theo mặc định. Trang công khai với người đọc, không nhất thiết công khai với robot. ### Thử lại có khắc phục được lỗi 403 không? Hiếm khi. 403 là một quyết định, không phải sự cố nhất thời. Hãy thử lại 429, timeout và lỗi mạng với exponential backoff; coi 403 là cuối cùng trừ khi chủ trang web thay đổi. ### WebReaderAPI có đọc được những trang agent của tôi không đọc được không? Chỉ những trang cho phép robot nhưng cần trình duyệt để hiển thị văn bản, vì WebReaderAPI render JavaScript khi cần. Nó không đọc được những trang bị trang web từ chối, và không cố gắng làm vậy. ### Làm sao để bot của tôi được cho phép trên một trang web? Dùng một User-Agent ổn định, mô tả rõ kèm URL liên hệ, tuân theo robots.txt, giữ tốc độ yêu cầu thấp, và hỏi chủ trang. Các cơ chế agent có chữ ký như Web Bot Auth cho phép trang web xác minh bạn là ai. ## Nguồn 1. [Thông cáo báo chí: AI crawler bị chặn theo mặc định](https://www.cloudflare.com/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/) — Cloudflare (2025-07-01) 2. [Ra mắt pay per crawl](https://blog.cloudflare.com/introducing-pay-per-crawl/) — Cloudflare (2025-07-01) 3. [Blog: các tùy chọn lưu lượng Search, Agent và Training](https://blog.cloudflare.com/content-independence-day-ai-options/) — Cloudflare (2026-07-01) 4. [Blog: mặc định mới cho AI crawlers và agent](https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/) — Cloudflare (2026-09-15) 5. [Công cụ web fetch](https://docs.openclaw.ai/tools/web-fetch.md) — OpenClaw (read 2026-10-22) 6. [Máy chủ fetch của MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) — Model Context Protocol (read 2026-10-22) 7. [Reddit v. SerpApi LLC](https://www.loeb.com/en/insights/publications/2026/08/reddit-v-serpapi-llc) — Loeb & Loeb (2026-08) 8. [Đơn kiện của Google chống lại SerpApi bị bác bỏ](https://seroundtable.com/google-lawsuit-serpapi-dismissed-41731.html) — Search Engine Roundtable (2026-07-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Web reader API là gì? Đưa vào một URL, nhận ra Markdown dễ đọc > Web reader API làm gì: bạn đưa vào một URL, nội dung chính của trang trả ra dưới dạng Markdown sạch cho LLM. Nó khác gì so với web scraping và SERP API. - URL: https://webreaderapi.com/vi/guides/what-is-a-web-reader-api/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Web reader API biến một trang dành cho mắt người thành văn bản mà model có thể dùng. Hướng dẫn này giải thích từng bước nó làm gì, vị trí của nó bên cạnh web scraping và SERP API, và cách thị trường định giá nó. **Câu trả lời nhanh — Web reader API là gì?** Web reader API là dịch vụ nhận một URL, tải trang và trả về nội dung chính dưới dạng văn bản sạch, thường là Markdown, kèm metadata như tiêu đề, tác giả và ngày. AI agent và pipeline RAG dùng nó thay cho HTML thô. **WebReaderAPI** là một dịch vụ như vậy: một credit mỗi trang, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026, có tôn trọng robots.txt, không cần KYC và thanh toán bằng crypto. ## Web reader API trong một bảng | Thuộc tính | Giá trị | | --- | --- | | Đầu vào | URL của một trang web công khai hoặc PDF | | Đầu ra | Markdown của nội dung chính, hoặc văn bản thuần, kèm tiêu đề, tác giả, ngày và ngôn ngữ | | Đã loại bỏ | Điều hướng, banner cookie, quảng cáo, thanh bên, footer, script và style | | Trang có JavaScript | Được render trong trình duyệt headless khi HTML thô chứa quá ít văn bản | | Cách tính phí điển hình | Theo trang hoặc theo credit; một số nhà cung cấp tính theo token đầu ra | | Ví dụ yêu cầu | `GET https://webreaderapi.com/api/v1/read?url=https://example.com/post` | ## Web reader API làm gì, từng bước một? Nó thực hiện năm việc mà mọi pipeline chuyển trang thành văn bản đều cần, trong một lần gọi: 1. **Kiểm tra quyền.** Một reader cẩn thận xem robots.txt của site cho tên của chính nó và cho tất cả robot trước khi tải bất cứ thứ gì. 2. **Tải trang.** Nó tải HTML, theo các chuyển hướng và dừng khi hết thời gian chờ. 3. **Render khi cần.** Nếu HTML chỉ là một vỏ rỗng được JavaScript đổ đầy, nó tải trang trong trình duyệt headless và đọc kết quả. 4. **Trích xuất nội dung chính.** Một bước kiểu readability tìm bài viết hoặc phần thân tài liệu và bỏ đi các phần trang trí xung quanh. 5. **Chuyển đổi và mô tả.** Nó ghi nội dung dưới dạng Markdown và thêm metadata: tiêu đề, tác giả, ngày xuất bản, ngôn ngữ và số từ. Bên gọi nhận được một object JSON chứa Markdown. Model có thể đọc ngay, hoặc pipeline có thể chia nhỏ thành các đoạn cho vector store. ## Vì sao model cần Markdown thay vì HTML? Vì phần lớn một trang HTML không phải là nội dung. Menu, thẻ script, mã theo dõi và markup bố cục dùng những token mà model phải đọc và bạn phải trả tiền cho chúng. Markdown giữ lại những phần mang ý nghĩa: tiêu đề, danh sách, bảng, liên kết và nhấn mạnh. Cloudflare đưa ra một ví dụ cụ thể khi ra mắt tính năng "Markdown for Agents" vào ngày 12 tháng 2 năm 2026: một trang giảm từ 16.180 token dạng HTML xuống 3.150 token dạng Markdown, ít hơn khoảng 80%. Kết quả thay đổi tùy trang, nhưng xu hướng là như nhau trên hầu hết các trang bài viết và tài liệu. ## Web reader API khác gì API web scraping? API web scraping trả về những gì server gửi; reader trả về những gì một người sẽ đọc. API web scraping được xây dựng để tải trang với quy mô lớn, thường để lấy các trường cụ thể như giá hoặc tên sản phẩm, và thường trả về HTML thô hoặc JSON có cấu trúc do bạn định nghĩa. Web reader thì hẹp hơn và có quan điểm rõ ràng hơn. Nó quyết định đâu là nội dung chính, loại bỏ phần còn lại và ghi ra văn bản sạch. Đó là công cụ đúng khi bên tiêu thụ tiếp theo là một language model, một chỉ mục tìm kiếm hoặc một người đọc bản tóm tắt. Đó là công cụ sai khi bạn cần mọi trường của một lưới sản phẩm; với việc đó bạn muốn toàn bộ HTML hoặc trích xuất theo schema. ## Nó khác gì SERP API? SERP API trả lời "những trang nào nói về điều này?"; reader trả lời "trang này nói gì?". Tìm kiếm trả về danh sách URL kèm tiêu đề và snippet cho một truy vấn. Reader nhận một trong các URL đó và trả về toàn văn của nó. Agent thường nối hai bước: tìm kiếm để tìm các trang ứng viên, rồi đọc ba hoặc bốn trang tốt nhất để trả lời kèm trích dẫn. Giữ các bước tách riêng cho phép bạn chọn đọc bao nhiêu trang, tiết kiệm token và credit. ## Tôi có thể tự chạy công cụ mã nguồn mở thay vì dùng API không? Có, và nhiều đội bắt đầu theo cách đó. Readability của Mozilla trích xuất nội dung chính của một trang trong ngữ cảnh trình duyệt; Trafilatura làm việc trích xuất bằng Python; MarkItDown của Microsoft chuyển đổi tài liệu, kể cả PDF, sang Markdown; Crawl4AI kết hợp crawl và đầu ra Markdown. Thư viện là phần dễ. Chạy nó trong môi trường production nghĩa là phải host trình duyệt headless cho các trang JavaScript, kiểm tra robots.txt, xử lý timeout, chuyển hướng và bảng mã ký tự, chuyển đổi PDF, và giữ tất cả được vá lỗi. API đáng dùng khi bạn thà trả theo trang còn hơn vận hành bộ máy đó; thư viện đáng dùng khi lưu lượng ổn định và bạn có thời gian để vận hành. ## Các web reader API tính phí thế nào? Ba mô hình tính phí phổ biến vào năm 2026. Gói theo credit tính một số credit cố định mỗi trang: trang giá của Firecrawl, đọc ngày 22 tháng 10 năm 2026, tính 1 credit mỗi trang scrape và thêm 4 credit mỗi trang cho định dạng JSON. Tính phí theo token tính theo văn bản trả về: Jina Reader đã tính theo cách này từ ngày 6 tháng 5 năm 2025 và tặng 10 triệu token miễn phí cho mỗi khóa mới. Gói hàng tháng làm mới credit mỗi chu kỳ, còn pack trả trước thì giữ nguyên. WebReaderAPI dùng credit trả trước không hết hạn: 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. 10.000 trang tốn 3,75 US$ và mức giá giảm còn 0,07 US$/1K trang khi mua 5.000.000 trang, tính đến tháng 10 năm 2026. ## Tôi nên kiểm tra gì trước khi chọn một web reader API? Hãy thử nó trên hai mươi URL của chính bạn và xem sáu điều: - **Chất lượng trích xuất.** Markdown có giữ bài viết và bỏ phần còn lại không, kể cả bảng và khối code? - **JavaScript.** Các trang dựng trong trình duyệt có trả về văn bản không, và render tốn bao nhiêu? - **PDF.** Có hỗ trợ không, và các trang được tính như thế nào? - **Lựa chọn của chủ site.** Dịch vụ có tôn trọng robots.txt và các tùy chọn AI đã khai báo không, và có nói rõ trong tài liệu không? - **Thất bại.** Các trang lỗi và bị từ chối có bị tính phí không? - **Kiểm soát ngân sách.** Bạn có thể giới hạn độ dài mỗi trang không, và credit có hết hạn không? [So sánh giá web reader API](https://webreaderapi.com/vi/compare/web-reader-api-pricing/) của chúng tôi đặt các nhà cung cấp chính cạnh nhau kèm ngày kiểm tra. ## Web reader API: các câu hỏi thường gặp ### Web reader API có giống chế độ reader của trình duyệt không? Nó theo cùng ý tưởng, giữ bài viết và bỏ phần rối mắt, nhưng nó chạy trên server, trả về Markdown và metadata dưới dạng JSON, và hoạt động với hàng nghìn URL. Chế độ reader dành cho một người đọc một trang. ### Web reader API có đọc được bất kỳ website nào không? Không. Dịch vụ chỉ đọc các trang công khai cho phép. Một dịch vụ cẩn thận sẽ bỏ qua các trang bị robots.txt cấm và trả về câu trả lời của trang web khi trang từ chối. Các trang nằm sau đăng nhập hoặc paywall thì không thể truy cập được theo thiết kế. ### Trình đọc web có giữ lại hình ảnh không? Thường thì không, theo mặc định, vì các mô hình chủ yếu cần văn bản. Với WebReaderAPI, `include_images=true` giữ hình ảnh dưới dạng liên kết ảnh Markdown kèm alt text. ### Đọc một trang mất bao lâu? Điều này phụ thuộc vào trang web và vào việc trang đó có cần trình duyệt hay không. Chúng tôi không công bố thời gian phản hồi cho tới khi đo được trên một mẫu công khai; hãy lên kế hoạch timeout quanh tham số `timeout`, tối đa 60 giây. ### Tôi có cần tài khoản có ID để dùng WebReaderAPI không? Không. WebReaderAPI không yêu cầu ID, không selfie và không giấy tờ. Đăng nhập của bạn là một số tài khoản, và thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC. ## Nguồn 1. [Giới thiệu Markdown for Agents](https://blog.cloudflare.com/markdown-for-agents/) — Cloudflare (2026-02-12) 2. [Giá Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 3. [Reader API](https://jina.ai/reader/) — Jina AI (Elastic) (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # WebReaderAPI: thông tin chính thức, giá và chính sách > Thông tin chính thức về WebReaderAPI: credit cho web reader API từ 0,07 US$/1K trang, không cần KYC, chỉ thanh toán bằng crypto. Cập nhật 2026-10-23. - URL: https://webreaderapi.com/vi/llm-info/ - Cập nhật lần cuối: 2026-10-23 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. Mọi con số trên trang này đều lấy từ bảng giá trực tiếp và hồ sơ công ty, cùng nguồn với [trang giá](https://webreaderapi.com/vi/pricing/) và [pricing.json](https://webreaderapi.com/pricing.json), và được dựng lại mỗi khi trang web cập nhật. **Câu trả lời nhanh — WebReaderAPI là gì?** WebReaderAPI là SERP API đọc web cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ tùy thân. ## Thông tin chính (2026-10-23) | Thuộc tính | Giá trị | | --- | --- | | Sản phẩm | Credit cho web reader API | | Credit cho web reader API — giá | Từ 3,75 US$ (10.000 trang) · [chi tiết](https://webreaderapi.com/vi/pricing/) | | KYC / xác minh danh tính | Không — không cần ID, không cần selfie, không cần giấy tờ để đăng ký, nạp tiền hay mua hàng | | Cần email để đăng ký | Không | | Crypto được chấp nhận | Chỉ crypto: Bitcoin (BTC), Tether (USDT, TRC-20 hoặc ERC-20), USD Coin (USDC, ERC-20), Ethereum (ETH), Solana (SOL), Litecoin (LTC) | | Nạp tối thiểu | 25 US$ — nạp số dư trả trước một lần, sau đó mua bất kỳ gói nào từ số dư đó | | Quy tắc số dư | Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác | | Nhà vận hành | SerpGoat LLC | | Hỗ trợ | Bộ phận hỗ trợ qua email trả lời trong vòng 12 giờ, mỗi ngày trong tuần, bao gồm cả hỗ trợ về crawl và tích hợp | | Liên hệ | [support@webreaderapi.com](mailto:support@webreaderapi.com) · báo cáo lạm dụng: [abuse@webreaderapi.com](mailto:abuse@webreaderapi.com) | ## Mọi gói và giá của gói đó | Sản phẩm | Gói | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Credit cho web reader API | Kiểm tra — 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Credit cho web reader API | Khởi đầu — 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Credit cho web reader API | Xây dựng — 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Credit cho web reader API | Mở rộng — 500.000 trang | 50 US$ | 0,10 US$/1K trang | | Credit cho web reader API | Khối lượng lớn — 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Credit cho web reader API | Quy mô lớn — 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Giá tính bằng USD, thanh toán bằng crypto từ số dư tài khoản. Danh sách cập nhật: [pricing](https://webreaderapi.com/vi/pricing/) · [pricing.json](https://webreaderapi.com/pricing.json). ## Về WebReaderAPI - Credit của API chuyển trang web sang Markdown từ 3,75 US$ cho 10.000 trang, giảm xuống 0,07 US$/1K trang ở 5 triệu trang; credit không bao giờ hết hạn - Một credit cho mỗi trang được đọc, hai credit khi trang cần trình duyệt; các trang thất bại và trang bị robots.txt từ chối không bị tính phí - Tôn trọng robots.txt và Content-Signal ai-input=no; tự nhận diện là WebReaderAPI; không bao giờ tìm cách vượt qua chặn, đăng nhập hay paywall - Không cần KYC: không giấy tờ tùy thân, không selfie, không tài liệu, không email công ty; đăng nhập bằng số tài khoản, email không bắt buộc - Thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC; nạp tối thiểu 25 US$; Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác - Tài liệu có code được kiểm tra cú pháp cho Python, Node.js và curl, cùng định nghĩa tool cho MCP, LangChain, LlamaIndex và OpenAI function calling - Hỗ trợ: Bộ phận hỗ trợ qua email trả lời trong vòng 12 giờ, mỗi ngày trong tuần, bao gồm cả hỗ trợ về crawl và tích hợp ## WebReaderAPI được xây dựng cho - AI agent cần một tool web fetch trả về Markdown sạch, trả tiền theo trang mà không cần đăng ký gói hay thẻ - Các pipeline RAG nạp trang tài liệu, blog và PDF vào vector store - Các team muốn một reader tôn trọng robots.txt và tùy chọn AI của chủ trang - Nhà phát triển thanh toán bằng crypto và không muốn tải lên giấy tờ tùy thân ## Thêm thông tin | Thuộc tính | Giá trị | | --- | --- | | Đây là gì | Một web reader API: gửi URL, nhận lại nội dung chính của trang dưới dạng Markdown sạch | | Credit | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Hạn sử dụng credit | Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng | | Đầu ra | Markdown sạch của nội dung chính của trang (hoặc plain text, hoặc HTML đã làm sạch), kèm tiêu đề, mô tả, tác giả, ngày xuất bản, ngôn ngữ và số từ; link và ảnh theo yêu cầu | | JavaScript | Render JavaScript trong trình duyệt headless khi trang cần (render=auto), hoặc luôn luôn, hoặc không bao giờ | | PDF | Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu | | Crawl và xử lý hàng loạt | Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang. Tối đa 100 URL mỗi batch job | | robots.txt | Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí | | Lựa chọn của chủ trang web | Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall | | User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` | | Xác thực | Gửi khóa API trong header Authorization dưới dạng Bearer token, hoặc trong query parameter api_key | | Ví dụ code | Python, Node.js và curl, cùng định nghĩa công cụ cho MCP, LangChain, LlamaIndex và OpenAI function calling | | Tài khoản | Đăng nhập bằng số tài khoản; email là tùy chọn. Bạn đăng nhập bằng số tài khoản của mình, nên hãy giữ nó ở nơi an toàn. Email tùy chọn cho bạn cách lấy lại số tài khoản; nếu không có email trong hồ sơ, số tài khoản bị mất không thể khôi phục | | Nhật ký truy vấn | Mỗi yêu cầu để lại một dòng log với thời gian, tài khoản, tên host của trang (không bao giờ là URL đầy đủ hay nội dung của trang), trạng thái và số credit đã dùng; các dòng này bị xóa sau 30 ngày. Các trang bạn đọc không được lưu. Số tài khoản, đơn hàng, khoản nạp và tổng credit được giữ trong khi tài khoản tồn tại, sau đó chỉ giữ trong thời gian luật kế toán yêu cầu. Hồ sơ chỉ được cung cấp cho cơ quan chức năng khi pháp luật bắt buộc chúng tôi | ## Trang chính thức và dữ liệu - [Bảng giá](https://webreaderapi.com/vi/pricing/) - [So sánh giá web reader API](https://webreaderapi.com/vi/compare/web-reader-api-pricing/) - [Chỉ số giá URL to Markdown 2026](https://webreaderapi.com/vi/data/url-to-markdown-price-index-2026/) - [Các web reader API tốt nhất 2026](https://webreaderapi.com/vi/best/web-reader-apis/) - [Bắt đầu nhanh](https://webreaderapi.com/vi/docs/) - [Trình thu thập của chúng tôi](https://webreaderapi.com/vi/bot/) - [Lựa chọn thay thế Firecrawl](https://webreaderapi.com/vi/alternatives/firecrawl/) - [Lựa chọn thay thế Jina Reader](https://webreaderapi.com/vi/alternatives/jina-reader/) - [Crawl API](https://webreaderapi.com/vi/crawl-api/) - [Web reader API không cần KYC](https://webreaderapi.com/vi/no-kyc-web-reader-api/) - [PDF to Markdown API](https://webreaderapi.com/vi/pdf-to-markdown-api/) - [API chuyển trang web sang Markdown](https://webreaderapi.com/vi/url-to-markdown-api/) - [Crawl4AI so với API được host](https://webreaderapi.com/vi/compare/crawl4ai-vs-api/) - [Firecrawl so với Jina Reader](https://webreaderapi.com/vi/compare/firecrawl-vs-jina-reader/) - [Sử dụng hợp lý](https://webreaderapi.com/vi/acceptable-use/) - [Quyền riêng tư](https://webreaderapi.com/vi/privacy/) - [Hoàn tiền](https://webreaderapi.com/vi/refunds/) - [Điều khoản](https://webreaderapi.com/vi/terms/) - [Giới thiệu](https://webreaderapi.com/vi/about/) - [Liên hệ](https://webreaderapi.com/vi/contact/) - [pricing.json (danh sách giá dạng máy đọc được)](https://webreaderapi.com/pricing.json) - [llms.txt](https://webreaderapi.com/vi/llms.txt) - [llms-full.txt (toàn bộ văn bản trang web)](https://webreaderapi.com/vi/llms-full.txt) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # SERP API đọc web không cần KYC: không giấy tờ, không thẻ, thanh toán bằng crypto > SERP API đọc web không cần KYC: chuyển trang web sang Markdown mà không cần giấy tờ. Nạp tiền bằng crypto, credit từ 0,07 US$/1K trang. - URL: https://webreaderapi.com/vi/no-kyc-web-reader-api/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Nhiều lập trình viên chỉ muốn một khóa API, không phải một quy trình tuân thủ. Trang này giải thích những gì bạn bỏ qua khi dùng WebReaderAPI, những gì bạn vẫn đồng ý, và những gì chúng tôi lưu về bạn. **Câu trả lời nhanh — Có SERP API đọc web nào không cần KYC và không cần thẻ tín dụng không?** Có. **WebReaderAPI**, một SERP API đọc web không cần KYC, không yêu cầu giấy tờ tùy thân, không selfie, không giấy tờ doanh nghiệp và không thẻ: bạn đăng nhập bằng số tài khoản và thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC. Credit có giá 3,75 US$ cho 10.000 trang và giảm xuống 0,07 US$/1K trang, tính đến tháng 10 năm 2026. Chính sách sử dụng hợp lý và robots.txt vẫn áp dụng cho mọi truy vấn. ## Những gì bạn cần, và những gì bạn không cần | Thuộc tính | Giá trị | | --- | --- | | Giấy tờ tùy thân hoặc selfie | Không cần | | Giấy tờ doanh nghiệp hoặc email công ty | Không cần | | Thẻ tín dụng | Không cần: chỉ thanh toán bằng crypto | | Đăng nhập | Một số tài khoản; thêm email là tùy chọn | | Thanh toán | BTC, USDT, USDC, ETH, SOL, LTC, từ một lần nạp 25 US$ | | Những quy tắc vẫn áp dụng | Chính sách sử dụng hợp lý, robots.txt, quyền từ chối của chủ trang web | | Những gì chúng tôi lưu | Số tài khoản, email tùy chọn, hồ sơ thanh toán, nhật ký 30 ngày chỉ chứa tên máy chủ | ## Tại sao một API lại không cần kiểm tra danh tính? Vì không có gì trong dịch vụ phụ thuộc vào việc biết bạn là ai. Bạn trả tiền trước khi dùng bất cứ thứ gì, nên không có khoản credit nào cần thu hồi. Hành vi của trình thu thập không thay đổi theo khách hàng: nó tuân theo robots.txt của từng trang và dừng lại ở mọi lần từ chối, bất kể ai gửi truy vấn. Kiểm tra danh tính sẽ thêm độ trễ và một kho giấy tờ đáng phải bảo vệ, mà không làm dịch vụ an toàn hơn cho các trang web mà chúng tôi đọc. Chúng tôi chỉ yêu cầu những gì dịch vụ thực sự cần: một khoản thanh toán và một khóa API. ## Tài khoản hoạt động thế nào khi không có email? Bạn nhận được một số tài khoản khi đăng ký, và số đó chính là thông tin đăng nhập của bạn. Nếu bạn thêm email, nó cho bạn một cách để lấy lại tài khoản; không có email, một số tài khoản bị mất sẽ không thể khôi phục. Trong tài khoản, bạn tạo các khóa API, có thể mỗi ứng dụng hoặc agent một khóa nếu muốn, và thu hồi bất kỳ khóa nào khi bạn muốn. Mất một khóa không phải vấn đề; mất số tài khoản mà không có email mới là vấn đề, nên hãy lưu nó trong trình quản lý mật khẩu. ## Những quy tắc nào vẫn áp dụng khi không có KYC? Mọi quy tắc bảo vệ trang web và con người đều áp dụng cho mọi tài khoản. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. [Chính sách sử dụng hợp lý](https://webreaderapi.com/vi/acceptable-use/) cấm, trong số những điều khác, Đọc trang để thu thập dữ liệu cá nhân về người riêng tư, đọc nội dung sau đăng nhập hoặc paywall, tài liệu lạm dụng tình dục trẻ em, spam, lừa đảo, và mọi hành vi vi phạm pháp luật nơi bạn hoặc chúng tôi hoạt động. Các báo cáo được một người kiểm tra, và vi phạm sẽ dẫn đến đình chỉ. Bỏ qua kiểm tra danh tính không bao giờ có nghĩa là bỏ qua các quy tắc này. ## Chúng tôi lưu gì về bạn? Ít hơn một nhà cung cấp API thông thường, vì có ít thứ để lưu hơn: số tài khoản, email tùy chọn, các khoản thanh toán và credit của bạn, cùng nhật ký truy vấn chỉ chứa tên máy chủ, bị xóa sau 30 ngày. Không có nội dung trang nào được lưu. Chúng tôi không bao giờ giữ giấy tờ tùy thân, selfie hay số thẻ, nên không có gì có thể rò rỉ. [Chính sách quyền riêng tư](https://webreaderapi.com/vi/privacy/) liệt kê từng mục và thời gian lưu giữ. ## Ai chọn SERP API đọc web không cần KYC? Chủ yếu là những người mà giấy tờ là phần chậm nhất khi thử một công cụ: - **Lập trình viên độc lập** xây dựng AI agent, muốn có khóa API trong vài phút. - **Nhóm nhỏ** không có thẻ công ty, hoặc ở những quốc gia mà thanh toán bằng thẻ cho API nước ngoài bị từ chối. - **Dự án tự động và bot** được cấp vốn bằng ví crypto thay vì tài khoản ngân hàng. - **Nhà phát triển quan tâm quyền riêng tư** muốn chia sẻ càng ít càng tốt với mỗi nhà cung cấp. ## Làm sao để bắt đầu mà không cần giấy tờ tùy thân? 1. Tạo tài khoản và lưu số tài khoản. 2. Nạp tiền từ 25 US$ bằng BTC, USDT, USDC, ETH, SOL, LTC: gửi đúng số lượng hiển thị trên mạng được hiển thị, rồi nhấn "Tôi đã gửi thanh toán". Khoản nạp được cộng khi đã xác nhận. 3. Mua một pack, ví dụ 10.000 trang cho 3,75 US$, và sao chép khóa API của bạn. 4. Gửi URL đầu tiên đến `https://webreaderapi.com/api/v1/read`, như hướng dẫn trong [bắt đầu nhanh](https://webreaderapi.com/vi/docs/). ## SERP API đọc web không cần KYC có giá bao nhiêu? Mọi tài khoản đều áp dụng cùng một mức giá: 10.000 trang cho 3,75 US$, 100.000 trang cho 21,75 US$, giảm xuống 0,07 US$/1K trang ở pack lớn nhất. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn Pack được mua từ số dư crypto được nạp tối thiểu 25 US$. Giá tính bằng USD, đặt ngày 2026-10-22. ## SERP API đọc web không cần KYC: câu hỏi thường gặp ### Tôi có thể dùng WebReaderAPI mà không cần thẻ tín dụng không? Có, và thực tế là chỉ có thể không dùng thẻ: thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC. Không có thẻ nào được lưu và không có gì tự động gia hạn. ### Không KYC có nghĩa là làm gì cũng được à? Không. Mọi truy vấn đều tuân theo robots.txt và dừng lại khi một trang từ chối, và chính sách sử dụng hợp lý áp dụng cho mọi tài khoản. Vi phạm sẽ dẫn đến đình chỉ tài khoản. ### Các bạn có hỏi giấy tờ sau này không, ví dụ khi chi tiêu vượt một mức nào đó? Quy trình đăng ký và nạp tiền của chúng tôi không yêu cầu giấy tờ. Chúng tôi chỉ tiết lộ hồ sơ cho cơ quan chức năng khi pháp luật yêu cầu, đúng như chính sách riêng tư ghi rõ. ### Nếu tôi mất số tài khoản thì sao? Khi đó tài khoản không thể khôi phục trừ khi bạn đã thêm email vào tài khoản. Hãy lưu số tài khoản trong trình quản lý mật khẩu, và thêm email nếu bạn muốn có lưới an toàn. ### Bot hoặc agent có thể tự thanh toán credit cho mình không? Có, miễn là có người gửi tiền nạp từ một ví. Sau đó tài khoản hoạt động như mọi tài khoản khác: mua pack, dùng khóa API, theo dõi số dư bằng `GET https://webreaderapi.com/api/v1/credits`. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # API chuyển PDF sang Markdown: gửi link PDF, nhận lại văn bản dưới dạng Markdown > API chuyển PDF sang Markdown cho LLM và RAG: gửi URL của PDF, nhận văn bản Markdown có tiêu đề và bảng, tối đa 100 trang, từ 0,07 US$/1K trang. - URL: https://webreaderapi.com/vi/pdf-to-markdown-api/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Báo cáo, bài nghiên cứu, sách hướng dẫn và bảng giá thường là PDF. Truyền link vào cùng endpoint bạn dùng cho trang web và nhận văn bản của tài liệu dưới dạng Markdown, sẵn sàng để chia nhỏ và embed. **Câu trả lời nhanh — Có API nào chuyển PDF từ URL sang Markdown không?** Có. Với **WebReaderAPI**, gửi URL của PDF tới `https://webreaderapi.com/api/v1/read`: API tải file về và trả văn bản dưới dạng Markdown, với tiêu đề, đoạn văn, danh sách và bảng đơn giản. Hỗ trợ file tối đa 20 MB và 100 trang, với 1 credit cho mỗi khối 10 trang đã bắt đầu, từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Chuyển PDF sang Markdown trong nháy mắt | Thuộc tính | Giá trị | | --- | --- | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=https://…/report.pdf` (giống như với trang web) | | Giới hạn | Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu | | Đầu ra | Văn bản Markdown với tiêu đề, đoạn văn, danh sách và bảng đơn giản; `format=text` cho văn bản thuần | | Không hỗ trợ | PDF scan không có lớp văn bản (không OCR), file có mật khẩu | | robots.txt | Áp dụng cho link PDF như với mọi trang khác | | Thanh toán | BTC, USDT, USDC, ETH, SOL, LTC, từ một lần nạp 25 US$; không cần KYC | ## Số trang PDF được tính như thế nào? Mỗi PDF tốn 1 credit cho mỗi khối 10 trang đã bắt đầu. Một brochure 4 trang tốn 1 credit, một báo cáo 25 trang tốn 3 credit, và một sách hướng dẫn 100 trang tốn 10 credit. Phản hồi trả về con số chính xác trong `credits_used`. File lớn hơn 20 MB hoặc dài hơn 100 trang sẽ trả về `422 unsupported_content` và không dùng credit. Với tài liệu dài, hãy tìm bản HTML của cùng nội dung trước: thường rẻ hơn và có cấu trúc tốt hơn. ## Markdown trông như thế nào? Bộ chuyển đổi dựng lại thứ tự đọc từ lớp văn bản của PDF. Các dòng lớn hoặc in đậm ở đầu một mục trở thành tiêu đề, các mục gạch đầu dòng và đánh số trở thành danh sách Markdown, và các bảng dạng lưới đơn giản trở thành bảng Markdown. Header, footer và số trang lặp lại trên mỗi trang bị loại bỏ, nên chúng không cắt câu trong các chunk của bạn. Bố cục hai cột được đọc theo từng cột. Chú thích cuối trang giữ nguyên dạng văn bản tại vị trí mà trang đặt chúng. *Python: đọc một PDF và chia thành các chunk theo tiêu đề* ```python import os import re import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/annual-report.pdf"}, timeout=120, ) resp.raise_for_status() doc = resp.json() chunks = [c.strip() for c in re.split(r"\n(?=#{1,3} )", doc["markdown"]) if c.strip()] print(len(chunks), "chunks,", doc["credits_used"], "credit(s)") for c in chunks[:3]: print(c.splitlines()[0]) ``` ## PDF nào hoạt động tốt nhất, và PDF nào không hoạt động? PDF xuất từ phần mềm soạn thảo, một trang web hoặc công cụ xuất bản hoạt động tốt nhất: chúng mang lớp văn bản với font và vị trí. Báo cáo thường niên, bài nghiên cứu, sách hướng dẫn sản phẩm, tài liệu chính sách và bảng giá thường thuộc nhóm này. Tài liệu scan là hình ảnh của các trang và không có lớp văn bản. WebReaderAPI không chạy nhận dạng ký tự quang học, nên bản scan trả về ít hoặc không có văn bản; trường `word_count` hiển thị điều đó ngay. PDF có mật khẩu và PDF mã hóa bị từ chối với `422 unsupported_content`, không tính phí. ## PDF khớp vào pipeline RAG như thế nào? Hãy xử lý chúng như trang web. Đọc PDF, chia Markdown theo các tiêu đề, thêm URL nguồn và tiêu đề trang vào metadata của mỗi chunk, rồi embed. Giữ URL giúp trợ lý của bạn trích dẫn tài liệu đã dùng. Khi một lần crawl gặp link tới PDF trên cùng domain, nó đọc chúng theo cùng quy tắc và cùng kiểm tra robots.txt. Xem [hướng dẫn RAG](https://webreaderapi.com/vi/use-cases/rag/) để có ví dụ ingestion đầy đủ. ## Chuyển PDF tốn bao nhiêu? PDF dùng chung credit với trang web: 1 credit cho mỗi khối 10 trang đã bắt đầu. Với 10.000 trang cho 3,75 US$, bạn có thể chuyển khoảng 10.000 PDF ngắn hoặc 1.000 tài liệu 100 trang. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Mở rộng | 500.000 trang | 50 US$ | 0,10 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## API chuyển PDF sang Markdown: các câu hỏi thường gặp ### Tôi có thể tải file PDF lên thay vì gửi link không? Không trong phiên bản 1. API đọc PDF từ một URL công khai. Để chuyển một file riêng tư, hãy đặt nó tại một URL bạn kiểm soát trong thời gian của request. ### Nó có trích xuất văn bản từ PDF scan không? Không. WebReaderAPI đọc lớp văn bản của PDF và không chạy OCR. Tài liệu scan trả về ít hoặc không có văn bản, mà trường `word_count` hiển thị. ### Bảng có được giữ lại không? Bảng dạng lưới đơn giản trở thành bảng Markdown. Bảng có ô gộp hoặc bố cục phức tạp được giữ dạng văn bản theo thứ tự đọc, mà các model vẫn đọc tốt. ### PDF có bị tính phí nếu thất bại không? Không. Các tệp quá lớn, quá dài, bị mã hoá hoặc bị trang từ chối sẽ không bị tính phí. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Giá web reader API: credit trang trả trước không bao giờ hết hạn > WebReaderAPI: 3,75 US$ cho 10.000 trang, giảm còn 0,07 US$/1K trang, credit không hết hạn, trang lỗi miễn phí. Không cần KYC, thanh toán bằng crypto. - URL: https://webreaderapi.com/vi/pricing/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Một credit đọc một trang; trang cần trình duyệt tốn hai credit. Các trang bị lỗi hoặc bị trang web từ chối không tốn gì. Mua pack từ số dư crypto của bạn và dùng theo tốc độ của riêng bạn. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. **Câu trả lời nhanh — WebReaderAPI có giá bao nhiêu?** **WebReaderAPI** bán credit trang trả trước: 10.000 trang với 3,75 US$ (0,38 US$/1K trang), 100.000 trang với 21,75 US$, 1.000.000 trang với 74,25 US$ và 0,07 US$/1K trang ở mức 5 triệu, tính đến tháng 10 năm 2026. Một trang đọc bằng trình duyệt tốn hai credit. Trang lỗi và trang bị robots.txt từ chối là miễn phí, và credit không bao giờ hết hạn. Không cần KYC; thanh toán bằng crypto. ## Tôi nên mua pack credit nào? Sáu pack, cùng một API và các tuỳ chọn như nhau. Giá mỗi trang giảm từ 0,38 US$/1K trang ở pack nhỏ nhất xuống 0,07 US$/1K trang ở pack lớn nhất. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Mở rộng | 500.000 trang | 50 US$ | 0,10 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | | Quy mô lớn | 5.000.000 trang | 350 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. Thanh toán hoạt động thế nào ## Các trang được tính như thế nào? Mỗi phản hồi đều cho biết đã tốn bao nhiêu `credits_used`. Các quy tắc: - **Trang tĩnh: 1 credit.** HTML của trang đã chứa nội dung. - **Trang cần trình duyệt: 2 credit.** Với `render=auto`, trình duyệt chỉ chạy khi HTML thô gần như trống; `render=false` không bao giờ dùng đến nó. - **Chọn quốc gia: +10 credit.** Chọn quốc gia để đọc trang cộng thêm 10 credit, vì khi đó trang được đọc qua kết nối dân cư (residential) tại quốc gia đó. - **PDF: 1 credit mỗi khối 10 trang đã bắt đầu.** Một báo cáo 25 trang tốn 3 credit. - **Lỗi và từ chối: 0 credit.** URL không hợp lệ, hết thời gian chờ, trang bị robots.txt hoặc bị chính trang từ chối, và các tệp không đọc được đều miễn phí. - **Kiểm tra số dư: miễn phí.** `GET https://webreaderapi.com/api/v1/credits` không dùng credit. ## Credit chưa dùng có hết hạn không? Không. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. Một pack mua cho một lần crawl vẫn giữ nguyên giá trị còn lại cho lần sau, và một agent nghỉ cả tháng không mất gì. Nếu đến lúc nào đó chúng tôi ngừng bán dịch vụ, [điều khoản](https://webreaderapi.com/vi/terms/) đảm bảo bạn có ít nhất 30 ngày thông báo để dùng credit hoặc chuyển giá trị của chúng. Việc tăng giá chỉ áp dụng cho các pack mua sau khi giá được công bố. ## Pack nào phù hợp với khối lượng của tôi? Khối lượng điển hình và pack đáp ứng được. Tính hai credit cho các trang cần trình duyệt. | Khối lượng | Số trang | Pack gợi ý | | --- | --- | --- | | Agent thử nghiệm hoặc một lần crawl một site nhỏ | dưới 5.000 | 10.000 trang (3,75 US$) | | AI agent được một nhóm nhỏ dùng hằng ngày | 10.000 đến 30.000 mỗi tháng | 50.000 trang (14,25 US$) | | Chỉ mục RAG cho nhiều site tài liệu, làm mới hằng tuần | 30.000 đến 80.000 | 100.000 trang (21,75 US$) | | Sản phẩm đọc trang cho chính người dùng của nó | 100.000 đến 400.000 mỗi tháng | 500.000 trang (50 US$) | | Kho nghiên cứu hoặc lưu trữ lớn | 1 triệu trở lên | 1.000.000 trang (74,25 US$) hoặc 5.000.000 trang (350 US$) | ## Giá này so với các web reader API khác thế nào? Giá mỗi 1.000 trang khi bạn đọc 100.000 trang mỗi tháng, theo trang giá công khai của từng nhà cung cấp. Bảng đầy đủ, với 21 API và ba mức khối lượng, có trên [so sánh giá web reader API](https://webreaderapi.com/vi/compare/web-reader-api-pricing/). | Nhà cung cấp và gói | Trang thường | Trang cần trình duyệt | | --- | --- | --- | | WebReaderAPI, 100.000 trang | 0,22 US$/1K trang | 2 credit mỗi trang | | Firecrawl Standard ($99 cho 100.000 credit) | $0.99 | $0.99 (mọi trang đều được render) | | Olostep Standard ($99) | $0.99 | $0.99 (mọi trang đều được render) | | Crawl4AI Cloud Builder ($99) | $0.50 | $0.99 | | Scrape.do Hobby ($29 cho 250.000 credit) | $0.29 | $0.99 trên Pro | | ScrapingBee Freelance ($49) | $0.49 | $0,99 gói Startup | | Nội dung từ Exa | $1.00 | Không có tùy chọn trình duyệt nào được ghi trong tài liệu | | Tavily Extract (cơ bản, có trả theo mức dùng) | $1.40 | $2,36 (nâng cao) | *Giá được kiểm tra vào 22 tháng 10, 2026.* Chúng tôi không tự nhận là rẻ nhất ở mọi mức dùng hay mọi loại trang. Nguồn: trang giá của từng nhà cung cấp, được liệt kê trên trang so sánh. ## Thanh toán hoạt động thế nào 1. **Nạp 25 US$ trở lên** — Chọn số tiền và đồng coin (BTC, USDT, USDC, ETH, SOL, LTC). Số lượng crypto và tỷ giá được khóa trong 30 phút. 2. **Gửi đến địa chỉ hiển thị, đúng network** — Trang thanh toán hiển thị địa chỉ nạp của chúng tôi cho đồng coin và network bạn đã chọn: BTC bật Bitcoin, USDT bật Tron (TRC-20) hoặc Ethereum (ERC-20), USDC bật Ethereum (ERC-20), ETH bật Ethereum, SOL bật Solana, LTC bật Litecoin. Chỉ gửi đúng đồng coin đó trên đúng network đó: tiền gửi trên network khác hoặc bằng đồng coin khác không thể thu hồi. Phí network được cộng thêm vào số tiền. 3. **Gửi đúng số tiền hiển thị, rồi bấm “Tôi đã gửi thanh toán”** — Mỗi lần nạp có số tiền chính xác riêng (đến từng số thập phân cuối cùng): nhờ đó chúng tôi tìm thấy thanh toán của bạn và liên kết nó với tài khoản của bạn. 4. **Được ghi có khi thanh toán đã được kiểm tra trên blockchain** — Sau khi mạng xác nhận giao dịch, chúng tôi kiểm tra giao dịch trên blockchain rồi ghi có vào số dư của bạn. Thời gian xác nhận mạng thông thường: 5. **Một số dư cho tất cả credit đọc trang của bạn** — Khi bạn bắt đầu từ một pack, khoản nạp thêm bằng đúng giá của pack đó (hoặc mức tối thiểu, nếu pack nhỏ hơn); credit được cộng ngay khi thanh toán được ghi nhận, và khóa API chờ sẵn trong dashboard của bạn. Phần còn lại vẫn nằm trên số dư để dùng cho các pack sau. Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. | Crypto | Network | Số xác nhận | Thời gian thường mất | | --- | --- | --- | --- | | Bitcoin (BTC) | Bitcoin | 2 | ≈ 20 phút | | Tether (USDT) | Tron (TRC-20) | 20 | ≈ 1 phút | | Tether (USDT) | Ethereum (ERC-20) | 12 | ≈ 5 phút | | USD Coin (USDC) | Ethereum (ERC-20) | 12 | ≈ 5 phút | | Ethereum (ETH) | Ethereum | 12 | ≈ 5 phút | | Solana (SOL) | Solana | 1 | ≈ 1 phút | | Litecoin (LTC) | Litecoin | 6 | ≈ 15 phút | Đã đóng tab? Khoản nạp đang chờ vẫn nằm trong mục Billing của tài khoản: mở ra để xem lại địa chỉ và số tiền chính xác. ## Câu hỏi về giá ### Có gói miễn phí không? Không. Không có gói miễn phí: pack nhỏ nhất là cách để thử, thanh toán từ mức nạp tối thiểu, và phần tiền chỉ nạp thêm để đạt mức tối thiểu đó có thể được gửi trả theo yêu cầu trong vòng 30 ngày, bằng USDT hoặc USDC, miễn là chưa dùng. Gói 10.000 trang có giá 3,75 US$ và bao gồm mọi tùy chọn của gói lớn nhất. ### Tại sao tôi phải nạp 25 US$ nếu một gói có giá thấp hơn? Mọi khoản thanh toán đều đi qua số dư của bạn, và mức nạp tối thiểu là 25 US$. Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. ### Tôi có thể được hoàn tiền không? Pack credit mua chưa đến 72 giờ được hoàn về số dư nếu dùng dưới 20% số credit của pack. Nếu một pack không hoạt động và bộ phận hỗ trợ không giải quyết được trong 24 giờ, toàn bộ được hoàn về số dư của bạn. Các khoản nạp vẫn ở dạng số dư và không được hoàn trừ khi pháp luật quy định khác; phần tiền chỉ nạp thêm để đạt mức nạp tối thiểu có thể được gửi trả theo yêu cầu trong vòng 30 ngày, bằng USDT hoặc USDC, miễn là chưa dùng. [Chính sách hoàn tiền](https://webreaderapi.com/vi/refunds/) có các ví dụ minh họa. ### Trang JavaScript có luôn tốn hai credit không? Chỉ khi trình duyệt thực sự chạy. Với `render=auto`, hầu hết trang tin tức, blog và tài liệu được đọc từ HTML của chúng với một credit; trình duyệt chỉ khởi động khi HTML đó chứa quá ít văn bản. Trường `rendered` cho bạn biết trường hợp nào đã xảy ra. ### Tôi có thể thanh toán bằng những loại crypto nào? BTC, USDT, USDC, ETH, SOL, LTC. USDT hoạt động trên TRC-20 hoặc ERC-20, còn USDC trên ERC-20. [Trang thanh toán bằng crypto](https://webreaderapi.com/vi/crypto-payments/) giải thích từng bước. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Chính sách quyền riêng tư > Chính sách quyền riêng tư của WebReaderAPI: chúng tôi ghi log tên máy chủ, không ghi URL đầy đủ hay nội dung trang, trong 30 ngày. - URL: https://webreaderapi.com/vi/privacy/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Một web reader thấy hai loại dữ liệu: dữ liệu của bạn với tư cách khách hàng, và các trang bạn yêu cầu nó đọc. Chính sách này đề cập cả hai, theo thứ tự đó. **Câu trả lời nhanh — WebReaderAPI giữ những gì về tôi và về các trang tôi đọc?** **WebReaderAPI** giữ số tài khoản của bạn, email tùy chọn, hồ sơ thanh toán và credit, cùng nhật ký truy vấn lưu tên máy chủ của mỗi trang, không bao giờ lưu URL đầy đủ hay nội dung của trang, trong 30 ngày. Chúng tôi không giữ bản sao nào của các trang bạn đọc. Chúng tôi không yêu cầu giấy tờ tùy thân hay thẻ, và chúng tôi không bán hay chia sẻ dữ liệu của bạn. ## Chúng tôi thu thập những dữ liệu gì về bạn? Chỉ những gì cần để vận hành dịch vụ: - **Tài khoản:** số tài khoản của bạn, và địa chỉ email nếu bạn chọn thêm vào. - **Thanh toán:** các lần nạp tiền, mã giao dịch, coin và mạng, và các gói bạn mua. - **Sử dụng:** Mỗi yêu cầu để lại một dòng log với thời gian, tài khoản, tên host của trang (không bao giờ là URL đầy đủ hay nội dung của trang), trạng thái và số credit đã dùng; các dòng này bị xóa sau 30 ngày. Các trang bạn đọc không được lưu. Số tài khoản, đơn hàng, khoản nạp và tổng credit được giữ trong khi tài khoản tồn tại, sau đó chỉ giữ trong thời gian luật kế toán yêu cầu. Hồ sơ chỉ được cung cấp cho cơ quan chức năng khi pháp luật bắt buộc chúng tôi. - **Khóa API:** được lưu để chúng tôi kiểm tra các truy vấn của bạn, có thể thu hồi bất cứ lúc nào. ## Chúng tôi không bao giờ thu thập gì? Chúng tôi không bao giờ thu thập giấy tờ tùy thân, ảnh selfie, giấy tờ công ty hay số thẻ, vì chúng tôi không cần. Đăng nhập bằng số tài khoản; email là tùy chọn. Chúng tôi không bao giờ lưu địa chỉ đầy đủ của các trang bạn đọc, nội dung của chúng, hay Markdown mà chúng tôi trả về cho bạn. Khi câu trả lời rời khỏi máy chủ của chúng tôi, văn bản trang đã biến mất khỏi phía chúng tôi. ## Tại sao lại giữ tên máy chủ của mỗi trang? Vì hai lý do: để hiển thị lịch sử sử dụng của bạn, và để trả lời các chủ trang web báo cáo sự cố với crawler của chúng tôi. Một tên máy chủ như `example.com` là đủ cho cả hai, nên chúng tôi rút gọn mọi URL về đó trước khi ghi log. Log bị xóa sau 30 ngày. ## Ai thấy các truy vấn chúng tôi thực hiện thay bạn? Trang web bạn yêu cầu chúng tôi đọc thấy một truy vấn từ hạ tầng của chúng tôi, với user agent của chúng tôi `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. Trang đó không thấy tài khoản, khóa hay danh tính của bạn. Khi bạn dùng tùy chọn `country`, truy vấn xuất phát từ một địa chỉ ở quốc gia đó qua hạ tầng của chúng tôi, với cùng user agent. Hạ tầng của chúng tôi chỉ nhận những gì cần để tải trang: URL và các tùy chọn bạn đã chọn. ## Các bạn có dùng cookie không? Các trang công khai không dùng cookie quảng cáo hay theo dõi. Khu vực khách hàng dùng lưu trữ cần thiết để giữ bạn đăng nhập và ghi nhớ các lựa chọn giao diện như ngôn ngữ của bạn. Trang thanh toán hiển thị địa chỉ và số tiền nhưng không đặt trình theo dõi của bên thứ ba. ## Các bạn có chia sẻ hay tiết lộ dữ liệu không? Chúng tôi không bán hay cho thuê bất kỳ dữ liệu nào. Hồ sơ chỉ được cung cấp cho cơ quan chức năng khi có nghĩa vụ pháp lý, và chúng tôi thông báo cho bạn khi pháp luật cho phép. Hồ sơ tài khoản và thanh toán được giữ trong khi tài khoản của bạn còn mở, sau đó chỉ giữ trong thời gian quy định kế toán yêu cầu. ## Làm sao để xem hoặc xóa dữ liệu của tôi? Lịch sử sử dụng và thanh toán của bạn nằm trong khu vực khách hàng. Để xóa tài khoản, hãy yêu cầu từ khu vực khách hàng hoặc viết tới support@webreaderapi.com kèm mã đơn hàng; chúng tôi sẽ không hỏi số tài khoản hay khóa của bạn. Xóa tài khoản sẽ xóa luôn credit của tài khoản đó, như [điều khoản](https://webreaderapi.com/vi/terms/) giải thích. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Chính sách hoàn tiền > Chính sách hoàn tiền của WebReaderAPI: gói credit được hoàn về số dư trong 72 giờ nếu dùng dưới 20%, hoàn toàn bộ nếu gói không hoạt động, kèm ví dụ. - URL: https://webreaderapi.com/vi/refunds/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Hoàn tiền được cộng vào số dư của bạn, ở đó tiền được giữ và không bao giờ hết hạn. Trang này nêu quy định, ba ví dụ với kích thước gói thực tế, và cách gửi yêu cầu. **Câu trả lời nhanh — Tôi có thể được hoàn lại credit trên WebReaderAPI không?** Có, trong hai trường hợp. Trong vòng 72 giờ sau khi mua, gói **WebReaderAPI** credit sẽ được trả lại vào số dư nếu bạn đã dùng dưới 20% gói. Một gói không hoạt động và bộ phận hỗ trợ không thể khắc phục trong vòng 24 giờ sẽ được hoàn lại toàn bộ vào số dư. Các khoản nạp thêm vẫn nằm trong số dư của bạn; chỉ phần được nạp thêm để đạt mức tối thiểu 25 US$ mới có thể được hoàn lại. ## Quy tắc chính xác là gì? Pack credit mua chưa đến 72 giờ được hoàn về số dư nếu dùng dưới 20% số credit của pack. Nếu một pack không hoạt động và bộ phận hỗ trợ không giải quyết được trong 24 giờ, toàn bộ được hoàn về số dư của bạn. Các khoản nạp vẫn ở dạng số dư và không được hoàn trừ khi pháp luật quy định khác; phần tiền chỉ nạp thêm để đạt mức nạp tối thiểu có thể được gửi trả theo yêu cầu trong vòng 30 ngày, bằng USDT hoặc USDC, miễn là chưa dùng. Yêu cầu hoàn tiền được xử lý bởi người thật, và số tiền sẽ xuất hiện trong số dư của bạn sau khi được duyệt. Các yêu cầu thất bại không bao giờ cần hoàn tiền, vì chúng không dùng credit ngay từ đầu. Điều này bao gồm các trang bị từ chối bởi robots.txt, bởi tùy chọn AI của trang web, hoặc bởi chính trang web đó. ## Ví dụ 1: một gói mua nhầm Bạn mua 100.000 trang với giá 21,75 US$, đọc 3.000 trang để thử nghiệm, và quyết định một gói nhỏ hơn phù hợp hơn với bạn. Bạn yêu cầu vào ngày hôm sau. Bạn đã dùng 3% gói, dưới giới hạn 20% và trong vòng 72 giờ, nên toàn bộ 21,75 US$ được trả lại vào số dư của bạn. Sau đó bạn có thể dùng số dư đó để mua 10.000 trang với giá 3,75 US$. ## Ví dụ 2: một gói không hoạt động Bạn mua 50.000 trang với giá 14,25 US$, và mọi truy vấn đều trả về lỗi từ phía chúng tôi vì lý do mà bộ phận hỗ trợ không thể khắc phục trong vòng 24 giờ. Gói được hoàn lại toàn bộ vào số dư, bất kể bạn đã thử dùng bao nhiêu phần của gói. ## Ví dụ 3: khoản nạp tối thiểu Bạn chỉ cần 10.000 trang với giá 3,75 US$, nhưng khoản nạp tối thiểu là 25 US$. Phần chênh lệch vẫn nằm trong số dư của bạn cho các gói sau. Nếu bạn không dùng đến, bạn có thể yêu cầu hoàn lại phần chênh lệch đó trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC. Không có phần nào khác trong khoản nạp được hoàn lại, trừ khi pháp luật yêu cầu. ## Làm thế nào để yêu cầu hoàn tiền? Dùng biểu mẫu hỗ trợ trong khu vực khách hàng, hoặc viết thư đến support@webreaderapi.com kèm ID đơn hàng hiển thị trong lịch sử đơn hàng của bạn (tuyệt đối không dùng số tài khoản hay khóa API). Bộ phận hỗ trợ trả lời trong trong vòng 12 giờ; sau khi yêu cầu hoàn tiền được duyệt, số tiền sẽ xuất hiện trong số dư của bạn. ## Tại sao tiền hoàn lại vào số dư? Vì thanh toán bằng crypto không thể bị đảo ngược như thanh toán bằng thẻ, và mỗi lần gửi coin trả lại đều tốn phí mạng. Ghi có vào số dư là tức thì và không tốn phí của bạn. Một ngoại lệ duy nhất, được hoàn bằng stablecoin, là phần của khoản nạp chỉ được thêm vào để đạt mức tối thiểu, trong vòng 30 ngày và nếu chưa dùng. Ngoài ra, các khoản thanh toán không được hoàn lại, trừ khi pháp luật yêu cầu. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Tình trạng WebReaderAPI: cách kiểm tra API có đang hoạt động không > Cách kiểm tra API đọc trang web của WebReaderAPI có hoạt động không: endpoint credit miễn phí, ý nghĩa của từng mã lỗi, và nơi thông báo sự cố. - URL: https://webreaderapi.com/vi/status/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Khi một trang không trả về kết quả, nguyên nhân thường là trang web, đôi khi là mạng, và hiếm khi là chúng tôi. Trang này chỉ cách phân biệt trong vài giây mà không tốn credit. **Câu trả lời nhanh — Làm sao biết WebReaderAPI có đang hoạt động không?** Gọi `GET https://webreaderapi.com/api/v1/credits` với khóa của bạn: miễn phí, và một phản hồi bình thường nghĩa là API và khóa của bạn hoạt động. Nếu một trang thất bại, mã lỗi cho bạn biết lý do, và **WebReaderAPI** không tính phí cho việc đó. Các sự cố từ phía chúng tôi được ghi lại trên [changelog](https://webreaderapi.com/vi/changelog/) kèm ngày tháng. ## Cách kiểm tra tình trạng nhanh nhất là gì? Endpoint credit. Nó phản hồi mà không cần tải bất kỳ trang web nào, nên chỉ kiểm tra phía chúng tôi: xác thực, API và tài khoản của bạn. *curl: kiểm tra API và số credit còn lại của bạn* ```bash curl -s https://webreaderapi.com/api/v1/credits -H "Authorization: Bearer $WEBREADER_API_KEY" ``` ## Những lỗi nào đến từ trang web, và những lỗi nào từ chúng tôi? Mã lỗi cho biết vấn đề nằm ở đâu. Không lỗi nào trong số này dùng credit. | Mã | Vấn đề nằm ở đâu | Cần làm gì | |---|---|---| | `blocked_by_robots` | robots.txt của trang từ chối trình thu thập của chúng tôi | Không cần làm gì: trang web đã từ chối | | `blocked_by_site_policy` | Trang web khai báo `ai-input=no` | Không cần làm gì: trang web đã từ chối | | `target_refused` | Trang web trả về 403, 429, một thử thách hoặc yêu cầu đăng nhập | Thử lại sau, hoặc xin quyền truy cập từ trang web | | `fetch_failed` | DNS, TLS, kết nối, hoặc trang 404/410 | Kiểm tra URL; thử lại sau | | `fetch_timeout` | Trang web không phản hồi kịp | Thử lại với `timeout` dài hơn | | `concurrency_limit` | Quá nhiều truy vấn cùng lúc từ tài khoản của bạn | Giảm tốc độ hoặc yêu cầu giới hạn cao hơn | | `invalid_api_key`, `insufficient_credits` | Khóa API hoặc số dư của bạn | Kiểm tra bảng điều khiển | [Trang lỗi](https://webreaderapi.com/vi/docs/errors/) mô tả chi tiết từng trường hợp, kèm vòng lặp thử lại. ## Tại sao ở đây không có số liệu uptime trực tiếp? Vì chúng tôi chưa đo được số liệu nào trên một mẫu công khai, và một con số bịa ra sẽ đánh lừa bạn. Thành công của một lần đọc chủ yếu phụ thuộc vào trang web được đọc, nên một tỷ lệ phần trăm duy nhất sẽ không nói lên được nhiều. Khi chúng tôi công bố số liệu, chúng sẽ đi kèm phương pháp, mẫu và ngày tháng. ## Sự cố được thông báo ở đâu? Trên [changelog](https://webreaderapi.com/vi/changelog/), kèm ngày tháng, các endpoint bị ảnh hưởng và những gì đã được xử lý. Nếu bạn thấy lỗi lặp lại từ phía chúng tôi (các mã khác với những mã do trang đích gây ra), hãy viết đến support@webreaderapi.com kèm thời gian truy vấn và mã lỗi. ## Tình trạng: các câu hỏi thường gặp ### Kiểm tra credit có tốn phí không? Không. `GET https://webreaderapi.com/api/v1/credits` không bao giờ dùng credit, nên bạn có thể gọi nó từ một bước kiểm tra tình trạng bao nhiêu lần tùy thích, trong giới hạn đồng thời của bạn. ### Một trang thất bại với tôi nhưng vẫn mở được trên trình duyệt của tôi. Tại sao? Thường là vì trang web đối xử với robots khác với người dùng: nó có thể từ chối trình thu thập của chúng tôi trong robots.txt hoặc trả về một trang thử thách cho các truy vấn tự động. Chúng tôi trả về câu trả lời của trang web và không tính phí. Mã lỗi và `target_status` cho thấy trang web đã gửi gì. ### Các lần đọc thất bại có bao giờ bị tính phí không? Không. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Điều khoản dịch vụ > Điều khoản dịch vụ WebReaderAPI: tài khoản, credit không hết hạn, nạp tiền crypto, quy tắc robots.txt và trách nhiệm pháp lý. - URL: https://webreaderapi.com/vi/terms/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Các điều khoản này áp dụng cho trang web, khu vực khách hàng và API. Mỗi mục trả lời một câu hỏi, và không có điều gì quan trọng bị giấu trong chú thích cuối trang. **Câu trả lời nhanh — Các điều khoản của WebReaderAPI nói gì trong ngắn gọn?** Bạn thanh toán bằng crypto để mua credit trang trả trước cho SERP API đọc trang web **WebReaderAPI**, sau khi nạp tối thiểu 25 US$. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. Mọi truy vấn đều tuân theo robots.txt của trang đích, và [Chính sách sử dụng hợp lý](https://webreaderapi.com/vi/acceptable-use/) là một phần của các điều khoản này. Dịch vụ được bán bởi SerpGoat LLC. ## 1. Ai chịu ràng buộc bởi các điều khoản này? Bạn và SerpGoat LLC, đơn vị vận hành WebReaderAPI. "Bạn" là chủ tài khoản, một cá nhân hoặc một tổ chức. Việc tạo tài khoản, nạp tiền hoặc gọi API đồng nghĩa với việc bạn chấp nhận các điều khoản này và [Chính sách sử dụng hợp lý](https://webreaderapi.com/vi/acceptable-use/). ## 2. Dịch vụ làm gì? WebReaderAPI tải các trang web công khai và tệp PDF mà bạn chỉ định và trả về nội dung của chúng dưới dạng Markdown, văn bản thuần hoặc HTML đã làm sạch, thông qua `https://webreaderapi.com/api/v1/read`, `https://webreaderapi.com/api/v1/batch` và `https://webreaderapi.com/api/v1/crawl`. Các trang web tự quyết định nội dung trang của họ và liệu robot có được đọc hay không. Chúng tôi không kiểm soát, chỉnh sửa hay đảm bảo nội dung trả về. Cùng một URL có thể cho kết quả khác nhau giữa các truy vấn. ## 3. Tài khoản và khóa API hoạt động thế nào? Đăng nhập bằng số tài khoản; email là tùy chọn. Bạn đăng nhập bằng số tài khoản của mình, nên hãy giữ nó ở nơi an toàn. Email tùy chọn cho bạn cách lấy lại số tài khoản; nếu không có email trong hồ sơ, số tài khoản bị mất không thể khôi phục. Bạn có thể tạo nhiều khóa và thu hồi bất kỳ khóa nào từ dashboard. Mọi truy vấn gửi bằng một trong các khóa của bạn đều dùng credit của bạn, bất kể ai gửi, vì vậy hãy giữ khóa riêng tư và thu hồi ngay khóa bị lộ. Mỗi cá nhân hoặc tổ chức một tài khoản. ## 4. Credit được tính thế nào và khi nào hết hạn? 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. Chọn quốc gia để đọc trang cộng thêm 10 credit, vì khi đó trang được đọc qua kết nối dân cư (residential) tại quốc gia đó. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. Credit trả trước không bao giờ hết hạn: số trang chưa dùng vẫn ở trong tài khoản của bạn cho đến khi bạn dùng. Credit chỉ bị mất nếu bạn xóa tài khoản hoặc nếu chúng tôi đóng tài khoản do vi phạm các điều khoản này. Nếu chúng tôi ngừng bán dịch vụ, chúng tôi thông báo trước ít nhất 30 ngày để bạn dùng nốt số credit còn lại hoặc chuyển giá trị của chúng sang sản phẩm khác. ## 5. Thanh toán hoạt động thế nào? Giá tính bằng đô la Mỹ trên [trang giá](https://webreaderapi.com/vi/pricing/). Bạn nạp số dư bằng BTC, USDT, USDC, ETH, SOL, LTC, tối thiểu 25 US$, và mua các pack credit từ số dư đó. Hãy gửi đúng số tiền hiển thị trên mạng được chỉ định, rồi bấm "Tôi đã gửi thanh toán"; khoản thanh toán được khớp theo đúng số tiền và được ghi có sau khi xác nhận trên blockchain. Số dư của bạn giữ nguyên giá trị, không có ngày hết hạn. Khi một pack có giá thấp hơn mức nạp tối thiểu, phần chênh lệch có thể được yêu cầu hoàn lại trong vòng 30 ngày, bằng USDT hoặc USDC, miễn là chưa dùng; các khoản nạp khác không được hoàn trả trừ khi pháp luật yêu cầu. Phí mạng do người gửi trả. ## 6. Tôi có được hoàn tiền không? Có, hoàn vào số dư của bạn, trong hai trường hợp: một pack được dùng dưới 20% trong vòng 72 giờ kể từ khi mua, và một pack không hoạt động mà bộ phận hỗ trợ không khắc phục được trong một ngày. [Chính sách hoàn tiền](https://webreaderapi.com/vi/refunds/) nêu quy tắc đầy đủ, kèm ví dụ minh họa. ## 7. Những quy tắc nào áp dụng cho các trang tôi đọc? Trình thu thập của chúng tôi áp dụng ba quy tắc cho mọi truy vấn, và chúng không thể tắt. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. Nếu một website khai báo Content-Signal: ai-input=no trong robots.txt, chúng tôi không đọc các trang của trang đó cho bạn. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. Bạn chịu trách nhiệm về cách bạn sử dụng nội dung nhận được, bao gồm quyền của chủ sở hữu nội dung đó. [Chính sách sử dụng hợp lý](https://webreaderapi.com/vi/acceptable-use/) liệt kê các mục đích sử dụng bị cấm. ## 8. Có giới hạn về khối lượng hay tốc độ không? Mỗi tài khoản có giới hạn số trang đọc cùng lúc; dashboard của bạn hiển thị giới hạn đó, và bộ phận hỗ trợ có thể tăng lên. Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang. Tối đa 100 URL mỗi batch job. Chúng tôi có thể làm chậm hoặc tạm dừng truy vấn tới một trang web để bảo vệ trang đó, chẳng hạn bằng cách tuân theo `Crawl-delay` của trang. ## 9. Khi nào bạn có thể tạm ngưng tài khoản của tôi? Khi chúng tôi phát hiện vi phạm các điều khoản này hoặc chính sách sử dụng hợp lý, khi một khoản thanh toán bị đảo ngược hoặc có gian lận, hoặc khi pháp luật yêu cầu. Chúng tôi nêu lý do khi pháp luật cho phép, và một người thật xem xét sự việc trước mọi lần tạm ngưng. ## 10. Bạn bảo đảm điều gì? Chúng tôi cung cấp dịch vụ nguyên trạng. Chúng tôi không đảm bảo rằng một trang cụ thể có thể đọc được, rằng một trang sẽ chấp nhận truy vấn của chúng tôi, hay rằng dịch vụ sẽ chạy không gián đoạn. Các truy vấn thất bại và các trang bị trang từ chối không bị tính phí, điều này giới hạn chi phí của bạn khi một trang không đọc được. ## 11. Trách nhiệm của bạn là gì? Trong phạm vi pháp luật cho phép, tổng trách nhiệm của chúng tôi đối với bất kỳ khiếu nại nào được giới hạn ở số tiền bạn đã trả cho chúng tôi trong 12 tháng trước sự kiện gây ra khiếu nại đó. Chúng tôi không chịu trách nhiệm cho các tổn thất gián tiếp, như mất lợi nhuận hoặc mất dữ liệu. Không điều khoản nào ở đây giới hạn trách nhiệm mà pháp luật không cho phép chúng tôi giới hạn. ## 12. Các điều khoản này thay đổi thế nào? Chúng tôi ghi ngày cho mọi phiên bản và ghi lại các thay đổi trong [changelog](https://webreaderapi.com/vi/changelog/). Thay đổi làm giảm quyền của bạn sẽ áp dụng cho các credit mua sau khi thay đổi được công bố. Mọi câu hỏi gửi tới support@webreaderapi.com. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # API chuyển trang web sang Markdown: trích xuất nội dung chính của mọi URL, sẵn sàng cho model > API chuyển trang web sang Markdown cho LLM và AI agent: mọi URL thành Markdown sạch với tiêu đề, tác giả và ngày, từ 0,07 US$/1K trang. Không cần KYC. - URL: https://webreaderapi.com/vi/url-to-markdown-api/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Truyền một URL và nhận lại bài viết dưới dạng Markdown: giữ nguyên tiêu đề, đoạn văn, danh sách, bảng và liên kết; loại bỏ menu, banner cookie, quảng cáo và footer. Kèm tiêu đề, tác giả, ngày và ngôn ngữ của trang. **Câu trả lời nhanh — API nào chuyển một trang web thành Markdown sạch cho LLM?** API chuyển trang web sang Markdown tải một trang, giữ lại nội dung chính và trả về dưới dạng Markdown. **WebReaderAPI** làm việc này trong một truy vấn: `GET https://webreaderapi.com/api/v1/read?url=…` trả về bài viết kèm tiêu đề, danh sách, bảng và liên kết, cùng tiêu đề, tác giả, ngày và số từ, với một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. robots.txt được tuân thủ. Không cần KYC; thanh toán bằng crypto. ## API chuyển URL sang Markdown trong nháy mắt | Thuộc tính | Giá trị | | --- | --- | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` (hoặc `POST` với JSON body) | | Đầu ra | Markdown sạch của nội dung chính của trang (hoặc plain text, hoặc HTML đã làm sạch), kèm tiêu đề, mô tả, tác giả, ngày xuất bản, ngôn ngữ và số từ; link và ảnh theo yêu cầu | | JavaScript | Render JavaScript trong trình duyệt headless khi trang cần (render=auto), hoặc luôn luôn, hoặc không bao giờ | | Tính phí | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Ngân sách token | `max_chars` cắt Markdown xuống độ dài model của bạn có thể nhận | | robots.txt | Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí | | Giá | 3,75 US$ với 10.000 trang, 21,75 US$ với 100.000 trang, từ 0,07 US$/1K trang tại 5.000.000 trang | | Thanh toán | BTC, USDT, USDC, ETH, SOL, LTC, từ một lần nạp 25 US$; không cần KYC | ## Tại sao nên chuyển trang web sang Markdown trước khi đưa cho mô hình? Markdown giữ lại cấu trúc mà mô hình cần và bỏ đi phần đánh dấu mà nó không cần. Một trang bài viết điển hình mang theo điều hướng, script, thẻ theo dõi, thông báo cookie và các widget bài viết liên quan xung quanh vài trăm từ văn bản. Nếu gửi dưới dạng HTML thô, phần lớn token bạn phải trả tiền là phần đánh dấu. Markdown giữ tiêu đề dưới dạng `#`, danh sách dưới dạng `-`, bảng dưới dạng dấu gạch đứng và liên kết dưới dạng `[text](url)`. Mô hình vẫn thấy được câu nào thuộc phần nào, trích dẫn được liên kết nguồn và chia văn bản thành các đoạn theo tiêu đề. Cùng văn bản đó ở dạng văn xuôi thuần sẽ mất cấu trúc; cùng văn bản đó ở dạng HTML tốn nhiều token hơn nhiều. ## API giữ lại gì và loại bỏ gì? Với `main_content=true`, mặc định, API giữ lại phần trang mà người đọc cần và loại bỏ phần còn lại. | Giữ lại | Loại bỏ | |---|---| | Tiêu đề và các đề mục | Điều hướng trang và menu | | Đoạn văn, trích dẫn và danh sách | Biểu ngữ cookie và đồng ý | | Bảng, dưới dạng bảng Markdown | Quảng cáo và widget quảng bá | | Khối mã, kèm ngôn ngữ khi được hiển thị | Thanh bên và danh sách bài viết liên quan | | Liên kết trong văn bản | Chân trang và phần văn bản pháp lý | | Hình ảnh, chỉ với `include_images=true` | Nút chia sẻ và biểu mẫu bình luận | Đặt `main_content=false` để chuyển toàn bộ trang thay vào đó, ví dụ trang chủ hoặc danh sách sản phẩm nơi mọi thứ đều quan trọng. Đặt `format=text` để lấy văn bản thuần không có Markdown, hoặc `format=html` để lấy HTML đã làm sạch của nội dung chính. *curl: một trang dưới dạng Markdown, cắt còn 20.000 ký tự* ```bash curl -G "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/pour-over-coffee" \ -d format=markdown -d max_chars=20000 ``` *Python: đọc một trang và in metadata cùng Markdown của nó* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/blog/pour-over-coffee", "format": "markdown"}, timeout=90, ) resp.raise_for_status() page = resp.json() print(page["title"], "|", page.get("author"), "|", page.get("published_at")) print(page["word_count"], "words,", page["credits_used"], "credit(s)") print(page["markdown"][:500]) ``` ## Còn những trang được xây dựng bằng JavaScript thì sao? Nhiều trang gửi gần như không có văn bản trong HTML đầu tiên và xây dựng nội dung trong trình duyệt. Với `render=auto`, mặc định, API trước tiên đọc HTML thô; nếu nó chứa quá ít văn bản, API mở trang trong trình duyệt headless và đọc kết quả. Phản hồi cho biết trường hợp nào đã xảy ra trong `rendered`. Một trang cần đến trình duyệt tốn hai credit thay vì một. Nếu bạn biết một site luôn cần nó, hãy đặt `render=true`; nếu bạn chỉ muốn những gì máy chủ gửi, hãy đặt `render=false` và không bao giờ phải trả credit thứ hai. ## Điều gì xảy ra khi một site không muốn bị đọc? Chúng tôi tôn trọng lựa chọn của site và bạn không bị tính phí. Crawler của chúng tôi tự nhận diện là `WebReaderAPI` và kiểm tra robots.txt trước mỗi lần đọc. Một trang bị cấm với token của chúng tôi, hoặc với mọi robot, sẽ trả về `403 blocked_by_robots`. Một site khai báo `Content-Signal: ai-input=no` sẽ trả về `403 blocked_by_site_policy`. Nếu site từ chối yêu cầu theo cách khác, chẳng hạn mã trạng thái 403, trang thử thách hoặc tường đăng nhập, bạn nhận `502 target_refused` kèm mã trạng thái của chính site. Nếu một website từ chối yêu cầu của chúng tôi, chúng tôi trả lại câu trả lời của trang đó: chúng tôi không bao giờ giải CAPTCHA, đăng nhập vào tài khoản, hay tìm cách vượt qua chặn hoặc paywall. [Trang crawler](https://webreaderapi.com/vi/bot/) của chúng tôi giải thích tất cả điều này cho chủ site, kèm User-Agent chính xác. ## Dự án của tôi sẽ cần bao nhiêu trang? Tính một credit mỗi trang, hai cho các trang cần đến trình duyệt. Một số khối lượng điển hình: - **Một AI agent** đọc 5 trang mỗi tác vụ và chạy 100 tác vụ mỗi ngày sẽ đọc khoảng 15.000 trang mỗi tháng: 50.000 trang (14,25 US$) dùng được hơn ba tháng. - **Một chỉ mục RAG** của ba site tài liệu, mỗi site 2.000 trang, là 6.000 trang, sau đó làm mới hàng tuần các trang đã thay đổi. - **Một tập dữ liệu nghiên cứu** gồm 400.000 bài báo và bài blog vừa với 500.000 trang (50 US$). Credit không bao giờ hết hạn, vì vậy một pack mua cho một lần crawl một lần vẫn giữ nguyên giá trị còn lại cho các công việc sau. ## API URL to Markdown giá bao nhiêu? 10.000 trang giá 3,75 US$, 100.000 trang giá 21,75 US$ và 1.000.000 trang giá 74,25 US$, tính đến tháng 10 năm 2026. Các trang thất bại và các trang bị robots.txt từ chối là miễn phí. Xem [tất cả các pack](https://webreaderapi.com/vi/pricing/). | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Khối lượng lớn | 1.000.000 trang | 74,25 US$ | 0,07 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## URL to Markdown API: các câu hỏi thường gặp ### Markdown có giữ lại bảng và khối mã không? Có. Bảng HTML trở thành bảng Markdown, và khối mã vẫn được bao trong dấu hàng rào, kèm ngôn ngữ khi trang có đánh dấu. Những bảng rất phức tạp, chẳng hạn bảng có ô gộp, sẽ được làm phẳng từng hàng một. ### Tôi có thể lấy toàn bộ trang thay vì chỉ bài viết không? Có. Đặt `main_content=false` và API chuyển đổi mọi thứ trên trang, bao gồm điều hướng và chân trang. Điều này phù hợp với trang chủ, trang danh mục và danh sách sản phẩm, nơi bộ phát hiện nội dung chính sẽ bỏ sót những phần hữu ích. ### Làm thế nào để giữ các trang trong cửa sổ ngữ cảnh của mô hình? Dùng `max_chars`, từ 1.000 đến 500.000 ký tự, để cắt Markdown ở một độ dài nhất định. Trường `word_count` cho bạn biết bài viết đầy đủ dài bao nhiêu, để agent của bạn quyết định có đọc thêm hay không. ### Nó có đọc được các trang sau đăng nhập hoặc tường trả phí không? Không. WebReaderAPI chỉ đọc các trang công khai. Nó không bao giờ đăng nhập vào tài khoản và không bao giờ cố gắng vượt qua tường trả phí hay một rào chặn; những trang như vậy trả về lý do từ chối của site và không bị tính phí. ### Tôi có cần ID hoặc thẻ để lấy khóa API không? Không. WebReaderAPI không yêu cầu ID, không selfie, không giấy tờ công ty và không cần thẻ. Đăng nhập bằng số tài khoản; email là tùy chọn. Bạn nạp tiền từ 25 US$ bằng BTC, USDT, USDC, ETH, SOL, LTC. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Bạn có thể xây dựng gì với một web reader API? > Web reader API giúp đội ngũ xây dựng công cụ fetch cho AI agents, nạp dữ liệu vào RAG và xuất trang web sang Markdown. Từ 0,07 US$/1K trang. - URL: https://webreaderapi.com/vi/use-cases/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Bốn công việc chiếm phần lớn những gì người ta làm với văn bản trang sạch: cho agent một cách để đọc, nuôi dưỡng cơ sở tri thức, theo dõi các trang để phát hiện thay đổi, và chuyển nội dung của một trang web sang Markdown. Mỗi công việc có trang riêng với code và chi phí. **Câu trả lời nhanh — Web reader API được dùng để làm gì?** Các đội ngũ dùng web reader API để cung cấp cho AI agents một công cụ fetch, nạp các trang web vào chỉ mục RAG, theo dõi các trang công khai để phát hiện thay đổi, và chuyển đổi trang web của chính họ sang Markdown. **WebReaderAPI** bao phủ cả bốn trường hợp với một khóa: `/read` cho một trang, `/batch` cho một danh sách, `/crawl` cho một trang web, với một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Trường hợp sử dụng của bạn là trường hợp nào? - **[AI agent](https://webreaderapi.com/vi/use-cases/ai-agents/)** — Một công cụ read_url cho Claude, Cursor, OpenClaw, n8n hoặc agent của riêng bạn, với giới hạn độ dài cho mỗi trang. - **[RAG ingestion](https://webreaderapi.com/vi/use-cases/rag/)** — Crawl tài liệu và blog thành các đoạn Markdown giữ nguyên tiêu đề và URL nguồn. - **[Giám sát thay đổi](https://webreaderapi.com/vi/use-cases/monitoring/)** — Đọc các trang giá, chính sách và changelog theo lịch và nhận lại các khác biệt dưới dạng văn bản. - **[Chuyển trang web sang Markdown](https://webreaderapi.com/vi/use-cases/website-to-markdown/)** — Xuất trang web của chính bạn sang các file Markdown cho migration, sao lưu hoặc cho trợ lý của riêng bạn. - **[PDF](https://webreaderapi.com/vi/pdf-to-markdown-api/)** — Báo cáo, bài báo và hướng dẫn từ một liên kết, được chuyển thành văn bản Markdown. - **[llms.txt](https://webreaderapi.com/vi/guides/llms-txt-generator/)** — Tạo file llms.txt cho trang web của chính bạn từ một lần crawl, với mỗi trang một dòng. ## Mỗi trường hợp sử dụng cần endpoint nào và bao nhiêu trang? Khối lượng điển hình cho một nhóm nhỏ, để ước lượng gói đầu tiên. Một credit mỗi trang, hai khi trang cần trình duyệt. | Trường hợp sử dụng | Endpoint | Số trang điển hình mỗi tháng | | --- | --- | --- | | Agent đọc 5 trang mỗi tác vụ, 100 tác vụ mỗi ngày | `/read` | Khoảng 15.000 | | Chỉ mục RAG cho 3 trang tài liệu, làm mới hàng tuần | `/crawl`, sau đó `/batch` | 6.000 để xây dựng, vài trăm mỗi tuần sau đó | | Theo dõi 200 trang đối thủ và trang chính sách hàng ngày | `/batch` | Khoảng 6.000 | | Xuất một trang web 2.000 trang một lần | `/crawl` | 2.000, một lần | ## Bốn công việc này có điểm chung gì? Cả bốn đều cần phần đọc được của một trang, chứ không phải bố cục của nó. Một agent lãng phí token vào các menu; một chỉ mục xếp hạng cả phần boilerplate; một công cụ giám sát thay đổi báo động giả khi một quảng cáo thay đổi; một lần di chuyển dữ liệu sao chép cả các banner cookie sang trang web mới. Trích xuất nội dung chính giải quyết cùng một vấn đề trong mọi trường hợp. Chúng cũng có chung những giới hạn. Các trang nằm sau đăng nhập hoặc paywall thì không tiếp cận được, còn các trang từ chối robots thì bị bỏ qua và không bị tính phí. Chúng tôi tôn trọng robots.txt: crawler của chúng tôi tự nhận là WebReaderAPI, tuân theo các quy tắc dành cho nó hoặc cho tất cả robot, và không đọc trang mà website không cho phép. Trang bị từ chối không bị tính phí. ## Tôi nên chọn giữa /read, /batch và /crawl như thế nào? Hãy dùng công cụ nhỏ nhất đáp ứng được công việc. - **`/read`** trả về một trang một cách đồng bộ. Nó phù hợp với agent, vốn quyết định từng trang sẽ đọc tiếp theo. - **`/batch`** đọc tối đa 100 URL mà bạn đã biết, dưới dạng một tác vụ chạy nền. Nó phù hợp với danh sách giám sát và làm mới. - **`/crawl`** khám phá và đọc toàn bộ một trang web từ một URL bắt đầu, tối đa 10.000 trang, theo sitemap và robots.txt của trang đó. Nó phù hợp với lần xây dựng đầu tiên và xuất dữ liệu. Cả ba đều nhận cùng các tùy chọn, như `format`, `main_content`, `render` và `max_chars`, và tính phí theo cùng một cách. ## Một dự án đầu tiên sẽ tốn bao nhiêu? Hầu hết các dự án đầu tiên đều vừa trong một pack nhỏ. Một agent thử nghiệm, một chỉ mục tài liệu duy nhất hoặc một danh sách giám sát vài trăm trang dùng từ vài nghìn đến mười lăm nghìn credit mỗi tháng. 10.000 trang tốn 3,75 US$ và 50.000 trang tốn 14,25 US$, tính đến tháng 10 năm 2026. Credit không bao giờ hết hạn, nên mua pack lớn hơn cho một dự án có thể phình to không tốn thêm gì trong một tháng ít hoạt động. Các trang thất bại và các trang bị robots.txt từ chối đều miễn phí. ## Các pack cho một dự án đầu tiên Bắt đầu nhỏ; credit được chuyển tiếp không có ngày hết hạn. 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Các trường hợp sử dụng: câu hỏi thường gặp ### Tôi có thể dùng một khóa API cho nhiều dự án không? Có, hoặc tạo một khóa API cho mỗi dự án để bạn xem mức sử dụng riêng và thu hồi một khóa mà không ảnh hưởng đến các khóa khác. Tạo nhiều khóa API, ví dụ mỗi agent hoặc dự án một khóa, và thu hồi bất kỳ khóa nào từ dashboard của bạn. ### Trường hợp sử dụng nào cần render JavaScript? Bất kỳ trường hợp nào đọc các ứng dụng web hiện đại, các trang tài liệu single-page hoặc các trang tải nội dung sau phản hồi đầu tiên. Với `render=auto`, API chỉ render khi HTML thô chứa quá ít văn bản. ### Có trường hợp sử dụng nào WebReaderAPI không dành cho không? Có: thu thập dữ liệu cá nhân về người riêng tư, đọc nội dung sau đăng nhập hoặc paywall, và bất kỳ việc gì đòi hỏi phải lách qua sự từ chối của một trang web. [Chính sách Sử dụng Hợp lý](https://webreaderapi.com/vi/acceptable-use/) của chúng tôi liệt kê các quy tắc. ### Tôi có cần giấy tờ tùy thân để bắt đầu không? Không. WebReaderAPI không yêu cầu giấy tờ tùy thân, không selfie và không tài liệu. Nạp tiền bắt đầu từ 25 US$, bằng BTC, USDT, USDC, ETH, SOL, LTC. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Công cụ web fetch cho AI agent: đọc trang dưới dạng Markdown sạch > Công cụ web fetch cho AI agent: đọc trang công khai dạng Markdown có giới hạn độ dài, qua MCP, OpenAI tools, LangChain hoặc n8n, từ 0,07 US$/1K trang. - URL: https://webreaderapi.com/vi/use-cases/ai-agents/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Một agent chỉ biết tìm kiếm mà không đọc được thì chỉ trả lời từ các đoạn trích. Hãy cấp cho nó một công cụ chuyển bất kỳ URL công khai nào thành Markdown ngắn gọn, sạch sẽ, và nó có thể đọc nguồn, trích dẫn và ghi nguồn, trong giới hạn ngân sách bạn đặt ra. **Câu trả lời nhanh — Cách tốt nhất để cấp một công cụ web fetch cho AI agent là gì?** Bọc một API đọc web thành công cụ nhận URL và trả về nội dung chính của trang dưới dạng Markdown, được cắt theo độ dài nhất định. **WebReaderAPI** thực hiện việc đọc, render JavaScript khi cần, tôn trọng robots.txt, và tính một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Mã công cụ sẵn có bao gồm MCP, OpenAI function calling, LangChain, n8n và OpenClaw. Không cần KYC; thanh toán bằng crypto. ## WebReaderAPI như một công cụ cho agent | Thuộc tính | Giá trị | | --- | --- | | Công cụ | `read_url(url, max_chars)` gọi `https://webreaderapi.com/api/v1/read` | | Trả về | Markdown của nội dung chính, kèm tiêu đề, tác giả, ngày và số từ | | Giới hạn độ dài | `max_chars`, từ 1.000 đến 500.000 ký tự mỗi trang | | Trang có JavaScript | Render JavaScript trong trình duyệt headless khi trang cần (render=auto), hoặc luôn luôn, hoặc không bao giờ | | Từ chối | Được trả về dưới dạng lỗi rõ ràng, không bao giờ bị tính phí | | Tích hợp | [MCP](https://webreaderapi.com/vi/docs/mcp/), [OpenAI](https://webreaderapi.com/vi/docs/openai/), [LangChain và LlamaIndex](https://webreaderapi.com/vi/docs/langchain/), [n8n](https://webreaderapi.com/vi/docs/n8n/), [OpenClaw](https://webreaderapi.com/vi/docs/openclaw/) | | Giá | 3,75 US$ cho 10.000 trang; credit không bao giờ hết hạn | ## Tại sao một agent cần trình đọc thay vì HTML thô? Vì HTML thô tiêu tốn context window vào những thứ model không cần. Một bài báo hay trang tài liệu đến trong lớp bọc của điều hướng, script, banner đồng ý và các liên kết liên quan. Đưa nguyên si vào, nó lấn át cuộc hội thoại và khiến model trích dẫn menu. Một trình đọc giải quyết ba vấn đề cùng lúc. Nó chỉ giữ nội dung chính, nó render các trang vốn trống cho đến khi JavaScript chạy, và nó chuyển PDF thành văn bản. Agent nhận được một khối Markdown gọn gàng với tiêu đề và ngày tháng để có thể trích dẫn. ## Tại sao các công cụ fetch tích hợp đôi khi thất bại? Phần lớn vì các trang từ chối lưu lượng tự động. Từ ngày 1 tháng 7 năm 2025, Cloudflare chặn AI crawler theo mặc định với tên miền mới, và từ ngày 15 tháng 9 năm 2026, các preset của nó chặn lưu lượng "Agent" trên các trang có quảng cáo của tên miền mới. Các công cụ tích hợp trong coding agent và trợ lý gặp những lần từ chối đó như mọi client khác. Các thất bại khác mang tính kỹ thuật. Tài liệu của OpenClaw, đọc ngày 22 tháng 10 năm 2026, cho biết công cụ web_fetch tích hợp của nó trích xuất nội dung bằng Readability, không chạy JavaScript và giới hạn đầu ra ở 20.000 ký tự. Các trang dựng trong trình duyệt, tài liệu dài, server chậm và rate limit đều làm các công cụ như vậy vấp. Một trình đọc có render trang sẽ khắc phục trường hợp JavaScript; caching và sự kiên nhẫn khắc phục phần còn lại. Việc từ chối là quyền của chủ trang. [Hướng dẫn của chúng tôi về lỗi 403 khi web fetch](https://webreaderapi.com/vi/guides/web-fetch-403-errors/) giải thích từng trường hợp. ## Tại sao công cụ có tên read_url mà không phải web_fetch? Để tránh xung đột với các công cụ mà agent đã có. Claude Code và OpenClaw đều có sẵn một công cụ tích hợp tên là `web_fetch`. Một công cụ thứ hai cùng tên khiến model nhầm lẫn về việc nó đang gọi cái nào. Đặt tên của chúng tôi là `read_url` giúp giữ cả hai sẵn dùng: agent có thể dùng fetcher tích hợp để kiểm tra nhanh và dùng `read_url` khi cần Markdown sạch, PDF hay trang JavaScript. Các định nghĩa công cụ trên các trang tài liệu của chúng tôi đều dùng tên này, nên bạn có thể chuyển đổi giữa các framework mà không cần đổi prompt. *Python: một công cụ read_url gọn nhẹ với giới hạn độ dài* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def read_url(url: str, max_chars: int = 12000) -> str: """Return a web page as Markdown for a model, or a short reason it was not read.""" resp = requests.get(API, headers=HEADERS, params={"url": url, "max_chars": max_chars}, timeout=90) data = resp.json() if resp.status_code != 200: err = data.get("error", {}) return "Not read (" + err.get("code", "error") + "): " + err.get("message", "") head = "# " + (data.get("title") or url) + "\nSource: " + data["final_url"] if data.get("published_at"): head += " | Published: " + data["published_at"] return head + "\n\n" + data["markdown"] if __name__ == "__main__": print(read_url("https://example.com/blog/pour-over-coffee", max_chars=2000)[:500]) ``` ## Một agent nên quyết định đọc gì như thế nào? Hãy cho nó một ngân sách và một quy tắc. Ba thói quen giúp kiểm soát chi phí và context: - **Đọc ít, đọc kỹ.** Hai đến bốn nguồn mỗi câu hỏi thường đủ để trả lời kèm trích dẫn. - **Giới hạn từng trang.** Bắt đầu với `max_chars` khoảng 10.000 đến 15.000 ký tự; chỉ tăng khi `word_count` cho thấy câu trả lời có khả năng nằm xa hơn về phía dưới. - **Báo cáo các lần từ chối.** Khi một trang không đọc được, để model nói ra và chuyển sang nguồn khác thay vì thử lại. Công cụ ở trên trả các lần từ chối về dưới dạng một câu đơn giản, nên model có thể giải thích chúng cho người dùng. ## Chi phí để chạy một agent trên WebReaderAPI là bao nhiêu? Một credit mỗi trang, hai khi trang cần trình duyệt. Một trợ lý trả lời 100 câu hỏi mỗi ngày và đọc 4 trang cho mỗi câu sẽ đọc khoảng 12.000 trang mỗi tháng. 50.000 trang (14,25 US$) đủ cho bốn tháng, tính đến tháng 10 năm 2026. Credit không bao giờ hết hạn, nên một agent bận rộn tuần này và nhàn rỗi tuần sau không lãng phí hạn mức hàng tháng. Các trang thất bại hoặc bị robots.txt từ chối không tốn gì. ## Gói nào phù hợp với một agent? Thử nghiệm trên 10.000 trang; chuyển sang 50.000 trang hoặc 100.000 trang khi agent phục vụ người dùng thực. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## AI agent: các câu hỏi thường gặp ### Tôi có thể thêm WebReaderAPI vào Claude Desktop hoặc Cursor không? Có, thông qua một MCP server nhỏ cung cấp `read_url`. [Trang MCP](https://webreaderapi.com/vi/docs/mcp/) có mã và đoạn cấu hình; khóa API của bạn nằm trong một biến môi trường. ### Nó có hoạt động với OpenClaw không? Có, như một MCP server bên cạnh web_fetch tích hợp của OpenClaw. [Trang OpenClaw](https://webreaderapi.com/vi/docs/openclaw/) hiển thị các lệnh từ tài liệu chính thức của OpenClaw. ### Agent có thể đọc các trang chặn AI bot không? Không. Nếu robots.txt không cho phép trang, API trả về `blocked_by_robots`; nếu trang từ chối, nó trả về `target_refused` kèm trạng thái của trang. Cả hai đều không bị tính phí, và chúng tôi không bao giờ cố gắng vượt qua sự từ chối. ### Làm sao để ngăn một trang dài lấp đầy context window? Đặt `max_chars`. Markdown bị cắt ở độ dài đó, và `word_count` cho agent biết trang đầy đủ dài bao nhiêu, để nó chỉ yêu cầu thêm khi cần. ### Tôi có cần thẻ hay giấy tờ tùy thân không? Không. WebReaderAPI không yêu cầu giấy tờ tùy thân, selfie, tài liệu hay thẻ. Thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC, với mức nạp tối thiểu là 25 US$. ## Nguồn 1. [Thông cáo báo chí: AI crawler bị chặn theo mặc định](https://www.cloudflare.com/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/) — Cloudflare (2025-07-01) 2. [Blog: mặc định mới cho AI crawlers và agent](https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/) — Cloudflare (2026-09-15) 3. [Công cụ web fetch](https://docs.openclaw.ai/tools/web-fetch.md) — OpenClaw (read 2026-10-22) --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Giám sát thay đổi trang web: diff các trang công khai dưới dạng Markdown sạch > Theo dõi các trang web công khai để phát hiện thay đổi: đọc trang giá, chính sách và changelog dạng Markdown, diff văn bản và cảnh báo. Từ 0,07 US$/1K trang. - URL: https://webreaderapi.com/vi/use-cases/monitoring/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) So sánh HTML thô sẽ báo động mỗi khi một quảng cáo hay một token thay đổi. So sánh nội dung chính dưới dạng Markdown chỉ đánh dấu những gì người đọc sẽ nhận ra: một giá mới, một điều khoản được viết lại, một mục changelog mới. **Câu trả lời nhanh — Làm sao tôi có thể theo dõi các trang web để phát hiện thay đổi nội dung?** Đọc từng trang theo lịch dưới dạng Markdown của nội dung chính, lưu văn bản và so sánh với phiên bản trước; chỉ cảnh báo khi văn bản thay đổi. **WebReaderAPI** đọc tối đa 100 URL mỗi batch job, loại bỏ quảng cáo và menu để chúng không thể kích hoạt báo động giả, và tính một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Không cần KYC; thanh toán bằng crypto. ## Giám sát với WebReaderAPI | Thuộc tính | Giá trị | | --- | --- | | Endpoint | `POST https://webreaderapi.com/api/v1/batch`, sau đó `GET https://webreaderapi.com/api/v1/jobs/{job_id}` | | Kích thước batch | Tối đa 100 URL mỗi batch job | | Nội dung được so sánh | Markdown của nội dung chính, không có quảng cáo, menu hay banner | | Tính phí | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Khối lượng mẫu | 200 trang kiểm tra mỗi ngày = khoảng 6.000 trang mỗi tháng | | Giá | 3,75 US$ cho 10.000 trang; credit không bao giờ hết hạn | ## Có gì đáng để theo dõi? Những trang mà cách diễn đạt ảnh hưởng đến doanh nghiệp của bạn và thay đổi mà không báo trước: - **Trang giá** của nhà cung cấp và đối thủ, để thấy gói mới và biến động giá. - **Điều khoản, chính sách quyền riêng tư và hoàn tiền** mà bạn phụ thuộc, để bắt các điều khoản thay đổi. - **Changelog và release notes** của các công cụ bạn xây dựng dựa trên, để phản ứng với các thay đổi phá vỡ. - **Trang tài liệu** mà sản phẩm của bạn liên kết tới, để sửa hướng dẫn hỏng nhanh chóng. - **Thông báo công khai** từ cơ quan quản lý hoặc tổ chức tiêu chuẩn trong lĩnh vực của bạn. Giữ danh sách ở các trang công khai. Hồ sơ cá nhân và các trang sau đăng nhập nằm ngoài phạm vi. ## Tại sao lại diff Markdown thay vì HTML? Vì HTML thay đổi liên tục mà nội dung không đổi. Quảng cáo luân phiên, session token, dấu thời gian ở footer và markup A/B test khiến hai lần tải cùng một trang khác nhau. Diff trên HTML biến sự nhiễu đó thành cảnh báo, và người ta bỏ không đọc nữa. Markdown của nội dung chính loại bỏ phần lớn nhiễu trước khi bạn so sánh. Cái còn lại là văn bản con người đọc: tiêu đề, đoạn văn, danh sách và bảng. Diff trên phần văn bản đó ngắn, dễ đọc và đáng để cảnh báo. *Python: kiểm tra một danh sách trang và in ra những gì đã thay đổi* ```python import difflib import json import os import pathlib import time import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} STORE = pathlib.Path("snapshots.json") URLS = [ "https://example.com/pricing", "https://example.com/legal/terms", "https://example.com/changelog", ] old = json.loads(STORE.read_text(encoding="utf-8")) if STORE.exists() else {} job = requests.post(API + "/batch", headers=HEADERS, json={"urls": URLS}, timeout=60).json() results, cursor, delay = [], None, 5 while True: params = {"cursor": cursor} if cursor else {} page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() results += page.get("results", []) cursor = page.get("next_cursor") if page["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) new = dict(old) for item in results: if "markdown" not in item: print("not read:", item["url"], item.get("error", {}).get("code")) continue before = old.get(item["url"], "") if before and before != item["markdown"]: diff = difflib.unified_diff(before.splitlines(), item["markdown"].splitlines(), lineterm="", n=0) print("CHANGED:", item["url"]) print("\n".join(list(diff)[:40])) new[item["url"]] = item["markdown"] STORE.write_text(json.dumps(new, ensure_ascii=False), encoding="utf-8") ``` ## Tôi nên kiểm tra bao lâu một lần, và lịch sự đến mức nào? Kiểm tra thường xuyên như trang thực sự thay đổi, và không hơn. Hàng ngày phù hợp với trang giá và changelog; hàng tuần phù hợp với chính sách và tài liệu. Một trang đọc mỗi giờ hiếm khi cho bạn biết nhiều hơn một lần đọc mỗi ngày, và tốn gấp 24 lần. WebReaderAPI tuân theo robots.txt cho mọi trang và tôn trọng `Crawl-delay` của một trang web trong các crawl job. Các trang mà trang web đó không cho phép sẽ bị bỏ qua và không bị tính phí, nên một trang web nghiêm ngặt chỉ đơn giản là biến mất khỏi báo cáo của bạn. Hãy hỏi chủ sở hữu nếu bạn cần truy cập một trang từ chối robots. ## Theo dõi tốn bao nhiêu? Một credit mỗi trang mỗi lần kiểm tra. Vài ví dụ theo giá tháng 10 năm 2026: - **50 trang, hàng ngày:** khoảng 1.500 trang mỗi tháng. 10.000 trang (3,75 US$) dùng được hơn sáu tháng. - **200 trang, hàng ngày:** khoảng 6.000 trang mỗi tháng. 50.000 trang (14,25 US$) dùng được khoảng tám tháng. - **1.000 trang, hàng tuần:** khoảng 4.300 trang mỗi tháng, gần với trường hợp trước. Các trang cần trình duyệt dùng hai credit; đặt `render=false` cho những trang bạn biết là HTML thuần để giữ số lượng ở mức một. ## Gói nào phù hợp để theo dõi? Nhân số trang với số lần kiểm tra mỗi tháng, rồi chọn một gói dùng được vài tháng. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Theo dõi thay đổi: các câu hỏi thường gặp ### WebReaderAPI có gửi cảnh báo không? Không. Nó đọc các trang và trả về Markdown; script của bạn so sánh các phiên bản và gửi cảnh báo qua email, chat hoặc ticket. Đoạn code ở trên in ra các dòng thay đổi như một điểm khởi đầu. ### Làm sao để tránh báo động giả do ngày tháng và bộ đếm? So sánh Markdown của nội dung chính, không phải HTML, và gỡ các dòng mà bạn biết thay đổi mỗi lần tải, như "cập nhật 5 phút trước", trước khi diff. Hầu hết các phần tử luân phiên đã được loại bỏ bởi trích xuất nội dung chính. ### Tôi có thể theo dõi các trang cần JavaScript không? Có. Với `render=auto`, các trang trống nếu không có JavaScript sẽ được render trong trình duyệt headless với giá hai credit. Các trang hoạt động mà không cần JavaScript vẫn giữ ở mức một. ### Tôi có thể theo dõi cả một trang web thay vì một danh sách trang không? Có: chạy một crawl job thay vì một batch, rồi so sánh từng trang. Với các trang web lớn, hãy so sánh ngày `lastmod` trong sitemap trước và chỉ đọc lại những trang đã thay đổi. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Trang web cho RAG: biến các trang web thành Markdown sạch, dễ chia đoạn > Cấp dữ liệu cho pipeline RAG: crawl tài liệu và blog thành Markdown sạch, chia theo tiêu đề, giữ URL nguồn. Từ 0,07 US$/1K trang, không KYC, trả bằng crypto. - URL: https://webreaderapi.com/vi/use-cases/rag/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Retrieval hoạt động dựa trên những gì bạn đưa vào chỉ mục. Markdown sạch với tiêu đề, metadata và URL nguồn cho ra các đoạn tốt hơn, ít token lãng phí hơn và câu trả lời có thể trích dẫn trang của chúng. **Câu trả lời nhanh — Làm sao để nạp các trang web vào một pipeline RAG?** Đọc mỗi trang dưới dạng Markdown của nội dung chính, chia theo tiêu đề, gắn URL nguồn và tiêu đề vào mỗi đoạn, rồi embed và lưu trữ. **WebReaderAPI** lo phần đọc: một request mỗi trang, hoặc một crawl job cho cả một trang web lên tới 10.000 trang, với một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. robots.txt được tôn trọng. Không cần KYC; thanh toán bằng crypto. ## Nạp dữ liệu RAG với WebReaderAPI | Thuộc tính | Giá trị | | --- | --- | | Cả trang web | `POST https://webreaderapi.com/api/v1/crawl`: Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang | | Danh sách URL | `POST https://webreaderapi.com/api/v1/batch`: Tối đa 100 URL mỗi batch job | | Mỗi trang | Markdown của nội dung chính, tiêu đề, tác giả, ngày, ngôn ngữ, số từ | | PDF | Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu | | Tính phí | 1 credit = đọc 1 trang không cần trình duyệt; 2 credit khi trang cần trình duyệt để render JavaScript. Yêu cầu thất bại, hoặc bị robots.txt của trang web từ chối, không bị tính phí | | Giá | 14,25 US$ cho 50.000 trang; credit không bao giờ hết hạn | ## Tại sao Markdown sạch cho kết quả retrieval tốt hơn? Các đoạn tạo từ boilerplate được truy xuất kém. Khi một trang bị chia mà menu, văn bản cookie và footer vẫn còn trong đó, nhiều đoạn chứa cùng các từ điều hướng, và tìm kiếm vector trả về chúng cho những câu hỏi không liên quan. Trích xuất nội dung chính loại bỏ sự nhiễu đó trước khi bạn embed. Tiêu đề cũng quan trọng không kém. Một đoạn bắt đầu bằng `## Refund policy` mang theo chủ đề của nó, nên cả embedding lẫn model đọc nó sau này đều biết nó nói về điều gì. Văn bản thuần làm mất tín hiệu đó; HTML thô giấu nó dưới markup. ## Một pipeline nạp dữ liệu trông như thế nào? Năm bước, bất kể bạn dùng vector store nào: 1. **Thu thập URL.** Crawl trang web, hoặc gửi danh sách bạn đã có dưới dạng batch. 2. **Đọc dưới dạng Markdown.** Giữ `main_content=true` cho bài viết và tài liệu; dùng `false` cho các trang danh sách. 3. **Chia nhỏ theo tiêu đề.** Tách tại `#`, `##` và `###`, sau đó cắt các phần dài về giới hạn kích thước của bạn với một chút chồng lấp. 4. **Đính kèm metadata.** Lưu `url`, `title`, `published_at` và đường dẫn tiêu đề cùng mỗi chunk, để câu trả lời có thể trích dẫn nguồn. 5. **Làm mới.** Đọc lại các trang có sitemap `lastmod` đã thay đổi, và xóa chunk của những trang giờ trả về lỗi. *Python: đọc các trang và chia thành chunk kèm nguồn* ```python import os import re import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} URLS = [ "https://docs.example.com/getting-started", "https://docs.example.com/billing", ] def chunks_for(url, max_len=2000): page = requests.get(API, headers=HEADERS, params={"url": url}, timeout=90).json() if "markdown" not in page: return [] out = [] for section in re.split(r"\n(?=#{1,3} )", page["markdown"]): section = section.strip() heading = section.splitlines()[0] if section else "" for start in range(0, len(section), max_len): out.append({ "text": section[start:start + max_len], "url": page.get("final_url", url), "title": page.get("title"), "heading": heading, }) return out all_chunks = [c for u in URLS for c in chunks_for(u)] print(len(all_chunks), "chunks ready to embed") ``` ## Chi phí để xây dựng và làm mới một index là bao nhiêu? Xây dựng tốn một credit mỗi trang, hai credit cho các trang cần trình duyệt. Làm mới chỉ tốn cho những trang bạn đọc lại. Ba ví dụ, theo giá tháng 10 năm 2026: - **Trung tâm trợ giúp của một sản phẩm** gồm 800 trang, làm mới hàng tháng cho các trang thay đổi (khoảng 10%): 800 credit một lần, sau đó khoảng 80 mỗi tháng. 10.000 trang (3,75 US$) dùng được nhiều năm. - **Mười trang tài liệu** mỗi trang 2.000 trang, làm mới hàng tuần ở mức 5%: 20.000 credit, sau đó khoảng 4.000 mỗi tháng. 50.000 trang (14,25 US$) đủ cho lần xây dựng và bảy tháng làm mới. - **Một kho tin tức** gồm 300.000 bài viết không bao giờ thay đổi: 300.000 credit một lần, vừa với 500.000 trang (50 US$). Embedding và lưu trữ do nhà cung cấp của bạn tính phí và không được tính ở đây. ## Tôi có thể index những trang không muốn bị index không? Không qua WebReaderAPI. Các trang bị robots.txt chặn đối với crawler của chúng tôi, hoặc đối với tất cả robot, sẽ bị bỏ qua và không bị tính phí; những trang khai báo `Content-Signal: ai-input=no` sẽ không được đọc cho bạn. Đối với trang của chính bạn hoặc trang đối tác chặn robot, hãy đề nghị chủ trang cho phép `WebReaderAPI` trong robots.txt; [trang crawler của chúng tôi](https://webreaderapi.com/vi/bot/) hiển thị các dòng cần thêm. Điều này cũng quan trọng với người dùng của bạn. Một trợ lý RAG trích dẫn nguồn sẽ hữu ích hơn khi các nguồn đó đồng ý được đọc. ## Gói nào phù hợp với dự án RAG? Đếm số trang để xây dựng index, cộng thêm phần làm mới hàng tháng, rồi chọn gói đủ cho vài tháng. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | | Mở rộng | 500.000 trang | 50 US$ | 0,10 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Nạp dữ liệu cho RAG: các câu hỏi thường gặp ### Tôi nên dùng kích thước chunk bao nhiêu? Tách theo tiêu đề trước, sau đó cắt các phần dài hơn khoảng 500 đến 1.000 token với một chút chồng lấp. Chunk dựa trên tiêu đề giữ mỗi chunk một chủ đề, thường truy xuất tốt hơn các cửa sổ có kích thước cố định trên toàn trang. ### WebReaderAPI có tạo embedding hay lưu vector không? Không. WebReaderAPI đọc các trang và trả về Markdown kèm metadata. Bạn tạo embedding bằng model bạn chọn và lưu vào vector database của riêng bạn; [trang LangChain và LlamaIndex](https://webreaderapi.com/vi/docs/langchain/) trình bày cả hai. ### Làm thế nào để giữ index luôn được cập nhật? Chỉ đọc lại những trang đã thay đổi. Hầu hết sitemap có ngày `lastmod` cho mỗi URL; so sánh với lần đọc cuối của bạn và gửi các URL đã thay đổi dưới dạng batch. Những trang giờ bị lỗi nên bị xóa khỏi index. ### Tôi có thể bao gồm PDF từ cùng một trang web không? Có. Một lần crawl sẽ đọc các liên kết PDF trên cùng domain với cùng các kiểm tra robots.txt. Tệp PDF tối đa 20 MB và 100 trang được chuyển sang Markdown, với 1 credit cho mỗi khối 10 trang bắt đầu. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto. --- # Chuyển trang web của bạn sang Markdown: crawl và xuất mọi trang > Chuyển trang web sang tệp Markdown: crawl trang web và xuất từng trang kèm front matter, cho việc di chuyển, sao lưu hoặc trợ lý riêng. Không cần KYC. - URL: https://webreaderapi.com/vi/use-cases/website-to-markdown/ - Cập nhật lần cuối: 2026-10-22 - Đơn vị phát hành: WebReaderAPI (https://webreaderapi.com) Chuyển sang một static site generator, một nền tảng tài liệu hoặc một knowledge base thường bắt đầu bằng một câu hỏi: làm sao lấy các trang của tôi ra dưới dạng Markdown sạch? Một lần crawl làm được điều đó trong một job, giữ tiêu đề, ngày và URL trong front matter. **Câu trả lời nhanh — Làm thế nào để chuyển toàn bộ trang web của tôi sang Markdown?** Crawl trang web của bạn, đọc nội dung chính của từng trang dưới dạng Markdown, và ghi một tệp `.md` cho mỗi trang với tiêu đề, URL và ngày trong front matter. **WebReaderAPI** crawl tối đa 10.000 trang mỗi job, tuân theo sitemap và robots.txt của bạn, và tính một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Một script Python bên dưới sẽ ghi các tệp. Không cần KYC; thanh toán bằng crypto. ## Xuất trang web với WebReaderAPI | Thuộc tính | Giá trị | | --- | --- | | Endpoint | `POST https://webreaderapi.com/api/v1/crawl`, kết quả từ `GET https://webreaderapi.com/api/v1/jobs/{job_id}` | | Phạm vi | Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang | | Mỗi trang | Markdown của nội dung chính, cùng tiêu đề, mô tả, tác giả, ngày và ngôn ngữ | | Toàn bộ trang | `main_content=false` giữ navigation và footer khi bạn cần | | robots.txt của bạn | Phải cho phép `WebReaderAPI` đối với các trang bạn xuất | | Giá | 3,75 US$ cho 10.000 trang; credit không bao giờ hết hạn | ## Khi nào thì xuất Markdown hữu ích? Mỗi khi nội dung phải rời khỏi hệ thống hiển thị nó. Các trường hợp phổ biến: - **Di chuyển.** Chuyển từ CMS sang static site generator hoặc nền tảng tài liệu lưu trang dưới dạng Markdown. - **Sao lưu.** Một kho lưu trữ dễ đọc các trang đã xuất bản của bạn, không phụ thuộc vào bất kỳ database hay theme nào. - **Trợ lý của riêng bạn.** Đưa văn bản trên trang web của bạn vào một bot trợ giúp hoặc tìm kiếm nội bộ, với mỗi chunk liên kết tới trang của nó. - **Kiểm tra.** Đọc tất cả các trang dưới dạng văn bản thuần để tìm những tuyên bố lỗi thời, câu chữ lỗi hoặc nội dung trùng lặp. Trong mỗi trường hợp bạn cần các từ và cấu trúc, không phải theme xung quanh chúng. *Python: crawl trang web của bạn thành các tệp Markdown kèm front matter* ```python import os import pathlib import time from urllib.parse import urlparse import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} SITE = "https://www.example.com/" OUT = pathlib.Path("export") def target_path(url): path = urlparse(url).path.strip("/") or "index" return OUT / (path + ".md") def front_matter(page): fields = {"title": page.get("title", ""), "source": page["final_url"], "date": page.get("published_at") or ""} lines = ["---"] + [key + ": " + repr(value) for key, value in fields.items()] + ["---", ""] return "\n".join(lines) job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 2000, "max_depth": 5}, timeout=60).json() cursor, delay, written = None, 5, 0 while True: params = {"cursor": cursor} if cursor else {} batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() for page in batch.get("results", []): if "markdown" not in page: continue dest = target_path(page["final_url"]) dest.parent.mkdir(parents=True, exist_ok=True) dest.write_text(front_matter(page) + page["markdown"] + "\n", encoding="utf-8") written += 1 cursor = batch.get("next_cursor") if batch["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) print(written, "files in", OUT) ``` ## Làm thế nào để giữ cấu trúc thư mục và các URL? Sao chép đường dẫn URL vào đường dẫn tệp, như script làm: `/guides/setup/` trở thành `export/guides/setup.md`. Giữ URL gốc trong front matter dưới dạng `source`, để bạn có thể thiết lập redirect sau khi di chuyển và kiểm tra rằng không mất mát gì. Các liên kết bên trong Markdown vẫn trỏ tới các URL hiện tại của bạn. Sau khi chuyển, hãy thay domain hoặc tiền tố đường dẫn trong một lần, rồi kiểm thử một mẫu các trang. Bảng và khối mã vẫn ở dạng Markdown, nên hầu hết static generator hiển thị chúng mà không cần thay đổi. ## Nếu robots.txt của chính tôi chặn crawler thì sao? Hãy cho phép token của chúng tôi trong thời gian xuất. WebReaderAPI chỉ đọc những gì robots.txt cho phép đối với `WebReaderAPI` hoặc đối với tất cả robot, kể cả trên trang của chính bạn. Thêm một nhóm như `User-agent: WebReaderAPI` với `Allow: /`, chạy crawl, rồi xóa nếu bạn muốn. [Trang crawler của chúng tôi](https://webreaderapi.com/vi/bot/) hiển thị các dòng chính xác và User-Agent mà log máy chủ của bạn sẽ hiển thị. Những trang vẫn bị chặn sẽ bị bỏ qua và không bị tính phí. ## Một lần xuất tốn bao nhiêu? Một credit mỗi trang, hai credit cho các trang cần trình duyệt để hiển thị văn bản. Một trang web 2.000 trang render trên máy chủ tốn 2.000 credit một lần; cùng trang đó dưới dạng ứng dụng JavaScript có thể tốn tới 4.000. Cả hai đều vừa với 10.000 trang với 3,75 US$, tính đến tháng 10 năm 2026. Một trang web 50.000 trang cần nhiều job, chia theo phần với `include_paths`, và vừa với 100.000 trang (21,75 US$). Credit còn lại sau khi xuất vẫn ở trong tài khoản của bạn cho các lần làm mới sau. ## Gói nào phù hợp với nhu cầu xuất dữ liệu của tôi? Đếm số trang của bạn, nhân đôi nếu trang cần JavaScript để render, rồi chọn gói cao hơn mức đó. Credit không bao giờ hết hạn. | Gói | Số lượng | Giá | Giá mỗi đơn vị | | --- | --- | --- | --- | | Kiểm tra | 10.000 trang | 3,75 US$ | 0,38 US$/1K trang | | Khởi đầu | 50.000 trang | 14,25 US$ | 0,28 US$/1K trang | | Xây dựng | 100.000 trang | 21,75 US$ | 0,22 US$/1K trang | Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn **Trước khi bạn thanh toán** - Nạp tối thiểu 25 US$. Nạp một lần bằng crypto, sau đó mua bất kỳ gói nào từ số dư của bạn. - Số dư của bạn không có ngày hết hạn và có thể dùng để mua credit trang bất cứ lúc nào. Nếu một pack có giá thấp hơn mức nạp tối thiểu, khoản tiền bạn chỉ nạp thêm để đạt mức tối thiểu đó có thể được hoàn lại theo yêu cầu trong vòng 30 ngày kể từ ngày thanh toán, bằng USDT hoặc USDC, miễn là bạn chưa sử dụng khoản đó. Mọi số dư khác sẽ không được hoàn lại trừ khi pháp luật có quy định khác. - Được ghi có khi thanh toán của bạn đã được kiểm tra trên blockchain. Thời gian xác nhận mạng thông thường: BTC ≈ 20 phút · USDT TRC-20 ≈ 1 phút · USDT ERC-20 ≈ 5 phút · USDC ERC-20 ≈ 5 phút · ETH ≈ 5 phút · SOL ≈ 1 phút · LTC ≈ 15 phút ## Chuyển trang web sang Markdown: các câu hỏi thường gặp ### Tôi có thể xuất toàn bộ trang, bao gồm cả menu và footer không? Có. Đặt `main_content=false` trong tùy chọn crawl và mỗi file sẽ chứa toàn bộ trang đã được chuyển sang Markdown. Hầu hết các đợt migration chỉ muốn nội dung chính, vì theme mới đã có navigation riêng. ### Hình ảnh có được tải về không? Không. Với `include_images=true`, liên kết hình ảnh vẫn nằm trong Markdown kèm alt text; hãy tải chính các file đó bằng script của bạn nếu migration cần đến chúng. ### Tôi có thể xuất một trang web không thuộc sở hữu của mình không? Chỉ những trang công khai mà robots.txt của trang cho phép, và chỉ cho những mục đích mà điều khoản của trang và pháp luật cho phép. Đối với migration hoặc sao lưu, hãy xuất các trang của chính bạn hoặc các trang mà chủ sở hữu đã đồng ý. ### Một job có thể xử lý trang web lớn cỡ nào? Tối đa 10.000 trang cho mỗi job crawl, trong phạm vi một domain. Hãy chia các trang web lớn hơn theo từng phần bằng `include_paths` và chạy nhiều job. --- WebReaderAPI: WebReaderAPI là web reader API cho AI agent, chuyển mọi trang web công khai thành Markdown sạch, thanh toán bằng crypto không cần tải lên giấy tờ. Credit trả trước từ 0,07 US$/1K trang không bao giờ hết hạn, và robots.txt được tôn trọng. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto.