---
canonical: "https://agi-labo.com/tools/wings/docs/api-triggers"
title: "API Trigger"
description: "認証と承認を設定し、HTTP で Handler を呼び出します。"
section: "主要機能"
order: 6
pageType: "how-to"
lastVerifiedVersion: "1.4.16"
lastVerifiedAt: "2026-10-15"
draft: false
surfaces: ["cli", "console", "api"]
plans: ["free", "member"]
---

API Trigger は、Handler を HTTP から呼び出す入口です。
まず Handler を登録してから、次のコマンドで Trigger を追加します。

```sh
wings trigger add-api <handler-id> --slug webhook --auth bearer
wings trigger list <handler-id>
wings trigger url <handler-id> <trigger-id>
```

呼び出し URL は、CLI に表示されたものを使ってください。
公開 Trigger は `wings.agi-labo.com` を使います。
`api.wings.agi-labo.com` は管理用です。

## Console で承認する

作成コマンドは Console の確認ページを開きます。
本人が「作成」を押すと Trigger が作られます。
標準は bearer 認証です。
Secret は Console で一度だけ表示します。
CLI には渡しません。
`rotate-secret` での交換にも、同じ承認が必要です。

`--auth public` を使うと、bearer Secret なしで呼び出せます。
Webhook の場合は、Handler で送信元の署名を確かめてから処理してください。
`--method` と `--allow-origin` で、必要なメソッドと送信元だけに絞れます。

## リクエストを読む

JSON と multipart を受け付けます。
`event.body` は読み取った値です。
`event.headers` のキーは小文字になります。

署名の検証には、元のバイト列を保つ `event.rawBodyBase64` を使います。
`event.rawBody` は、UTF-8 として読んだ文字列です。

## 応答を返す

JSON 値を返すと、Wings の実行結果を含む HTTP 200になります。
エラーを投げた場合も、HTTP 200の中に実行失敗を返します。
ステータスや本文を指定したい場合は、`Response` を返してください。

```js
export default async function (event) {
  return Response.json({ received: true }, { status: 202 })
}
```

同じ origin へのリダイレクトは、そのまま呼び出し元に返します。
Wings が転送先へ移動することはありません。
別 origin へのリダイレクトは、502 `redirect_not_allowed` になります。
`Refresh` ヘッダーは取り除きます。

## 停止と変更

無効化、削除、設定変更、Secret の交換をすると、実行前の最後の確認をまだ通っていないリクエストを止めます。
すでに受け付けた実行は取り消しません。

短い時間内の応答が必要な連携は、使い始めと繰り返し使ったときの両方で応答時間を測ってください。
`X-AGI-Wings-Platform-Latency-Ms` と `Server-Timing` で開始までの時間を確認できます。
この値は、応答時間の保証ではありません。

## 受付の上限

| 対象 | 上限 |
| --- | --- |
| リクエストの本文 | 256 KiB |
| IP ごとの呼び出し | 30回/分 |
| Trigger ごとの呼び出し | 120回/分 |
| アカウントごとの呼び出し | 300回/分 |
| Trigger ごとの同時実行 | 5件 |
| アカウントごとの同時実行 | 20件 |

通常の Run の上限も適用します。
大きいファイルはこの入口に送らず、[Handler のストリーミング](/tools/wings/docs/handlers-runs)を使ってください。
