> ## Documentation Index
> Fetch the complete documentation index at: https://docs.utage-system.com/llms.txt
> Use this file to discover all available pages before exploring further.

# イベント作成

> イベントを作成します。`type`（種類）と `use_line_event`（申込方式）は作成後に変更できません。

- `seminar`（セミナー・説明会）: 日程を事前に作成し（`POST /events/{project_id}/schedules`）、申込者が日程を選んで申し込む形式です
- `calendar`（個別相談・個別予約）: 日程設定（`PATCH /events/{project_id}/calendar`）の開催する曜日・時間帯・特定日の開催設定から申込者が日時を選ぶ形式です。日程は申込の確定時に自動で作成されます。作成直後の日程設定は初期値（所要時間30分、開催する曜日・時間帯は月曜〜金曜の 10:00〜18:00、Zoom連携 / Google Meet連携を利用、日程の表示期間は自動で調整など）になるので、担当者の紐付けなどを日程設定で行ってから申込を受け付けてください

`has_reminder=true` を指定すると、連携配信アカウント（`message_account_id`）にシステム標準のリマインダシナリオをコピーしてイベントに連携し、キャンセル時の申込者への自動返信も有効になります。コピーは非同期で行われるため、作成直後の応答では `reminder_scenario_copy_status` が `copying` のことがあります。`GET /events/{project_id}` で `complete` になったことを確認してから申込フォームのURL（`register_url`）を案内してください。申込方式がLINEのみ（`use_line_event=true`）のイベントではリマインダ配信が必須で、`message_account_id` にはLIFF連携済みのLINEの配信アカウントを指定します。システム標準のリマインダシナリオまたは連携配信アカウントのシナリオグループを解決できない場合は `500`（`internal_error`）が返り、イベントは作成されません。

参加費が有料（`fee_type=paid`）のときは `fee` と `payment_method` が必須です。`payment_setting_id` を省略するとデフォルトの決済連携設定が使われます（デフォルトが無い場合は未設定のまま作成されます）。

イベントと同時に申込フォームの項目定義も作成されます（個別相談・個別予約ではフリガナと携帯番号、申込方式がLINEのみのイベントではフリガナとメールアドレスが未使用の状態）。項目の変更は `PATCH /events/{project_id}/form-items` で行います。

API経由の作成件数の上限（月間・累計）の対象です。


`POST`

```
https://api.utage-system.com/v1/events
```


## OpenAPI

````yaml POST /events
openapi: 3.0.3
info:
  title: UTAGE API
  description: >
    UTAGEのパブリックAPIです。ファネル、メール・LINE配信、会員サイト、イベント・予約、決済、メディアなどのリソースをプログラムから操作できます。


    ## 認証

    すべてのリクエストにAPIキーによるBearer認証が必要です（要素タイプ・LINEメッセージタイプ・配信条件タイプの参照エンドポイントを除く）。


    ```

    Authorization: Bearer {api_key}

    ```


    APIキーはUTAGE管理画面から発行できます。APIキーが未指定・無効・無効化済みの場合、またはアカウントが利用停止中の場合は `401
    Unauthorized`（`error.code` は `unauthorized`）が返されます。


    ## レート制限

    リクエスト数には以下の制限があります。表の値は既定値で、契約内容により異なる場合があります。


    | 分間上限 | 日間上限 |

    |----------|----------|

    | 60リクエスト/分（APIキー単位・暦の1分ごと） | 10,000リクエスト/日（アカウント単位・暦日ごと） |


    レスポンスヘッダーで分間上限の窓が終わる時刻を確認できます（分間の残数と日間の残数はヘッダーに含まれません）。


    | ヘッダー | 説明 |

    |----------|------|

    | X-RateLimit-Limit | 接続元IP単位でAPI全体に掛かる制限の上限値（APIキー単位の分間上限ではありません） |

    | X-RateLimit-Remaining | 接続元IP単位の制限の残りリクエスト数（分間上限の残数ではありません） |

    | X-RateLimit-Reset | APIキー単位の分間上限で、現在の1分間の窓が終わる（次の分が始まる）UNIXタイムスタンプ |


    上限を超えた場合は `429 Too Many Requests`（`error.code` は
    `rate_limit_exceeded`）が返されます。日間上限の超過時は `X-RateLimit-Reset`
    が翌日0:00になります（`X-RateLimit-Limit` / `X-RateLimit-Remaining`
    は超過時も接続元IP単位の値です）。認証不要のエンドポイントと読者作成（`POST
    /accounts/{account_id}/scenarios/{scenario_id}/readers`、`POST
    /accounts/{account_id}/line/friends/{friend_id}/readers`）はレート制限の対象外で、`X-RateLimit-Reset`
    ヘッダーは付きません。


    データを作成するAPIには、これとは別にAPI経由の作成件数の上限があります。超過時は `429` で `total_limit_exceeded` /
    `hourly_limit_exceeded` / `monthly_limit_exceeded`
    が返され、`details.resource_type` に対象のリソース種別が含まれます。


    ## エラーレスポンス

    エラー時は以下の形式で返されます。


    ```json

    {
      "error": {
        "code": "error_code",
        "message": "エラーメッセージ"
      }
    }

    ```


    エラーの種類によっては `error.details`
    に補足情報（バリデーションの項目別エラー、`retry_after`、`resource_type` など）が含まれます。
  version: '1.0'
  contact:
    name: UTAGE サポート
servers:
  - url: https://api.utage-system.com/v1
    description: UTAGE API
security:
  - BearerAuth: []
tags:
  - name: ファネル
    description: ファネルの作成・更新・一覧取得
  - name: ステップ
    description: ファネル内のステップの作成・更新・並び替え・一覧取得
  - name: ページ
    description: ステップ内のページの作成・更新・取得・削除・一覧取得
  - name: 配信アカウント
    description: 配信アカウントの作成・一覧取得
  - name: シナリオ
    description: シナリオの作成・一覧取得
  - name: メディア
    description: 動画・音声・通常メディアの一覧取得・アップロード・名称変更
  - name: 要素タイプ
    description: ファネルページ・レッスン・HTMLメールの要素タイプ定義、LINEメッセージタイプ・配信条件タイプの取得（認証不要）
  - name: ファネル統計
    description: ファネルの集計データ・登録者・登録経路の取得
  - name: 配信メッセージ
    description: 配信メッセージの作成・更新・テスト送信・配信統計、置き換え文字の取得
  - name: 読者
    description: 読者の作成・更新・取得、ラベル・配信履歴・開封/クリック履歴の取得
  - name: LINE
    description: LINE友だち・カスタム送信者・1対1チャット・テンプレート・テンプレートグループ・リッチメニュー・自動応答の操作
  - name: ラベル・共通読者・登録経路
    description: ラベル・共通読者・アクション・登録経路の操作
  - name: 登録経路
    description: ファネルの登録経路・登録経路グループの作成・取得・更新・削除
  - name: ファネルアクション
    description: ファネルアクション（管理画面「アクション設定」）の作成・取得・更新・削除とアクショングループの一覧取得
  - name: 登録フォーム・読者項目
    description: 読者項目と登録フォーム項目の作成・更新・取得・削除・並び替え
  - name: 連携
    description: Googleスプレッドシート連携アカウント・広告連携設定の一覧取得
  - name: 会員サイト
    description: 会員サイトの一覧取得・作成・取得・更新・削除・並び替え
  - name: コース
    description: 会員サイト配下のコースの一覧取得・作成・取得・更新・削除・並び替え
  - name: コースグループ
    description: コースグループの一覧取得・作成・取得・更新・削除
  - name: バンドル
    description: バンドル（受講生に開放するコース・コミュニティグループのセット）の一覧取得・作成・取得・更新・削除・並び替え
  - name: レッスン
    description: 会員サイトのレッスン・レッスングループの操作と、レッスンごと受講状況・受講完了者の取得
  - name: 受講生
    description: 会員サイトの受講生の作成・更新・取得・削除、受講状況・操作履歴の取得、コース・バンドルの登録受講生一覧
  - name: 登録コース・コミュニティ
    description: 受講生のバンドル・単一コース・コミュニティグループへの登録の追加・更新・解除・一覧取得
  - name: コミュニティグループ
    description: 会員サイトのコミュニティグループの一覧取得
  - name: イベント
    description: イベント（セミナー・説明会、個別相談・個別予約）の一覧取得・作成・取得・更新・削除
  - name: 日程
    description: イベントの日程の一覧取得・作成・取得・更新・削除
  - name: 日程設定
    description: 個別相談・個別予約タイプのイベントの日程設定（開催する曜日・時間帯・特定日の開催設定・担当者・日程の表示期間）の取得・更新
  - name: 申込フォーム・申込者項目
    description: イベントの申込フォームの基本項目・申込者項目の取得・更新
  - name: 申込者
    description: イベントの申込者の一覧取得・詳細取得・更新
  - name: イベントグループ
    description: イベントグループ（イベント一覧の「グループ管理」）の作成・更新・一覧取得・削除
  - name: 担当者
    description: 担当者（個別相談・個別予約の「担当者設定」）の作成・更新・一覧取得・削除と連携用リンクの発行・削除
  - name: 商品
    description: 商品の一覧取得・作成・取得・更新・削除・並び替え
  - name: 商品グループ
    description: 商品グループの一覧取得・作成・取得・更新・削除
  - name: 商品詳細
    description: 商品配下の商品詳細（価格・支払方法・決済代行会社・支払回数・購入後の動作・通知設定）の作成・更新・並び替え・取得・削除
  - name: 売上
    description: 売上の一覧・詳細取得、領収書・請求書設定の更新、銀行振込の入金反映、削除、月別・日別売上集計
paths:
  /events:
    post:
      tags:
        - イベント
      summary: イベント作成
      description: >
        イベントを作成します。`type`（種類）と `use_line_event`（申込方式）は作成後に変更できません。


        - `seminar`（セミナー・説明会）: 日程を事前に作成し（`POST
        /events/{project_id}/schedules`）、申込者が日程を選んで申し込む形式です

        - `calendar`（個別相談・個別予約）: 日程設定（`PATCH
        /events/{project_id}/calendar`）の開催する曜日・時間帯・特定日の開催設定から申込者が日時を選ぶ形式です。日程は申込の確定時に自動で作成されます。作成直後の日程設定は初期値（所要時間30分、開催する曜日・時間帯は月曜〜金曜の
        10:00〜18:00、Zoom連携 / Google
        Meet連携を利用、日程の表示期間は自動で調整など）になるので、担当者の紐付けなどを日程設定で行ってから申込を受け付けてください


        `has_reminder=true`
        を指定すると、連携配信アカウント（`message_account_id`）にシステム標準のリマインダシナリオをコピーしてイベントに連携し、キャンセル時の申込者への自動返信も有効になります。コピーは非同期で行われるため、作成直後の応答では
        `reminder_scenario_copy_status` が `copying` のことがあります。`GET
        /events/{project_id}` で `complete`
        になったことを確認してから申込フォームのURL（`register_url`）を案内してください。申込方式がLINEのみ（`use_line_event=true`）のイベントではリマインダ配信が必須で、`message_account_id`
        にはLIFF連携済みのLINEの配信アカウントを指定します。システム標準のリマインダシナリオまたは連携配信アカウントのシナリオグループを解決できない場合は
        `500`（`internal_error`）が返り、イベントは作成されません。


        参加費が有料（`fee_type=paid`）のときは `fee` と `payment_method`
        が必須です。`payment_setting_id`
        を省略するとデフォルトの決済連携設定が使われます（デフォルトが無い場合は未設定のまま作成されます）。


        イベントと同時に申込フォームの項目定義も作成されます（個別相談・個別予約ではフリガナと携帯番号、申込方式がLINEのみのイベントではフリガナとメールアドレスが未使用の状態）。項目の変更は
        `PATCH /events/{project_id}/form-items` で行います。


        API経由の作成件数の上限（月間・累計）の対象です。
      operationId: createEvent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventCreateRequest'
      responses:
        '201':
          description: 作成されたイベント
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/EventDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          description: >
            バリデーションエラー（`validation_error`）。`details` に項目ごとのメッセージが入ります（期間限定価格の項目は
            `details.limited_prices.{配列位置}.{項目名}`）。指定した決済連携設定・事業者・イベントグループ・連携配信アカウントが存在しない場合、申込方式がLINEのみでLIFF連携済みでないLINEの配信アカウントを指定した場合、申込方式がLINEのみでリマインダ配信を使わない場合、リマインダ送信者メールアドレスにフリーメール・携帯キャリアメールのアドレスを指定した場合もこのエラーになります。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: validation_error
                  message: 入力内容に誤りがあります
                  details:
                    fee:
                      - 参加費金額は必ず指定してください。
        '429':
          $ref: '#/components/responses/ResourceLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    EventCreateRequest:
      type: object
      required:
        - type
        - name
      properties:
        type:
          type: string
          enum:
            - seminar
            - calendar
          example: seminar
          description: 種類。`seminar`（セミナー・説明会）/ `calendar`（個別相談・個別予約）。作成後は変更できません
        name:
          type: string
          maxLength: 255
          description: イベント名
        system_name:
          type: string
          maxLength: 255
          nullable: true
          description: 管理名称
        event_group_id:
          type: string
          nullable: true
          description: イベントグループ（画面の「グループ」）のID。省略・null は未分類
        fee_type:
          type: string
          enum:
            - free
            - paid
          default: free
          description: 参加費。`free`（無料）/ `paid`（有料）
        fee:
          type: integer
          minimum: 1
          maximum: 9999999
          nullable: true
          description: 参加費の金額（円）。`fee_type` が `paid` のときは必須
        payment_method:
          type: string
          enum:
            - stripe
            - univapay
            - telecom
            - firstpayment
            - aquagates
          nullable: true
          description: >-
            決済種別。`stripe` / `univapay`（Univapay）/ `telecom`（テレコムクレジット）/
            `firstpayment`（FirstPayment）/
            `aquagates`（AQUAGATES。利用できる環境のみ）。`fee_type` が `paid` のときは必須。画面で設定できる
            `robotpayment`（RobotPayment）は API では指定できません
        payment_setting_id:
          type: string
          nullable: true
          description: >-
            決済連携設定のID。省略時はデフォルトの決済連携設定を使います（デフォルトが無い場合は未設定のまま作成されます。有料イベントでは明示的に指定してください）
        business_id:
          type: string
          nullable: true
          description: 領収書設定の「事業者」のID。省略・null はデフォルト
        use_limited_price:
          type: boolean
          default: false
          description: 期間限定価格を指定するかどうか。`true` のときは `limited_prices` が必須
        limited_item:
          type: string
          enum:
            - datetime
            - reader_date
          default: datetime
          description: 期間限定価格の基準日時。`datetime`（指定日時）/ `reader_date`（アクセス元シナリオの配信基準日時）
        limited_prices:
          type: array
          minItems: 1
          maxItems: 100
          description: 期間限定価格の一覧（`use_limited_price` が `true` のときは必須。`limited_item` に応じた構造）
          items:
            $ref: '#/components/schemas/EventLimitedPrice'
        deadline_day:
          type: integer
          minimum: -10
          maximum: 10
          default: 1
          description: 申し込み締切（開催の何日前か）
        deadline_hour:
          type: integer
          minimum: 0
          maximum: 23
          default: 14
          description: 申し込み締切（`deadline_day` 日前の何時か）
        deadline_to_type:
          type: string
          enum:
            - none
            - auto
          default: none
          description: 申し込み可能な日程。`none`（締切前の全ての日程）/ `auto`（指定した日数分のみ）
        deadline_to_day:
          type: integer
          minimum: 0
          maximum: 32767
          default: 0
          description: 申し込み可能な日程の日数（`deadline_to_type` が `auto` のときに使用）
        multiple_registration_type:
          type: string
          enum:
            - deny
            - allow
            - allow_cancel
          default: deny
          description: >-
            重複申込。`deny`（禁止する）/ `allow`（許可する）/
            `allow_cancel`（許可する。連絡ありでキャンセル済の場合のみ）
        has_reminder:
          type: boolean
          default: false
          description: リマインダ配信を使うかどうか。`use_line_event` が `true` のときは `true` が必須
        message_account_id:
          type: string
          description: >-
            連携配信アカウントのID。`has_reminder` が `true` のときは必須。`use_line_event` が
            `true` のときはLIFF連携済みのLINEの配信アカウントを指定します
        from_name:
          type: string
          maxLength: 255
          description: >-
            リマインダ送信者名。`has_reminder` が `true` で `use_line_event` が `false`
            のときは必須
        from_mail:
          type: string
          maxLength: 255
          description: >-
            リマインダ送信者メールアドレス（メールアドレス形式。ドメインの DNS レコードも確認します）。`has_reminder` が
            `true` で `use_line_event` が `false`
            のときは必須。GmailやYahoo!メールなどのフリーメール、携帯キャリアメールのアドレスは指定できません
        use_line_event:
          type: boolean
          default: false
          description: 申込方式。`true` はLINEのみ、`false` は制限なし。作成後は変更できません
    EventDetail:
      type: object
      description: イベントの詳細（画面の「イベント設定」の基本設定・リマインダ設定）
      properties:
        id:
          type: string
          description: イベントID
        type:
          type: string
          enum:
            - seminar
            - calendar
          description: 種類。`seminar`（セミナー・説明会）/ `calendar`（個別相談・個別予約）。作成後は変更できません
        name:
          type: string
          description: イベント名
        system_name:
          type: string
          nullable: true
          description: 管理名称
        event_group_id:
          type: string
          nullable: true
          description: イベントグループ（画面の「グループ」）のID。未分類のときは null
        fee_type:
          type: string
          description: >-
            参加費。`free`（無料）/ `paid`（有料）。古いイベントでは `paid_limited`
            が返ることがあります（更新ではそのまま送り返せます）
        fee:
          type: integer
          nullable: true
          description: 参加費の金額（円）。未設定のときは null
        use_limited_price:
          type: boolean
          description: 期間限定価格を指定するかどうか
        limited_item:
          type: string
          enum:
            - datetime
            - reader_date
          description: 期間限定価格の基準日時。`datetime`（指定日時）/ `reader_date`（アクセス元シナリオの配信基準日時）
        limited_prices:
          type: array
          description: 期間限定価格の一覧（`limited_item` に応じた構造）。期間限定価格を使わないときは空配列
          items:
            $ref: '#/components/schemas/EventLimitedPrice'
        payment_method:
          type: string
          nullable: true
          description: >-
            決済種別。`stripe` / `univapay`（Univapay）/ `telecom`（テレコムクレジット）/
            `firstpayment`（FirstPayment）/
            `aquagates`（AQUAGATES。利用できる環境のみ）。未設定のときは null。画面で設定した
            `robotpayment`（RobotPayment）が返ることがあります（API
            の作成では指定できず、更新では現在の値と同じ場合だけ送り返せます）
        payment_setting_id:
          type: string
          nullable: true
          description: 決済連携設定のID。未設定のときは null
        business_id:
          type: string
          nullable: true
          description: 領収書設定の「事業者」のID。デフォルトのときは null
        deadline_day:
          type: integer
          nullable: true
          description: 申し込み締切（開催の何日前か。-10〜10）
        deadline_hour:
          type: integer
          nullable: true
          description: 申し込み締切（`deadline_day` 日前の何時か。0〜23）
        deadline_to_type:
          type: string
          enum:
            - none
            - auto
          description: 申し込み可能な日程。`none`（締切前の全ての日程）/ `auto`（指定した日数分のみ）
        deadline_to_day:
          type: integer
          nullable: true
          description: 申し込み可能な日程の日数（`deadline_to_type` が `auto` のときに使用）
        multiple_registration_type:
          type: string
          enum:
            - deny
            - allow
            - allow_cancel
          description: >-
            重複申込。`deny`（禁止する）/ `allow`（許可する）/
            `allow_cancel`（許可する。連絡ありでキャンセル済の場合のみ）
        has_reminder:
          type: boolean
          description: リマインダ配信を使うかどうか
        reminder_scenario_id:
          type: string
          nullable: true
          description: 連携配信シナリオのID（リマインダ配信を使わないときは null）
        reminder_scenario_copy_status:
          type: string
          nullable: true
          description: >-
            連携配信シナリオのコピーの進行状態。`copying`（コピー中）/ `complete`（完了）/
            `error`（失敗）。シナリオがコピーで作られたものでない場合や未連携のときは null
        notify_mail:
          type: string
          nullable: true
          description: メール通知設定の通知先メールアドレス（APIでは変更できません）
        use_line_event:
          type: boolean
          description: 申込方式。`true` はLINEのみ、`false` は制限なし。作成後は変更できません
        has_cancel_mail:
          type: boolean
          description: キャンセル時に申込者へメール自動返信を送信するかどうか（APIでは変更できません）
        has_cancel_line:
          type: boolean
          description: キャンセル時に申込者へLINE自動返信を送信するかどうか（APIでは変更できません）
        is_test_mode:
          type: boolean
          description: 決済モード。`true` はテストモード、`false` は本番モード
        is_archived:
          type: boolean
          description: アーカイブ済かどうか
        copy_status:
          type: string
          nullable: true
          description: >-
            イベントのコピーの進行状態。`copying`（コピー中）/ `complete`（完了）。コピーで作られたイベントでないときは
            null
        register_url:
          type: string
          description: 申込フォームのURL（独自ドメインを設定している場合もシステム標準のURLを返します）
        created_at:
          type: string
          nullable: true
          description: 作成日時（Y-m-d H:i:s）
        updated_at:
          type: string
          nullable: true
          description: 更新日時（Y-m-d H:i:s）
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: エラーコード
            message:
              type: string
              description: エラーメッセージ
            details:
              type: object
              nullable: true
              description: >-
                エラーの補足情報（`retry_after` /
                `resource_type`、項目別のエラーメッセージ等）。エラー種別により含まれる場合があります。`422`
                の項目別エラーの値は通常はメッセージの配列ですが、会員サイト更新・コース更新の変更時だけ行う検証では文字列です。
    EventLimitedPrice:
      type: object
      description: >
        期間限定価格1件。イベントの `limited_item`（基準日時）によって使う項目が異なります。


        - `datetime`（指定日時）: `datetime_from`・`datetime_to`・`fee`

        - `reader_date`（アクセス元シナリオの配信基準日時）: `day`・`hour`・`min`・`fee`（配信基準日時の
        `day` 日後の `hour` 時 `min` 分まで）


        作成・更新で指定するときは、その基準日時で使う項目をすべて指定します（指定日時では開始日時が終了日時より前で、他の期間と重複しないこと）。
      properties:
        datetime_from:
          type: string
          nullable: true
          description: >-
            期間の開始日時（Y-m-d H:i:s）。指定時は「YYYY-MM-DD HH:mm」または秒が 00 の「YYYY-MM-DD
            HH:mm:ss」
        datetime_to:
          type: string
          nullable: true
          description: >-
            期間の終了日時（Y-m-d H:i:s。応答では秒が 59 になります）。指定時は「YYYY-MM-DD HH:mm」または秒が 00
            か 59 の「YYYY-MM-DD HH:mm:ss」
        day:
          type: integer
          nullable: true
          description: 配信基準日時から何日後まで（0〜32767）
        hour:
          type: integer
          nullable: true
          description: 時（0〜23）
        min:
          type: integer
          nullable: true
          description: 分（0〜59）
        fee:
          type: integer
          description: 限定価格の金額（円。1〜9999999）
  responses:
    Unauthorized:
      description: 認証エラー。APIキーが未指定・無効・無効化済み、またはアカウントが利用停止中。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: unauthorized
              message: APIキーが無効です
    ResourceLimitExceeded:
      description: >-
        作成上限超過。`error.code` は `total_limit_exceeded`（累計）/
        `monthly_limit_exceeded`（月間）のいずれかで、`hourly_limit_exceeded`（1時間）は読者作成（`reader`）と受講生作成（`members_user`）だけで返ります。`details.resource_type`
        に対象リソース、月間上限のときは `details.retry_after` に上限判定が再計算される日時（Y-m-d
        H:i:s）を含みます。同じ `429`
        で、分間・日間のレート制限超過（`rate_limit_exceeded`。`X-RateLimit-Reset`
        の時刻以降に再試行）も返ります。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: monthly_limit_exceeded
              message: 月間の作成上限に達しました
              details:
                resource_type: message
                retry_after: '2026-11-01 00:05:00'
    InternalError:
      description: >-
        サーバー内部エラー（`error.code` は `internal_error`）。`error`
        形式で返るのはイベント作成でリマインダ配信用シナリオの雛形を解決できない場合だけで、それ以外のサーバー内部エラーはLaravel標準の形式（`Accept:
        application/json` の場合は `{"message": "Server Error"}`、それ以外はHTML）です。
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: internal_error
              message: リマインダシナリオの作成に失敗しました
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: APIキーをBearerトークンとして指定

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.