Hub documentation
Manajemen Kontrol Akses Pengguna Secara Programatik
Manajemen Kontrol Akses Pengguna Secara Programatik
Panduan ini menjelaskan cara mengelola peran anggota organisasi dan keanggotaan grup sumber daya melalui Hub API: mengubah peran organisasi anggota dan penugasan grup sumber daya, mendaftar grup sumber daya, menambahkan pengguna ke grup, dan alur kerja batch.
Daftar isi:
- Ubah peran anggota melalui API β Atur peran organisasi anggota dan penugasan grup sumber daya (satu anggota per permintaan).
- API Grup Sumber Daya β Daftarkan grup sumber daya dan tambahkan pengguna ke dalamnya.
- Konfigurasi auto-join melalui API β Aktifkan atau nonaktifkan auto-join pada Resource Group.
- Undang kolaborator eksternal melalui API β Undang pengguna dari luar organisasi ke dalam Resource Group.
- Ubah tipe akun anggota melalui API β Mengonversi anggota menjadi kolaborator eksternal, atau sebaliknya.
Ubah peran anggota melalui API
Anda dapat mengubah peran organisasi anggota (No Access / Read / Contributor / Write / Admin) dan, secara opsional, peran mereka di grup sumber daya menggunakan Hub API. API ini memperbarui satu anggota per permintaan. Untuk mengubah peran beberapa anggota, panggil API dalam sebuah loop (contoh di bawah).
Referensi OpenAPI: PUT /api/organizations/{name}/members/{username}/role
Prasyarat
- Organisasi Anda harus memiliki rencana langganan (misalnya Team atau Enterprise). Jika tidak, endpoint mengembalikan 402.
- Anda harus terautentikasi sebagai anggota organisasi dengan izin Write (atau Admin) pada organisasi tersebut.
- Pengguna target harus sudah menjadi anggota dari organisasi tersebut.
URL dasar dan autentikasi
- URL dasar:
https://huggingface.co - Authentication: Kirim token Anda di header permintaan: Buat token fine-grained dengan izin βWrite access to organizations settings / member managementβ yang di-scope ke organisasi Anda di https://huggingface.co/settings/tokens.
Authorization: Bearer <your_access_token>
Endpoint untuk mengubah peran anggota
Permintaan
PUT /api/organizations/{org_name}/members/{username}/role
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"role": "read",
"resourceGroups": []
}- Path parameters
org_name: Slug organisasi (mis.my-org).username: username Hugging Face dari anggota yang perannya akan Anda ubah.
- Body
role(wajib): Peran level organisasi anggota. Salah satu dari:"no_access","read","contributor","write", atau"admin".resourceGroups(opsional): Array dari penugasan resource group untuk pengguna ini. Setiap item:id: ID grup sumber daya (string heksadesimal 24 karakter; dapatkan ID dari API daftar grup sumber daya).role: Peran dalam grup sumber daya tersebut:"read","contributor","write","admin", atau"inherit".
- Jika Anda mengabaikan
resourceGroupsatau meneruskan[], pengguna akan dihapus dari semua grup sumber daya. Untuk hanya mengubah peran organisasi dan membiarkan grup sumber daya tetap tidak berubah, teruskan keanggotaan grup sumber daya saat ini (body selalu mengatur kedua peran organisasi dan daftar grup sumber daya).
Contoh (curl) β atur peran organisasi menjadi βreadβ, tanpa grup sumber daya (menghapus grup mana pun yang sebelumnya diikuti pengguna)
curl -s -X PUT \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{"role":"read","resourceGroups":[]}' \
"https://huggingface.co/api/organizations/my-org/members/member1/role"Contoh (curl) β atur peran organisasi dan peran grup sumber daya (menimpa grup saat ini)
curl -s -X PUT \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{"role":"write","resourceGroups":[{"id":"507f1f77bcf86cd799439011","role":"read"}]}' \
"https://huggingface.co/api/organizations/my-org/members/member2/role"Respons sukses: Status 200 OK; isi: { "success": true }.
Galat yang umum
400β Body tidak valid (misalnyaidrole atau resource group tidak valid).402β Organisasi tidak memiliki paket langganan.403β Tidak diizinkan (misalnya, Anda tidak memiliki Write pada org, atau resource group tidak berada di dalam org).404β Organisasi atau pengguna tidak ditemukan.
Memperbarui beberapa anggota
API mengubah satu anggota per permintaan. Tidak ada endpoint bulk. Untuk memperbarui banyak anggota, panggil endpoint sekali per nama pengguna (misalnya dari daftar atau CSV).
Contoh: Bash β loop atas nama pengguna, peran yang sama untuk semua
ORG_NAME="my-org"
ROLE="read"
for username in member1 member2 member3 member4; do
echo "Setting $username to $ROLE ..."
curl -s -w "\n%{http_code}" -X PUT \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"role\":\"$ROLE\",\"resourceGroups\":[]}" \
"https://huggingface.co/api/organizations/$ORG_NAME/members/$username/role"
echo ""
doneContoh: Python β iterasi atas nama pengguna
import os
import requests
BASE_URL = "https://huggingface.co"
HF_TOKEN = os.environ.get("HF_TOKEN", "")
def change_member_role(org_name: str, username: str, role: str, resource_groups: list | None = None):
payload = {"role": role, "resourceGroups": resource_groups or []}
r = requests.put(
f"{BASE_URL}/api/organizations/{org_name}/members/{username}/role",
headers={"Authorization": f"Bearer {HF_TOKEN}", "Content-Type": "application/json"},
json=payload,
)
if r.status_code != 200:
raise RuntimeError(f"{r.status_code}: {r.text}")
return r.json()
org_name = "my-org"
role = "read"
for username in ["member1", "member2", "member3", "member4"]:
print(f"Setting {username} to {role} ... ", end="")
try:
change_member_role(org_name, username, role)
print("OK")
except Exception as e:
print(f"Failed: {e}")Untuk peran yang berbeda per pengguna, lakukan iterasi pada pasangan (username, role) (misalnya dari CSV) dan panggil change_member_role untuk masing-masing.
API Grup Sumber Daya
Endpoint berikut memungkinkan Anda untuk mencantumkan grup sumber daya dan menambahkan pengguna ke dalamnya. Untuk mengubah peran tingkat organisasi anggota yang sudah ada atau penugasan grup sumber daya mereka, lihat Mengubah peran anggota melalui API di atas.
Referensi OpenAPI: Grup sumber daya
Daftar isi β Pendekatan API:
| Tujuan | Bagian |
|---|---|
| Tambahkan banyak pengguna ke satu grup sumber daya | Menambahkan pengguna ke grup sumber daya |
| Tambahkan pengguna yang sama ke banyak grup sumber daya | Tambahkan massal dengan meloop API |
| Tambahkan berbagai pengguna per grup | Tambahkan massal dengan meloop API |
URL dasar dan autentikasi
- URL dasar:
https://huggingface.co - Authentication: Gunakan salah satu dari:
- Access token (recommended for scripts): Buat token fine-grained dengan izin βWrite access to organizations settings / member managementβ yang di-scope ke organisasi Anda di https://huggingface.co/settings/tokens. Kirimkan token tersebut di header permintaan:
Authorization: Bearer <your_access_token> - Cookie sesi: Jika dipanggil dari browser atau alat yang berbagi sesi yang sama dengan UI Hub, cookie dikirim secara otomatis.
- Access token (recommended for scripts): Buat token fine-grained dengan izin βWrite access to organizations settings / member managementβ yang di-scope ke organisasi Anda di https://huggingface.co/settings/tokens. Kirimkan token tersebut di header permintaan:
Daftarkan grup sumber daya
Dapatkan semua grup sumber daya yang dapat Anda kelola untuk organisasi. Gunakan ini untuk memperoleh id masing-masing grup untuk panggilan add-users.
Permintaan
GET /api/organizations/{org_name}/resource-groups
Authorization: Bearer <your_access_token>Contoh (curl)
curl -s -H "Authorization: Bearer $HF_TOKEN" \
"https://huggingface.co/api/organizations/my-org/resource-groups"Contoh respons (dipangkas)
[
{
"id": "507f1f77bcf86cd799439011",
"name": "Cohort 2024",
"description": "Members in this group",
"users": [...],
"repos": [...]
}
]Gunakan id dari setiap grup sumber daya saat menambahkan pengguna.
Menambahkan pengguna ke grup sumber daya
Tambahkan satu atau lebih pengguna ke satu grup sumber daya dalam satu permintaan. Anda dapat mengirim beberapa pengguna dalam permintaan yang sama.
Permintaan
POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/users
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"users": [
{ "user": "member1", "role": "read" },
{ "user": "member2", "role": "read" },
{ "user": "member3", "role": "write" }
]
}- Path parameters
org_name: Slug organisasi (mis.my-org).resource_group_id:iddari resource group (string heksadesimal 24 karakter dari endpoint daftar).
- Body
users: Array dari objek. Setiap objek harus memiliki:user: username Hugging Face (wajib).role: Salah satu dari"read","contributor","write","admin", atau"inherit".
Contoh (curl)
curl -s -X POST \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{"users":[{"user":"member1","role":"read"},{"user":"member2","role":"read"}]}' \
"https://huggingface.co/api/organizations/my-org/resource-groups/507f1f77bcf86cd799439011/users"Berhasil: Status 200 OK; body adalah objek resource group yang diperbarui (termasuk pengguna baru di users).
Galat yang umum terjadi:
400β mis. pengguna tidak ditemukan, nama pengguna duplikat, atau body tidak valid.403β Tidak diizinkan (misalnya, tidak ada di organisasi, atau sudah ada di grup sumber daya). Pesan akan menunjukkan apakah pengguna tidak ada di organisasi atau sudah ada di grup.
Menambahkan anggota melalui email (solusi sementara)
Endpoint add-users hanya menerima nama pengguna Hugging Face, bukan email. Jika Anda memiliki daftar email (misalnya email anggota), Anda dapat terlebih dahulu menyelesaikan email β nama pengguna, lalu memanggil API add-users.
Perhatikan bahwa penyaringan email hanya berfungsi ketika domain email cocok dengan salah satu domain yang diizinkan organisasi: Domain email organisasi (Settings β Account β Organization email domain) dan/atau domain yang diizinkan SSO organisasi (jika SSO dikonfigurasi).
Langkah 1 β Menyelesaikan email menjadi nama pengguna
GET /api/organizations/{org_name}/members?email={email}&limit=1
Authorization: Bearer <your_access_token>Response adalah array dari anggota; setiap anggota memiliki user (nama pengguna). Gunakan user untuk panggilan add-users.
Langkah 2 β Tambahkan ke grup sumber daya
Gunakan nama pengguna dari langkah 1 dalam permintaan add-users biasa:
POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/users
Content-Type: application/json
Body: { "users": [{ "user": "<username from step 1>", "role": "read" }] }Contoh: satu email (bash)
ORG_NAME="my-org"
RG_ID="507f1f77bcf86cd799439011"
EMAIL="member@org.com"
# Step 1: look up member by email (domain must match org's Organization email domain or SSO allowed domains)
MEMBERS=$(curl -s -H "Authorization: Bearer $HF_TOKEN" \
"https://huggingface.co/api/organizations/$ORG_NAME/members?email=$EMAIL&limit=1")
USERNAME=$(echo "$MEMBERS" | jq -r '(.[0] // {} | .user // "")')
if [ -z "$USERNAME" ]; then
echo "No member found for $EMAIL"
exit 1
fi
# Step 2: add to resource group
curl -s -X POST -H "Authorization: Bearer $HF_TOKEN" -H "Content-Type: application/json" \
-d "{\"users\":[{\"user\":\"$USERNAME\",\"role\":\"read\"}]}" \
"https://huggingface.co/api/organizations/$ORG_NAME/resource-groups/$RG_ID/users"Contoh: beberapa email dalam loop (Python)
import os
import requests
BASE = "https://huggingface.co"
ORG = "my-org"
RG_ID = "507f1f77bcf86cd799439011"
ROLE = "read"
headers = {"Authorization": f"Bearer {os.environ['HF_TOKEN']}", "Content-Type": "application/json"}
emails = ["member1@org.com", "member2@org.com"]
for email in emails:
# Step 1: resolve email β username (email domain must match org's Organization email domain or SSO allowed domains)
r = requests.get(f"{BASE}/api/organizations/{ORG}/members", params={"email": email, "limit": 1}, headers=headers)
r.raise_for_status()
members = r.json()
if not members:
print(f"No member found for {email}")
continue
username = members[0]["user"]
# Step 2: add that user to the resource group
add_r = requests.post(
f"{BASE}/api/organizations/{ORG}/resource-groups/{RG_ID}/users",
headers=headers,
json={"users": [{"user": username, "role": ROLE}]},
)
if add_r.status_code == 200:
print(f"Added {username} ({email})")
else:
print(f"Failed {email}: {add_r.status_code} {add_r.text}")Jika pengguna sudah berada di grup sumber daya, panggilan add mengembalikan 403; skrip melaporkannya sebagai kegagalan dan Anda dapat melewati atau mengabaikan kasus tersebut jika diinginkan.
Batasan: Filter email hanya berlaku ketika organisasi memiliki Domain email organisasi dan/atau Domain yang diizinkan SSO yang diatur, dan domain email tersebut cocok dengan salah satunya. Jika tidak, Anda tidak dapat mencari berdasarkan email melalui API anggota; Anda memerlukan sumber lain untuk email β nama pengguna (misalnya direktori Anda sendiri).
Tambahkan secara massal dengan meloop API
Anda dapat menambahkan banyak pengguna ke satu grup sumber daya dalam satu atau beberapa permintaan (misalnya, pecah daftar nama pengguna Anda), atau menambahkan pengguna ke beberapa grup sumber daya dengan melakukan perulangan pada grup dan memanggil endpoint add-users untuk masing-masing.
Contoh: Bash β satu grup, beberapa pengguna dalam satu permintaan
#!/bin/bash
# Add a list of users to a single resource group.
# Usage: ./add-users-to-rg.sh <org_name> <resource_group_id> <role>
ORG_NAME="${1:-my-org}"
RG_ID="${2:-507f1f77bcf86cd799439011}"
ROLE="${3:-read}"
USERS="member1 member2 member3 member4"
USERS_JSON=$(echo "$USERS" | tr ' ' '\n' | while read u; do
[ -n "$u" ] && echo "{\"user\":\"$u\",\"role\":\"$ROLE\"}"
done | paste -sd ',' -)
curl -s -w "\nHTTP_STATUS:%{http_code}" -X POST \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"users\":[$USERS_JSON]}" \
"https://huggingface.co/api/organizations/$ORG_NAME/resource-groups/$RG_ID/users"Contoh: Bash β loop melalui beberapa grup
# Get group IDs and add users to each
curl -s -H "Authorization: Bearer $HF_TOKEN" \
"https://huggingface.co/api/organizations/my-org/resource-groups" \
| jq -r '.[].id' \
| while read -r RG_ID; do
[ -z "$RG_ID" ] && continue
echo "Adding users to resource group $RG_ID ..."
curl -s -X POST -H "Authorization: Bearer $HF_TOKEN" -H "Content-Type: application/json" \
-d "{\"users\":[$USERS_JSON]}" \
"https://huggingface.co/api/organizations/my-org/resource-groups/$RG_ID/users"
doneContoh: Python β tambahkan massal ke satu atau banyak grup
import os
import requests
BASE_URL = "https://huggingface.co"
HF_TOKEN = os.environ.get("HF_TOKEN", "")
def list_resource_groups(org_name: str):
r = requests.get(
f"{BASE_URL}/api/organizations/{org_name}/resource-groups",
headers={"Authorization": f"Bearer {HF_TOKEN}"},
)
r.raise_for_status()
return r.json()
def add_users_to_resource_group(org_name: str, resource_group_id: str, users_with_roles: list):
"""users_with_roles: list of {"user": "username", "role": "read"|"write"|"contributor"|"admin"}"""
r = requests.post(
f"{BASE_URL}/api/organizations/{org_name}/resource-groups/{resource_group_id}/users",
headers={"Authorization": f"Bearer {HF_TOKEN}", "Content-Type": "application/json"},
json={"users": users_with_roles},
)
if r.status_code != 200:
raise RuntimeError(f"Add users failed {r.status_code}: {r.text}")
return r.json()
# Example: same users added to every resource group
org_name = "my-org"
role = "read"
usernames = ["member1", "member2", "member3"]
users_with_roles = [{"user": u, "role": role} for u in usernames]
for rg in list_resource_groups(org_name):
add_users_to_resource_group(org_name, rg["id"], users_with_roles)Untuk daftar nama pengguna yang panjang, bagi menjadi beberapa bagian (misalnya 50 per permintaan) dan panggil API sekali per bagian untuk menghindari badan permintaan yang besar atau timeout.
Catatan penting
- Hanya nama pengguna β API menerima nama pengguna Hugging Face, bukan email. Anda memerlukan pemetaan dari email β nama pengguna (misalnya dari direktori Anda atau daftar anggota organisasi) sebelum memanggil API.
- Pengguna harus berada di organisasi β Setiap pengguna dalam permintaan harus sudah menjadi anggota organisasi. Jika tidak, permintaan akan mengembalikan
403dengan pesan bahwa beberapa pengguna tidak ada di organisasi. - Idempotensi β Jika pengguna sudah berada di grup sumber daya, backend dapat mengembalikan
403untuk permintaan tersebut. Skrip Anda dapat menangkap error dan melanjutkan, atau melewati pengguna yang sudah ada di grup jika Anda terlebih dahulu mengambil daftarusersgrup tersebut. - Batas laju β Untuk batch besar, pertimbangkan untuk menambahkan jeda singkat antar permintaan (misalnya 0,5β1 detik) untuk menghindari terkena batas laju.
- Cakupan token β Token akses harus memiliki izin yang cukup untuk organisasi (biasanya setidaknya βAkses tulis ke pengaturan organisasi / manajemen anggotaβ). Buat dan simpan token dengan aman; jangan mengomitmennya ke kontrol versi.
Konfigurasi auto-join melalui API
Auto-join secara otomatis menambahkan anggota organisasi ke Resource Group pada peran yang ditentukan. Anda dapat mengaktifkan atau menonaktifkannya melalui API, dan secara opsional memilih apakah akan menyertakan semua anggota organisasi atau hanya anggota Read+.
Aktifkan auto-join
POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/settings
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"autoJoin": {
"enabled": true,
"role": "read",
"scope": "read_plus"
}
}- Path parameters
org_name: Slug organisasi (mis.my-org).resource_group_id: ID dari Resource Group (string heksadesimal 24 karakter; dapatkan ID dari endpoint list resource groups).
- Body
role: Peran yang akan diberikan kepada anggota yang ditambahkan secara otomatis. Salah satu dari"read","contributor","write","admin", atau"inherit".scope(opsional): Anggota org mana yang akan ditambahkan secara otomatis. Gunakan"all"untuk menyertakan setiap anggota org. Gunakan"read_plus"untuk mengecualikan anggota dengan peran organisasino_access. Beralih ke"all"secara default jika diabaikan.
Mengaktifkan auto-join pada Resource Group yang sudah ada akan langsung menambahkan anggota organisasi saat ini yang sesuai dengan cakupan yang dipilih (backfill).
Nonaktifkan auto-join
Kirim permintaan yang sama dengan "enabled": false. Field role tidak diperlukan saat menonaktifkan:
POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/settings
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"autoJoin": {
"enabled": false
}
}Menonaktifkan auto-join tidak menghapus anggota yang sebelumnya di-auto-join. Hal ini hanya menghentikan penambahan anggota organisasi secara otomatis di masa depan. Anggota yang sudah ada tetap berada di Resource Group.
Atur batas pengeluaran melalui API
Batas pengeluaran membatasi pengeluaran komputasi bulanan yang dikaitkan dengan Resource Group. Atur dengan endpoint pembaruan:
PATCH /api/organizations/{org_name}/resource-groups/{resource_group_id}
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"spendLimits": {
"total": 500000,
"spaces": 100000,
"jobs": 50000
}
}- Path parameters
org_name: Slug organisasi (mis.my-org).resource_group_id: ID dari Resource Group (string heksadesimal 24 karakter; dapatkan ID dari endpoint list resource groups).
- Body
spendLimits: Batas bulanan dalam sen. Contoh di atas menetapkan batas total $5.000, dengan $1.000 untuk Spaces dan $500 untuk Jobs.total: Batas pengeluaran gabungan grup di semua produk.inferenceProviders,spaces,jobs,endpoints: Batas per produk, diterapkan di atas total. Yang lebih ketat dari keduanya yang berlaku.
Hanya kunci yang Anda kirimkan yang diperbarui, yang lain tetap mempertahankan nilai saat ini. Kirim null untuk menghapus batas:
PATCH /api/organizations/{org_name}/resource-groups/{resource_group_id}
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"spendLimits": {
"jobs": null
}
}Contoh (curl)
curl -s -X PATCH \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{"spendLimits": {"total": 500000}}' \
"https://huggingface.co/api/organizations/my-org/resource-groups/507f1f77bcf86cd799439011"Responsnya adalah grup sumber daya yang diperbarui, termasuk spendLimits miliknya.
Undang kolaborator eksternal melalui API
Undangan eksternal memungkinkan admin grup sumber daya mengundang pengguna dari luar organisasi ke dalam Grup Sumber Daya. Penerima undangan bergabung sebagai kolaborator eksternal dengan peran organisasi no_access. Mereka dihitung dalam jumlah kursi berbayar di organisasi Anda.
Aktifkan undangan eksternal
Admin organisasi dapat mengaktifkan pengaturan dengan:
POST /api/organizations/{org_name}/resource-groups/settings
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"allowExternalInvites": true
}- Body
allowExternalInvites(opsional): Apakah admin grup sumber daya dapat mengundang pengguna dari luar organisasi.minRoleToCreate(opsional): Peran organisasi minimum yang diperlukan untuk membuat Resource Groups.
Field yang diabaikan tidak diubah. Gunakan GET /api/organizations/{org_name}/resource-groups/settings untuk membaca pengaturan saat ini.
Undang pengguna
POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/invite
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"username": "partner-user",
"role": "read"
}- Path parameters
org_name: Slug organisasi (mis.my-org).resource_group_id: ID dari Resource Group (string heksadesimal 24 karakter; dapatkan ID dari endpoint list resource groups).
- Body
username: Nama pengguna dari pengguna Hugging Face yang sudah ada dan belum menjadi anggota organisasi. Untuk menambahkan anggota organisasi, gunakan Menambahkan pengguna ke grup sumber daya sebagai gantinya.role: Peran yang diterima oleh orang yang diundang di Resource Group,"read"atau"write".
Pengguna akan menerima undangan email dan akses ke Resource Group setelah mereka menerimanya.
Kelola undangan yang tertunda
- Daftar:
GET /api/organizations/{org_name}/resource-groups/{resource_group_id}/invitations - Kirim ulang:
POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/invitation/{invitation_id}/resend - Cabut:
DELETE /api/organizations/{org_name}/resource-groups/{resource_group_id}/invitation/{invitation_id}
Anda juga dapat mengakses spesifikasi OpenAPI lengkap
Galat yang umum terjadi:
403β Undangan eksternal tidak diaktifkan untuk organisasi.409β Pengguna sudah menjadi anggota organisasi, atau sudah memiliki undangan yang masih menunggu.
Ubah tipe akun anggota melalui API
Ubah anggota organisasi menjadi kolaborator eksternal (tanpa SSO), atau kembalikan mereka menjadi anggota. Memerlukan paket berbayar dan izin Write (atau Admin) pada organisasi. Tidak tersedia di organisasi dengan pengguna terkelola, di mana anggota diproses melalui SCIM.
Mengubah tipe akun pengguna tidak mengubah peran mereka. Lihat Mengubah peran anggota melalui API untuk mengubah peran pengguna.
PUT /api/organizations/{org_name}/members/{username}/account-type
Authorization: Bearer <your_access_token>
Content-Type: application/json
{
"accountType": "external"
}- Body
accountType:"external"untuk mengubah anggota menjadi kolaborator eksternal, atau"member"untuk mengubahnya kembali.