Meeting BaaS v2 のご紹介

スケール、透明性、セキュリティのために構築された次世代 API

パリ、2025年12月5日


5ヶ月の開発期間を経て、Meeting BaaS API v2 を正式にご紹介できることを嬉しく思います。これはパブリック API と内部サービスの両方を含む、バックエンドの完全な再設計です。v2 は、Meeting BaaS を構築してきた2年間でユーザーや開発者が直面した課題の90%に対処しています。月間数百万件の録画をサポートするように構築されています。

API v2 が完全に再設計されたdashboardとともに利用可能になりました。ログインまたはサインアップして v2 dashboard にアクセスする

お客様のフィードバックをもとに構築

大規模運用において私たち自身やユーザーが直面した主な課題は以下の通りです:

  • 大規模での webhook 管理
  • エラーの適切な処理
  • 運用への可視性の向上
  • セキュリティに対するより多くのコントロール

API v2 はこれらの課題それぞれに対する答えを提供し、API をより強力にするための機能を備えています。

v2 クイックスタート

API v2 の使い始めは簡単です。公式 TypeScript SDK または生の HTTP を使用して、最初の bot を送信する方法をご紹介します:

install-sdk.sh
pnpm add @meeting-baas/sdk
send_bot_v2.ts
import { createBaasClient } from "@meeting-baas/sdk";

const client = createBaasClient({
  api_key: "YOUR_API_KEY",
});

async function sendBot() {
  const { success, data, error } = await client.joinMeeting({
    meeting_url: "https://meet.google.com/abc-defg-hij",
    bot_name: "Meeting Assistant",
    recording_mode: "speaker_view",
    transcription_enabled: true,
    transcription_config: {
      provider: "gladia",
    },
  });

  if (success) {
    console.log("Bot created:", data.bot_id);
  } else {
    console.error("Error creating bot:", error);
  }
}
send_bot_v2.sh
curl -X POST "https://api.meetingbaas.com/v2/bots" \
     -H "Content-Type: application/json" \
     -H "x-meeting-baas-api-key: YOUR_API_KEY" \
     -d '{
           "meeting_url": "https://meet.google.com/abc-defg-hij",
           "bot_name": "Meeting Assistant",
           "recording_mode": "speaker_view",
           "transcription_enabled": true,
           "transcription_config": {
             "provider": "gladia"
           }
         }'
send_bot_v2.py
import requests

response = requests.post(
    "https://api.meetingbaas.com/v2/bots",
    headers={
        "Content-Type": "application/json",
        "x-meeting-baas-api-key": "YOUR_API_KEY"
    },
    json={
        "meeting_url": "https://meet.google.com/abc-defg-hij",
        "bot_name": "Meeting Assistant",
        "recording_mode": "speaker_view",
        "transcription_enabled": True,
        "transcription_config": {"provider": "gladia"}
    }
)
# Response: {"success": true, "data": {"bot_id": "..."}}
print(response.json())

v2 の新機能

開発者向けの強化された機能:

  • バッチ操作: 部分的な成功サポートを備えた1回のリクエストで最大100個の bot を作成 — 一括操作に最適
  • 高度なフィルタリング: bot とイベントの一覧表示のための強力な query パラメータにより、クライアント側のフィルタリングの必要性を軽減
  • 包括的な Webhooks: すべての操作に対する詳細な webhook イベントと、異なるイベントを異なるシステムにルーティングするための複数の endpoint
  • 標準化されたエラーコード: FST_ERR_BOT_NOT_FOUND_BY_IDFST_ERR_INSUFFICIENT_TOKENSFST_ERR_BOT_ALREADY_EXISTS などのコードにより、プログラムによるエラー処理が容易に
  • 改善された OpenAPI ドキュメント: すべての endpoint に対する完全な OpenAPI schema により、より優れたツーリングと型安全性を実現。LLM 向けに curl でオープンまたはダウンロードすることも可能です。
Meeting BaaS v2 Dashboard Preview

エンタープライズグレードのセキュリティ

現時点では SOC 2 準拠ではありませんが、v2 はセキュリティを主要な焦点として設計されています。当社のサーバーコードはオンプレミス契約の下でソース利用可能であり、エンタープライズのお客様によって定期的にレビューおよび監査されています。

  • Webhook 署名: すべての webhook は、自社インフラ内でセルフホストしている Svix を使用して暗号的に署名されており、メッセージの整合性と真正性を保証
  • 複数の API キー: 異なる環境、サービス、または権限に対して個別のキーを作成 — インフラ全体で単一のキーを共有する必要はもうありません
  • 細かな権限管理: 書き込み専用操作のための「送信アクセス」キーによるきめ細かいアクセス制御。bot 作成サービスの分離に最適
  • シークレットのローテーション: Meeting BaaS をセルフホストしている場合、ダウンタイムなしに webhook シークレットをローテーションでき、サービス中断なしにコンプライアンス要件を満たせます

カレンダー連携の改善

v2 のカレンダー連携は、大規模なスケジューリングと自動化をより簡単で信頼性が高く、より透明性の高いものにするために、エンドツーエンドで再構築されました。

  • すべてのプランでカレンダー対応: カレンダー連携が Pay-as-you-go からエンタープライズまで、すべてのプランで利用可能になりました。カレンダーからイベントを同期したり bot をトリガーするためだけにエンタープライズ契約は不要です。

  • 独自クレデンシャルの持ち込み: 不透明な共有連携に頼らず、Google と Microsoft に自身の OAuth アプリを使用できます。POST /v2/calendars 経由で接続を作成する際に、oauth_client_idoauth_client_secretoauth_refresh_tokenraw_calendar_id を提供することで、クレデンシャルのローテーション、同意画面、セキュリティポスチャを完全にコントロールできます。

  • 充実したカレンダー Endpoint: v2 はバックエンドからカレンダーのライフサイクル全体を管理するための完全な endpoint セットを公開しています:

    • POST /v2/calendars – 特定のユーザーまたはサービスアカウントのカレンダー接続を作成
    • GET /v2/calendars / GET /v2/calendars/:calendar_id – すべての接続を一覧表示し、単一の接続を詳細に確認
    • POST /v2/calendars/list-raw – 接続を作成する前にプロバイダーのカレンダーをプレビュー。アカウントリンクフローに最適
    • POST /v2/calendars/:calendar_id/sync – 即時の一貫性が必要な場合にイベントの再同期を強制
    • POST /v2/calendars/:calendar_id/bots – 時間を手動で計算せずにカレンダーイベントに対して bot をスケジュール
    • PATCH /v2/calendars/:calendar_id / DELETE /v2/calendars/:calendar_id – クレデンシャルを更新するか接続をクリーンに削除
  • イベントとシリーズのサポート: 以下を使用して単一イベントと繰り返しシリーズを統一的な方法で扱えます:

    • GET /v2/calendars/:calendar_id/events – カレンダーの今後のイベントを一覧表示
    • GET /v2/calendars/:calendar_id/events/:event_id – 特定のイベントの全詳細を取得
    • GET /v2/calendars/:calendar_id/series – 繰り返しシリーズとそのインスタンスを確認
  • Microsoft カレンダーのリアルタイム同期: v2 は Microsoft カレンダーのリアルタイム同期機能を追加し、Outlook と Microsoft 365 カレンダーへの変更が数分ではなく数秒以内に Meeting BaaS に反映されるようになり、scheduleCalendarRecordEvent フローがより予測可能になります。

  • 専用カレンダー Webhook と信頼性: calendar.connection_createdcalendar.connection_errorcalendar.events_syncedcalendar.event_createdcalendar.event_updated, and calendar.event_cancelled などの新しい webhook イベントにより、同期の健全性と経時的な変更を明確に把握できます。再サブスクリプションと再同期のための専用 endpoint により、手動介入なしにプロバイダーの問題から迅速に回復できます。

  • 専用カレンダー UI: v2 dashboard には専用のカレンダー UI が含まれており、接続の確認、同期ステータスと最近の webhook の表示、失敗の debug、どのイベントに bot が紐付いているかの確認が、生のログを掘り下げることなく行えます。

  • イベントに紐付いた Bot: v2 では、スケジュールされた bot はカレンダーフローのファーストクラスの市民です。カレンダーイベントに対して直接 bot を作成、更新、キャンセルできるため、カスタムのグルーコードが大幅に削減され、直前の変更に関するレースコンディションが減少し、「このカレンダーのすべての standup を録画する」という設定が独自の workflow ではなく1行の設定になります。

未来への基盤

Bot 操作への可視性の向上:

  • 標準化されたエラーレスポンス: すべてのエラーはプログラムによるエラーコードを持つ一貫した {success, data, error} フォーマットに従います
  • Rate Limit の明確化: 制限に近づいた際の透明なエラーメッセージを含む、明確なチームごとの rate limit
  • Token 管理: 詳細な使用状況 dashboard を使用した token 消費、予約、可用性へのリアルタイムの可視性
  • Webhook 配信追跡: webhook 配信ステータスの監視、メッセージ履歴の表示、失敗した配信の再送信

v2 response 構造の例:

response_format.json
{
  "success": true,
  "data": {
    "bot_id": "123e4567-e89b-12d3-a456-426614174000",
    "status": "joining"
  }
}

エラー response の例:

error_response.json
{
  "success": false,
  "error": "Not Found",
  "message": "Bot with ID 'bot_abc123' not found",
  "code": "FST_ERR_BOT_NOT_FOUND_BY_ID",
  "statusCode": 404,
  "details": null
}

v2 の Webhook イベント

v2 は一貫した payload 構造を持つ包括的な webhook イベントを提供します:

webhook_bot_completed.json
{
  "event": "bot.completed",
  "data": {
    "bot_id": "123e4567-e89b-12d3-a456-426614174000",
    "meeting_url": "https://meet.google.com/abc-defg-hij",
    "raw_transcription": "https://s3.amazonaws.com/.../raw_transcription.json",
    "transcription": "https://s3.amazonaws.com/.../output_transcription.json",
    "transcription_ids": ["gladia-job-12345"],
    "transcription_provider": "gladia",
    "recording": "https://s3.amazonaws.com/.../recording.mp4"
  },
  "sent_at": "2025-12-05T11:01:45Z"
}

v2 の新しい webhook イベントタイプ:

配信の問題から回復する必要がある場合は、特定の bot に対して 最終 webhook を再送信 するか、bot callback を再試行 することができます。callback payload と動作の完全な概要については、Callbacks ドキュメント をご覧ください。

バッチ操作

部分的な成功サポートを備えた1回のリクエストで複数の bot を作成:

batch_create.sh
curl -X POST "https://api.meetingbaas.com/v2/bots/batch" \
     -H "Content-Type: application/json" \
     -H "x-meeting-baas-api-key: YOUR_API_KEY" \
     -d '[
           {
             "meeting_url": "https://meet.google.com/abc-defg-hij",
             "bot_name": "Bot 1",
             "recording_mode": "speaker_view"
           },
           {
             "meeting_url": "https://zoom.us/j/123456789",
             "bot_name": "Bot 2",
             "recording_mode": "gallery_view"
           }
         ]'

追加機能

v2 は、ミーティング bot を含むあらゆるビジネスロジックをスケーラブルにします:

機能説明
重複排除設定可能な allow_multiple_bots フラグによる重複 bot 作成に対する組み込み保護
スケジュール Bot完全な更新、削除、バッチサポートを備えた専用 endpoint(/v2/bots/scheduled
強化された文字起こしBYOK サポート付き Gladia 連携、LLM サマリー、翻訳、カスタム語彙
自動データ削除自動クリーンアップによるプランベースの保持期間(3〜30日)
リアルタイムステータスbot.status_change webhook イベントによる詳細な状態更新
S3 ストレージ自動ライフサイクル管理によるすべてのアーティファクトの署名付き URL
チームファーストの設計すべてのリソースはメンバーロールとチームレベルの制限を持つチームに属します
サポートシステムステータス追跡付きで特定の bot にリンクされた組み込みチケットシステム
新しい Dashboardステータス履歴の可視化を備えた完全に再設計された UI

次に予定されている機能

皆様のフィードバックをもとに新機能を積極的に開発中です。

  • 追加の文字起こしプロバイダー: すべての主要な文字起こしサービスに対応した1つの統合 API。予定されているプロバイダーには以下が含まれます:
    • Deepgram
    • Gladia
    • Assembly AI
    • OpenAI Whisper
    • Speechmatics
    • Google Speech
    • Azure Speech
    • ... v2 の文字起こしは BYOK ファーストとして設計されているため、すべてのリクエストはご自身のプロバイダーアカウントで実行されます — すべてのジョブ、使用状況、請求はプロバイダーの dashboard で確認でき、log のクロスリファレンス、問題の debug、アクティビティのエンドツーエンドの監査ができるようにプロバイダー固有のジョブ ID を返します。
  • リージョン固有のデータストレージ: コンプライアンスとデータレジデンシーの要件を満たすために、特定の地理的リージョンにミーティングデータを保存
  • ギャラリービュー動画キャプチャ: より優れたマルチ参加者ミーティングのカバレッジのためのギャラリービューモードによる強化された録画

シンプルなマイグレーション

API の移行は大きな作業になり得ることを理解しています。そのため、移行をできるだけスムーズにしました:

  • 並行運用: v1 と v2 は同時に稼働 — ご自身のペースで移行できます
  • 包括的なマイグレーションガイド: v1 から v2 への移行のステップバイステップの手順
  • Token インポート: dashboard を通じて残りの v1 token を v2 にインポート — 必要に応じて複数回インポート可能
  • 同じ認証方式: x-meeting-baas-api-key header を使用 — 新しい認証フローを学ぶ必要はありません

注意: v1 の Bot データ、カレンダー接続、スケジュールされた bot は自動的に移行されません。v2 でカレンダー接続とスケジュールされた bot を再作成する必要があります。

はじめる

API v2 が利用可能になりました。v1 と v2 は並行して稼働するため、準備ができたときに評価して移行する時間があります。新しい連携の場合は、初日からすべての改善点を活用するために v2 から始めることをお勧めします。

始める準備はできましたか?無料アカウントを作成して、数分で最初の bot を deploy しましょう。

リソース:

ご質問やフィードバックがございましたら、ぜひお聞かせください。API v2 は数ヶ月にわたる作業の成果ですが、これはまだ始まりに過ぎません。皆様のフィードバックが次に構築するものを形作ります。


© 2025 SAS SPOKE — Meeting BaaS (Meeting Bot as a Service) 🐟