メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

このドキュメントについて

Qoder UI 外でメンバーとクォータを管理するインテグレーション向け。事前に API キーの取得 を完了し、共通仕様 を参照してください。

前提条件

  • 有効な API キー:Authorization: Bearer <api_key>
  • キーは対象組織に紐づき、呼び出し元の権限が操作を許可している必要があります。

API 一覧

1. メンバー一覧

GET /v1/organizations/{organization_id}/members 組織のメンバーリストをページネーションで取得します。キーワード検索をサポートします。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID

クエリパラメータ

パラメータ必須説明
emailstringいいえメール完全一致検索
includeDeletedstringいいえtrue に設定すると削除済みメンバーを含む
maxResultsintegerいいえページサイズ(デフォルト 20、最大 100)
nextTokenstringいいえページネーションカーソル

成功レスポンス(200 OK)

デフォルトクエリ(アクティブメンバーのみ):
{
  "members": [
    {
      "id": "member_abc123",
      "name": "Alice",
      "email": "alice@example.com",
      "role": "org_admin",
      "status": "ENABLED",
      "joinedAt": "2025-06-01T08:00:00Z"
    },
    {
      "id": "member_ghi789",
      "name": "Charlie",
      "role": "org_member",
      "status": "ENABLED",
      "joinedAt": "2025-07-10T14:30:00Z"
    }
  ],
  "maxResults": 20,
  "nextToken": "eyJwYWdlIjogMn0="
}
一部のメンバーレコードでは email フィールドが返されない場合があります。インテグレーション時はオプションフィールドとして処理してください。
削除済みメンバーを含む(**includeDeleted=true**):
{
  "members": [
    {
      "id": "member_abc123",
      "name": "Alice",
      "email": "alice@example.com",
      "role": "org_admin",
      "status": "ENABLED",
      "joinedAt": "2025-06-01T08:00:00Z"
    },
    {
      "id": "member_def456",
      "name": "Bob",
      "email": "bob@example.com",
      "role": "org_member",
      "status": "DELETED",
      "joinedAt": "2025-03-15T10:00:00Z",
      "deletedAt": "2026-02-01T12:00:00Z"
    }
  ],
  "maxResults": 20,
  "nextToken": ""
}
deletedAt は削除済みメンバーにのみ返されます。アクティブメンバーにはこのフィールドは含まれません。nextToken が空文字列の場合は最終ページです。

レスポンスフィールド

フィールド説明
membersarrayメンバーリスト
members[].idstringメンバー ID
members[].namestringメンバー名
members[].emailstringメンバーメール(空の場合あり)
members[].rolestringロール名(例:org_adminorg_member
members[].statusstringメンバーステータス:ENABLED(アクティブ)、DISABLED(停止済み)、UNACTIVATED(未アクティブ化)、APPROVE_PENDING(承認待ち)、APPROVE_DECLINED(承認拒否)、DELETED(削除済み)
members[].joinedAtstring参加日時(ISO 8601)
members[].deletedAtstring または null削除日時(ISO 8601);アクティブメンバーには返されない
maxResultsint32このリクエストのページサイズ
nextTokenstring次ページカーソル;空は最終ページ

2. メンバー詳細取得

GET /v1/organizations/{organization_id}/members/{member_id} 単一メンバーの詳細情報を取得します。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID
member_idstringはいメンバー ID

成功レスポンス(200 OK)

アクティブメンバー:
{
  "id": "member_abc123",
  "name": "Alice",
  "email": "alice@example.com",
  "role": "org_admin",
  "status": "ENABLED",
  "joinedAt": "2025-06-01T08:00:00Z"
}
削除済みメンバー(**GetMember** は削除済みメンバーも自動的に含む):
{
  "id": "member_def456",
  "name": "Bob",
  "email": "bob@example.com",
  "role": "org_member",
  "status": "DELETED",
  "joinedAt": "2025-03-15T10:00:00Z",
  "deletedAt": "2026-02-01T12:00:00Z"
}

レスポンスフィールド

「メンバー一覧」の members[] フィールドと同一です。

3. メンバー統計取得

GET /v1/organizations/{organization_id}/members/statistics 組織メンバーに関する統計データを取得します。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID

成功レスポンス(200 OK)

{
  "totalMembers": 50,
  "billableMembers": 45,
  "adminMembers": 3,
  "purchasedSeats": 100,
  "remainingSeats": 55
}

レスポンスフィールド

フィールド説明
totalMembersint32総メンバー数
billableMembersint32課金対象メンバー数
adminMembersint32管理者数
purchasedSeatsint32購入済みシート数
remainingSeatsint32残りシート数

4. メンバー削除

DELETE /v1/organizations/{organization_id}/members/{member_id} 組織からメンバーを削除します。削除前に、現在の課金サイクル内での使用量を確認します。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID
member_idstringはいメンバー ID

成功レスポンス(200 OK)

現サイクルで使用量あり(シート解放はサイクル終了まで遅延):
{
  "id": "member_abc123",
  "hasBillingCycleUsage": true
}
現サイクルで使用量なし(シートを即時解放可能):
{
  "id": "member_abc123",
  "hasBillingCycleUsage": false
}

レスポンスフィールド

フィールド説明
idstring削除されたメンバーの ID
hasBillingCycleUsagebool現在の課金サイクル内で使用量があるか(シート解放タイミングに影響)

エラーレスポンス

メンバーがチームに所属していない(404)
{
  "requestId": "req_abc123",
  "code": "UserNotTeamMember",
  "message": "User is not a member of this team"
}
メンバー数不足(400)
{
  "requestId": "req_abc123",
  "code": "InsufficientMembers",
  "message": "The number of organization members cannot be less than the minimum requirement"
}

5. メンバークォータ取得

GET /v1/organizations/{organization_id}/members/{member_id}/quota 指定メンバーの完全な使用状況を取得します。プランクォータ、リソースパッククォータ、合計クォータ、組織共有パッククォータを含みます。現在は big_model_credits ディメンション固定です。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID
member_idstringはいメンバー ID

成功レスポンス(200 OK)

組織共有パックあり、ステータス正常:
{
  "userId": "user_abc123",
  "quotaKey": "big_model_credits",
  "planQuota": {
    "quotaSummary": {
      "usedValue": 350.5,
      "limitValue": 1000.0,
      "unit": "credits"
    }
  },
  "resourcePackageQuota": {
    "quotaSummary": {
      "usedValue": 100.0,
      "limitValue": 500.0,
      "unit": "credits"
    }
  },
  "totalQuota": {
    "quotaSummary": {
      "usedValue": 450.5,
      "limitValue": 1500.0,
      "unit": "credits"
    }
  },
  "sharedQuota": {
    "quotaSummary": {
      "usedValue": 200.0,
      "limitValue": 1000.0,
      "unit": "credits"
    }
  },
  "lastResetAt": "2026-03-01T00:00:00Z",
  "nextResetAt": "2026-04-01T00:00:00Z",
  "status": "active"
}
組織共有パックなし、使用量超過:
{
  "userId": "user_def456",
  "quotaKey": "big_model_credits",
  "planQuota": {
    "quotaSummary": {
      "usedValue": 1000.0,
      "limitValue": 1000.0,
      "unit": "credits"
    }
  },
  "totalQuota": {
    "quotaSummary": {
      "usedValue": 1000.0,
      "limitValue": 1000.0,
      "unit": "credits"
    }
  },
  "lastResetAt": "2026-03-01T00:00:00Z",
  "nextResetAt": "2026-04-01T00:00:00Z",
  "status": "restricted"
}
組織に共有パックがない場合 sharedQuota は返されません。メンバーにリソースパックがない場合 resourcePackageQuota は返されません。statusrestricted の場合、使用量上限に達しています。

レスポンスフィールド

フィールド説明
userIdstringユーザー ID
quotaKeystringクォータディメンションキー
planQuotaobjectプランクォータ情報
resourcePackageQuotaobjectリソースパッククォータ情報
totalQuotaobject合計クォータ情報(プラン + リソースパック)
sharedQuotaobject または null組織共有パッククォータ(組織に共有パックがない場合は返されない)
lastResetAtstring前回リセット日時(ISO 8601)
nextResetAtstring次回リセット日時(ISO 8601)
statusstringユーザーステータス:active または restricted
クォータサマリーフィールド
フィールド説明
usedValuefloat64使用量
limitValuefloat64クォータ上限
unitstring単位(例:credits

6. メンバー Add-On Cap 更新

PUT /v1/organizations/{organization_id}/members/{member_id}/addon-cap メンバーの Shared Add-On クォータキャップを更新します(Big Model Credits クォータに基づく)。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID
member_idstringはいメンバー ID

リクエストパラメータ(JSON)

フィールド必須バリデーション説明
addOnCapint64 または nullはい非負の整数または nullクォータキャップ;null は無制限、0 は無効

リクエスト例

クォータキャップを設定:
{
  "addOnCap": 1000
}
無制限に設定:
{
  "addOnCap": null
}

成功レスポンス(200 OK)

{
  "memberId": "member_abc123",
  "email": "alice@example.com",
  "addOnCap": 1000
}
無制限の場合:
{
  "memberId": "member_abc123",
  "email": "alice@example.com",
  "addOnCap": null
}

レスポンスフィールド

フィールド説明
memberIdstringメンバー ID
emailstringメンバーメール
addOnCapint64 または null現在のクォータキャップ;null は無制限

エラーレスポンス

addOnCap 形式無効(400)
{
  "requestId": "req_abc123",
  "code": "InvalidAddOnCapFormat",
  "message": "Invalid addOnCap format"
}
メンバーがチームに所属していない(404)
{
  "requestId": "req_abc123",
  "code": "UserNotTeamMember",
  "message": "User is not a member of this team"
}

7. メンバー Add-On Cap 一括更新

POST /v1/organizations/{organization_id}/batchUpdateAddOnCap 指定メンバーの Shared Add-On クォータキャップを一括更新します(Big Model Credits クォータに基づく)。1リクエストあたり最大100メンバー、全メンバーに同じキャップを設定します。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID

リクエストパラメータ(JSON)

フィールド必須バリデーション説明
addOnCapint64 または nullはい非負の整数または nullクォータキャップ;null は無制限、0 は無効
memberIdsstring[]はい1〜100 個の非空文字列更新対象のメンバー ID リスト

リクエスト例

一括でクォータキャップを設定:
{
  "addOnCap": 1000,
  "memberIds": ["member_abc123", "member_def456"]
}
一括で無制限に設定:
{
  "addOnCap": null,
  "memberIds": ["member_abc123"]
}

成功レスポンス(200 OK)

{
  "members": [
    {
      "memberId": "member_abc123",
      "previousAddOnCap": 500
    },
    {
      "memberId": "member_def456",
      "previousAddOnCap": null
    }
  ]
}
previousAddOnCapnull の場合、そのメンバーは以前制限なし(無制限)でした。

レスポンスフィールド

フィールド説明
membersarray更新結果リスト、リクエストの memberIds と同じ順序
members[].memberIdstringメンバー ID
members[].previousAddOnCapint64 または null更新前のクォータキャップ;null は以前無制限だったことを示す

エラーレスポンス

addOnCap 形式無効(400)
{
  "requestId": "req_abc123",
  "code": "InvalidAddOnCapFormat",
  "message": "Invalid addOnCap format"
}
memberIds が空(400)
{
  "requestId": "req_abc123",
  "code": "BadRequest",
  "message": "memberIds must not be empty"
}
memberIds が 100 件超過(400)
{
  "requestId": "req_abc123",
  "code": "BadRequest",
  "message": "memberIds must not exceed 100"
}

8. メンバー使用制限取得

GET /v1/organizations/{organization_id}/members/{member_id}/usage-limits/{quota_key} 指定メンバーの指定クォータキーにおける使用制限設定を取得します。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID
member_idstringはいメンバー ID
quota_keystringはいクォータディメンションキー(例:big_model_credits

成功レスポンス(200 OK)

制限有効:
{
  "id": "limit_abc123",
  "organizationId": "org_xxx",
  "userId": "user_abc123",
  "quotaKey": "big_model_credits",
  "limitValue": 1000.0,
  "usedValue": 350.5,
  "resetCycle": "monthly",
  "isActive": true,
  "lastResetAt": "2026-03-01T00:00:00Z",
  "nextResetAt": "2026-04-01T00:00:00Z"
}
制限一時停止(**isActive: false**):
{
  "id": "limit_abc123",
  "organizationId": "org_xxx",
  "userId": "user_abc123",
  "quotaKey": "big_model_credits",
  "limitValue": 1000.0,
  "usedValue": 350.5,
  "resetCycle": "monthly",
  "isActive": false,
  "lastResetAt": "2026-03-01T00:00:00Z",
  "nextResetAt": "2026-04-01T00:00:00Z"
}
isActivefalse の場合、制限ルールは適用されませんが、レコードは保持され、いつでも再有効化できます。

レスポンスフィールド

フィールド説明
idstring使用制限レコード ID
organizationIdstring組織 ID
userIdstringユーザー ID
quotaKeystringクォータディメンションキー
limitValuefloat64使用量上限値
usedValuefloat64使用量
resetCyclestringリセットサイクル(例:monthly
isActivebool有効かどうか
lastResetAtstring前回リセット日時(ISO 8601)
nextResetAtstring次回リセット日時(ISO 8601)

9. メンバー使用制限更新

PUT /v1/organizations/{organization_id}/members/{member_id}/usage-limits/{quota_key} 指定メンバーの指定クォータキーにおける使用制限を更新します。制限が存在しない場合は自動作成されます。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID
member_idstringはいメンバー ID
quota_keystringはいクォータディメンションキー(例:big_model_credits

リクエストパラメータ(JSON)

フィールド必須説明
limitValuefloat64はい使用量上限値
resetCyclestringいいえリセットサイクル(例:monthly
isActiveboolいいえ有効かどうか

リクエスト例

制限の作成または完全更新:
{
  "limitValue": 1000.0,
  "resetCycle": "monthly",
  "isActive": true
}
上限値のみ変更(既存の resetCycle と isActive を保持):
{
  "limitValue": 2000.0
}
制限の一時停止(上限値は変更なし):
{
  "limitValue": 1000.0,
  "isActive": false
}

成功レスポンス(200 OK)

「メンバー使用制限取得」と同じレスポンス形式です。

10. メンバー使用制限の解除

DELETE /v1/organizations/{organization_id}/members/{member_id}/usage-limits/{quota_key} 指定メンバーの指定クォータキーにおける使用制限を解除し、無制限状態に戻します。

パスパラメータ

パラメータ必須説明
organization_idstringはい組織 ID
member_idstringはいメンバー ID
quota_keystringはいクォータディメンションキー(例:big_model_credits

成功レスポンス(200 OK)

「メンバー使用制限取得」と同じレスポンス形式です。

エラーコード

エラーコードHTTP ステータス説明
BadRequest400リクエストパラメータが無効(例:member_id が空、addOnCap が負の数)
InvalidAddOnCapFormat400addOnCap 形式が無効
InsufficientMembers400組織メンバー数が最低要件を下回ることはできない
Unauthorized401API キーが欠落または無効
Forbidden403この組織へのアクセス権限なし
NotFound404メンバーが見つからない
UserNotTeamMember404ユーザーはこのチームのメンバーではない
InternalError500サーバー内部エラー
エラーレスポンスの形式は 共通仕様エラーレスポンス を参照してください。

使用例

メンバー一覧

curl -X GET "https://api.qoder.com/v1/organizations/org_xxx/members?maxResults=20" \
  -H "Authorization: Bearer <api_key>"

メールでメンバー検索

curl -X GET "https://api.qoder.com/v1/organizations/org_xxx/members?email=alice@example.com" \
  -H "Authorization: Bearer <api_key>"

メンバー一覧(削除済みを含む)

curl -X GET "https://api.qoder.com/v1/organizations/org_xxx/members?includeDeleted=true" \
  -H "Authorization: Bearer <api_key>"

メンバー詳細取得

curl -X GET "https://api.qoder.com/v1/organizations/org_xxx/members/member_abc123" \
  -H "Authorization: Bearer <api_key>"

メンバー統計取得

curl -X GET "https://api.qoder.com/v1/organizations/org_xxx/members/statistics" \
  -H "Authorization: Bearer <api_key>"

メンバー削除

curl -X DELETE "https://api.qoder.com/v1/organizations/org_xxx/members/member_abc123" \
  -H "Authorization: Bearer <api_key>"

メンバー Add-On Cap 更新

curl -X PUT "https://api.qoder.com/v1/organizations/org_xxx/members/member_abc123/addon-cap" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "addOnCap": 1000
  }'

メンバークォータ取得

curl -X GET "https://api.qoder.com/v1/organizations/org_xxx/members/member_abc123/quota" \
  -H "Authorization: Bearer <api_key>"

メンバー Add-On Cap 一括更新

curl -X POST "https://api.qoder.com/v1/organizations/org_xxx/batchUpdateAddOnCap" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "addOnCap": 1000,
    "memberIds": ["member_abc123", "member_def456"]
  }'

メンバー使用制限取得

curl -X GET "https://api.qoder.com/v1/organizations/org_xxx/members/member_abc123/usage-limits/big_model_credits" \
  -H "Authorization: Bearer <api_key>"

メンバー使用制限更新

curl -X PUT "https://api.qoder.com/v1/organizations/org_xxx/members/member_abc123/usage-limits/big_model_credits" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "limitValue": 1000.0,
    "resetCycle": "monthly",
    "isActive": true
  }'

メンバー使用制限の解除

curl -X DELETE "https://api.qoder.com/v1/organizations/org_xxx/members/member_abc123/usage-limits/big_model_credits" \
  -H "Authorization: Bearer <api_key>"