概要
WebReaderAPIの読取レスポンスには何が含まれますか?
WebReaderAPIの/readレスポンスには、markdown(またはtext、html)のページコンテンツ、そのメタデータ(title、description、author、published_at、language、site_name、word_count)、およびフェッチの事実(final_url、status_code、rendered、credits_used)が含まれます。通常のページは$0.07/1Kページからの2026年10月時点で1クレジットです。KYC不要、暗号資産で支払い。
どのフィールドがフェッチを説明しますか?
これらのフィールドは成功レスポンスに常に存在します。
| フィールド | 型 | 意味 |
|---|---|---|
url | string | 送信したアドレス |
final_url | string | リダイレクト後(最大5回)に実際に読み取ったアドレス |
status_code | integer | サイトが最終アドレスに対して返したHTTPステータス(通常は200) |
fetched_at | string | 取得日時(UTCのISO 8601形式) |
rendered | boolean | ヘッドレスブラウザがページを構築した場合にtrue |
credits_used | integer | このページの課金クレジット:1、ブラウザ使用時は2、country使用時はさらに10を加算。PDFは開始した10ページごとに1 |
どのフィールドがページを表しますか?
メタデータはページ自体から取得します。titleタグ、metaタグ、構造化データ、表示されている署名です。ページが提供しないフィールドは存在しないため、使用前に確認してください。
| フィールド | 型 | 意味 |
|---|---|---|
title | string | ページまたは記事のタイトル |
description | string | ページが自身について示す要約 |
language | string | コンテンツの言語コード(例:enやde) |
author | string | ページに記載された著者 |
published_at | string | ページが示す公開日 |
site_name | string | サイト自体の名前 |
word_count | integer | 返却コンテンツの単語数(本文抽出後、max_chars前) |
コンテンツ本体はどこにありますか?
選択したformatにちなんだ名前のコンテンツフィールドが1つ返されます。
| フィールド | When | Content |
|---|---|---|
markdown | format=markdown(デフォルト) | Markdownでの見出し、段落、リスト、表、リンク。include_images=trueを使えば画像も含む |
text | format=text | プレーンテキスト(段落は空行で区切る) |
html | format=html | メインコンテンツのクリーンなHTML(スクリプト、スタイル、広告を除く) |
links | include_links=true | ページ上で見つかったリンクの{url, text}一覧(絶対URL) |
{
"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" }
]
}レンダリングされたページとそうでないページはどう見分けますか?
renderedを確認してください。render=autoを指定すると、APIはまず生のHTMLを読み取り、そのHTMLのテキストが少なすぎる場合にのみブラウザを起動し、そのときrenderedをtrueに、credits_usedを2に設定します。よく読むサイトが常にレンダリング済みで返ってくる場合は、最初からrender=trueを送ってください。コストは同じで、無駄な最初のステップを省略できます。
ページが未レンダリングで内容が薄い状態で返ってきた場合は、word_countとブラウザで見える内容を比較してください。カウントが少ない場合は通常、コンテンツにJavaScriptが必要という意味です。render=trueを付けて一度だけ再試行してください。
final_urlがurlと異なるのはなぜですか?
サイトがリダイレクトするからです。短縮リンク、古いアドレス、末尾スラッシュの欠落、言語切り替えなどは、いずれも別の場所へ転送します。APIは最大5回のリダイレクトをたどり、最終的に読み取ったアドレスをfinal_urlで報告します。
RAGインデックスでは、final_urlをドキュメントの正規のソースとして保存してください。同じfinal_urlに到達する2つの異なるurlの値は同じページなので、埋め込む前に重複を削除できます。
ジョブの結果はどのような形ですか?
GET https://webreaderapi.com/api/v1/jobs/{job_id}はjob_id、status(queued、running、doneのいずれか)、results、next_cursor、およびジョブの実行中のcredits_usedを返します。resultsの各項目は次の2つの形のいずれかです。
- 読み取られたページに対する、上記で説明したとおりの完全な
/readレスポンス。 - 読み取られなかったページに対する
{url, error}。ここでerrorはAPIエラーと同じcodeとmessageを持ちます。
next_cursorはさらに結果が準備できている間存在します。それをcursorとして返すと取得できます。バッチとクロールのページには完全なポーリングループがあります。
{
"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
}エラーレスポンスはどのような形ですか?
エラーは400以上のHTTPステータスとJSONボディ{"error": {"code", "message"}}で返ります。サイト自体がリクエストを拒否した場合、target_statusにはサイトが返したステータスが入ります。エラーに課金はされません。エラーのページには、すべてのコードとその原因、再試行が有効かどうかが記載されています。
レスポンス形式:よくある質問
max_charsを設定するとMarkdownは切り詰められますか?
はい。contentフィールドはその文字数で止まります。word_countは抽出されたコンテンツ全体を引き続き示すので、どれだけ省略されたかがわかります。
authorやpublished_atが欠けているのはなぜですか?
ページに読み取れる形で記載されていないためです。多くのページでは著者や日付が示されていません。存在しないフィールドは空で返されるのではなく省略されます。
Markdown内のリンクは絶対URLですか?
links一覧のリンクは絶対URLです。Markdown本文では両方の形式を受け入れるようにコードを書き、相対リンクはfinal_urlを基準に解決してください。
ページ全体の生のHTMLを取得できますか?
最も近いのはmain_content=falseを付けたformat=htmlで、スクリプトとスタイルを除去したページ全体を返します。元のバイト単位のHTMLはv1には含まれません。