KYC不要 — 身分証もセルフィーも書類も不要。暗号資産で支払い:BTC, USDT, USDC, ETH, SOL, LTC
言語: 日本語
APIキーを取得

ドキュメント · APIリファレンス

エンドポイントリファレンスを読む:GETおよびPOST /read

/readは1つの公開ページを取得し、本文を抽出してMarkdown、プレーンテキスト、またはクリーンなHTMLとして返します。このページではすべてのパラメータ、そのデフォルト値、およびコストを一覧にしています。

最終更新:

概要

WebReaderAPIのreadエンドポイントはどのパラメータを取りますか?

WebReaderAPIの/readエンドポイントには必須パラメータが1つ、urlがあります。オプションのパラメータでは、出力形式(format)、ページの保持範囲(main_content)、ブラウザを実行するか(render)、リンクと画像、読み取り国、文字数上限、タイムアウトを選択します。通常のページは1クレジット、ブラウザ使用時は2クレジットで、2026年10月時点で$0.07/1Kページから。KYC不要、暗号資産で支払い。

/read at a glance

メソッドクエリパラメータ付きのGET、または同じ名前を使ったJSONボディ付きのPOST
URLhttps://webreaderapi.com/api/v1/read
必須url:httpまたはhttpsのアドレス、最大2,048文字
デフォルトの出力本文のMarkdown
課金1クレジット = ブラウザなしでページを1回読み取り。ページのJavaScriptレンダリングにブラウザが必要な場合は2クレジット。失敗したリクエスト、またはサイトのrobots.txtが拒否したリクエストは課金されません
国ページを読み取る国を指定すると10クレジットが加算されます。その場合、ページはその国のレジデンシャル接続経由で読み取られるためです
PDF20 MB・100ページまでのPDFファイルをMarkdownに変換します。10ページ単位の開始ブロックごとに1クレジットです
クローラーの識別情報WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)

1ページを読む(GET)

GET/api/v1/read

1つの公開ページを取得し、その本文をページのメタデータ付きでMarkdownとして返します。パラメータはクエリ文字列にURLエンコードして指定します。例はブログ記事を読み取ります。ID、日付、値は例示用です。

認証:Authorization: Bearer API_KEYヘッダーのAPIキー。

パラメータ

名前場所型必須説明
urlquerystringはい読み取るページ:httpまたはhttps、最大2,048文字。プライベート、ローカル、クラウドメタデータのアドレスは拒否されます。
formatquerystringいいえmarkdown(デフォルト)、text(プレーンテキスト、マークアップなし)、またはhtml(コンテンツのクリーンなHTML)。
main_contentquerybooleanいいえtrue(デフォルト)は記事または本文のみを保持します。falseはメニューやフッターを含むページ全体を変換します。
renderquerystringいいえauto(デフォルト)は生のHTMLにテキストが少なすぎる場合にのみブラウザを起動します。trueは常に、falseは決して起動しません。レンダリングされたページは2クレジットかかります。
include_linksquerybooleanいいえtrueは{url, text}のlinksリストを追加します。デフォルトはfalse。
include_imagesquerybooleanいいえtrueはMarkdown内の画像を![alt](src)として保持します。デフォルトはfalse。
countryquerystringいいえ2文字の国コード(ISO 3166-1 alpha-2)。その国のアドレスからページを読み取り、10クレジット追加(レジデンシャル接続)。
max_charsqueryintegerいいえ出力をこの文字数で切り捨てます。1,000〜500,000。モデルのコンテキストに収めるのに便利です。
timeoutqueryintegerいいえサイトの待機秒数(5〜60)。デフォルトは30。
api_keyquerystringいいえAuthorizationヘッダーを送信しない場合に使用するAPIキー。

レスポンス 200

{
  "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
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
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
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));

1ページを読む(POST)

POST/api/v1/read

同じendpoint、同じパラメータをJSONボディとして送信します。URLが非常に長い場合や、HTTPクライアントがクエリ文字列よりもJSONを容易に構築できる場合はPOSTを推奨します。レスポンスはGET形式と同一です。

認証:Authorization: Bearer API_KEYヘッダーのAPIキー。

リクエストボディ

フィールド型必須説明
urlstringはい読み取るページ。
format, main_content, render, include_links, include_images, country, max_chars, timeoutmixedいいえ上記のGETテーブルと同様ですが、JSONの型を使用します。真偽値はtrue/false、数値はクォートなしです。
例: a JavaScript-heavy page, read from Germany, with its links
{
  "url": "https://example.com/app/pricing",
  "render": "true",
  "country": "de",
  "include_links": true,
  "max_chars": 30000
}

レスポンス 200

{
  "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
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
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
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);

どの出力形式を選べばよいですか?

言語モデルやRAGにはmarkdownを選択してください。見出し、リスト、テーブル、リンクが保持され、テキストはコンパクトに保たれます。単語のカウント、分類、検索のみを行い、マークアップがノイズになる場合はtextを選択してください。独自のパイプラインがすでにHTMLを解析しており、不要な要素だけを取り除きたい場合はhtmlを選択してください。

メタデータフィールドは3つの形式すべてで同じです。変わるのはコンテンツフィールドの名前のみです: markdown、text、html。

main_contentをfalseに設定すべきなのはいつですか?

記事の周辺部分が必要な場合にfalseに設定してください。例えば、サイトのセクションをマッピングするためのナビゲーション、法的情報や連絡先を含むフッター、仕様がサイドバーにある商品ページなどです。

デフォルトのtrueでは、抽出器はメインコンテンツブロックを保持し、ナビゲーション、Cookieバナー、広告、共有ボタン、フッターを除外します。これはほとんどのエージェントやRAGパイプラインが求める動作であり、ページのHTMLサイズをしばしば大幅に削減します。

render=autoはどのようにブラウザの使用を決定しますか?

まず生のHTMLを取得します。これは高速で1クレジットかかります。そのHTMLに読み取り可能なテキストが少なすぎる場合(通常、JavaScriptでページを構築するアプリ)、ヘッドレスブラウザで再度ページを読み込み、呼び出しには2クレジットかかります。レスポンスはどのパスが実行されたかを示します: renderedはtrueまたはfalseです。

サイトが完全なHTMLを提供することがわかっていて、固定コストを希望する場合はrender=falseを設定してください。シングルページアプリの場合は、最初の試行をスキップするためにrender=trueを設定してください。

countryとmax_charsは何を変更しますか?

countryは、指定した国のアドレスから同じUser-Agentでページを読み取ります。価格、言語、可用性が国によって変わるページに使用してください。レジデンシャル接続経由でページを読み取るため、10クレジットが追加され、サービスが運営していない国では使用できません。

max_charsは、指定した文字数で出力を切り捨てます。価格は変わりませんが、エージェントのコンテキストウィンドウを保護します。モデルに渡す単一ページには20,000文字が適切なデフォルトです。

/readはPDFファイルを処理できますか?

はい。URLがPDFを返す場合、テキストは同じmarkdownフィールドにMarkdownとして返されます。20 MB・100ページまでのPDFファイルをMarkdownに変換します。10ページ単位の開始ブロックごとに1クレジットです。テキストレイヤーのないスキャンされたPDFは、文字認識ステップがないため、テキストがほとんどまたはまったく返されません。

読取エンドポイント: よくある質問

/readはリダイレクトをフォローしますか?

はい、最大5回まで。レスポンスはurlに要求したアドレス、final_urlに実際に読み取ったアドレスを返します。プライベートアドレスやローカルアドレスへのリダイレクトは拒否されます。

ログインが必要なページを読み取れますか?

いいえ。サイトが当社のリクエストを拒否した場合、その回答をそのまま返します。CAPTCHAを解いたり、アカウントにログインしたり、ブロックやペイウォールを回避しようとしたりすることは決してありません。ログインやペイウォールの背後にあるページはサイトの拒否を返し、呼び出しは無料です。

robots.txtのチェックは毎回の呼び出しで行われますか?

はい、サイトのrobots.txtのコピー(最大24時間前のもの)に対して行われます。許可されていないURLは403 blocked_by_robotsを返し、クレジットは消費されません。

同時にいくつのページを読み取れますか?

すべてのアカウントには同時に読み取れるページ数の上限があります。上限はダッシュボードに表示され、サポートで引き上げられます。多数のURLの場合は、バッチジョブの方が多数の並列呼び出しを実行するより簡単です。

$0.07/1Kページから · KYC不要

APIキーを取得