Every route the server dispatches, in matching order, from the
declared route table (server/routes.rkt). auth
is how a route authenticates: public needs no
credential; bearer a session or API token;
provision the hosted-mode provisioning token;
superadmin and org-admin the two
multi-tenancy planes. The permission is the one the handler enforces on
its main path — owner-ok and resource grants may admit a caller the role
would not. A feature flag, when named, must be on for the team.
Path segments written :name are parameters;
*name takes the rest of the path.
| Method | Path | Auth | Permission | Feature | Description |
|---|---|---|---|---|---|
| GET | / |
public | — | — | コンソール(TELEMACHUS_HOME=beta のときはベータ申込フロー)。HTML のタイトルはインスタンスのブランディングから書き換えられます。 |
| GET | /index.html |
public | — | — | コンソール |
| GET | /login |
public | — | — | コンソール、まずサインイン — ベータのランディングに依存しない URL。 |
| GET | /activate |
public | — | — | マジックリンク認証画面(ホストモード)のコンソール. |
| GET | /health |
public | — | — | 死活確認:{ok, multitenant} のみ — バージョン、KDF、TLS の状態は GET /api/admin/status にあります。 |
| GET | /beta-sdk.js |
public | — | — | Tier-B オンボーディングバンドルが読み込むブラウザ SDK(window.Telemachus.beta)。 |
| GET | /beta/bundle/:plugin/*path |
public | — | — | Tier-Bオンボーディングプラグインのバンドルディレクトリからのファイル |
| GET | /api/x/:plugin/bundle/*path |
bearer | — | — | A file from a loaded plugin's AUTHENTICATED bundle
(plugins/ |
| GET | /beta/template |
public | — | — | Tier-C のサンドボックス化 HTML テンプレート。体験オーバーレイでローカライズされます。 |
| GET | /api/config |
public | — | — | 公開インスタンス設定:ホームモード、マルチテナントフラグ、ローカライゼーションポリシー(既定ロケール、利用可能なロケール、切り替えの可否)。サインイン画面はトークンを持つ前に読み込みます。 |
| GET | /api/branding |
public | — | — | タイトル、タグライン、ロゴ。公開:サインイン画面が描画します。会社のホスト名では、またはその会社のサインイン済みユーザーには、会社自身のもの(TEN-2d)。 |
| PUT | /api/branding |
bearer | instance:manage |
— | インスタンスのタイトルとキャッチコピーを設定してください。 |
| POST | /api/branding/logo |
bearer | instance:manage |
— | インスタンスロゴをアップロード(マークとワードマークを置き換えます) |
| GET | /api/i18n/catalog |
public | — | — | ?locale= に対するコンソールの文字列。サーバー側でフォールバックチェーンを通して解決済み。公開:サインイン画面が必要とします。 |
| PUT | /api/i18n |
bearer | instance:manage |
— | インスタンスのデフォルト言語と、ユーザーが切り替える可否を設定します。 |
| GET | /api/l10n/coverage |
bearer | localization:read |
— | ローカライゼーションマネージャーのカタログのロケール別カバレッジ:総数、承認済み、機械翻訳、未翻訳、古いもの。 |
| GET | /api/l10n/messages |
bearer | localization:read |
— | 1つのロケールのメッセージ。?status=、?ns=、?q= で絞り込み、ページ送りできます。 |
| POST | /api/l10n/import |
bearer | localization:manage |
— | ディスク上のカタログをマネージャーのテーブルに取り込む。 |
| POST | /api/l10n/export |
bearer | localization:manage |
— | ロケールの承認済み文字列を locales/ |
| POST | /api/l10n/draft |
bearer | localization:manage |
— | ロケールの未翻訳文字列に対して AI の下書きを、20件ずつのスケジューラジョブでキューに入れる。クォータで計量されます。 |
| POST | /api/l10n/discard |
bearer | localization:manage |
— | ロケールの機械翻訳の下書きを削除する(人の作業には触れません)。 |
| PUT | /api/l10n/messages/:id |
bearer | localization:translate |
— | 1メッセージの翻訳を提出します。 |
| POST | /api/l10n/review/:id |
bearer | localization:review |
— | 翻訳を承認または差し戻す。翻訳者は自分の翻訳を承認できません。 |
| GET | /api/beta/config |
public | — | — | 公開されたオンボーディング体験の公共セグメント(フィールド、コピー、テーマ)が1つの言語で表示されます。 |
| OPTIONS | /api/beta/signup |
public | — | — | サンドボックス化された Tier-C テンプレートのための CORS プリフライト。 |
| OPTIONS | /api/beta/config |
public | — | — | サンドボックス化された Tier-C テンプレートのための CORS プリフライト。 |
| OPTIONS | /api/beta/challenge |
public | — | — | サンドボックス化された Tier-C テンプレートのための CORS プリフライト。 |
| GET | /api/beta/experience |
bearer | — | — | チームの下書きのオンボーディング体験(判定プロンプトを含む)。 |
| PUT | /api/beta/experience |
bearer | — | — | オンボーディング体験のドラフトを保存します。 |
| POST | /api/beta/experience/publish |
bearer | — | — | 保存済みの下書きを公開する;以後は環境変数で投入された既定値より優先されます。 |
| POST | /api/beta/assets |
bearer | — | — | オンボーディング資産(ロゴ、ヒーロー画像、フォント)をアップロード(base64でJSON形式)、2MiBまで |
| GET | /api/beta/assets |
bearer | — | — | チームのオンボーディング資産をリストします。 |
| GET | /api/beta/asset/:id |
public | — | — | オンボーディングアセットを1つ配信する。公開:申込フローとブランディングロゴはトークンなしで読み込みます。 |
| DELETE | /api/beta/asset/:id |
bearer | — | — | オンボーディングアセットを削除します。 |
| GET | /api/beta/challenge |
public | — | — | 申込前に申込フローが解く proof-of-work チャレンジ。 |
| POST | /api/beta/signup |
public | — | — | オンボーディングフォームを送信する:公開された体験に対して検証され、不正利用対策で制限され、モデルが設定されていればモデルが判定します。 |
| GET | /api/beta/prospects |
bearer | — | — | 申込フローが捕捉した見込み客を、シグナルと判定とともに一覧する。 |
| POST | /api/beta/prospects/:id/decide |
bearer | — | — | 見込み客を受け入れる、または辞退する。 |
| POST | /api/bootstrap |
public | — | — | 初回のみ:オペレーター、最初の組織とチームを作成する。オペレーターのトークンを返します。インスタンスにユーザーがいれば拒否します。 |
| POST | /api/provision |
provision | — | — | ホストモード:このインスタンスに所有者1名とマジックアクティベーションリンクをプロビジョニングする。 |
| POST | /api/activate |
public | — | — | ホストモード:アクティベーショントークンを交換し、所有者のパスワードを設定します |
| POST | /api/instance/suspend |
provision | — | — | ホストモード:テナントを一時停止(書き込みは402で拒否されます) |
| POST | /api/instance/resume |
provision | — | — | ホストモード:一時停止したテナントを再開 |
| POST | /api/instance/quota |
provision | — | — | ホストモード:テナントチームのクォータ制限を設定します。 |
| POST | /api/login |
public | — | — | ユーザー名とパスワードでサインインする(2FA が有効なら TOTP コードも)。ベアラートークンを返します。 |
| POST | /api/2fa/enable |
bearer | — | — | 呼び出し元の TOTP 二要素認証を有効にする;シークレットを一度だけ返します。 |
| POST | /api/2fa/recovery-codes |
bearer | — | — | Issue a fresh set of single-use recovery codes, invalidating any outstanding ones; returned once (issue #26). |
| GET | /api/2fa/recovery-codes |
bearer | — | — | How many of the caller's recovery codes are still unspent. Never the codes themselves. |
| DELETE | /api/2fa |
bearer | — | — | Turn the caller's own TOTP off, so the old seed and its recovery codes stop working and they must enrol again. |
| DELETE | /api/admin/users/:id/2fa |
bearer | instance:manage |
— | Revoke a user's TOTP seed (issue #19): a seed that may sit in a database dump cannot be rotated by using it, so an operator can force a re-enrolment. |
| POST | /api/password |
bearer | — | — | 呼び出し元のパスワードを変更します。 |
| GET | /api/whoami |
bearer | — | — | 呼び出し元:ユーザー、チーム、オペレーターフラグ、組織、組織ロール、ロケール、権限。 |
| POST | /api/profile |
bearer | — | — | 呼び出し元のプロフィール(表示名、ロケール)を更新します。 |
| POST | /api/members |
bearer | members:manage |
— | 呼び出し元のチームに役割を付けてメンバーを追加;新しいメンバーの最初のトークンを返します。 |
| GET | /api/members |
bearer | — | — | チームのメンバーと役割 |
| GET | /api/admin/status |
bearer | instance:manage |
— | インスタンスの状態:バージョン、KDF、TLS とマルチテナントのフラグ、そしてユーザー・チーム・組織・ノート・トークン・監査イベント・テナントの件数。 |
| POST | /api/orgs |
superadmin | instance:manage |
— | 会社を作成:org、最初のチーム、所有者。明示的なスラッグは自然キーです(再実行で409エラー) |
| GET | /api/orgs |
superadmin | instance:manage |
— | インスタンス上のすべての組織をリスト表示します。 |
| POST | /api/orgs/:ref/suspend |
superadmin | instance:manage |
— | 会社(id またはスラッグ)を停止する;その中のすべてのチームが読み取り専用になります。 |
| POST | /api/orgs/:ref/resume |
superadmin | instance:manage |
— | 一時停止中の企業を再開します。 |
| POST | /api/orgs/:ref/quota |
superadmin | instance:manage |
— | 組織レベルのクォータを設定;チームはその下に配置されます |
| GET | /api/orgs/:ref |
superadmin | instance:manage |
— | 1つの会社、そのチームとクォータ。 |
| PATCH | /api/orgs/:ref |
superadmin | instance:manage |
— | 会社の名前を変更する、プランを変更する(そのプランの上限を再適用します)、および/またはホスト名を設定する({domain}、null でクリア):そのホストで配信されるコンソールは、サインイン前から会社のブランディングをまといます(TEN-2d)。 |
| POST | /api/admin/seed-tenants |
superadmin | instance:manage |
— | 既知の開発用パスワードで Acme と Globex を投入する — デモ用の固定データのみ。 |
| GET | /api/org |
org-admin | org:read |
— | 呼び出し元の会社 |
| GET | /api/org/teams |
org-admin | org:read |
— | 呼び出し元の会社のチーム。 |
| POST | /api/org/teams |
org-admin | org:manage |
— | 呼び元の会社でチームを作成します。 |
| POST | /api/org/members |
org-admin | org:manage |
— | 呼び出し元の会社のチームに人物を追加します。オプションで組織ロール(org_admin, org_owner, org_reader)も指定できます。 |
| PATCH | /api/org/members/:id |
org-admin | org:manage |
— | 人の組織ロールを設定またはクリアする — 既存ユーザーを org_reader にする方法(TEN-2h)。自分自身には不可。 |
| GET | /api/org/audit |
org-admin | org:read |
— | 会社の監査ログ。 |
| GET | /api/org/branding |
org-admin | org:read |
— | 会社自身のブランディング(TEN-2d)— 何も設定していなければ、own:false を添えてインスタンスのもの。 |
| PUT | /api/org/branding |
org-admin | org:manage |
— | 会社のタイトル・タグライン・ロゴを設定する:会社のホスト名で、またその会社のサインイン済みユーザーに対して、コンソールがまとうもの。 |
| DELETE | /api/org/branding |
org-admin | org:manage |
— | 会社のブランディングを取り下げる;そのユーザーには再びインスタンスのものが表示されます。 |
| POST | /api/org/branding/logo |
org-admin | org:manage |
— | 会社のロゴをアップロードし(base64)、会社のマークにする。 |
| POST | /api/notes |
bearer | notes:write |
— | 公開範囲を指定してノートを作成する。 |
| GET | /api/notes |
bearer | notes:read |
— | 呼び出し元が読めるノートを一覧する;?scope=org は会社内のすべてのチームにわたります(org_reader にはチーム公開のノートだけが見え、非公開のものは見えません)。 |
| POST | /api/documents |
bearer | files:write |
— | テキストドキュメントを作成する(content_type が text/markdown のrepositoryオブジェクト)。 |
| GET | /api/documents |
bearer | files:read |
— | 文書をリスト表示します。 |
| GET | /api/documents/:id |
bearer | files:read |
— | 一つのテキストドキュメントとその本文。 |
| PUT | /api/documents/:id |
bearer | files:write |
— | テキスト文書のタイトル・本文・公開範囲を更新する(新しいバージョン)。 |
| DELETE | /api/documents/:id |
bearer | files:delete |
— | テキストドキュメントを削除します。 |
| POST | /api/notes/:id/share |
bearer | notes:manage |
— | ユーザー(所有者、またはnotes:manage)とメモを共有します。与えられた権限はnotes:*のものでなければなりません。 |
| GET | /api/notes/:id |
bearer | notes:read |
— | 1件のノート。 |
| PUT | /api/notes/:id |
bearer | notes:write |
— | ノートを更新します。 |
| DELETE | /api/notes/:id |
bearer | notes:delete |
— | ノートを削除します。 |
| POST | /api/ai/echo |
bearer | chat:use |
— | クォータの動作確認用の、モデルを使わない計量付きエコー。 |
| POST | /api/ai/chat |
bearer | chat:use |
chat |
モデルの1ターン。クォータで許可され(ai.requests、ai.tokens.total)、チームの ai.concurrency で制御されます。名前付きエグゼキュータへのルーティングには instance:manage が必要です。 |
| POST | /api/ai/chat/stream |
bearer | chat:use |
chat |
同じターンを Server-Sent Events で返し、終了時に計量します。 |
| POST | /api/agent |
bearer | chat:use |
agent |
チームの有効なツールに対してツールを使用するエージェントループを実行;すべてのツール呼び出しはRBACチェックとメーター処理が行われます。 |
| POST | /api/translate/catalog |
bearer | chat:use |
translate |
ロケールカタログ全体を、プレースホルダーを保ったまま翻訳する。 |
| POST | /api/translate |
bearer | chat:use |
translate |
目標言語にテキストを翻訳し、チーム用語集を使用します。 |
| GET | /api/translate |
bearer | chat:use |
— | チームの翻訳履歴 |
| POST | /api/glossary |
bearer | settings:manage |
— | 対象言語の用語集に用語を追加または更新する。 |
| GET | /api/glossary |
bearer | chat:use |
— | チーム用語集. |
| GET | /api/ai/model |
bearer | — | — | 設定されているモデル(またはシミュレーションの代替が使われていること)。 |
| GET | /api/model-roles |
bearer | — | — | チームの一括処理をロールごとにどのエグゼキュータへ送るか(utility:知識グラフとフィールド抽出、翻訳の下書き)、およびインスタンスの既定値。 |
| PUT | /api/model-roles |
bearer | settings:manage |
— | チームのモデルロールを設定する:{roles: {utility: <エグゼキュータ名> | null}}。エグゼキュータは存在している必要があります;null はインスタンスの既定値に戻り、それもなければローカルモデルになります。 |
| GET | /api/executors |
bearer | — | — | ローカルエグゼキュータ、環境変数で設定されたプッシュ型、API で作成されたもの(プッシュ型、またはワーカー付きのプル型)を、状態とともに。 |
| POST | /api/executors |
bearer | instance:manage |
— | エグゼキュータを作成する:{name, mode: pull|push, model?, url?, key?, capabilities?, org_id?}。プル型エグゼキュータのワーカートークンはこのレスポンスに含まれ、二度と表示されません。 |
| DELETE | /api/executors/:id |
bearer | instance:manage |
— | エグゼキュータを退役させる:ワーカートークンは失効し、保持していたジョブはキューに戻ります。 |
| POST | /api/org/executors |
org-admin | org:manage |
— | 呼び出し元の会社に紐づくエグゼキュータを作成する(TEN-2e):その会社のチームにだけ提供されます。 |
| POST | /api/workers/claim |
bearer | jobs:execute |
— | プル型ワーカーが実行可能な次のリモートジョブを取得する:{kinds, models, max_wait};何もなければ 204。ジョブにはリースが付きます。 |
| POST | /api/workers/jobs/:id/heartbeat |
bearer | jobs:execute |
— | このワーカーが保持するジョブのリースを延長する。 |
| POST | /api/workers/jobs/:id/complete |
bearer | jobs:execute |
— | 結果を送信する:{result}。現在のリース保持者からのみ受け付け、種別ごとに検証されます。 |
| POST | /api/workers/jobs/:id/fail |
bearer | jobs:execute |
— | 失敗を報告する:{error}。現在のリース保持者からのみ受け付けます。 |
| GET | /api/usage |
bearer | — | — | チームのクォータ次元ごとの使用量、上限、残り。 |
| POST | /api/quota |
bearer | instance:manage |
— | 呼び出し元チームのクォータ上限を設定する(次元、上限、ウィンドウ)。 |
| GET | /api/tools |
bearer | — | — | 登録済みのツールとその権限、ソースおよびチーム別に有効化された状態。 |
| POST | /api/tokens |
bearer | settings:manage |
— | API トークンを発行する。任意でスコープと ttl(秒。既定は90日;長寿命のマシントークンには "never")を指定;生のトークンは一度だけ表示されます。 |
| GET | /api/tokens |
bearer | settings:manage |
— | チームのAPIトークン |
| DELETE | /api/tokens/:id |
bearer | settings:manage |
— | API トークンを失効させる。 |
| GET | /api/search |
bearer | — | search |
ノート、リポジトリオブジェクト(キー、ファイル名、抽出テキスト)、知識グラフのエンティティを検索する;各行は can? でフィルタ;?scope=org は org_reader 向けに会社内のチームにわたります。 |
| GET | /api/audit |
bearer | settings:manage |
— | チームの最近の監査イベント。 |
| POST | /api/jobs |
bearer | chat:use |
— | 登録された種類のスケジューラジョブをキューイングします。 |
| GET | /api/jobs |
bearer | — | — | チームのジョブ、最新から |
| POST | /api/jobs/:id/cancel |
bearer | — | — | キューに並んでいるジョブをキャンセル(実行中のジョブは完了します)。 |
| GET | /api/jobs/:id |
bearer | — | — | 1つのジョブとその結果またはエラー |
| GET | /api/repo |
bearer | files:read |
— | ?prefix= でリポジトリオブジェクトを一覧する(ページ送り);?shared=1 は呼び出し元が有効な権限付与を持ち所有していないものだけ;?scope=org は会社内のすべてのチームにわたります(TEN-2h)。 |
| POST | /api/repo-obj/:id/share |
bearer | files:manage |
— | 組織内のユーザーまたはチームと共有する:{principal_type, principal_id, capability: view|edit|manage, expires_at?}。{user_id} は従来どおり view を意味します。 |
| POST | /api/repo-obj/:id/unshare |
bearer | files:manage |
— | プリンシパルがそのオブジェクトに持つすべての権限付与を取り消す。 |
| GET | /api/repo-obj/:id/grants |
bearer | files:manage |
— | 1つのプリンシパルにつき1行: 能力、権限、授与者、期限、期限切れ |
| GET | /api/repo-obj/:id/derivations |
bearer | files:read |
— | 由来: 文書がどの実行とステップから派生したか |
| GET | /api/repo-obj/:id/processing |
bearer | files:read |
— | 「処理履歴」:派生した文書、元の文書、そしてこの文書に触れたすべての実行。 |
| GET | /api/share-targets |
bearer | files:read |
— | 文書を誰と共有できるか:チームのメンバーと組織内のチーム。 |
| POST | /api/repo-obj/:id/visibility |
bearer | files:manage |
— | プライベート、チームまたは共有に設定します。 |
| GET | /api/repo-obj/:id/content |
bearer | files:read |
— | バイト列をダウンロードする(履歴は ?version=)。型がインライン許可リストにない限り、添付ファイルとして nosniff 付きで返します。 |
| POST | /api/repo-obj/:id/presign |
bearer | files:read |
— | 呼び出し元自身の最新の S3 キーで署名された、期限付きの事前署名 S3 URL。 |
| GET | /api/repo-obj/:id |
bearer | files:read |
— | バージョン付きのオブジェクトメタデータ |
| DELETE | /api/repo-obj/:id |
bearer | files:delete |
— | オブジェクトを削除する(他のバージョンから参照されなくなったブロブは解放されます)。 |
| PUT | /api/repo/*key |
bearer | files:write |
— | 生のボディをキーにアップロードする(?filename=, ?visibility=);既存のキーへの書き込みはバージョンを追加します。トリガーはここで評価されます。 |
| GET | /api/s3/credentials |
bearer | — | — | 呼び出し元の S3 アクセスキー(シークレットは二度と表示されません)と、それを使うエンドポイント/バケット。 |
| POST | /api/s3/credentials |
bearer | — | — | S3アクセスキーを発行し、オプションで範囲指定(トリガーが発生するプレフィックスに対してworkflows:runを追加します)。 |
| DELETE | /api/s3/credentials/:id |
bearer | — | — | S3アクセスキーを無効にする;そのアクセスキーで署名されたプレシグナードリンクも無効になります。 |
| POST | /api/workflows |
bearer | workflows:write |
workflows |
ワークフロー仕様を公開する(検証済み;未知のフィールドは拒否);同じスラッグの再公開はバージョンを上げます。 |
| GET | /api/workflows |
bearer | workflows:read |
workflows |
チームのワークフロー定義。プラグイン提供のものは初回参照時に実体化されます。 |
| GET | /api/workflows/schema |
public | — | — | ワークフロー仕様フォーマット:バージョン、ステップ種類、バインディング参照、述語 |
| POST | /api/workflows/:slug/run |
bearer | workflows:run |
workflows |
{input} で実行を開始する;宣言された入力は必須で型付きです。202 と実行を返します。 |
| GET | /api/doc-triggers |
bearer | workflows:read |
workflows |
チームのアップロードトリガーと、チームの残り AI 予算。 |
| POST | /api/doc-triggers |
bearer | workflows:write |
workflows |
トリガーを作成:workflow_slug, match_prefix, match_types, input, fire_on_derived. |
| GET | /api/doc-triggers/:id |
bearer | workflows:read |
— | 1つのトリガーとその発火履歴(どのバージョン、どの実行、あるいはなぜ発火しなかったか)。 |
| PATCH | /api/doc-triggers/:id |
bearer | workflows:write |
— | トリガーのフィールドを変更;存在しないフィールドはそのままにします。 |
| DELETE | /api/doc-triggers/:id |
bearer | workflows:write |
— | トリガーとその履歴を削除します;開始した実行は残ります。 |
| GET | /api/workflows/:slug |
bearer | workflows:read |
workflows |
1つのワークフロー定義とその仕様 |
| GET | /api/runs |
bearer | workflows:read |
workflows |
チームの実行、新しい順。 |
| POST | /api/runs/:id/cancel |
bearer | workflows:run |
workflows |
実行を取消;既に実行中のステップが終了し、次のステップは開始しません。 |
| GET | /api/runs/:id |
bearer | workflows:read |
workflows |
1つの実行とそのステップ、インプット、アウトプット、およびエラー |
| GET | /api/kg/entities |
bearer | files:read |
— | ?q= と ?type= でエンティティを検索する;呼び出し元が読める言及を持つものだけ。 |
| GET | /api/kg/entities/:id |
bearer | files:read |
— | 1つのエンティティとその関係・言及。各言及は元文書の公開範囲でフィルタされます。 |
| POST | /api/kg/extract |
bearer | workflows:run |
workflows |
チームの未抽出文書をインデックス化するワークフローをキューに追加します。 |
| POST | /api/admin/seed |
bearer | settings:manage |
— | 呼び出し元のチームにサンプルのノートと文書を投入する。 |
| GET | /api/metrics |
bearer | instance:manage |
— | 運用メトリクス。 |
| GET | /api/features |
bearer | — | — | チームの機能フラグ |
| POST | /api/features/:name |
bearer | settings:manage |
— | チーム用の機能を有効にする/無効にする |
| GET | /api/plugins |
bearer | — | — | 読み込まれたプラグインと、そのツールおよびワークフロー。 |
| GET | /api/mcp |
bearer | — | — | 接続されたMCPサーバー |
| GET | /api/oop |
bearer | — | — | 接続済みのサンドボックス化(プロセス外)プラグインと、それらが要求できる機能。 |
| POST | /api/tools/:name |
bearer | settings:manage |
— | チーム用のツールを有効にする/無効にする |
Routes contributed by loaded plugins, mounted under
/api/x/<plugin>/. Every one requires a bearer token;
the permission, when named, is checked before the plugin's handler runs.
Matched after the core routes above.
| Method | Path | Plugin | Permission | Description |
|---|---|---|---|---|
| GET | /api/x/example-tools/word-count |
example-tools |
chat:use |
?text= の単語数を数える。 |
| POST | /api/x/example-tools/word-count |
example-tools |
chat:use |
{text} の単語数を数える。 |
| GET | /api/x/integrator-demo/eta |
integrator-demo |
chat:use |
Estimated days for ?lane=. |
| POST | /api/x/integrator-demo/eta |
integrator-demo |
chat:use |
Estimated days for {lane}. |