# iPhoneにSMSのAPIはある？iOSでSMSを取り出す方法

> iOSにSMSを読み取る公開APIはありません。Appleが認めている方法と、iPhoneのSMSをJSONで自分のコードに届ける方法を解説します。

最終更新日: 2026-10-23
正規のHTMLページ: https://www.fwrdsms.com/ja/blog/iphone-sms-api
Published: 2026-10-16

いいえ、iPhoneにSMSの公開APIはありません。iOSでは、アプリが、SMSを読み取ることも、SMSが届いたことを知ることもできません。認められている方法は、Appleのショートカットアプリで「メッセージ」のオートメーションを一度作り、条件に合うSMSをアクションに渡すことです。Fwrdは、開発者向けのそのアクションです。SMSを、iPhoneからご自分のHTTPS Webhookへ、JSONで投稿します。

**必要なもの：** iOS 26以降のiPhone、ショートカットアプリ（iPhoneに最初から入っています）、JSONのPOSTを受け付けるHTTPSのエンドポイント。たとえば、ご自分のサーバーや、ZapierまたはMake、n8nのWebhookです。

## iOSアプリはSMSを読み取れますか？

読み取れません。サードパーティのiOSアプリは、「メッセージ」の受信箱を読み取れず、SMSが届いたことも知らされません。iPhoneからSMSを取り出す方法は、すべて、本人があらかじめ設定したものを経由します。

[Appleのデベロッパフォーラムにある2017年の返信](https://developer.apple.com/forums/thread/86268)は、はっきり述べています。アプリはSMSメッセージを見ることも、届いたことを知ることも許されていません。2025年10月には、Appleのエンジニアが[フォーラムで](https://developer.apple.com/forums/thread/804040)、macOSにもユーザーのSMSメッセージに触れるAPIはないと述べました。そのため、Apple AccountでサインインしたMacは、裏口にはなりません。

## TelephonyMessagingKitではどうですか？

TelephonyMessagingKitは実在しますが、「メッセージ」アプリの代わりに、通信事業者向けの既定のメッセージアプリになるアプリ専用で、EUでのみ使えます。普通のアプリがSMSを読み取るための方法ではありません。

[Appleのドキュメント](https://developer.apple.com/documentation/telephonymessagingkit)によると、このフレームワークはiPhoneのSMS、MMS、RCSを扱います。ただし、アプリには特別なエンタイトルメントが必要で、本人がそのアプリを通信事業者向けの既定のメッセージアプリに選んだときだけ動きます。さらに、本人がEUのアカウントを持ち、デバイスがEU内にある必要があります。[スクリプト、データベース、AIエージェントでSMSを扱う](https://www.fwrdsms.com/ja/blog/sms-otp-codes-ci-automation-iphone)用途には、向いていません。

## では、アプリはSMSのコードをどう入力しているのですか？

メッセージを読むのではなく、AutoFillを使っています。iOSが届いたSMSにあるワンタイムコードを見つけ、キーボードの上に候補として表示します。アプリがコードを受け取るのは、本人がそれをタップしたときだけです。

Appleの[テキスト入力ビューでパスワードのAutoFillを有効にする](https://developer.apple.com/documentation/security/enabling-password-autofill-on-a-text-input-view)ガイドは、One-time codeをコンテンツタイプの1つに挙げ、SMSのログインフローからセキュリティコードを自動入力できると説明しています。UIKitでは`textContentType = .oneTimeCode`です。ご自分のアプリのログインを滑らかにするだけなら、これで足ります。

## iPhoneのSMSを自分のコードに届けるには？

ショートカットで「メッセージ」のオートメーションを作り、Fwrdのアクションを追加します。Fwrdは、条件に合うSMSをiPhoneからエンドポイントへJSONで投稿します。Appleの[「メッセージ」トリガー](https://support.apple.com/guide/shortcuts/communication-triggers-apdd711f9dff/ios)は、追加した差出人から、または追加したフレーズを含むメッセージが届いたときに実行されます。

以下の手順では、FwrdのWebhookの送り先を使います。

1. **[Fwrd](https://apps.apple.com/app/apple-store/id6759069713?pt=128544281&ct=ja-blog-sms-api&mt=8)でWebhookを追加します。** Fwrdを開き、「+」をタップして、Webhookを選びます。「設定」欄にHTTPSのアドレス全体を貼り付け、「テストメッセージを送信」をタップしてエンドポイントにフィールドを届け、保存します。

2. **「メッセージ」のオートメーションを作成します。** iOS 27では、ショートカットアプリを開き、「ライブラリ」、「オートメーション」、「+」の順にタップします。「ショートカットを説明」が表示されたら、「編集」をタップします。「オートメーション」、「メッセージ」の順にタップします。iOS 26では、「オートメーション」タブを開き、「+」をタップして、「メッセージ」を選びます。

3. **送るSMSを選びます。** 「メッセージが次を含む」を選び（iOS 27では、「差出人」を「メッセージ」に変更します）、SMSに含まれる単語を入力します。例は`code`や「コード」です。スペースを1つだけ入力すると、スペースを含むすべてのSMSを送れます。

4. **確認なしで実行されるようにします。** iOS 27では、トリガーの横の矢印をタップし、「実行前に確認」がオフになっていることを確認します。「ⓘ」＞「プライバシー」で、「ロック中に実行を許可」がオンになっていることを確認します。iOS 26では、「すぐに実行」を選び、「次へ」、「新規ショートカットを作成」の順にタップします。

5. **Fwrdのアクションを追加します。** 「転送」で検索し、Fwrdの「メッセージをすべての送り先に転送」を追加します。その「メッセージ」欄をタップし、「ショートカットの入力」を選びます（iOS 26では、「ショートカットの入力」、「メッセージ」の順）。戻るをタップして保存します（iOS 26では「完了」）。

6. **これで完了です。** 単語を含むSMSが、iPhoneのロック中でも自動的にエンドポイントへ届きます。

### JSONはどんな形ですか？

Fwrdは、SMSを`Content-Type: application/json`のPOSTでWebhookに送ります。本文には、届いたとおりのメッセージが、標準では2回入ります。MattermostとRocket.Chatが`text`を読むためです。

```json
{
  "content": "Your code is 482913",
  "text": "Your code is 482913"
}
```

タイムスタンプはありません。Fwrdの「設定」で「差出人を含める」をオンにし、ショートカットのFwrdのアクションで「差出人」を選ぶと、本文に`sender`フィールドも加わります。同じSMSのリクエストは、再送でも同じ`Idempotency-Key`ヘッダを持つので、重複を捨てられます。15秒以内の2xxの応答は、配信できたものとして扱われ、リダイレクトは拒否されます。エンドポイント側の詳細は、[Webhookのガイド](https://www.fwrdsms.com/ja/guides/webhook)にまとめています。

## 方法の比較

| 方法 | 受信したSMSを読める？ | 使える人 |
|---|---|---|
| 公開のSMS API | iOSには存在しない | 誰も使えない |
| TelephonyMessagingKit | 読める。既定のメッセージアプリとして | 通信事業者向けのメッセージアプリ。EUのみ |
| パスワードのAutoFill | コードだけ。本人がタップしたとき | どのアプリのログイン欄でも |
| ショートカット＋Fwrd | 読める。オートメーションに合うSMS | iOS 26以降の誰でも |

Fwrdが、その下ごしらえを代わりに行います。

- **アカウントは不要です。** Fwrdにサインインはなく、Fwrdのサーバーもありません。SMSはiPhoneからURLへ直接届きます。
- **フィルタ。** Webhookごとに、選んだ単語を含むSMS、認証コードらしいSMS、特定の時間帯のSMSだけを残せます。
- **再試行とシークレットの管理。** 送信がタイムアウトしたり、429や5xxを返されたり、接続が切れたりすると、Fwrdは最大2回まで再試行します。URLは、ショートカットの中ではなく、iPhoneのキーチェーンに保存されます。
- **8つの送り先。** 同じアクションで、メール、別の電話またはiMessage、WhatsApp、Discord、Slack、Microsoft Teams、Telegramにも送れます。

## SMSゲートウェイとしてiPhoneにできないこと

iPhoneを、サーバー用のSMSゲートウェイとして使うことはできません。iOSには、サーバーがiPhone経由でSMSを送れるAPIがないため、Fwrdは受信専用です。SMSはiPhoneで受け取り、エンドポイントへ送り出します。

- **APIからの送信。** APIからSMSを送るゲートウェイアプリは、Androidで動きます。[textbee.dev](https://textbee.dev)はFAQで、現時点ではAndroidデバイスでのみ動作すると書いています（2026年10月16日時点）。
- **ルールが必要です。** オートメーションが対象にするのは、選んだ単語を含むSMSか、連絡先にいる人からのSMSです。スペース1つで、スペースを含むすべてのSMSに一致します。
- **iPhoneの電源が入っていて、オンラインである必要があります。** SMSを受け取るiPhoneは、届いたときに電源が入り、Wi-Fiまたはモバイルデータ通信につながっている必要があります。再起動後は、一度ロックを解除するまで転送を待ちます。
- **テキストのみです。** 写真は転送されません。返信は、これまでどおりiPhone本体から送ります。

## よくある質問

### iPhoneにすでにある古いSMSを読み取れますか？

読み取れません。メッセージのオートメーションは、設定した後に届いた新着のSMSに対してだけ動きます。

### Zapier、Make、n8nと使えますか？

はい。ZapierのCatch Hook、Makeのカスタムwebhook、n8nのWebhookノードの本番URLをFwrdのWebhookの送り先に貼り付ければ、条件に合うSMSごとにワークフローが始まります。手順は[iPhoneのSMSをZapier、Make、n8nに送る](https://www.fwrdsms.com/ja/iphone-sms-to-zapier-make-n8n)にあります。

### iMessageも対象になりますか？

はい。メッセージのオートメーションは、メッセージアプリに届くメッセージで動くので、iMessageも対象です。条件に合うiMessageは、SMSと同じようにWebhookへ届きます。

### 費用はいくらかかりますか？

Fwrdは毎月15件まで無料で、1通のSMSは、いくつの送り先に届いても1件として数えます。Fwrd Proなら上限がなくなり、米国での料金は月額$4.99、または年額$29.99です。

## あわせて読みたい

- [iPhoneのSMSをWebhookに転送する](https://www.fwrdsms.com/ja/iphone-sms-to-webhook)
- [ショートカットのメッセージオートメーション（iOS 26・27）](https://www.fwrdsms.com/ja/blog/iphone-shortcuts-message-automation)
