APIとは? アプリ同士をつなぐ約束ごとと「API連携」
APIとは、プログラムが別のプログラムに「これをして」「このデータをください」と頼むときの、決められた頼み方です。頼む側は、相手の中のしくみを知らなくても、約束どおりに頼めば答えを受け取れます。天気アプリの予報や、お店のサイトの地図も、APIを通じて別の会社のサービスから届いていることがよくあります。
この記事でわかること
- APIが「何と何の間の、どんな約束」なのか
- 天気アプリ・地図・「Googleでログイン」の裏で起きていること
- Web APIの依頼と返事の中身と、JSONの読み方
- APIキーを秘密にする理由と、回数の制限
- 仕事で聞く「API連携」の意味と、つなぐ前に確かめたいこと
前提知識: 特にありません。ITパスポート試験や基本情報技術者試験に出てくる言葉も、ふつうの言葉で説明します。
身近なところでは
スマホの天気アプリを開くと、今いる場所の予報がすぐに出ます。でも、アプリを作った会社が、自分で空を観測しているとは限りません。気象のデータを持つ会社のサーバに、「この場所の予報をください」と問い合わせていることがよくあります。サーバとは、求めに応じてデータを渡すコンピュータです。
同じことは、ほかの場面でも起きています。お店のサイトに、Googleマップの地図が埋め込まれていることがあります。ログインの画面に、「Googleでログイン」というボタンが並んでいることもあります。どれも、あるプログラムが、別の会社のプログラムに仕事を頼んでいます。
このとき、頼み方がばらばらでは困ります。何を、どんな書き方で頼めば、どんな形で答えが返ってくるのか。それを前もって決めて公開した約束ごとを、API(エーピーアイ)と呼びます。Application Programming Interfaceの略です。
APIは「頼み方」の約束ごと
Interfaceは、「接するところ」「つなぎ目」という意味です。つまりAPIは、プログラムとプログラムのつなぎ目で使う約束です。人が画面を見て操作するための約束ではなく、プログラムが使うための約束だという点が大事です。
約束には、主に次のようなことが書かれています。
- 頼める仕事の名前(例: 「予報を調べる」)
- 頼むときに添える情報(例: 場所や日付)
- 返ってくる答えの形(例: 気温は数字で、単位は℃)
- うまくいかなかったときの返事(例: 「その場所はわかりません」)
頼む側は、相手がどうやって予報を計算しているかを知らなくても、答えを受け取れます。反対に、受ける側は、約束さえ変えなければ、中のしくみを作り直せます。頼む側は、そのまま使い続けられます。
約束は、ふつう文書にまとめられます。この文書を「仕様書」や「APIドキュメント」と呼びます。
Web API: インターネット越しに頼む
天気や地図のように、インターネットの向こうのサーバに頼むAPIを、Web APIと呼びます。今は「API」と言うと、このWeb APIを指すことが多くなりました。
Web APIの多くは、ブラウザがWebページを開くときと同じHTTPという決まりで、やり取りします。HTTPでは、頼む側が「依頼(リクエスト)」を送り、サーバが「返事(レスポンス)」を返します。HTTPそのものは「HTTPSとは?」でも説明しています。
Webページとの違いは、返事の中身です。Webページなら、人が読む文章や画像が返ります。Web APIでは、プログラムが読み取りやすい形のデータが返ります。
架空の天気のAPIで、依頼と返事の例を見てみましょう。相手の名前の「api.example.com」は、説明のために予約された名前で、実在のサービスではありません。
依頼の1行目の「GET」は、「データを取得したい」という頼みの種類です。この種類をHTTPメソッドと呼びます。続く「/forecast?city=tokyo」が、頼みたい中身です。ここでは「予報を、東京について」と頼んでいます。
2行目の「Host」は、相手のサーバの名前です。名前から機器の番号を調べるしくみは、「DNSとは?」で説明しています。3行目は、誰が頼んでいるかを示す鍵です(後で説明します)。
返事の1行目の「200」は、「うまくいきました」という意味の数です。この3桁の数をHTTPステータスコードと呼びます。頼んだものが見つからないときは404、依頼が多すぎるときは429のように、結果ごとに番号が決まっています。
Web APIの作り方では、RESTという考え方が広く使われています。2000年に、HTTPの規格づくりに関わったロイ・フィールディングが博士論文で名づけました。扱う対象(例: 予報、注文)ごとに住所をつけ、取得や削除をHTTPメソッドで表す形がよく使われます。こうしたAPIをREST APIと呼びます。
JSON: プログラムが読みやすいデータの形
返事の後半の「{ }」で囲まれた部分は、JSON(ジェイソン)という書き方です。返事の2行目の「application/json」は、本文がこの書き方だという印です。「名前」と「値」を「:」でつないで組にし、組と組を「,」で区切ります。名前と文字の値は「" "」で囲み、数はそのまま書きます。
例の返事を表にすると、次のとおりです。
| 名前 | 値 | 意味 |
|---|---|---|
| city | "東京" | 場所(文字) |
| weather | "晴れ" | 天気(文字) |
| high | 22 | 最高気温(数) |
「22」に単位がついていないことに注目してください。℃なのか、米国で使われる°F(華氏)なのかは、JSONの中ではなく、APIの仕様書に書かれています。仕様書を読まずに使うと、こうした取り違えが起こります。
JSONの書き方は、2017年の規格RFC 8259で決められています。JavaScriptというプログラミング言語の書き方がもとで、今ではほとんどの言語で読み書きできます。
APIキー: 「誰が頼んでいるか」を示す鍵
多くのWeb APIは、誰からでも無制限に頼みを受けるわけではありません。使う人や会社ごとに、推測できない長い文字の並びを発行します。これを「APIキー」と呼びます。頼む側は、依頼のたびにこのキーを添えます。
キーを受け取ったサーバは、どの利用者からの依頼かを見分けます。そして、使ってよい機能かを判断し、呼び出しの回数を数えて料金を決めます。例えばAppleの天気のAPIは、WeatherKitという名前です。2026年10月時点で、月50万回までの呼び出しは、開発者向けの会員の費用に含まれます。
キーを秘密にする理由と、守り方
このため、APIキーはパスワードと同じように秘密にします。送るときは、暗号化されたHTTPSを使います(「暗号とは?」)。とくに気をつけたいのは、プログラムのファイルにキーを直接書くことです。そのプログラムを公開すると、キーまで世界に公開されてしまいます。
スマホのアプリやWebページの中にキーを入れるのも危険です。配った中身は、使う人が取り出して調べられるからです。秘密のキーは自社のサーバだけに置き、そのサーバがキーを添えて相手に頼みます。
実際に、流出は数多く起きています。プログラムを保存・公開するサービスの代表が、GitHubです。セキュリティ会社GitGuardianが、2025年3月に報告を出しています。2024年に公開のGitHubで見つかったキーやパスワードなどの秘密の情報は、約2,380万件でした。
Googleは、APIキーの扱い方の注意として、次のようなことを挙げています。
- アプリやWebページのプログラムにキーを入れない。プログラムの保管場所にも入れない
- キーごとに、使えるサイトや機能を制限する
- 使わなくなったキーは削除する
- キーを定期的に新しいものに取り替える
ただし、ページに入れて見られる前提で作られたキーもあります。例えば、お店のサイトに地図を埋め込むキーは、ページを見た人にも見えてしまいます。この場合は「このお店のサイトからの依頼だけを受け付ける」といった制限をキーにかけて守ります。見えてもよいキーかどうかは、発行元の説明で確かめます。
回数の制限(レート制限)
多くのWeb APIには、決まった時間に頼める回数の上限があります。これを「レート制限」と呼びます。一部の利用者がサーバを使い切り、ほかの人が待たされるのを防ぐためです。誤ったプログラムが依頼を繰り返し、費用がふくらむのを防ぐ役目もあります。
例えばGitHubのAPIでは、2026年10月時点で、誰からかを示さない依頼は1時間に60回までです。利用者のしるしを添えて頼めば、1時間に5,000回まで使えます。
上限を超えると、多くのサーバは「429 Too Many Requests(依頼が多すぎます)」という返事を返します。この番号は、2012年の規格RFC 6585で決められました。返事に「何秒後に頼み直して」という情報がつくこともあります。よく作られたアプリは、それに従って間を空けてから頼み直します。
「Googleでログイン」の裏側
ほかのサイトに「Googleでログイン」するとき、そのサイトにGoogleのパスワードを渡しているわけではありません。パスワードを入力する画面は、Googleのものです。サイトが受け取るのは、Googleが発行した「この人は確かに本人です」という証明で、パスワードは含まれません。
このやり方は、OAuth(オーオース)という決まりがもとになっています。OAuthは、パスワードを渡さずに、ほかのアプリに「ここまでなら使ってよい」と許可を与えるための決まりです。2012年に、今の版のOAuth 2.0が規格になりました。
許可や証明は、「トークン」と呼ばれるデータで受け渡します。期限があり、使える範囲も限られた、通行証のようなものです。漏れても、パスワードより被害の範囲と期間を小さくできます。
ログインには、OpenID Connectという決まりを使います。OAuth 2.0に「誰であるか」を伝える部分を加えたもので、Googleのログインもこれに沿っています。本人の証明は、「IDトークン」と呼ぶトークンで届きます。
APIはWebだけのものではない
APIという言葉は、Web APIが広まるずっと前から使われてきました。例えばアプリは、ファイルを保存したいとき、OSに頼みます。OSとは、パソコンやスマホの部品を管理して、アプリに貸し出す土台のソフトです。この頼み方もAPIで、OSごとに違います(「OSとは?」)。
よく使う機能を、部品としてまとめたプログラムを「ライブラリ」と呼びます。グラフを描く、日付を計算する、といった部品です。ライブラリにも、どの部品をどう呼ぶかというAPIがあります。こちらは同じ機器の中での呼び出しなので、インターネットは通りません。
| 種類 | 頼む相手 | 通り道 | 例 |
|---|---|---|---|
| OSのAPI | OS | 同じ機器の中 | ファイルを保存する |
| ライブラリのAPI | 部品のプログラム | 同じプログラムの中 | 日付を計算する |
| Web API | 別のサーバ | インターネット | 天気の予報を取る |
仕事で聞く「API連携」とは
会社では、「この2つのシステムをAPI連携する」という言い方をよく聞きます。これは、別々のシステムが、APIを通じて自動でデータをやり取りするようにすることです。人が一方の画面からデータを書き出し、もう一方に読み込ませる手間がなくなります。
例えば、会計ソフトが、銀行口座の入出金を自動で取り込むしくみです。日本では、2017年5月に成立し、2018年6月に施行された銀行法などの改正で、こうした連携の制度が整えられました。銀行には、家計簿や会計のサービスの会社とAPIでつなぐ体制づくりに努めることが求められました。
ほかにも、ネットショップの注文を配送の会社に自動で伝える、といった使い方があります。どれも、外の会社がクラウドで提供するサービスを、自社のしくみにつなぐ場面です(「クラウドとは?」)。
つなぐ前に確かめたいこと
- どのデータが、どちら向きに流れるか(個人情報が含まれるなら、その扱いの決まりも)
- 誰の権限でつなぐか。必要な範囲だけを許可しているか(最小権限の原則)
- 相手のAPIが止まったり、約束が変わったりしたら、何が起きるか
- 呼び出しの回数の上限と、料金
- APIキーやトークンを、誰がどこで保管するか
よくある誤解
誤解: APIとは、インターネットのサービスのこと
実際は、APIは「プログラムどうしの頼み方の約束」全体を指します。OSやライブラリにもAPIがあります。Web APIが身近になり、「API」を「Web API」の意味で使うことが増えたため、混同されやすいのです。
誤解: 「Googleでログイン」を使うと、そのサイトにGoogleのパスワードが渡る
実際は、上で見たとおり、パスワードはGoogleの画面にだけ入力し、サイトには期限つきの証明(トークン)が渡ります。画面の切り替わりが一瞬なので、どこで入力しているかを意識しにくいのです。ただし、偽のログイン画面を見せるフィッシングもあります。入力の前に、アドレス欄の名前が本物のGoogleのもの(accounts.google.com)かを確かめましょう。
誤解: うっかり公開したAPIキーは、ファイルから消せば大丈夫
実際は、保管場所の過去の版や、すでに写した人の手元に残ります。発行元でキーを無効にして、作り直すのが基本です。GitGuardianの2025年3月の報告では、2022年に漏れた秘密の約70%が、その時点でもまだ使える状態でした。ファイルの見た目から消えると、解決したように見えてしまうのです。
数字で見る
| 項目 | 数字 | 時点・出典 |
|---|---|---|
| RESTの提案 | 2000年 | フィールディングの博士論文 |
| OAuth 2.0の規格 | 2012年10月 | RFC 6749 |
| 「依頼が多すぎます」(429)の規格 | 2012年4月 | RFC 6585 |
| JSONの今の規格 | 2017年12月 | RFC 8259 |
| HTTPの意味の今の規格 | 2022年6月 | RFC 9110 |
| GitHubのAPIの回数の上限 | 1時間に60回(誰からか示さない)、5,000回(示す) | 2026年10月時点、GitHub |
| WeatherKitの会員の費用に含まれる呼び出し | 月50万回 | 2026年10月時点、Apple |
| 公開のGitHubで見つかった秘密の情報 | 約2,380万件 | 2024年、GitGuardian(2025年3月の報告) |
| 銀行のAPI連携の制度を整えた法改正 | 2017年5月成立、2018年6月施行 | 金融庁 |
規格は長く使われますが、回数の上限や料金は、サービスの都合でよく変わります。使うときは、その時点の提供元の説明を確かめてください。
もっと詳しく学ぶ
- 次の一歩の用語: JWT(トークンの形の一つ)、Cookie、WAF
- 違いを表で見る: HTTP/1.1・HTTP/2・HTTP/3の違い、IaaS・PaaS・SaaSの違い、静的リンクと動的リンクの違い(ライブラリのつなぎ方)
- 長いキーが当てられにくい理由を試す: パスワードの総当たり時間の計算ツール
- 土台から読む: 「インターネットはどうやってデータを届けるの?」、「パスワードはなぜ破られる?」