Skip to main content
OpenAPI

成员 API

组织成员的查询、统计、配额与管理接口。

列出成员

GET /v1/organizations/{org_id}/members
查询参数:
参数类型说明
userIdstring按用户 UUID 精确匹配,不能与 email 同时使用
emailstring按邮箱精准查询
includeDeletedboolean是否包含已删除成员,默认 false
maxResultsinteger每页条目数,默认 20,最大 100
nextTokenstring分页游标
userId 必须是非空的标准 UUID。按 userIdemail 精确匹配时,最多返回一个成员且不返回新的 nextToken;没有匹配成员时返回 200 OK 和空 members 数组。 请求示例:
curl -X GET "https://api.qoder.com.cn/v1/organizations/org_xxx/members?maxResults=10" \
  -H "Authorization: Bearer <api_key>"
响应示例:
{
  "members": [
    {
      "id": "member_001",
      "userId": "550e8400-e29b-41d4-a716-446655440000",
      "email": "user@example.com",
      "name": "张三",
      "role": "org_member",
      "status": "ENABLED",
      "joinedAt": "2025-01-10T08:00:00Z"
    }
  ],
  "maxResults": 10,
  "nextToken": "token_abc"
}

成员状态值

状态说明
ENABLED已启用
DISABLED已禁用
UNACTIVATED未激活
APPROVE_PENDING审批中
APPROVE_DECLINED审批拒绝
DELETED已删除

获取成员详情

GET /v1/organizations/{org_id}/members/{member_id}
请求示例:
curl -X GET "https://api.qoder.com.cn/v1/organizations/org_xxx/members/member_001" \
  -H "Authorization: Bearer <api_key>"
响应示例:
{
  "id": "member_001",
  "userId": "550e8400-e29b-41d4-a716-446655440000",
  "email": "user@example.com",
  "name": "张三",
  "role": "org_member",
  "status": "ENABLED",
  "joinedAt": "2025-01-10T08:00:00Z"
}

创建成员

POST /v1/organizations/{org_id}/members
创建新用户并加入当前组织。该接口只创建新账号;邮箱已注册时不会复用已有账号,也不会修改已有账号的密码。 请求体:
{
  "email": "user@example.com",
  "name": "张三",
  "password": "StrongPassword123!",
  "role": "org_member"
}
字段类型必填说明
emailstring新用户邮箱,邮箱域名必须已在组织中验证并启用
namestring用户和成员展示名
passwordstring初始密码,必须满足密码强度要求且不会在响应中返回
rolestringorg_memberorg_admin,默认 org_member
请求示例:
curl -X POST "https://api.qoder.com.cn/v1/organizations/org_xxx/members" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"email":"user@example.com","name":"张三","password":"StrongPassword123!","role":"org_member"}'
响应示例:
{
  "member": {
    "id": "member_001",
    "userId": "550e8400-e29b-41d4-a716-446655440000",
    "email": "user@example.com",
    "name": "张三",
    "role": "org_member",
    "status": "ENABLED",
    "joinedAt": "2026-05-23T08:00:00Z"
  }
}
可能返回 InvalidParameterInvalidPasswordInvalidRoleEmailDomainRequiredEmailDomainNotSupportedInsufficientSeats(HTTP 400)或 EmailAlreadyExists(HTTP 409)。

成员统计

GET /v1/organizations/{org_id}/members/statistics
请求示例:
curl -X GET "https://api.qoder.com.cn/v1/organizations/org_xxx/members/statistics" \
  -H "Authorization: Bearer <api_key>"
响应示例:
{
  "totalMembers": 50,
  "billableMembers": 45,
  "adminMembers": 3,
  "purchasedSeats": 60,
  "remainingSeats": 15
}
字段说明
totalMembers成员总数
billableMembers计费成员数
adminMembers管理员数量
purchasedSeats已购席位数
remainingSeats剩余席位数

删除成员

DELETE /v1/organizations/{org_id}/members/{member_id}
请求示例:
curl -X DELETE "https://api.qoder.com.cn/v1/organizations/org_xxx/members/member_001" \
  -H "Authorization: Bearer <api_key>"
成功时返回 HTTP 204 No Content。

获取成员用量

GET /v1/organizations/{org_id}/members/{member_id}/quota
请求示例:
curl -X GET "https://api.qoder.com.cn/v1/organizations/org_xxx/members/member_001/quota" \
  -H "Authorization: Bearer <api_key>"
响应示例:
{
  "planQuota": 1000,
  "resourcePackageQuota": 500,
  "totalQuota": 1500,
  "sharedQuota": 200
}
字段说明
planQuota套餐配额
resourcePackageQuota资源包配额
totalQuota总配额
sharedQuota共享配额

批量获取成员用量

POST /v1/organizations/{org_id}/members/batchGetQuota
请求体:
{
  "memberIds": ["member_001", "member_002", "member_003"]
}
  • memberIds:成员 ID 数组,支持 1–100 个。
请求示例:
curl -X POST "https://api.qoder.com.cn/v1/organizations/org_xxx/members/batchGetQuota" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"memberIds": ["member_001", "member_002"]}'
响应示例:
{
  "quotas": [
    {
      "memberId": "member_001",
      "planQuota": 1000,
      "resourcePackageQuota": 500,
      "totalQuota": 1500,
      "sharedQuota": 200
    },
    {
      "memberId": "member_002",
      "planQuota": 1000,
      "resourcePackageQuota": 0,
      "totalQuota": 1000,
      "sharedQuota": 200
    }
  ]
}

更新成员 Add-On Cap

PUT /v1/organizations/{org_id}/members/{member_id}/addon-cap
请求体:
{
  "addOnCap": 500
}
addOnCap 接受非负整数、null 或省略;null 或省略表示不限制,0 表示禁用。 请求示例:
curl -X PUT "https://api.qoder.com.cn/v1/organizations/org_xxx/members/member_001/addon-cap" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"addOnCap": 500}'
响应示例:
{
  "memberId": "member_001",
  "email": "user@example.com",
  "addOnCap": 500
}

批量更新 Add-On Cap

POST /v1/organizations/{org_id}/batchUpdateAddOnCap
请求体:
{
  "addOnCap": 500,
  "memberIds": ["member_001", "member_002"]
}
单次请求支持 1~100 个非空成员 ID,所有成员设置为相同的额度上限。addOnCap 接受非负整数、null 或省略;null 或省略表示不限制。 请求示例:
curl -X POST "https://api.qoder.com.cn/v1/organizations/org_xxx/batchUpdateAddOnCap" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"addOnCap": 500, "memberIds": ["member_001", "member_002"]}'
响应示例:
{
  "members": [
    { "memberId": "member_001", "previousAddOnCap": 300 },
    { "memberId": "member_002" }
  ]
}
成员之前无限制时不返回 previousAddOnCap。请求校验可能返回 InvalidBatchAddOnCapRequestEmptyMemberIDsTooManyMemberIDsEmptyMemberIDAtIndexInvalidAddOnCapFormat