For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/mobile/api.md (or send Accept: text/markdown).
モバイル API
アプリがサーバーと通信する方法 — セッション、到達性、ペイロード。
初心者向けのウォークスルー
前提条件: 以下の 2 つの初心者向けガイドを読み、モバイル ローカル セットアップを完了してください。 Expo の値を apps/mobile/.env.local に入れます。 EXPO_PUBLIC_API_URL をデバイスが到達できるバックエンド ホストに設定します。モバイル専用チェックアウトには Web バックエンドがないため、個別に開始または接続します。 Expo エクスポートが成功すると、デバイスや購入の受け入れではなく、JavaScript バンドルが証明されます。
簡単に説明すると、ワークスペースは 1 つのチームの個別のユーザー、データ、設定です。サーバーは信頼できるバックエンドです。プロバイダー キーがブラウザーや電話コードに含まれないようにします。移行は、テーブルを作成または更新する、バージョン管理されたデータベースの変更です。 AI モデルは答えを返すエンジンです。モデル カタログは、使用可能なモデル ID と価格のサーバーのリストです。プロバイダーは、AI、電子メール、請求サービスなどの外部サービスです。資格は、ワークスペースで機能を使用できるようにする付与です。 Webhook は、あるサービスが別のサービスの URL に送信するメッセージです。
1. apps/mobile/.env.local で、EXPO_PUBLIC_API_URL を電話から到達可能な実行中のバックエンド アドレスに設定します。物理デバイスから localhost を使用しないでください。
2. モバイル ローカル セットアップに従って、Expo を起動し、サインインして、ワークスペース、設定、およびチャット画面を開きます。
3. 同じワークスペースからの認証済みデータが期待されます。リクエストがタイムアウトした場合は、電話とコンピュータのネットワークを確認し、モバイル専用チェックアウトでバックエンドを個別に起動します。
カスタム コードの場合は、提供された prompts/README.md から始めて、最も近いプロンプト (アプリ画面の場合は prompts/new-app-screen.md、パブリック ページの場合は prompts/new-landing-page.md) をコピーします。サーバー、データベース、またはプロバイダーの作業については、コーディング エージェントにこのガイドのタスクを与え、AGENTS.md、.ai/PROJECT_CONTEXT.md、および一致する .ai/ ミラーを読み取るように依頼します。ここで指定されている正確なソース ファイルを調べてください。ファイルをリストし、編集前にチェックします。ワークスペースの所有権とサーバーのみの秘密を保持します。そして差分を見せてください。必要な動作、入力フィールドと出力フィールド、許可されるロール、予想される成功とエラー、テスト アカウント、プロバイダー、またはデバイスを指定します。サンプル値を使用します。絶対に本当の秘密を貼り付けないでください。
【端末の基本】(/docs/web/terminal-basics)
ネイティブスコープを理解する
Expo には、ワークスペース、設定、チャット、RevenueCat 購入サーフェスに加えて、ネイティブ認証/セッションとディープ リンクが含まれています。共有されたビジネス動作と承認は Web バックエンド/パッケージ内に残ります。 apps/mobile/src のネイティブ クライアントは、プロバイダーの資格情報を埋め込まずにこれらの API を呼び出します。
セッション認証された BFF を使用する
/api/mobile ルートは、資格、RevenueCat 購入の可用性とサーバー同期、組織、メンバー、招待状、監査、API キー、Webhook、ドメイン、スケジュール、機能リクエストをカバーします。ワークスペースの所有権とロールのチェックを保持します。これらは、sk_ ベアラーキー /api/v1 パブリック コントラクトとは異なります。
デバイスが到達可能な EXPO_PUBLIC_API_URL と構成されたオリジン/スキームを使用します。パブリック Expo 変数にはプロバイダーの資格情報が含まれることはありません。
ネイティブ ターゲットで検証する
サポートする予定のデバイス/ビルドの読み込み/エラー/空の状態、再接続、期限切れのセッション、禁止された管理アクション、およびディープリンクのリターンを確認します。 Expo エクスポートはバンドルを証明するものであり、ネイティブの配送や購入の承諾を証明するものではありません。
インストールとセットアップ
アプリは /api/mobile とバージョン管理された /api/v1 サーフェスの API を、Web アプリの Cookie 前提ではなくメンバーのセッションで呼び出します。EXPO_PUBLIC_API_URL はクライアントが知る唯一のオリジンで、設計上公開され、シークレットを含みません。
セッショントークンは Better Auth Expo フローから得られ、ネイティブのセキュアストレージに保持されます — 平文の AsyncStorage やバンドルされた設定には保存しません。
GET /api/mobile/entitlement # access state for the member
GET /api/mobile/organization # active workspace context
GET /api/mobile/usage # current-month AI spend, meter caps, and credit balance
GET /api/mobile/appearance # synced appearance bundle (GET/PUT)
POST /api/v1/ai-tasks # authorized work, same as web
Session: /api/auth/* (Better Auth Expo flow)
# Optional server-only token for authenticated Expo push sends:
# EXPO_ACCESS_TOKEN=実装ワークフロー
最初の認証リクエスト前に保存済みセッションを解決し、サーバーが期限切れを報告したら更新し、失効したらクリーンにログアウトします。API 未到達と無効セッションは別の状態として扱います — 前者はリトライ、後者はサインインへ戻ります。
ペイロードは Web コントラクトと同一に保ちます。どのクライアントが呼んでも、サーバーは同じワークスペース・エンタイトルメント・検証ルールを適用します。
検証とトラブルシューティング
機内モードでの失敗、セッション途中のトークン期限切れ、失効したセッション、有効なトークン保存済みのコールドスタートをテストします。閉じて失敗する(拒否される)リクエストは正常、開いて失敗するものはリリース前に修正すべきバグです。