Skip to content

テナント API ​

ベース URL: https://{tenantCode}.{domain}/api/tenant/
認証: Authorization: Bearer <token> + authorize:tenant ミドルウェア

テナント API はサブドメインベースで分離されています。IdentifyTenant ミドルウェアがサブドメインからテナントを自動識別します。

必要な権限 ​

一部のエンドポイントは、テナントユーザーの役割に紐づく権限(TenantPermission)を要求します。持っていない場合は 403 Forbidden を返します。

対象参照操作
サブスクリプション・プラン・Senter連携(契約情報)contract:readcontract:write
組織の基本情報・営業日と休日tenant:readtenant:write
IPアドレス制限tenant:writetenant:write
テナントユーザー・招待・役割user:readuser:write
操作ログactivity-log:read-
MCP Service Tokenmcp.service-tokens:managemcp.service-tokens:manage

お知らせ・ガイド・利用量・エンタイトルメントは権限を要求しません(配信画面などで残数を表示するため)。MCP連携の同意(/mcp-oauth-consents)も、各ユーザーが自分の同意だけを参照・取消するため権限を要求しません。

権限の確認は次の2層で行います。詳細はポリシーを参照してください。

対象担当
レコード単位の判定が必要なものポリシー($this->authorize())。tenant.can は粗い下限として重ねる
判定対象のレコードがないもの(Senter連携など)tenant.can ミドルウェア

他テナントのレコードを ID で指定した場合は、存在を伏せるため 403 ではなく 404 Not Found を返します。

テナントユーザーの操作には次の制限があります。

  • 自分自身のステータス・役割は変更できず、自分自身のアカウントも削除できない(権限を失って設定を戻せなくなるのを防ぐため)
  • オーナー(* を持つ役割)の停止・降格・削除・付与はオーナーだけが行える

画面は、組織の設定(createSettingsRoutes())のサイドバーが、上の権限で項目を出し分けます(出せる項目が無い人には、ユーザーのメニュー AccountMenu に組織の設定も出しません)。詳しくはフロントエンドを参照してください。ルートガードは同梱していないため、URL を直接開いた場合は API の 403 で止まります。

認証 ​

トークンでログイン ​

POST https://{tenantCode}.{domain}/api/auth/login-by-token

テナント専用のログイントークンを使用してサインインします。

現在のユーザー情報取得 ​

GET https://{tenantCode}.{domain}/api/auth/me

ログイン中のテナントユーザー情報を返します。

お知らせ ​

利用者に見えるのは、公開で、日付が今日までのものだけです(新しい順)。下書き・アーカイブ済み・日付が先のものは、詳細でも 404 になります。

メソッドパス説明
GET/api/tenant/announcements/paginatedページネーション一覧
GET/api/tenant/announcements一覧取得(isTop でホームに出すものに、limit で件数(最大50件)に絞る)
GET/api/tenant/announcements/urgent緊急のお知らせ(緊急表示の期限の内のもの)
GET/api/tenant/announcements/{id}詳細取得

サブスクリプション ​

メソッドパス説明
GET/api/tenant/subscriptions一覧取得
POST/api/tenant/subscriptions新規作成(プラン変更)
PUT/api/tenant/subscriptions/{id}/update-renew-subscription-enabled自動更新設定の変更

プラン ​

メソッドパス説明
GET/api/tenant/plans利用可能なプラン一覧
GET/api/tenant/plans/{id}プラン詳細

一覧・詳細のどちらも、そのテナントが選択できるプランだけを返します(Plan::selectable())。公開中のノーマルプランは常に対象で、トライアル契約中はトライアルプラン、スペシャルプラン契約中は契約中のプラン自体が加わります。対象外のプランは ID を指定しても 404 Not Found になります。

利用量 ​

メソッドパス説明
GET/api/tenant/monthly-usages/get-this-month-usages今月の利用量

組織の基本情報 ​

ログイン中の組織の名前と連絡先です。組織ID(code)は URL に使うため変えられません。

メソッドパス説明
GET/api/tenant/tenant取得(tenant:read)
PUT/api/tenant/tenant更新(tenant:write)。name・contactPerson・email・phoneNumber は必須、postalCode・address は任意

組織の情報には、営業時間と営業する曜日(openingTime・closingTime・businessWeekdays)も含みます(ログイン中のユーザーの情報 GET /api/auth/me の組織にも含む)。

IPアドレス制限 ​

ログイン中の組織に入れる接続元です。1件も無ければ制限しません。1件以上あれば、どれにも当たらない接続元からは、組織の API(tenant.restrict_ip を付けた経路。組織へのログイン login-by-token を含む)が 403(code: IP_RESTRICTED、拒んだ接続元 ip)になります。許可している接続元を管理する人以外に見せないよう、参照にも tenant:write を求めます。

メソッドパス説明
GET/api/tenant/allowed-ips登録(作った順)と、今の接続元と、それがどれかの登録に当たるか { data: [{ id, cidr, reason, createdAt, ... }], clientIp, clientIpAllowed }(範囲で許可していても当たる。運営の接続元は含めない)
POST/api/tenant/allowed-ips追加。cidr(必須。IPv4・IPv6 の1つのアドレスか CIDR の範囲)・reason(任意)
PUT/api/tenant/allowed-ips/{id}変える(項目は追加と同じ)
DELETE/api/tenant/allowed-ips/{id}消す。最後の1件を消すと制限をやめる
  • 締め出しを防ぐ: 変えた結果、登録が1件以上あるのに今の接続元がどれにも当たらなくなる追加・変更・削除は、422(cidr)で保存しません。運営の接続元(lase.ip_restriction.allowlist)は、制限と同じく常に当たるとみなします
  • 形の崩れた値・すべてを許す範囲(/0)・組織の中で同じ値は 422 です
  • 変えると、制限の判定に使うキャッシュ(tenant:{code}:allowed_ips)を捨てます

組織の営業日と休日 ​

営業時間・営業する曜日と、年ごとの休日です。営業日は、営業する曜日のうち、休日でない日です(数え方はサービスの BusinessCalendar)。どの操作も、その年の暦 { year, openingTime, closingTime, businessWeekdays, holidays: [{ id, date, name, isPublic }] } を返します。

メソッドパス説明
GET/api/tenant/business-calendar?year=2026取得(tenant:read)。year を省くと今年
PUT/api/tenant/business-calendar営業時間と営業する曜日の更新(tenant:write)。openingTime・closingTime(H:i。終業は始業より後)・businessWeekdays(ISO の曜日番号 1〜7。1つ以上)は必須
POST/api/tenant/holidays休日を足す(tenant:write)。date(Y-m-d)・name。同じ日があれば名前を変え、組織の休日にする
POST/api/tenant/holidays/import指定した年(year)の日本の祝日を取り込む(tenant:write)。振替休日・国民の休日を含む。すでに休日の日は変えない
DELETE/api/tenant/holidays/{id}休日を消す(tenant:write)

テナントユーザー ​

メソッドパス説明
GET/api/tenant/tenant-users/paginatedページネーション一覧(エージェントは含まない)
PUT/api/tenant/tenant-users/{id}ステータス・役割(status, tenantRoleId)の更新。エージェントは 404(エージェントの API で変える)
DELETE/api/tenant/tenant-users/{id}組織から外す

操作ログ ​

メソッドパス説明
GET/api/tenant/activity-logs/paginatedページネーション一覧(activity-log:read)。type(種別)・userId(操作した人)・from・to(日付。両端の日を含む)で絞り込める。各行の summary は、何に対して行ったか(付帯情報のうち画面に出すもの)

組織の画面での次の操作を、組織の操作ログに残します(種別は ActivityLogType の TENANT_*)。メンバーの招待・招待の取り消し・メンバーの変更(状態・役割)と削除、組織の基本情報と2段階認証の決まりの変更、IPアドレス制限の追加・変更・削除、エージェントの作成・変更・削除、エージェントのトークンの発行・再発行・無効化。

テナントユーザー招待 ​

メソッドパス説明
GET/api/tenant/tenant-user-invitations招待一覧
POST/api/tenant/tenant-user-invitations招待作成
DELETE/api/tenant/tenant-user-invitations/{id}削除
POST/api/tenant/tenant-user-invitations/{id}/revoke招待取消

テナントロール ​

メソッドパス説明
GET/api/tenant/tenant-roles一覧取得

ガイド ​

メソッドパス説明
GET/api/tenant/guides/{slug}ガイド記事取得
GET/api/tenant/guides/files/{filepath}ガイドファイル取得

Senter 連携 ​

メソッドパス説明
GET/api/tenant/senter/serviceサービス情報
GET/api/tenant/senter/customer顧客情報
GET/api/tenant/senter/contract契約情報
POST/api/tenant/senter/contract契約更新
GET/api/tenant/senter/service-plansサービスプラン一覧
GET/api/tenant/senter/service-optionsサービスオプション一覧
GET/api/tenant/senter/service-addonsサービスアドオン一覧
POST/api/tenant/senter/service-addons/orderアドオン注文
GET/api/tenant/senter/unbilled-utilizations未請求利用量
GET/api/tenant/senter/invoices請求書一覧
GET/api/tenant/senter/invoices/{invoiceId}請求書詳細
GET/api/tenant/senter/stripe/public-keyStripe 公開鍵
POST/api/tenant/senter/stripe/customersStripe 顧客作成
POST/api/tenant/senter/stripe/setup-intentsSetupIntent 作成
PUT/api/tenant/senter/stripe/payment-methods支払方法更新
GET/api/tenant/senter/stripe/payment-methods支払方法一覧
POST/api/tenant/senter/stripe/payment-methods/set-defaultデフォルト支払方法設定
DELETE/api/tenant/senter/stripe/payment-methods支払方法削除