AIエージェント向けOTP API
AIエージェントがOTPを送信および検証するために必要なすべてが揃っています。数分でセットアップして実行できます。
EngageLab OTP APIを使用すると、AIエージェントは統合されたマルチチャネルAPI(SMS、WhatsApp、Email、Voice)を介してワンタイムパスワード(OTP)を送信および検証できます。人間の対話を必要とせず、プログラムによって実行されます。
前提条件:API Keyとテンプレートの作成
エージェントがOTPを送信できるようになる前に、2つの1回限りのセットアップ手順が必要です。これらは両方とも、EngageLabコンソールで人間が完了する必要があります。
1. API Keyの作成
EngageLabアカウントにサインアップし、OTPコンソールでAPI Keyを作成します。これにより、エージェントがすべてのAPIリクエストを認証するために使用するdev_keyとdev_secretが提供されます。
2. テンプレートの作成と承認
すべてのOTPメッセージは、事前に承認されたテンプレートを使用して送信されます。コンソールでテンプレートを作成し、送信チャネル(SMS、WhatsApp、Email、またはVoice)、コードの長さ、および有効期間を構成します。テンプレートは、使用できるようになる前にレビュープロセスを経ます。承認されたら、Template IDをパラメータとしてエージェントに渡します。
Agent Skills — EngageLab OTP Agent Skillsをインストールするにはどうすればよいですか?
Agent Skillsは、Cursor、Claude Code、およびWindsurfにOTPを自動的に処理するための知識を提供します。コードの送信、検証、Webhooksの処理などを行います。
インストールするコマンドは1つだけです。その後はエージェントに尋ねるだけです。
# Skill for sending OTPs
npx skills add https://github.com/DevEngageLab/engagelab-skills/tree/main/engagelab-otp/skills/engagelab-otp-send
# Skill for verifying OTPs
npx skills add https://github.com/DevEngageLab/engagelab-skills/tree/main/engagelab-otp/skills/engagelab-otp-verify
# Skill for configuring and handling webhooks/callbacks
npx skills add https://github.com/DevEngageLab/engagelab-skills/tree/main/engagelab-otp/skills/engagelab-otp-webhook
AIエージェントでのEngageLab OTPスキルの使用方法の詳細については、こちらをご覧ください:→ Agent Skills
エージェント向けDocs — エージェントはどの形式を読み取ることができますか?
エージェントに完全なAPIリファレンスへの直接アクセスを許可します。各ページでは、完全なリクエストパラメータ、レスポンス形式、およびエラーコードを備えた単一のEndpointについて説明しています。これらは、エージェントが追加のコンテキストなしでEngageLab OTP APIを呼び出すために必要なすべてです。
クイックスタート — 最初のOTPの送信と検証
以下のコード例をCursorまたはClaude Codeにコピーして、OTPの統合を自動的に設定します。
Node.js
const { OTPClient } = require('engagelab-otp');
const otp = new OTPClient(
process.env.ENGAGELAB_DEV_KEY,
process.env.ENGAGELAB_DEV_SECRET
);
// Platform-generated OTP — the simplest way
const { message_id } = await otp.send('+6591234567', 'your-template-id', {}, 'en');
const { verified } = await otp.verify(message_id, userTypedCode);
Python
import os
from engagelab_otp import OTPClient
otp = OTPClient(
os.environ["ENGAGELAB_DEV_KEY"],
os.environ["ENGAGELAB_DEV_SECRET"],
)
# Platform-generated OTP — the simplest way
result = otp.send("+6591234567", "your-template-id", {"name": "Alice"}, language="en")
check = otp.verify(result["message_id"], user_typed_code)
if check["verified"]:
print("Success!")
EngageLabは、OTPワークフロー用に2つの主要なEndpointを提供します。
| アクション | Endpoint | ユースケース |
|---|---|---|
| Send OTP | POST /v1/messages |
ユーザーの確認コードを生成して配信します。 |
| Verify OTP | POST /v1/verifications |
ユーザーが送信したコードを確認します。 |
エージェントが実行する手順
- 構成ファイル(
package.json、requirements.txtなど)からプロジェクト言語を検出します。 - SDKのインストール —
npm install engagelab-otpまたはpip install engagelab-otp - 認証の実装 —
base64(dev_key:dev_secret)を使用したHTTP Basic Auth - Webhooksの実装 — 本番環境の場合は、配信ステータスを追跡するためのコールバックエンドポイントを設定します。
完全なエラーコードについては、各EndpointのAPIリファレンスを参照してください (例:Send OTPエラー)。
EngageLab OTPは初めてですか?上記のコードを実行する前に、コンソール設定のステップバイステップガイドに従って登録し、テンプレートを作成してAPI Keyを取得してください。
公式SDK — Node.js & Python
EngageLabは、依存関係ゼロでOTPの配信、検証、Webhookコールバックを統合するための、Node.jsおよびPython向けの公式SDKを提供するグローバルOTP APIプロバイダーです。
Node.jsおよびPython SDKのインストール手順と例をご覧ください:→ SDK
よくある質問(FAQ)
AIエージェントは人間の介入なしにどのようにOTPを送信しますか?
EngageLab OTP APIは完全にプログラム可能であり、エージェントは送信の場合は/v1/messagesを呼び出し、検証の場合は/v1/verificationsを呼び出します。
UIや手動のステップは必要ありません。
OTPの有効期限が切れ、エージェントが再試行するとどうなりますか?
同じ受信者で送信APIを再度呼び出すと、新しいコードが発行され、新しいmessage_idが返されます。有効期限切れのコードは自動的に無効になります。 → Send OTPエラー · Verify OTPエラー
OTPの配信ステータスと検証ステータスをリアルタイムで追跡するにはどうすればよいですか?
EngageLab OTPはWebhookコールバックをサポートしています。コンソールでコールバックURLを構成すると、メッセージの配信、OTPの検証、残高不足の警告などの重要なイベントが発生したときに、システムがEndpointにイベントデータをプッシュします。ポーリングは必要ありません。 → コールバック構成を参照
CursorまたはWindsurfでOTPを送信するにはどうすればよいですか?
EngageLab OTP Agent Skillsは、エディターを離れることなくOTPを送信および検証するために必要なコンテキストをCursor、Windsurf、およびClaude Codeに提供します。 1つのコマンドでSkillをインストールします。
npx skills add https://github.com/DevEngageLab/engagelab-skills/tree/main/engagelab-otp/skills/engagelab-otp-send
インストールすると、エージェントはEngageLab OTP API(POST /v1/messages)を呼び出して、SMS、WhatsApp、Email、またはVoice経由でワンタイムパスワードを送信し、POST /v1/verificationsで検証できます。手動でAPIを設定する必要はありません。










