メインコンテンツまでスキップ

システム連携 API リファレンス

ユーザー管理、ログ閲覧、マスターデータ管理、共有メモリ検索、プロジェクト操作の API リファレンスです。エンドユーザー向けの Chat / Conversations / Files / Search / 公開マスターデータ API は ユーザー API リファレンス、MCP / A2A の接続方式は 接続方式ガイド を参照してください。

SaaS 版専用

本リファレンスに掲載しているエンドポイントはすべて SaaS 版でのみ提供 されます。Marketplace 版では管理操作は管理画面(Admin Console)からのみ実施可能です。

ベース URL​

すべての API リクエストは以下のベース URL に対して送信します。

SaaS
https://api.fd.agenticstar.tm.softbank.jp/api

本ドキュメントのエンドポイントパスはベース URL からの相対パスで記載しています。

認証​

すべてのAPIリクエストには、Authorization ヘッダーに Bearer トークンを含める必要があります。

Authorization: Bearer <access_token>

トークンが無効または未指定の場合、401 Unauthorized が返されます。エンドポイントによっては追加のスコープが必要です。必要なスコープが不足している場合は 403 Forbidden が返されます。

トークンの取得方法・スコープの詳細については、認証ガイドおよび認証 API リファレンス(SaaS)を参照してください。

ページネーション​

一覧取得エンドポイントには 2 つの方式があります。エンドポイントごとにどちらかが決まっています。組織・職種の一覧はページネーション非対応で、常に全件が返されます。

ページベース​

パラメータ型説明
limitinteger1ページあたりの取得件数。1 〜 100(デフォルト 25)
pageintegerページ番号。1 以上(デフォルト 1)

レスポンスには total, limit, page, hasMore が含まれます。hasMore が true の場合、page を 1 増やすことで次ページを取得できます。

curl
# 1ページ目
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/users?limit=25&page=1" \
-H "Authorization: Bearer <access_token>"

# 2ページ目
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/users?limit=25&page=2" \
-H "Authorization: Bearer <access_token>"

対応しているのは、ユーザー一覧とログ一覧(監査ログ・LLM ログ・LLM Gateway ログ・アクセスログ・ガードレールアラート)です。

カーソルベース​

パラメータ型説明
limitinteger1ページあたりの取得件数(1-100)。デフォルトは 50 件です
cursorstring次のページを取得するためのカーソル値。前回のレスポンスに含まれる cursor をそのまま指定します

レスポンスには hasMore が含まれます。true の場合、cursor の値を次のリクエストに渡すことで次ページを取得できます。cursor は不透明な値のため、内容を解釈せず、前回レスポンスの値をそのまま指定してください。

対応しているのはプロジェクト一覧です。page は使いません(指定しても無視されます)。

リクエストの扱い​

このページの API は、リクエストを次のように扱います。エンドポイントごとの扱いは、各エンドポイントの説明とエラーレスポンスを参照してください。

  • 仕様に無いクエリパラメータやボディのフィールドは無視されます。ただし、このページに載っていない項目でも、サービスが受け付けている項目は、型や値が正しくないと 400 Bad Request になることがあります。
  • 仕様にあるクエリパラメータの値が不正な場合は 400 Bad Request が返ります。
  • ボディが壊れた JSON の場合は 400 Bad Request(invalid_body)が返ります。
  • JSON のボディを受け付けるエンドポイントに、Content-Type: application/json 以外のボディを送ると 415 Unsupported Media Type(unsupported_media_type)が返ります。ただし、ボディの読み取りで 400(壊れた JSON)や 413(サイズの上限を超えた)になる場合は、そちらが先に返ります。
  • ボディのフィールドの型が違う場合は 400 Bad Request が返ります。
  • レスポンスには x-request-id ヘッダーが付きます。サービス側で採番する値で、リクエストで送った値は使われません。お問い合わせの際はこの値をお知らせください。

共有メモリ SaaS​

組織・職種に基づく共有メモリ(ナレッジ)を検索します。

エンドポイント一覧​

メソッドエンドポイント説明スコープ
POST/v1/admin/memory/query共有メモリを検索sharedmemory:query

POST/v1/admin/memory/query

共有メモリを検索します。

リクエストボディ​

パラメータ型必須説明
querystring必須検索クエリ(最大500文字)
orgIdstring—組織ID(最大100文字)。指定すると組織スコープのメモリも検索対象に含まれます
jobRolestring—職種(最大100文字)。指定すると職種スコープのメモリも検索対象に含まれます

リクエスト例​

Search shared memory
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/memory/query \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json" \
4-d '{"query": "売上レポートの作成手順", "orgId": "sales"}'

レスポンスフィールド(200 OK)​

フィールド型説明
memoriesarrayメモリオブジェクトの配列
memories[].textstringメモリの内容テキスト
memories[].typestring"knowledge"(ナレッジ)
memories[].scopestring"organization"、"role"、"global" のいずれか
memories[].createdAtstring | null作成日時(ISO 8601形式)
memories[].scorenumber?関連度スコア。スコア値がない場合はフィールド自体が省略される

レスポンスヘッダー​

ヘッダー説明
X-RateLimit-Limit月間リクエスト上限数
X-RateLimit-Remaining残りリクエスト数
X-RateLimit-Reset制限リセット日時(次月初、ISO 8601形式)

レスポンス例​

JSON
{
"memories": [
{
"text": "売上レポートはダッシュボードの「月次レポート」タブから作成できます",
"type": "knowledge",
"scope": "organization",
"createdAt": "2026-03-15T10:30:00.000Z",
"score": 0.85
}
]
}

エラーレスポンス​

ステータス説明
400query が未指定、空文字、または500文字超過。またはボディが壊れた JSON(code: "invalid_body")
415ボディの Content-Type が application/json ではない(code: "unsupported_media_type")
403sharedmemory:query スコープが不足
429月間クォータ超過(error.type: rate_limit_error、error.code: monthly_quota_exceeded)
502上流サービスとの通信エラー(error.type: upstream_error)
504上流サービスの応答タイムアウト(error.type: upstream_error、error.code: upstream_timeout)

検索が成立して該当が 0 件の場合は 200 で memories が空配列になります。上流障害時は空配列ではなく 502 / 504 を返すため、200 の空配列を障害として扱う必要はありません。

ユーザー管理 SaaS​

ユーザーの一覧取得・削除・ロール変更・承認・承認取り消しを行います。

エンドポイント一覧​

メソッドエンドポイント説明スコープ
GET/v1/admin/usersユーザー一覧を取得users:read / users:manage
DELETE/v1/admin/users/:userIdユーザーを削除users:manage
PUT/v1/admin/users/:userId/roleユーザーのロールを変更users:manage
POST/v1/admin/users/:userId/approveユーザーを承認users:manage
POST/v1/admin/users/:userId/rejectユーザーの承認を取り消しusers:manage

GET/v1/admin/users

ユーザー一覧を取得します。ページベースのページネーションに対応しています。users:read または users:manage スコープのいずれかが必要です(users:manage は users:read の権限を含みます)。

クエリパラメータ​

パラメータ型必須説明
limitinteger—取得件数(1〜100、デフォルト: 25)
pageinteger—ページ番号(1以上、デフォルト: 1)
rolestring—ロールフィルター。"admin" を指定可能
is_approvedstring—承認状態フィルター。"true" または "false"
searchstring—検索文字列(最大100文字)。メールアドレス等で検索
organizationstring—組織コードフィルター(最大50文字、英数字・ハイフン・アンダースコア)
job_typestring—職種コードフィルター(最大50文字、英数字・ハイフン・アンダースコア)

リクエスト例​

List users
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/users?limit=10&is_approved=true" \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
usersarrayユーザーオブジェクトの配列
users[].userIdstringユーザーID
users[].emailstringメールアドレス
users[].usernamestringユーザー名
users[].emailVerifiedbooleanメールアドレスの検証状態
users[].rolestringロール("admin" または "user")
users[].statusstringステータス("unverified"、"pending"、"approved")
users[].organizationobject?所属組織(value: コード、label: 名称)。未設定時はフィールド自体が省略される
users[].jobTypeobject?職種(value: コード、label: 名称)。未設定時はフィールド自体が省略される
users[].biostring?自己紹介。未設定時はフィールド自体が省略される
users[].createdAtstring作成日時(ISO 8601形式)
users[].lastLoginAtstring?最終ログイン日時(ISO 8601形式)。未ログイン時はフィールド自体が省略される
totalinteger総件数
limitinteger取得件数
pageintegerページ番号
hasMoreboolean次ページが存在するか
レスポンス例(200 OK)​
JSON
{
"users": [
{
"userId": "bbbe4306-6975-420b-af47-fb4c8f48b4aa",
"email": "user1@example.com",
"username": "user1@example.com",
"emailVerified": true,
"role": "user",
"status": "approved",
"createdAt": "2026-04-19T13:02:26.198Z"
},
{
"userId": "90b40fd8-a6b8-42b8-ab61-f3b674169b43",
"email": "user2@example.com",
"username": "user2",
"emailVerified": true,
"role": "user",
"status": "approved",
"organization": { "value": "sales", "label": "営業部" },
"jobType": { "value": "engineer", "label": "エンジニア" },
"createdAt": "2026-04-17T07:09:47.484Z"
},
{
"userId": "463e2c25-5a80-4362-b77e-941df96fb1f2",
"email": "admin@example.com",
"username": "admin@example.com",
"emailVerified": true,
"role": "admin",
"status": "approved",
"createdAt": "2026-04-17T07:02:41.015Z",
"lastLoginAt": "2026-04-17T07:18:17.488Z"
}
],
"total": 132,
"limit": 3,
"page": 1,
"hasMore": true
}

エラーレスポンス​

ステータス説明
400クエリパラメータが不正
403users:read または users:manage スコープが不足

DELETE/v1/admin/users/:userId

ユーザーを削除します。users:manage スコープが必要です。

パスパラメータ​

パラメータ型必須説明
userIdstring必須ユーザーID

リクエスト例​

Delete user
1curl -X DELETE https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/users/USER_ID \
2-H "Authorization: Bearer <access_token>"
レスポンス例(200 OK)​
JSON
{ "userId": "abc123", "deleted": true }

エラーレスポンス​

ステータス説明
403users:manage スコープが不足
404指定されたユーザーが見つからない(既に削除済みを含む)

PUT/v1/admin/users/:userId/role

ユーザーのロールを変更します。承認済み(approved)のユーザーのみ変更可能です。

ロール変更時の挙動
  • user への降格時: 対象ユーザーの既存セッションが無効化され、再ログインが必要になります
  • admin への昇格時: 対象ユーザーの既存セッションは継続され、新しい権限が次回 API 呼び出しから有効になります

パスパラメータ​

パラメータ型必須説明
userIdstring必須ユーザーID

リクエストボディ​

パラメータ型必須説明
rolestring必須変更先のロール。"admin" または "user"

リクエスト例​

Change user role
1curl -X PUT https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/users/USER_ID/role \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json" \
4-d '{"role": "admin"}'
レスポンス例(200 OK)​
JSON
{ "userId": "abc123", "changed": true }

エラーレスポンス​

ステータス説明
400role が未指定または不正、ボディが壊れた JSON(code: "invalid_body")、または対象ユーザーが未承認
415ボディの Content-Type が application/json ではない(code: "unsupported_media_type")
403users:manage スコープが不足
404ユーザーが見つからない

POST/v1/admin/users/:userId/approve

ユーザーを承認します。ステータスが pending のユーザーのみ承認可能です。

注記

承認処理が成功すると、対象ユーザーのメールアドレス宛に承認通知メールが自動送信されます。

パスパラメータ​

パラメータ型必須説明
userIdstring必須ユーザーID

リクエストボディ(任意)​

パラメータ型必須説明
reasonstring—承認の理由。空でない場合は、利用者の情報に記録されます

リクエスト例​

Approve user
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/users/USER_ID/approve \
2-H "Authorization: Bearer <access_token>"
レスポンス例(200 OK)​
JSON
{ "userId": "abc123", "approved": true }

エラーレスポンス​

ステータス説明
400ユーザーのステータスが pending 以外(承認不可)
400reason が文字列ではない、またはボディが壊れた JSON・JSON のオブジェクトではない(code: "invalid_body")
415ボディの Content-Type が application/json ではない(code: "unsupported_media_type")
403users:manage スコープが不足
404ユーザーが見つからない

POST/v1/admin/users/:userId/reject

ユーザーの承認を取り消します。ステータスが approved のユーザーのみ取り消し可能です。取り消し後、ステータスは pending に戻ります。

注記

取り消し処理が成功すると、対象ユーザーのメールアドレス宛に通知メールが自動送信されます。

パスパラメータ​

パラメータ型必須説明
userIdstring必須ユーザーID

リクエスト例​

Reject user
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/users/USER_ID/reject \
2-H "Authorization: Bearer <access_token>"
レスポンス例(200 OK)​
JSON
{ "userId": "abc123", "status": "pending" }

エラーレスポンス​

ステータス説明
400ユーザーのステータスが approved 以外(取り消し不可)
403users:manage スコープが不足
404ユーザーが見つからない

ログ SaaS​

監査ログ・LLMログ・LLM Gateway ログ・アクセスログ・ガードレールアラートの閲覧を行います。一覧はすべてページベースのページネーションに対応し、日付範囲フィルターが利用可能です。

エンドポイント一覧​

メソッドエンドポイント説明スコープ
GET/v1/admin/audit-logs監査ログ一覧を取得logs:read
GET/v1/admin/audit-logs/:id監査ログ詳細を取得logs:read
GET/v1/admin/llm-logsLLMログ一覧を取得logs:read
GET/v1/admin/llm-gateway-logsLLM Gateway ログ一覧を取得logs:read
GET/v1/admin/access-logsアクセスログ一覧を取得logs:read
GET/v1/admin/access-logs/statsアクセスログの集計を取得logs:read
GET/v1/admin/guardrail-alertsガードレールアラート一覧を取得logs:read

共通クエリパラメータ​

パラメータ型必須説明
limitinteger—取得件数(1〜100、デフォルト: 25)
pageinteger—ページ番号(1以上、デフォルト: 1)
fromstring—開始日(YYYY-MM-DD形式の実在する日付、UTC基準)。形式が違う値・実在しない日付・文字列ではない値は 400
tostring—終了日(YYYY-MM-DD形式の実在する日付、UTC基準)。指定した日の終わりまでを含みます。形式が違う値・実在しない日付・文字列ではない値は 400

GET/v1/admin/audit-logs

監査ログ一覧を取得します。作成日時の降順で返されます。

リクエスト例​

List audit logs
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/audit-logs?limit=10&from=2026-04-01&to=2026-04-15" \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
auditLogsarray監査ログオブジェクトの配列
auditLogs[].auditLogIdstring監査ログID
auditLogs[].resourcestring操作対象リソース(例: users/show, config/organizations/create, config/job-types/edit)
auditLogs[].actionstring操作アクション(approve / reject / promote / demote / create / update / delete など)
auditLogs[].metaobject | null追加メタデータ
auditLogs[].userIdstring操作ユーザーID。システム連携(Client Credentials フロー)のトークンでの操作は client:<クライアント ID>
auditLogs[].userEmailstring | null操作ユーザーのメールアドレス
auditLogs[].userNamestring | null操作ユーザーの表示名。システム連携(Client Credentials フロー)のトークンでの操作はクライアント名
auditLogs[].ipAddressstring | nullIPアドレス
auditLogs[].userAgentstring | nullUser-Agent
auditLogs[].createdAtstring作成日時(ISO 8601形式)
totalinteger総件数
limitinteger取得件数
pageintegerページ番号
hasMoreboolean次ページが存在するか
レスポンス例(200 OK)​
JSON
{
"auditLogs": [
{
"auditLogId": "6b4366a3-791d-4f60-a9ef-24bdb3303e36",
"resource": "users/list",
"action": "approve",
"meta": {
"userName": "user2@example.com",
"timestamp": "2026-04-19T13:03:27.238Z",
"isApproved": true
},
"userId": "41b9fcf1-958d-4a86-a863-804b69224a1d",
"userEmail": "admin@example.com",
"userName": "admin@example.com",
"ipAddress": "203.0.113.140",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
"createdAt": "2026-04-19T13:03:27.479Z"
},
{
"auditLogId": "c14d6065-7c35-44f6-8eea-033ede09bf3a",
"resource": "users/show",
"action": "delete",
"meta": {
"userName": "user1@example.com",
"timestamp": "2026-04-19T05:04:19.745Z",
"userEmail": "user1@example.com"
},
"userId": "client:billing-integration",
"userEmail": "service-account-client@federation.invalid",
"userName": "請求システム連携",
"ipAddress": "198.51.100.23",
"userAgent": "Mozilla/5.0 (...)",
"createdAt": "2026-04-19T05:04:19.876Z"
},
{
"auditLogId": "f84ef377-9d75-4875-9958-b084c91a3c9b",
"resource": "organizations",
"action": "delete",
"meta": {},
"userId": "client:billing-integration",
"userEmail": "service-account-client@federation.invalid",
"userName": "請求システム連携",
"ipAddress": "198.51.100.23",
"userAgent": "Mozilla/5.0 (...)",
"createdAt": "2026-04-19T05:02:01.736Z"
}
],
"total": 1537,
"limit": 3,
"page": 1,
"hasMore": true
}

GET/v1/admin/audit-logs/:id

監査ログを 1 件取得します。

パスパラメータ​

パラメータ型必須説明
idstring必須監査ログID(一覧の auditLogId)

リクエスト例​

Get audit log
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/audit-logs/c14d6065-7c35-44f6-8eea-033ede09bf3a \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
auditLogIdstring監査ログID
resourcestring操作対象リソース(例: users/show, config/organizations/create, config/job-types/edit)
actionstring操作アクション(approve / reject / promote / demote / create / update / delete など)
metaobject | null追加メタデータ
userIdstring操作ユーザーID。システム連携(Client Credentials フロー)のトークンでの操作は client:<クライアント ID>
userEmailstring | null操作ユーザーのメールアドレス
userNamestring | null操作ユーザーの表示名。システム連携(Client Credentials フロー)のトークンでの操作はクライアント名
ipAddressstring | nullIPアドレス
userAgentstring | nullUser-Agent
createdAtstring作成日時(ISO 8601形式)
レスポンス例(200 OK)​
JSON
{
"auditLogId": "c14d6065-7c35-44f6-8eea-033ede09bf3a",
"resource": "users/show",
"action": "delete",
"meta": {
"userName": "user1@example.com",
"timestamp": "2026-04-19T05:04:19.745Z",
"userEmail": "user1@example.com"
},
"userId": "client:billing-integration",
"userEmail": "service-account-client@federation.invalid",
"userName": "請求システム連携",
"ipAddress": "198.51.100.23",
"userAgent": "Mozilla/5.0 (...)",
"createdAt": "2026-04-19T05:04:19.876Z"
}

エラーレスポンス​

ステータス説明
403logs:read スコープが不足
404指定された監査ログが見つからない

GET/v1/admin/llm-logs

LLMログ一覧を取得します。タイムスタンプの降順で返されます。

リクエスト例​

List LLM logs
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/llm-logs?limit=10" \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
llmLogsarrayLLMログオブジェクトの配列
llmLogs[].llmLogIdstringLLMログID
llmLogs[].timestampstring | nullタイムスタンプ
llmLogs[].servicestring | nullサービス名
llmLogs[].operationstring | nullオペレーション名
llmLogs[].durationMsnumber | null処理時間(ミリ秒)
llmLogs[].conversationIdstring | null会話ID
llmLogs[].intentTypestring | null意図タイプ
llmLogs[].confidenceScorenumber | null信頼度スコア
llmLogs[].toolsUsednumber | nullツール呼び出し回数(ツール名の一覧でも、使ったツールの種類数でもない。同じツールを 5 回呼べば 5)。null は未計測、0 は計測した上で一度も呼ばなかった実行。両者は区別されるため、0 を null と同一視しないでください
llmLogs[].successboolean | null成功/失敗
llmLogs[].agentTypestring | nullエージェントタイプ
llmLogs[].agentLevelstring | nullエージェントレベル
llmLogs[].taskComplexitystring | nullタスクの複雑度
llmLogs[].currentMessagestring | null現在のメッセージ
llmLogs[].contextSummarystring | nullコンテキスト要約
llmLogs[].suggestedApproachstring | null提案された進め方
llmLogs[].conversationGoalstring | null会話のゴール
llmLogs[].finalContentstring | null最終出力内容
llmLogs[].metadataobject | nullオペレーションごとに異なる付随メタデータ(キーは可変)
llmLogs[].createdAtstring | null作成日時
totalinteger総件数
limitinteger取得件数
pageintegerページ番号
hasMoreboolean次ページが存在するか
レスポンス例(200 OK)​
JSON
{
"llmLogs": [
{
"llmLogId": "33098",
"timestamp": "2026-04-19T04:12:51.102Z",
"service": "agent-executor",
"operation": "agent.intent.completed",
"durationMs": 5574.6,
"conversationId": "3b72544d-d6b5-4577-b5f3-c39293124a57",
"intentType": "complex_task",
"confidenceScore": 0.95,
"toolsUsed": null,
"success": null,
"agentType": "intent",
"agentLevel": "default",
"taskComplexity": null,
"currentMessage": "このURLについて教えて https://example.com/path",
"contextSummary": "ユーザーがURLについての情報を求めている。",
"suggestedApproach": "execute_single_tool",
"conversationGoal": "指定されたURLの内容や目的についての情報",
"finalContent": null,
"metadata": {
"message.id": "02038f42-154b-4363-9beb-d31512934ec5",
"task.complexity": "moderate",
"detected_language": "ja",
"requires_planning": true
},
"createdAt": "2026-04-18T19:16:16.964Z"
},
{
"llmLogId": "33097",
"timestamp": "2026-04-19T04:12:48.730Z",
"service": "agent-executor",
"operation": "agent.guardrail.completed",
"durationMs": 3170.34,
"conversationId": "3b72544d-d6b5-4577-b5f3-c39293124a57",
"intentType": null,
"confidenceScore": null,
"toolsUsed": null,
"success": null,
"agentType": "intent.guardrails",
"agentLevel": null,
"taskComplexity": null,
"currentMessage": null,
"contextSummary": null,
"suggestedApproach": null,
"conversationGoal": null,
"finalContent": null,
"metadata": { "guardrail_detected": false },
"createdAt": "2026-04-18T19:16:14.619Z"
},
{
"llmLogId": "33096",
"timestamp": "2026-04-19T04:12:33.662Z",
"service": "agent-executor",
"operation": "agent.intent.completed",
"durationMs": 4213.47,
"conversationId": "4d7c798d-2e3e-4d40-86ab-cbb6c685a3fb",
"intentType": "conversation",
"confidenceScore": 1,
"toolsUsed": null,
"success": null,
"agentType": "intent",
"agentLevel": "default",
"taskComplexity": null,
"currentMessage": "こんにちは",
"contextSummary": "新規会話開始。ユーザーが挨拶",
"suggestedApproach": "conversational_response",
"conversationGoal": "AIアシスタントとの挨拶交流",
"finalContent": null,
"metadata": {
"message.id": "cea9dbcc-4723-452a-bdcd-aa5f3a0e9ca6",
"task.complexity": "simple",
"detected_language": "ja",
"requires_planning": false
},
"createdAt": "2026-04-18T19:15:59.681Z"
}
],
"total": 33098,
"limit": 3,
"page": 1,
"hasMore": true
}

GET/v1/admin/llm-gateway-logs

LLM Gateway ログ一覧を取得します。作成日時の降順で返されます。1 リクエスト = 1 行で、モデル・プロバイダ・トークン・コスト・レイテンシ等の利用状況を記録します。

リクエスト例​

List LLM gateway logs
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/llm-gateway-logs?limit=10" \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
llmGatewayLogsarrayLLM Gateway ログオブジェクトの配列
llmGatewayLogs[].llmGatewayLogIdstringLLM Gateway ログID
llmGatewayLogs[].createdAtstring | null作成日時
llmGatewayLogs[].virtualKeyIdstring | null仮想キーID(呼び出し元クライアント)
llmGatewayLogs[].clientSessionIdstring | nullクライアントセッションID
llmGatewayLogs[].clientAgentIdstring | nullクライアントエージェントID
llmGatewayLogs[].apiFlavorstring | nullAPI フレーバー
llmGatewayLogs[].modelNamestring | nullモデル名(リクエスト指定)
llmGatewayLogs[].resolvedModelstring | null解決後モデル名
llmGatewayLogs[].providerstring | nullプロバイダ
llmGatewayLogs[].deploymentstring | nullデプロイメント
llmGatewayLogs[].tierstring | nullティア
llmGatewayLogs[].streamboolean | nullストリーミング有無
llmGatewayLogs[].successboolean | null成功/失敗
llmGatewayLogs[].httpStatusnumber | nullHTTP ステータス
llmGatewayLogs[].errorTypestring | nullエラータイプ
llmGatewayLogs[].errorCodestring | nullエラーコード
llmGatewayLogs[].usageStatusstring | null使用量ステータス
llmGatewayLogs[].latencyMsnumber | nullレイテンシ(ミリ秒)
llmGatewayLogs[].inputTokensnumber | null入力トークン数
llmGatewayLogs[].outputTokensnumber | null出力トークン数
llmGatewayLogs[].totalTokensnumber | null合計トークン数
llmGatewayLogs[].cachedTokensnumber | nullキャッシュトークン数
llmGatewayLogs[].cacheCreationInputTokensnumber | nullキャッシュ作成入力トークン数
llmGatewayLogs[].reasoningTokensnumber | null推論トークン数
llmGatewayLogs[].costUsdnumber | string | nullコスト(USD)
llmGatewayLogs[].currencystring | null通貨
llmGatewayLogs[].metadataobject | null付随メタデータ(キーは可変)
totalinteger総件数
limitinteger取得件数
pageintegerページ番号
hasMoreboolean次ページが存在するか

GET/v1/admin/access-logs

アクセスログ一覧を取得します。タイムスタンプの降順で返されます。

リクエスト例​

List access logs
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/access-logs?limit=10" \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
accessLogsarrayアクセスログオブジェクトの配列
accessLogs[].timestampstringタイムスタンプ
accessLogs[].sourceNamespacestring | nullソース名前空間
accessLogs[].sourceIpstring | nullソースIPアドレス
accessLogs[].methodstring | nullHTTPメソッド
accessLogs[].hoststring | nullホスト名
accessLogs[].pathstring | nullリクエストパス
accessLogs[].userAgentstring | nullUser-Agent
accessLogs[].statusCodenumber | nullHTTPステータスコード
accessLogs[].durationMsnumber | null処理時間(ミリ秒)
accessLogs[].authzResultstring | null認可結果
accessLogs[].authzReasonstring | null認可理由
totalinteger総件数
limitinteger取得件数
pageintegerページ番号
hasMoreboolean次ページが存在するか
skippedCountintegerこのページで読めなかったログの行の数(accessLogs には入りません。total はこの行も数えます)
レスポンス例(200 OK)​
JSON
{
"accessLogs": [
{
"timestamp": "2026-04-19T05:17:36.735896",
"sourceNamespace": "autonomous-agent",
"sourceIp": "127.0.0.1",
"method": "CONNECT",
"host": "optimizationguide-pa.googleapis.com:443",
"path": "",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"statusCode": 200,
"durationMs": 1,
"authzResult": "allowed",
"authzReason": "allowed: All allow"
},
{
"timestamp": "2026-04-19T03:50:36.766451",
"sourceNamespace": "autonomous-agent",
"sourceIp": "127.0.0.1",
"method": "CONNECT",
"host": "update.googleapis.com:443",
"path": "",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"statusCode": 200,
"durationMs": 6,
"authzResult": "allowed",
"authzReason": "allowed: All allow"
},
{
"timestamp": "2026-04-19T03:45:48.481023",
"sourceNamespace": "autonomous-agent",
"sourceIp": "127.0.0.1",
"method": "CONNECT",
"host": "optimizationguide-pa.googleapis.com:443",
"path": "",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"statusCode": 200,
"durationMs": 0,
"authzResult": "allowed",
"authzReason": "allowed: All allow"
}
],
"total": 57806,
"limit": 3,
"page": 1,
"hasMore": true,
"skippedCount": 0
}

GET/v1/admin/access-logs/stats

アクセスログの集計(リクエストの数・許可と拒否の数・拒否の多いパスとホスト)を取得します。期間は共通クエリパラメータの from・to で指定します(どちらも指定した日を含みます)。指定しなければ全期間です。limit・page は使いません。

リクエスト例​

Get access log stats
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/access-logs/stats?from=2026-04-01&to=2026-04-15" \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
totalRequestsinteger期間内のリクエストの数(認可の結果が記録されたもの)
allowedRequestsinteger許可されたリクエストの数
deniedRequestsinteger拒否されたリクエストの数
blockRatenumber拒否の割合(deniedRequests ÷ totalRequests を小数第 4 位に丸めた値。0〜1。リクエストが無い期間は 0)
topBlockedPathsarray拒否の多いリクエストパス(多い順に最大 10 件)
topBlockedPaths[].pathstring | nullリクエストパス。ログに記録されていない場合は null
topBlockedPaths[].countinteger拒否された数
topBlockedHostsarray拒否の多いホスト(多い順に最大 10 件)
topBlockedHosts[].hoststring | nullホスト名。ログに記録されていない場合は null
topBlockedHosts[].countinteger拒否された数
レスポンス例(200 OK)​
JSON
{
"totalRequests": 57806,
"allowedRequests": 57790,
"deniedRequests": 16,
"blockRate": 0.0003,
"topBlockedPaths": [
{ "path": "/upload", "count": 9 },
{ "path": "/", "count": 7 }
],
"topBlockedHosts": [
{ "host": "files.example.com:443", "count": 12 },
{ "host": "api.example.net:443", "count": 4 }
]
}

GET/v1/admin/guardrail-alerts

ガードレールアラート一覧を取得します。検知日時の降順で返されます。

Prompt Shield(プロンプトインジェクション・ジェイルブレイク)と Text Moderation(有害表現)で検知し、実行を停止した記録です。検知面(sourceSurface)は AI エージェント実行時(agent_executor)と LLM Gateway 経由(llm_gateway)の 2 種類があります。

リクエスト例​

List guardrail alerts
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/guardrail-alerts?limit=10&from=2026-08-01&to=2026-08-15" \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
guardrailAlertsarrayガードレールアラートオブジェクトの配列
guardrailAlerts[].guardrailAlertIdstringガードレールアラートID
guardrailAlerts[].detectedAtstring検知日時(ISO 8601形式)
guardrailAlerts[].sourceSurfacestring検知面(agent_executor: AIエージェント実行時 / llm_gateway: LLM Gateway経由)
guardrailAlerts[].detectionTypesarray検知種別(jailbreak_attack: プロンプトインジェクション / harmful_content: 有害表現)
guardrailAlerts[].promptShieldOriginobject | nullPrompt Shield の検知箇所。user_prompt(利用者の入力)と document_indexes(添付文書の位置)を持つ。文書の内容は含まれません
guardrailAlerts[].moderationCategoriesobject | nullカテゴリ別の深刻度。Hate / Sexual / SelfHarm / Violence を 0・2・4・6 の4段階で表す
guardrailAlerts[].moderationThresholdinteger | null判定に使用したしきい値
guardrailAlerts[].policyOutcomestring判定結果。現在は blocked(実行を停止)のみ
guardrailAlerts[].responseTemplateCodestring | null利用者へ返した定型応答のコード
guardrailAlerts[].statusstring対応状況(open: 未対応 / escalated: エスカレーション中 / closed: 対応済み / false_positive: 誤検知)
guardrailAlerts[].resolutionCodestring | null対応結果コード
guardrailAlerts[].resolvedAtstring | null対応完了日時(ISO 8601形式)
guardrailAlerts[].resolvedBystring | null対応を完了した管理者のユーザーID
guardrailAlerts[].createdAtstring作成日時(ISO 8601形式)
guardrailAlerts[].updatedAtstring更新日時(ISO 8601形式)
totalinteger総件数
limitinteger取得件数
pageintegerページ番号
hasMoreboolean次ページが存在するか
検知された利用者の情報について

本APIは、検知された利用者を特定する情報(利用者ID・会話ID・メッセージID)を返しません。ガードレールの品質確認と安全対応の状況把握を目的としたAPIであり、利用者個人の行動追跡には使用できません。

また、SelfHarm(自傷)のみを検知した事象はアラートとして記録されません。

レスポンス例(200 OK)​
JSON
{
"guardrailAlerts": [
{
"guardrailAlertId": "1f2e3d4c-5b6a-4789-8c9d-0e1f2a3b4c5d",
"detectedAt": "2026-08-13T02:10:00.000Z",
"sourceSurface": "agent_executor",
"detectionTypes": ["harmful_content"],
"promptShieldOrigin": null,
"moderationCategories": {
"Hate": 4,
"Sexual": 0,
"SelfHarm": 0,
"Violence": 0
},
"moderationThreshold": 2,
"policyOutcome": "blocked",
"responseTemplateCode": null,
"status": "open",
"resolutionCode": null,
"resolvedAt": null,
"resolvedBy": null,
"createdAt": "2026-08-13T02:10:00.100Z",
"updatedAt": "2026-08-13T02:10:00.100Z"
},
{
"guardrailAlertId": "2a3b4c5d-6e7f-4890-9a1b-2c3d4e5f6a7b",
"detectedAt": "2026-08-12T09:32:11.000Z",
"sourceSurface": "llm_gateway",
"detectionTypes": ["jailbreak_attack"],
"promptShieldOrigin": {
"user_prompt": true,
"document_indexes": []
},
"moderationCategories": null,
"moderationThreshold": null,
"policyOutcome": "blocked",
"responseTemplateCode": null,
"status": "closed",
"resolutionCode": "policy_violation_confirmed",
"resolvedAt": "2026-08-12T11:05:00.000Z",
"resolvedBy": "8f14e45f-ceea-4d3c-9b2a-1a2b3c4d5e6f",
"createdAt": "2026-08-12T09:32:11.050Z",
"updatedAt": "2026-08-12T11:05:00.000Z"
}
],
"total": 14,
"limit": 2,
"page": 1,
"hasMore": true
}

マスターデータ管理 SaaS​

部署・職種の CRUD 操作を行います。読み取り専用のマスターデータ取得(/v1/organizations、/v1/job-types)とは異なり、作成・更新・削除には master:manage スコープが必要です。

エンドポイント一覧​

メソッドエンドポイント説明スコープ
GET/v1/admin/organizations部署一覧を取得master:manage
POST/v1/admin/organizations部署を作成master:manage
GET/v1/admin/organizations/:identifier部署詳細を取得master:manage
PATCH/v1/admin/organizations/:identifier部署を更新master:manage
DELETE/v1/admin/organizations/:identifier部署を削除master:manage
GET/v1/admin/job-types職種一覧を取得master:manage
POST/v1/admin/job-types職種を作成master:manage
GET/v1/admin/job-types/:identifier職種詳細を取得master:manage
PATCH/v1/admin/job-types/:identifier職種を更新master:manage
DELETE/v1/admin/job-types/:identifier職種を削除master:manage

GET/v1/admin/organizations

部署一覧を取得します。全件取得(ページネーションなし)です。

リクエスト例​

List organizations (admin)
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/organizations \
2-H "Authorization: Bearer <access_token>"

レスポンスフィールド(200 OK)​

フィールド型説明
organizationsarray部署オブジェクトの配列
organizations[].codestring部署コード
organizations[].namestring部署名
organizations[].displayOrderinteger表示順
organizations[].isActiveboolean有効/無効
organizations[].createdAtstring作成日時
organizations[].updatedAtstring更新日時
レスポンス例(200 OK)​
JSON
{
"organizations": [
{
"code": "sample_org",
"name": "組織(サンプル)",
"displayOrder": 0,
"isActive": true,
"createdAt": "2025-12-12T10:40:45.220Z",
"updatedAt": "2026-04-13T01:21:57.695Z"
},
{
"code": "sales",
"name": "営業統括部",
"displayOrder": 1,
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2025-12-24T19:26:37.000Z"
},
{
"code": "engineering",
"name": "エンジニアリング統括部",
"displayOrder": 2,
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2025-12-24T19:26:37.000Z"
},
{
"code": "other",
"name": "その他",
"displayOrder": -1,
"isActive": false,
"createdAt": "2025-12-24T19:26:38.000Z",
"updatedAt": "2026-01-17T19:08:21.630Z"
}
]
}

エラーレスポンス​

ステータス説明
403master:manage スコープが不足

POST/v1/admin/organizations

部署を作成します。

リクエストボディ​

パラメータ型必須説明
codestring必須部署コード(一意)
namestring必須部署名
displayOrderinteger—表示順。省略した場合は、既存項目の末尾に追加されます
isActiveboolean—有効/無効(デフォルト: true)
レスポンス例(201 Created)​
JSON
{
"code": "marketing",
"name": "マーケティング統括部",
"displayOrder": 3,
"isActive": true,
"createdAt": "2026-04-19T02:15:32.000Z",
"updatedAt": "2026-04-19T02:15:32.000Z"
}

エラーレスポンス​

ステータス説明
400リクエストボディが不正(code / name 未指定、code・name が文字列ではない、isActive が真偽値ではない、displayOrder が整数ではない、ボディが壊れた JSON・JSON のオブジェクトではない(code: "invalid_body")など)
415ボディの Content-Type が application/json ではない(code: "unsupported_media_type")
403master:manage スコープが不足
409同じ code を持つ部署が既に存在する

GET/v1/admin/organizations/:identifier

部署の詳細を取得します。UUID または部署コードで指定できます。

パスパラメータ​

パラメータ型必須説明
identifierstring必須部署のUUIDまたは部署コード

リクエスト例​

Get organization
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/organizations/sales \
2-H "Authorization: Bearer <access_token>"
レスポンス例(200 OK)​
JSON
{
"code": "sales",
"name": "営業統括部",
"displayOrder": 1,
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2025-12-24T19:26:37.000Z"
}

エラーレスポンス​

ステータス説明
403master:manage スコープが不足
404指定された部署が見つからない

PATCH/v1/admin/organizations/:identifier

部署を更新します。更新可能なフィールドは name と isActive のみです。

パスパラメータ​

パラメータ型必須説明
identifierstring必須部署のUUIDまたは部署コード

リクエストボディ​

パラメータ型必須説明
namestring—部署名
isActiveboolean—有効/無効
レスポンス例(200 OK)​
JSON
{
"code": "sales",
"name": "営業統括部",
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2026-04-19T02:18:40.000Z"
}

エラーレスポンス​

ステータス説明
400リクエストボディが不正(name が 255 文字超過、name / isActive のどちらも未指定、name が文字列ではない・isActive が真偽値ではない、ボディが壊れた JSON・JSON のオブジェクトではない(code: "invalid_body")など)。name / isActive 以外のフィールドは無視されます
415ボディの Content-Type が application/json ではない(code: "unsupported_media_type")
403master:manage スコープが不足
404指定された部署が見つからない

DELETE/v1/admin/organizations/:identifier

部署を削除します。

パスパラメータ​

パラメータ型必須説明
identifierstring必須部署のUUIDまたは部署コード

リクエスト例​

Delete organization
1curl -X DELETE https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/organizations/sales \
2-H "Authorization: Bearer <access_token>"
レスポンス例(200 OK)​
JSON
{ "code": "sales", "deleted": true }
フィールド型説明
codestring削除した部署コード(パスパラメータの identifier をそのまま返す)
deletedboolean常に true

エラーレスポンス​

ステータス説明
403master:manage スコープが不足
404指定された部署が見つからない

GET/v1/admin/job-types

職種一覧を取得します。全件取得(ページネーションなし)です。レスポンスフィールドは部署一覧と同一構造です(organizations → jobTypes、部署コード → 職種コード)。

レスポンスフィールド(200 OK)​

フィールド型説明
jobTypesarray職種オブジェクトの配列
jobTypes[].codestring職種コード
jobTypes[].namestring職種名
jobTypes[].displayOrderinteger表示順
jobTypes[].isActiveboolean有効/無効
jobTypes[].createdAtstring作成日時
jobTypes[].updatedAtstring更新日時
レスポンス例(200 OK)​
JSON
{
"jobTypes": [
{
"code": "engineer",
"name": "エンジニア",
"displayOrder": 1,
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2025-12-24T19:26:37.000Z"
},
{
"code": "sales",
"name": "営業",
"displayOrder": 2,
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2025-12-24T19:26:37.000Z"
},
{
"code": "other",
"name": "その他",
"displayOrder": -1,
"isActive": false,
"createdAt": "2025-12-24T19:26:38.000Z",
"updatedAt": "2026-01-17T19:08:21.630Z"
}
]
}

エラーレスポンス​

ステータス説明
403master:manage スコープが不足

POST/v1/admin/job-types

職種を作成します。リクエストボディは部署作成と同一構造です。

レスポンス例(201 Created)​
JSON
{
"code": "manager",
"name": "管理職",
"displayOrder": 3,
"isActive": true,
"createdAt": "2026-04-19T02:20:15.000Z",
"updatedAt": "2026-04-19T02:20:15.000Z"
}

エラーレスポンス​

ステータス説明
400リクエストボディが不正(code / name 未指定、code・name が文字列ではない、isActive が真偽値ではない、displayOrder が整数ではない、ボディが壊れた JSON・JSON のオブジェクトではない(code: "invalid_body")など)
415ボディの Content-Type が application/json ではない(code: "unsupported_media_type")
403master:manage スコープが不足
409同じ code を持つ職種が既に存在する

GET/v1/admin/job-types/:identifier

職種の詳細を取得します。UUID または職種コードで指定できます。

パスパラメータ​

パラメータ型必須説明
identifierstring必須職種のUUIDまたは職種コード

リクエスト例​

Get job type
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/job-types/engineer \
2-H "Authorization: Bearer <access_token>"
レスポンス例(200 OK)​
JSON
{
"code": "engineer",
"name": "エンジニア",
"displayOrder": 1,
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2025-12-24T19:26:37.000Z"
}

エラーレスポンス​

ステータス説明
403master:manage スコープが不足
404指定された職種が見つからない

PATCH/v1/admin/job-types/:identifier

職種を更新します。更新可能なフィールドは name と isActive のみです。

パスパラメータ​

パラメータ型必須説明
identifierstring必須職種のUUIDまたは職種コード

リクエストボディ​

パラメータ型必須説明
namestring—職種名
isActiveboolean—有効/無効

リクエスト例​

Update job type
1curl -X PATCH https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/job-types/engineer \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json" \
4-d '{"name": "Senior Engineer", "isActive": true}'
レスポンス例(200 OK)​
JSON
{
"code": "engineer",
"name": "シニアエンジニア",
"isActive": true,
"createdAt": "2025-12-24T19:26:37.000Z",
"updatedAt": "2026-04-19T02:22:55.000Z"
}

エラーレスポンス​

ステータス説明
400リクエストボディが不正(name が 255 文字超過、name / isActive のどちらも未指定、name が文字列ではない・isActive が真偽値ではない、ボディが壊れた JSON・JSON のオブジェクトではない(code: "invalid_body")など)。name / isActive 以外のフィールドは無視されます
415ボディの Content-Type が application/json ではない(code: "unsupported_media_type")
403master:manage スコープが不足
404指定された職種が見つからない

DELETE/v1/admin/job-types/:identifier

職種を削除します。レスポンス構造は部署削除と同一です。

パスパラメータ​

パラメータ型必須説明
identifierstring必須職種のUUIDまたは職種コード

リクエスト例​

Delete job type
1curl -X DELETE https://api.fd.agenticstar.tm.softbank.jp/api/v1/admin/job-types/engineer \
2-H "Authorization: Bearer <access_token>"
レスポンス例(200 OK)​
JSON
{ "code": "engineer", "deleted": true }

エラーレスポンス​

ステータス説明
403master:manage スコープが不足
404指定された職種が見つからない

プロジェクト SaaS​

ここでは、システム連携(Client Credentials フロー)のトークンで呼ぶときの仕様を説明します。アプリケーション(Authorization Code フロー)のトークンで呼ぶときは、ユーザー API リファレンス(プロジェクト)を参照してください。

プロジェクトは、複数のエージェントを配置して業務を進める単位です。外部システムから、プロジェクトの一覧取得・実行の開始・実行状況の確認ができます。

プロジェクトには 2 つの型があり、実行の起こし方が異なります。

型説明実行の起こし方
workflow工程を順に進める型。最初の有効な工程から実行を開始します。POST /v1/projects/{projectId}/runs
cycle複数のエージェントをそれぞれのスケジュールで動かし続ける型。外部イベントによる臨時の 1 回を上乗せできます。POST /v1/projects/{projectId}/triggers/{triggerId}/fire
操作できる範囲
操作できるプロジェクトは、Console で設定したプロジェクト制限の範囲に限られます(Consoleガイド — プロジェクト制限の設定)。範囲外のプロジェクト ID を指定した場合は、存在しない場合と同じ 404 Not Found が返ります。システム連携のトークンで呼べるプロジェクトの API は、ここにある 4 つのエンドポイントだけです。ほかのプロジェクトの API を呼ぶと 403 Forbidden(forbidden)が返ります。

エンドポイント一覧​

メソッドエンドポイント説明スコープ (SaaS)
GET/v1/projectsプロジェクト一覧を取得project:read
POST/v1/projects/{projectId}/runsプロジェクトの実行を開始project:run
POST/v1/projects/{projectId}/triggers/{triggerId}/fireトリガーを発火して臨時に 1 回実行project:run
GET/v1/projects/{projectId}/runs/{runId}実行状況を取得project:read

GET/v1/projects

アクセスできるプロジェクトの一覧を取得します。カーソルベースのページネーションに対応しています。cycle 型のプロジェクトも一覧に含まれますが、実行開始(POST /v1/projects/{projectId}/runs)の対象にはなりません。

クエリパラメータ​

パラメータ型デフォルト説明
limitinteger50取得件数(1〜100)
cursorstring—次ページ取得用カーソル(前回レスポンスの cursor 値)

上記以外のクエリパラメータは無視されます。 myRole は利用者のトークンでのみ使えるパラメータのため、指定しても無視されます。

レスポンスフィールド(200 OK)​

フィールド型説明
projectsarrayプロジェクトオブジェクトの配列
projects[].projectIdstringプロジェクト ID(UUID)
projects[].namestringプロジェクト名
projects[].typestring"workflow" または "cycle"
projects[].statusstringプロジェクトの状態。"active" / "paused" / "archived" のいずれか
projects[].tagsarrayタグの配列。設定されていない場合は空の配列
hasMoreboolean次のページが存在するかどうか
cursorstring次ページ取得用カーソル。hasMore が true の場合のみ含まれます

レスポンス例​

JSON
{
"projects": [
{
"projectId": "550e8400-e29b-41d4-a716-446655440000",
"name": "受注処理フロー",
"type": "workflow",
"status": "active",
"tags": []
},
{
"projectId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "問い合わせ常時対応",
"type": "cycle",
"status": "active",
"tags": []
}
],
"hasMore": false
}

エラーレスポンス​

ステータス説明
400limit(1〜100 の範囲外)または cursor が不正(code は invalid_parameter)
403project:read スコープが不足、またはプロジェクト制限が未設定・不正(code は insufficient_scope または invalid_project_grant)

POST/v1/projects/{projectId}/runs

workflow 型のプロジェクトの実行を開始します。cycle 型に対して呼び出すと 409 Conflict(unsupported_project_type)が返ります。

リクエストヘッダー​

ヘッダー必須説明
Idempotency-Key必須呼び出し側が採番する重複実行の防止キー。8〜128 文字で、使用できる文字は半角英数字と _ . : - です

パスパラメータ​

パラメータ型必須説明
projectIdstring必須プロジェクトの ID(UUID)

リクエストボディ​

ボディは不要です。送信する場合は JSON のオブジェクトにしてください。含めたフィールドは無視されます。

レスポンスフィールド(201 Created / 200 OK)​

フィールド型説明
runIdstring実行の ID(UUID)。実行状況の取得に使用します
existingboolean?同じ Idempotency-Key での再送により既存の実行を返した場合に true。初回は含まれません

初回の呼び出しは 201 Created、同じ Idempotency-Key での再送は 200 OK が返ります。

リクエスト例​

curl
curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/projects/550e8400-e29b-41d4-a716-446655440000/runs \
-H "Authorization: Bearer <access_token>" \
-H "Idempotency-Key: nightly-batch-20260917" \
-H "Content-Type: application/json" \
-d '{}'

レスポンス例​

JSON
{
"runId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
Idempotency-Key の扱い
  • キーはプロジェクト単位で照合されます。有効期限はありません。
  • 同じキーで再送すると、プロジェクトが停止した後・同時実行の上限に達した後・その実行が終了した後であっても、同じ実行が返ります。
  • タイムアウトなどで成否が分からなくなった場合は、同じキーでそのまま再送してください。二重に実行されることはありません。
  • 別の実行を開始したい場合は、必ず新しいキーを採番してください。

エラーレスポンス​

ステータスcode説明
400idempotency_key_requiredIdempotency-Key ヘッダーが無い
400idempotency_key_invalidIdempotency-Key の長さまたは文字種が不正
400invalid_parameterprojectId が UUID の形式ではない
400invalid_bodyリクエストボディが壊れた JSON、または JSON のオブジェクトではない
413body_too_largeリクエストボディが 16 KiB を超過
415unsupported_media_typeリクエストボディがあるのに、Content-Type が application/json ではない
403insufficient_scopeproject:run スコープが不足
403invalid_project_grantプロジェクト制限が未設定、または設定内容が不正
404project_not_foundプロジェクトが存在しない、またはアクセス権が無い
400approvers_required有効な確認工程に確認担当者が設定されていない
409unsupported_project_typecycle 型のプロジェクトを指定した
409project_inactiveプロジェクトが有効な状態ではない(一時停止中、またはアーカイブ済み)
409unsupported_runtimeプロジェクト内のエージェントの実行環境が混在しているなど、実行できない構成
429too_many_active_runs同じプロジェクトで、実行中と確認待ちの実行が合わせて上限(3 件)に達している

POST/v1/projects/{projectId}/triggers/{triggerId}/fire

cycle 型のプロジェクトに設定された Webhook トリガーを発火し、対象のエージェントを臨時に 1 回だけ実行します。workflow 型に対して呼び出すと 404 Not Found が返ります。

定期実行の設定はそのまま維持されます。発火による実行は、定期実行とは別に追加されるものです。ただし、先の発火がまだ動き始めていない場合、あとの発火はその実行にまとまることがあります。まとまったときは jobId に先の発火と同じ値が返るため、発火の回数と実行の回数は必ずしも一致しません。

パスパラメータ​

パラメータ型必須説明
projectIdstring必須プロジェクトの ID(UUID)
triggerIdstring必須発火するトリガーの ID(UUID)

リクエストボディ​

パラメータ型必須説明
eventIdstring必須送信側が採番する一意な ID。同じ ID の再送は重複として扱われます。1〜160 文字で、使用できる文字は半角英数字と _ . : @ + - です
payloadany—エージェントへ渡す任意の JSON。JSON の文字列にして、エージェントへの依頼に添えて渡されます。文字列にしたときに 8,000 文字を超える部分は省略されます

レスポンスフィールド(202 Accepted)​

フィールド型説明
resultstring"accepted"(新しく受け付けた)または "duplicate"(同じ eventId で受付済み)
jobIdstring受付先のジョブ ID。実行状況の取得(GET /v1/projects/{projectId}/runs/{runId})には使えません

レスポンス例​

JSON
{
"result": "accepted",
"jobId": "9b2e4c61-0f3a-4a9b-9c1d-2f7e5a8b3c40"
}
202 の意味

ここでの 202 Accepted は、受付を記録したことだけを表します。実行はこの後に行われ、その成否はこの応答に含まれません。実行の結果は含まないため、202 を業務上の成功として扱わないでください。

再送​

冪等性はプロジェクト・トリガー・eventId の組み合わせで判定されます。同じ内容で再送すると 202 と result: "duplicate" が返ります。同じ eventId で payload が異なる場合は 409 Conflict(event_conflict)が返ります。

エラーレスポンス​

ステータスcode説明
400invalid_event_ideventId が無い、または形式が不正
400invalid_parameterprojectId または triggerId が UUID の形式ではない
400invalid_bodyリクエストボディが壊れた JSON、または JSON のオブジェクトではない
415unsupported_media_typeリクエストボディがあるのに、Content-Type が application/json ではない
403insufficient_scopeproject:run スコープが不足
403invalid_project_grantプロジェクト制限が未設定、または設定内容が不正
404trigger_not_foundプロジェクト・トリガーが存在しない、アクセス権が無い、Webhook ではないトリガーを指定した、または workflow 型のプロジェクトを指定した
409trigger_disabledトリガーが無効化されている
409project_not_activeプロジェクトが実行可能な状態にない
409placement_unavailable発火対象のエージェント配置が存在しない、または実行主体が未設定
409event_conflict同じ eventId で payload が異なる
413body_too_largeリクエストボディが 16 KiB を超過

GET/v1/projects/{projectId}/runs/{runId}

実行の状況を取得します。API(POST /v1/projects/{projectId}/runs)で開始した実行のほか、画面・メール・定期実行で始まった実行も取得できます。cycle 型のプロジェクトは実行(run)を作らないため、このエンドポイントの対象外です。

パスパラメータ​

パラメータ型必須説明
projectIdstring必須プロジェクトの ID(UUID)
runIdstring必須実行の ID(UUID)

レスポンスフィールド(200 OK)​

フィールド型説明
runIdstring実行の ID(UUID)
statusstring実行の状態。"running"(実行中)/ "waiting_gate"(確認待ち)/ "closed_done"(完了)/ "closed_rejected"(却下で終了)/ "closed_failed"(失敗で終了)/ "cancelled"(中断)のいずれか。"running" と "waiting_gate" 以外は、実行が終わったことを表します
originTypestring | null実行の始まり方。"manual"(画面から開始)/ "api"(API で開始)/ "mail"(メールで開始)/ "cron"(定期実行)のいずれか
originRefstring | null始まり方ごとの参照値。API で開始した実行では、開始したときの Idempotency-Key の値
currentStepIdstring | null進んでいる工程の ID(UUID)。レーンに分かれて進んでいる間は、分岐する前の工程の ID。完了した実行では null。ほかの理由で終わった実行では、終わったときの工程の ID が残る場合があります
startedByRefstring | null実行を始めたもの。値は下の「実行を始めたもの」の表のとおり
actorLabelstring | null利用者ではない起動者の表示名(システム連携の名前、またはメールの送信元のアドレス)。それ以外は null
startedAtstring | null開始日時(ISO 8601)。開始前は null
endedAtstring | null終了日時(ISO 8601)。終了前は null
summarystring | null完了した実行で、出力が記録された最後の完了した工程の出力(先頭 2,000 文字)。そうした工程が無い場合と、完了していない実行では null
runtimeKindstring | null実行環境の種類("autonomous")。古い実行では null の場合があります
cancelRequestedAtstring | null中断が求められた日時(ISO 8601)。求められていなければ null
configRevisionnumber | null案件設定の版(Marketplace 版の実行だけ)。SaaS 版の実行では null
stepsarray工程ごとの実行の記録。記録した順
steps[].runStepIdstring工程の実行の ID("rs:" で始まる)
steps[].stepIdstring | null工程の ID(UUID)
steps[].placementIdstring | nullその工程を担当した配置の ID(UUID)。Agent を動かさない行(確認の工程など)では null
steps[].executionIdstring | nullAgent の実行の ID。Agent を動かし始めると付きます
steps[].conversationIdstring | nullAgent の実行の会話の ID。Agent を動かし始めると付きます
steps[].statusstring"pending"(実行待ち)/ "running"(実行中)/ "waiting_gate"(確認待ち)/ "done"(完了)/ "failed"(失敗)/ "skipped"(実行を省略)のいずれか
steps[].attemptnumber | null同じ回の中での再試行の回数(1 から)
steps[].lanestring | null工程が属するレーンの ID。レーンに分かれていない工程は "main"
steps[].scheduledAtstring | null工程に時刻が設定されているとき、その時刻まで待つ行の予定日時(ISO 8601)。動き始めると null
steps[].startedAtstring | null開始日時(ISO 8601)
steps[].endedAtstring | null終了日時(ISO 8601)
steps[].outputSummarystring | null工程の出力の要約
steps[].outcomestring | nullAgent の実行の結果。"completed" / "incomplete" / "failed" / "timeout" / "stopped" / "denied" / "skipped" のいずれか。結果の無い行では null
steps[].reasonCodestring | null結果の理由コード
steps[].heldbooleanプロジェクトの一時停止で止めていて、再開を待っているか
steps[].visitnumber | nullこの工程に来た何回目か(差し戻しで増えます)。記録の無い行では null
steps[].reworkReasonstring | null差し戻しの理由
steps[].gateForstring | nullこの確認の行が、どの工程の実行(runStepId)のために立ったか
steps[].routedFromstring | null行き先を決めて工程を飛ばしたとき、行き先を決めた工程の実行(runStepId)
steps[].latestring | null結果が遅れて届き、進行に使わなかった理由
steps[].gateobject | null確認の工程の要約。確認の工程ではない行では null
steps[].gate.decisionstring | null"proceed"(進める)/ "send_back"(差し戻す)/ "reject"(却下)のいずれか。決まっていなければ null
steps[].gate.waitSourcestring | null何を待つ確認か。"human"(人の判断)/ "external"(外部の条件)
plannedPlacementsarray開始したときの設定で、動く予定の工程と配置の並び
plannedPlacements[].stepIdstring | null工程の ID(UUID)
plannedPlacements[].placementIdstring | null配置の ID(UUID)。確認の工程と Agent の無い工程では null
lanesarray分岐した後の、レーンごとの状況。分岐する前と、レーンを使わない実行では空の配列
lanes[].laneIdstringレーンの ID
lanes[].namestring | nullレーンの名前
lanes[].positionnumber | nullレーンの並び(1 から)
lanes[].statestring"running"(実行中)/ "waiting_gate"(確認待ち)/ "arrived"(合流待ち)/ "closed"(終了)のいずれか
lanes[].currentStepIdstring | nullそのレーンで進んでいる工程の ID(UUID)。合流待ちのレーンでは null。終わったレーンでは、最後の工程の ID が残る場合があります
lanes[].arrivedboolean合流する地点に着いたか

項目は、呼び出しに使ったトークン(アプリケーションかシステム連携か)によらず同じです。

実行を始めたもの​
始めたものstartedByRefactorLabel
利用者(画面・API、またはメンバーのアドレスから送ったメール)利用者 IDnull
システム連携"client:" に続くシステム連携の Client ID。Client ID が分からない場合は "system:federation-api"システム連携の名前(分からない場合は null)
メンバーではないアドレスから送ったメール"mail:" に続く送信元のハッシュ送信元のアドレス
定期実行nullnull

2026-09-25 より前にシステム連携が始めた実行では、startedByRef は null です。

レスポンス例​

JSON
{
"runId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "running",
"originType": "api",
"originRef": "nightly-batch-20260917",
"currentStepId": "5d6e7f80-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
"startedByRef": "bbbe4306-6975-420b-af47-fb4c8f48b4aa",
"actorLabel": null,
"startedAt": "2026-09-17T01:30:00.000Z",
"endedAt": null,
"summary": null,
"runtimeKind": "autonomous",
"cancelRequestedAt": null,
"configRevision": null,
"steps": [
{
"runStepId": "rs:1042",
"stepId": "5d6e7f80-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
"placementId": "e4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8",
"executionId": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d",
"conversationId": "9c8b7a6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
"status": "running",
"attempt": 1,
"lane": "main",
"scheduledAt": null,
"startedAt": "2026-09-17T01:30:01.000Z",
"endedAt": null,
"outputSummary": null,
"outcome": null,
"reasonCode": null,
"held": false,
"visit": 1,
"reworkReason": null,
"gateFor": null,
"routedFrom": null,
"late": null,
"gate": null
}
],
"plannedPlacements": [
{ "stepId": "5d6e7f80-1a2b-4c3d-8e9f-0a1b2c3d4e5f", "placementId": "e4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8" },
{ "stepId": "c2f1a8e4-6b3d-4e7a-9c15-8d2e4f6a7b90", "placementId": null }
],
"lanes": []
}

エラーレスポンス​

ステータスcode説明
400invalid_parameterprojectId または runId が UUID の形式ではない
403insufficient_scopeproject:read スコープが不足
403invalid_project_grantプロジェクト制限が未設定、または設定内容が不正
404run_not_found実行が存在しない、別のプロジェクトの実行を指定した、またはアクセス権が無い

プロジェクト API の注意事項​

項目内容
404 の意味プロジェクトが存在しない場合とアクセス権が無い場合は、どのエンドポイントでも同じ 404 Not Found が返り、どちらであるかは応答から区別できません。code はエンドポイントごとに決まっていて、実行の開始は project_not_found、トリガーの発火は trigger_not_found、実行状況の取得は run_not_found です。
型が対象外の場合発火を workflow に対して呼んだ場合、および実行状況を cycle のプロジェクトに対して呼んだ場合は 404 です。実行の開始を cycle に対して呼んだ場合だけは例外で、409 unsupported_project_type が返ります。
リクエストボディ実行の開始とトリガーの発火でボディを送る場合は、JSON オブジェクトにしてください。Content-Type: application/json 以外は 415、壊れた JSON や JSON のオブジェクトではないボディは 400(invalid_body)、16 KiB を超えるボディは 413 が返ります。
未知のフィールド / クエリ仕様に無いフィールドやクエリパラメータは無視されます。仕様にあるクエリパラメータの値が不正な場合と、読めない cursor を指定した場合は 400 Bad Request が返ります。
タイムアウト504 Gateway Timeout は「実行されなかったこと」を意味しません。実行の開始は同じ Idempotency-Key で、発火は同じ eventId と同じ本文でそのまま再送してください。

エラーレスポンス​

HTTP ステータスコード​

すべてのエンドポイントで返される可能性のある HTTP ステータスコードです。

ステータス説明
400 Bad Requestリクエストパラメータが不正
401 Unauthorizedトークンが無効または未指定
403 Forbiddenリソースへのアクセス権限なし
404 Not Foundリソースが存在しない
409 Conflictリソースが競合(例: 既存コードとの重複)
413 Payload Too Largeリクエストボディがサイズ上限を超過
415 Unsupported Media Typeリクエストボディの形式(Content-Type)に対応していない
429 Too Many Requestsレート制限を超過
500 Internal Server Errorサーバー内部エラー
502 Bad Gateway上流サービスとの通信エラー
503 Service Unavailableサービス一時利用不可
504 Gateway Timeout上流サービスの応答タイムアウト

エラーレスポンス形式​

すべてのエラーレスポンスは以下の共通構造で返されます。

フィールド型説明
error.typestringエラーの分類。"invalid_request_error"、"authentication_error"、"insufficient_scope_error"、"forbidden_error"、"not_found_error"、"conflict_error"、"payload_too_large_error"、"rate_limit_error"、"server_error"、"upstream_error" のいずれか
error.messagestring人間が読めるエラーメッセージ
error.codestring機械的に処理可能なエラーコード(例: "missing_parameter"、"invalid_parameter"、"invalid_token")
error.paramstringエラーの原因となったパラメータ名。バリデーションエラー時のみ含まれます
error.suggested_actionstring推奨される対処方法。一部のエラーでのみ含まれます
JSON
{
"error": {
"type": "invalid_request_error",
"message": "Invalid parameter: limit",
"code": "invalid_parameter",
"param": "limit",
"suggested_action": "limit must be between 1 and 100"
}
}

自動記録される管理操作 SaaS​

以下の管理操作を実行すると、監査ログが自動的に記録されます。

リソース操作action
ユーザーロール変更(管理者へ昇格)promote
ユーザーロール変更(一般へ降格)demote
ユーザー承認approve
ユーザー承認取消reject
ユーザー削除delete
部署作成create
部署更新update
部署削除delete
職種作成create
職種更新update
職種削除delete