言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. Bash辞典
  3. curl

curl

『curl』はコマンドラインから HTTP/HTTPS リクエストを送受信するツールです。Web API の呼び出し・ファイルのダウンロード・フォームデータの送信など幅広い用途に使えます。

構文

基本的な GET リクエストを送信します。

curl URL

ファイルに保存します。

curl -o 出力ファイル URL

URL と同じファイル名で保存します。

curl -O URL

リダイレクトに追従します。

curl -L URL

POST リクエストでフォームデータを送信します。

curl -X POST -d "key=value&key2=value2" URL

POST リクエストで JSON を送信します。

curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL

ヘッダーを追加します。

curl -H "Authorization: Bearer トークン" URL

オプション一覧

オプション概要
-o ファイルレスポンスボディを指定ファイルに保存します。
-OURL のファイル名でカレントディレクトリに保存します。
-Lリダイレクト(301/302)に追従します。
-s進捗やエラーを表示しないサイレントモードです。
-S-s と組み合わせてエラーだけ表示します。
-w "%{http_code}"HTTPステータスコードなどのフォーマット出力を追加します。
-X メソッドHTTP メソッドを指定します(GET, POST, PUT, DELETE 等)。
-H "ヘッダー"リクエストヘッダーを追加します。
-d "データ"POST のボディデータを指定します。
-F "field=value"multipart/form-data 形式でデータを送ります。
-u ユーザー:パスワードBasic 認証の認証情報を指定します。
-Iレスポンスヘッダーのみ取得します(HEAD リクエスト)。
-v詳細なリクエスト/レスポンスを表示します(デバッグ用)。
--max-time 秒タイムアウト時間を指定します。
-kSSL 証明書の検証をスキップします(開発環境向け)。

サンプルコード

シンプルな GET リクエストを送信します。レスポンスボディが標準出力に表示されます。

curl https://api.example.com/users/1
{"id":1,"name":"Alice","email":"alice@example.com"}

HTTP ステータスコードだけを確認します。『-s』でサイレントモード、『-o /dev/null』でボディを破棄します。

curl -s -o /dev/null -w "%{http_code}" https://example.com
200

レスポンスヘッダーを確認します(『-I』で HEAD リクエスト)。

curl -I https://example.com
HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 12345
last-modified: Thu, 01 Jan 2026 00:00:00 GMT

JSON データを POST で送信します。Bearer トークンによる認証付きです。

post_json.sh
curl -s -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer my_token_here" \
  -d '{"name":"Alice","age":30}' \
  https://api.example.com/users
bash post_json.sh
{"id":42,"name":"Alice","age":30,"created_at":"2026-03-06"}

ファイルをダウンロードします。『-L』でリダイレクトに追従し、『-sS』でエラーだけ表示します。

curl -sSL -o /tmp/file.tar.gz https://example.com/release.tar.gz

ファイルをアップロードします(multipart/form-data)。

curl -F "file=@report.pdf" -F "title=レポート" https://example.com/upload

Basic 認証を使ってアクセスします。

curl -u admin:password https://example.com/admin/api

レスポンスを変数に格納して処理します。

fetch_user.sh
response=$(curl -s https://api.example.com/users/1)
echo "$response" | grep "name"
bash fetch_user.sh
  "name": "Alice",

概要

スクリプトで『$ curl』を使うときは『-s』(サイレント)と『-S』(エラーだけ表示)を組み合わせた『-sS』オプションが定番です。また『-w "%{http_code}"』でステータスコードを確認し、200 以外はエラー処理するパターンも頻出です。

-k』(SSL検証スキップ)は開発環境のみで使用し、本番環境では使わないでください。ファイルのダウンロードには wget も便利です。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。