# curlとjqでWebページをMarkdownに変換

> curlとjqを使ってターミナルからWebページをMarkdownに変換: ページの保存、リンクの一覧表示、バッチの実行、クレジットの確認。$0.07/1Kページから、KYC不要。

- URL: https://webreaderapi.com/ja/docs/curl/
- 最終更新: 2026-10-22
- 発行者: WebReaderAPI (https://webreaderapi.com)

APIでできることはすべてシェルのワンライナーに収まります。これらのレシピではcurlでAPIを呼び出し、jqでJSONからフィールドを取り出します。最後にWindows向けのPowerShell版もあります。

**概要 — コマンドラインからWebページをMarkdownに変換するにはどうすればよいですか？**

`Authorization: Bearer`ヘッダーにキーを設定して`curl -sG https://webreaderapi.com/api/v1/read --data-urlencode "url=…"`を実行し、その回答を`jq -r .markdown`にパイプします。**WebReaderAPI**はページの本文をメタデータ付きのMarkdownとして返します。プレーンなページ1枚で1クレジット、2026年10月時点で$0.07/1Kページから。KYC不要、暗号資産で支払い。

## ターミナルの設定方法を教えてください。

ほとんどのLinuxおよびmacOSシステムに既にインストールされているcurlとjqをインストールし、セッションごとに1回キーをエクスポートします。以下のすべてのレシピは`$WEBREADER_API_KEY`からキーを読み取るため、キーがコマンドの一部としてシェル履歴に表示されることはありません。

GETリクエストには`-G`と`--data-urlencode`を使用します。curlがページアドレスをエンコードしてくれるので、アドレス自体に含まれる`?`、`&`、`=`を気にする必要があります。

*キーを設定して1ページを.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
```

## 呼び出しの戻り値とコストを確認する方法を教えてください。

コンテンツではなくメタデータをjqに要求します。`final_url`はリダイレクト先を示し、`rendered`はブラウザが使用されたかどうかを示し、`credits_used`は呼び出しのコストです。応答がエラーの場合、同じフィルタで`null`フィールドが出力されます。`.error`を出力してコードとメッセージを確認してください。

*メタデータのみ、またはエラーがある場合はエラー*

```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}'
```

## ページのリンクを一覧表示する方法を教えてください。

`include_links=true`を追加し、`links`リストをタブ区切りの行に変換します。これにより、ページの送信リンクの簡単なマップが得られ、並べ替えたり、grepでフィルタリングしたり、バッチジョブに渡したりできます。

*リンクをテキストとURLとして1行に1つずつ*

```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
```

## JavaScriptページやPDFを読む方法を教えてください。

JavaScriptでコンテンツを構築するページには`-d render=true`を追加します。その場合、2クレジットかかります。PDFには特別なものは必要ありません。URLを送信すると、テキストが`markdown`で返されます。20 MB・100ページまでのPDFファイルをMarkdownに変換します。10ページ単位の開始ブロックごとに1クレジットです。

*レンダリングされたページ、次に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
```

## シェルからバッチジョブを実行する方法を教えてください。

URLを含むJSONボディを`/batch`にPOSTし、`job_id`を保持してからジョブを読み取ります。小さなループでジョブが`done`になるまで待機し、各ページのタイトルまたはエラーコードを出力します。長時間のジョブの場合は、[バッチとクロールのページ](https://webreaderapi.com/ja/docs/crawl/)に示されているように`next_cursor`に従ってください。

*3つのURLのバッチ、次に結果を待つ*

```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)"'
```

## クレジットを確認する方法を教えてください。

`/credits`を呼び出します。これは無料です。`credits_remaining`、`credits_used_today`、および`concurrency_limit`を返します。プリペイドクレジットに有効期限はありません。未使用のページは使うまでアカウントに残ります。

*残りのクレジット*

```bash
curl -s "https://webreaderapi.com/api/v1/credits" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq '.credits_remaining'
```

## WindowsでのPowerShellバージョンは何ですか？

`Invoke-RestMethod`はJSONを解析するので、jqは不要です。`[uri]::EscapeDataString`でクエリを構築してページアドレスをエンコードし、ヘッダーテーブルでキーを渡します。

*PowerShell：1ページを保存する*

```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：よくある質問

### URLに&が含まれていると失敗するのはなぜですか？

シェルまたはcurlがそれを分割するためです。上記のレシピのように、`url=…`引数全体を引用符で囲み、`--data-urlencode`で渡します。curlはページアドレス内の`&`、`?`、`=`をエンコードします。

### エラーのHTTPステータスを確認する方法を教えてください。

本文の後に出力するには`-w '\n%{http_code}\n'`を追加するか、すべてのヘッダーを表示するには`-i`を追加します。本文の`error.code`は、スクリプトでテストするための安定した値です。

### 失敗した呼び出しは課金されますか？

いいえ。1クレジット = ブラウザなしでページを1回読み取り。ページのJavaScriptレンダリングにブラウザが必要な場合は2クレジット。失敗したリクエスト、またはサイトのrobots.txtが拒否したリクエストは課金されません。

---

WebReaderAPI: WebReaderAPIはAIエージェント向けのWebリーダーAPIで、あらゆる公開WebページをクリーンなMarkdownに変換します。暗号資産で支払い、本人確認書類のアップロードは不要です。$0.07/1Kページから購入できるプリペイドクレジットに有効期限はなく、robots.txtを尊重します。KYC不要 — 身分証もセルフィーも書類も不要。暗号資産で支払い。
