Replace users — PUT /v1/iam/users/{owner}/{name}

Changes a person's profile, their roles, or the credentials they sign in with.

PUT /v1/iam/users/{owner}/{name}

Addresshttps://api.hanzo.ai/v1/iam/users/{owner}/{name}
MethodPUT
Operationput_iam_users_by_owner_by_name
AuthAuthorization: Bearer $HANZO_API_KEY

Changes a person's profile, their roles, or the credentials they sign in with. Send a password to reset it; leave it out and their current one keeps working.

Who they are does not change: their organization, username and the identifier their existing sessions are keyed on all survive the write, so an update never signs anyone out.

A SuperAdmin's account is changed only by a SuperAdmin.

Request

221 fields, body application/json (required).

FieldInTypeRequiredDescription
ownerpathstringyes
namepathstringyes
passwordbodystring—
userbodyiam.User—
user.accessKeybodystring—API credentials.
user.accessSecretbodystring—
user.accessSecretHashbodystring—
user.accessTokenbodystring—
user.addressbodystring[]—
user.addressesbodyiam.Address[]—
user.addresses[].citybodystring—
user.addresses[].line1bodystring—
user.addresses[].line2bodystring—
user.addresses[].regionbodystring—
user.addresses[].statebodystring—
user.addresses[].tagbodystring—
user.addresses[].zipCodebodystring—
user.adfsbodystring—
user.affiliationbodystring—
user.alipaybodystring—
user.amazonbodystring—
user.applebodystring—
user.applicationScopesbodyiam.ConsentRecord[]—
user.applicationScopes[].applicationbodystring—
user.applicationScopes[].grantedScopesbodystring[]—
user.auth0bodystring—
user.avatarbodystring—
user.avatarTypebodystring—
user.azureadbodystring—
user.azureadb2cbodystring—
user.baidubodystring—
user.balancebodynumber (double)—Balance mirrors v1 for lossless migration but is authoritative in Commerce (billing.hanzo.ai), not here — do not write it from IAM.
user.balanceCreditbodynumber (double)—
user.balanceCurrencybodystring—
user.battlenetbodystring—
user.bilibilibodystring—
user.biobodystring—
user.birthdaybodystring—
user.bitbucketbodystring—
user.boxbodystring—
user.cartbodyiam.CartItem[]—
user.cart[].displayNamebodystring—
user.cart[].namebodystring—
user.cart[].ownerbodystring—
user.cart[].pricebodynumber (double)—
user.cart[].quantitybodyinteger (int64)—
user.cloudfoundrybodystring—
user.countryCodebodystring—
user.createdAtbodystring (date-time)—
user.createdIpbodystring—Sign-in provenance.
user.createdTimebodystring—
user.currencybodystring—
user.custombodystring—
user.custom2bodystring—
user.custom3bodystring—
user.custom4bodystring—
user.custom5bodystring—
user.custom6bodystring—
user.custom7bodystring—
user.custom8bodystring—
user.custom9bodystring—
user.custom10bodystring—
user.dailymotionbodystring—
user.deezerbodystring—
user.deletedbodyboolean—
user.deletedTimebodystring—
user.digitaloceanbodystring—
user.dingtalkbodystring—
user.discordbodystring—
user.displayNamebodystring—Profile.
user.douyinbodystring—
user.dropboxbodystring—
user.educationbodystring—
user.emailbodystring—
user.emailVerifiedbodyboolean—
user.eveonlinebodystring—
user.externalIdbodystring—
user.faceIdsbodyiam.FaceId[]—
user.faceIds[].faceIdDatabodynumber (double)[]—
user.faceIds[].imageUrlbodystring—
user.faceIds[].namebodystring—
user.facebookbodystring—
user.firstNamebodystring—
user.fitbitbodystring—
user.genderbodystring—
user.giteabodystring—
user.giteebodystring—
user.githubbodystring—Linked federated-identity subjects, one column per connector (v1 parity).
user.gitlabbodystring—
user.googlebodystring—
user.hashbodystring—
user.herokubodystring—
user.homepagebodystring—
user.iambodystring—
user.idbodystring—Id is the user's STABLE OPAQUE identifier — the value the OIDC sub claim carries.
user.idCardbodystring—
user.idCardTypebodystring—
user.influxcloudbodystring—
user.infoflowbodystring—
user.instagrambodystring—
user.intercombodystring—
user.invitationbodystring—
user.invitationCodebodystring—
user.ipWhitelistbodystring—
user.isAdminbodyboolean—
user.isDefaultAvatarbodyboolean—State flags.
user.isDeletedbodyboolean—
user.isForbiddenbodyboolean—
user.isOnlinebodyboolean—
user.isVerifiedbodyboolean—
user.kakaobodystring—
user.karmabodyinteger (int64)—
user.kwaibodystring—
user.languagebodystring—
user.larkbodystring—
user.lastChangePasswordTimebodystring—
user.lastNamebodystring—
user.lastSigninIpbodystring—
user.lastSigninTimebodystring—
user.lastSigninWrongTimebodystring—
user.lastfmbodystring—
user.ldapbodystring—
user.linebodystring—
user.linkedinbodystring—
user.locationbodystring—
user.mailrubodystring—
user.managedAccountsbodyiam.ManagedAccount[]—
user.managedAccounts[].applicationbodystring—
user.managedAccounts[].signinUrlbodystring—
user.managedAccounts[].usernamebodystring—
user.meetupbodystring—
user.mfaAccountsbodyiam.MfaAccount[]—
user.mfaAccounts[].accountNamebodystring—
user.mfaAccounts[].issuerbodystring—
user.mfaAccounts[].originbodystring—
user.mfaEmailEnabledbodyboolean—
user.mfaItemsbodyiam.MfaItem[]—
user.mfaItems[].namebodystring—
user.mfaItems[].rulebodystring—
user.mfaPhoneEnabledbodyboolean—
user.mfaPushEnabledbodyboolean—
user.mfaPushProviderbodystring—
user.mfaPushReceiverbodystring—
user.mfaRadiusEnabledbodyboolean—
user.mfaRadiusProviderbodystring—
user.mfaRadiusUsernamebodystring—
user.mfaRememberDeadlinebodystring—
user.mfaRememberDigestbodystring—MfaRememberDigest is the digest of the token held by the ONE browser the deadline above applies to.
user.microsoftonlinebodystring—
user.multiFactorAuthsbodyiam.MfaProps[]—
user.multiFactorAuths[].countryCodebodystring—
user.multiFactorAuths[].enabledbodyboolean—
user.multiFactorAuths[].isPreferredbodyboolean—
user.multiFactorAuths[].mfaRememberInHoursbodyinteger (int64)—
user.multiFactorAuths[].mfaTypebodystring—
user.multiFactorAuths[].urlbodystring—
user.namebodystring—
user.nameKeybodystring—NameKey is Fold(Name), derived on every save (BeforeCreate, BeforeUpdate) and on every open for a row saved without it (store.Prepare): the indexed key a case-insensitive username lookup reads (store.GetUserByName).
user.naverbodystring—
user.needUpdatePasswordbodyboolean—
user.nextcloudbodystring—
user.oktabodystring—
user.onedrivebodystring—
user.originalRefreshTokenbodystring—
user.originalTokenbodystring—
user.ourabodystring—
user.ownerbodystring—Identity / tenancy.
user.passwordHashbodystring—Credential material.
user.passwordSaltbodystring—
user.passwordTypebodystring—
user.patreonbodystring—
user.paypalbodystring—
user.permanentAvatarbodystring—
user.phonebodystring—
user.preHashbodystring—
user.preferredMfaTypebodystring—
user.propertiesbodyobject—
user.properties.*bodystring—
user.qqbodystring—
user.rankingbodyinteger (int64)—
user.realNamebodystring—
user.recoveryCodesbodystring[]—
user.regionbodystring—
user.registerSourcebodystring—
user.registerTypebodystring—
user.salesforcebodystring—
user.scorebodyinteger (int64)—
user.shopifybodystring—
user.signinWrongTimesbodyinteger (int64)—
user.signupApplicationbodystring—
user.slackbodystring—
user.soundcloudbodystring—
user.spotifybodystring—
user.steambodystring—
user.stravabodystring—
user.stripebodystring—
user.tagbodystring—
user.telegrambodystring—
user.tiktokbodystring—
user.titlebodystring—
user.totpSecretbodystring—
user.tumblrbodystring—
user.twitchbodystring—
user.twitterbodystring—
user.typebodystring—
user.typetalkbodystring—
user.uberbodystring—
user.updatedAtbodystring (date-time)—
user.updatedTimebodystring—
user.verificationCodebodystring—
user.vkbodystring—
user.webauthnCredentialsbodyany[]—Multi-factor authentication.
user.wechatbodystring—
user.wecombodystring—
user.weibobodystring—
user.wepaybodystring—
user.xerobodystring—
user.yahoobodystring—
user.yammerbodystring—
user.yandexbodystring—
user.zoombodystring—

Response

StatusBodyMeaning
200iam.Userok
202Approvalheld for approval
defaultproblem-detailsrefused

200 body — 217 fields.

FieldInTypeAlwaysDescription
accessKeybodystring—API credentials.
accessSecretbodystring—
accessSecretHashbodystring—
accessTokenbodystring—
addressbodystring[]—
addressesbodyiam.Address[]—
addresses[].citybodystring—
addresses[].line1bodystring—
addresses[].line2bodystring—
addresses[].regionbodystring—
addresses[].statebodystring—
addresses[].tagbodystring—
addresses[].zipCodebodystring—
adfsbodystring—
affiliationbodystring—
alipaybodystring—
amazonbodystring—
applebodystring—
applicationScopesbodyiam.ConsentRecord[]—
applicationScopes[].applicationbodystring—
applicationScopes[].grantedScopesbodystring[]—
auth0bodystring—
avatarbodystring—
avatarTypebodystring—
azureadbodystring—
azureadb2cbodystring—
baidubodystring—
balancebodynumber (double)—Balance mirrors v1 for lossless migration but is authoritative in Commerce (billing.hanzo.ai), not here — do not write it from IAM.
balanceCreditbodynumber (double)—
balanceCurrencybodystring—
battlenetbodystring—
bilibilibodystring—
biobodystring—
birthdaybodystring—
bitbucketbodystring—
boxbodystring—
cartbodyiam.CartItem[]—
cart[].displayNamebodystring—
cart[].namebodystring—
cart[].ownerbodystring—
cart[].pricebodynumber (double)—
cart[].quantitybodyinteger (int64)—
cloudfoundrybodystring—
countryCodebodystring—
createdAtbodystring (date-time)—
createdIpbodystring—Sign-in provenance.
createdTimebodystring—
currencybodystring—
custombodystring—
custom2bodystring—
custom3bodystring—
custom4bodystring—
custom5bodystring—
custom6bodystring—
custom7bodystring—
custom8bodystring—
custom9bodystring—
custom10bodystring—
dailymotionbodystring—
deezerbodystring—
deletedbodyboolean—
deletedTimebodystring—
digitaloceanbodystring—
dingtalkbodystring—
discordbodystring—
displayNamebodystring—Profile.
douyinbodystring—
dropboxbodystring—
educationbodystring—
emailbodystring—
emailVerifiedbodyboolean—
eveonlinebodystring—
externalIdbodystring—
faceIdsbodyiam.FaceId[]—
faceIds[].faceIdDatabodynumber (double)[]—
faceIds[].imageUrlbodystring—
faceIds[].namebodystring—
facebookbodystring—
firstNamebodystring—
fitbitbodystring—
genderbodystring—
giteabodystring—
giteebodystring—
githubbodystring—Linked federated-identity subjects, one column per connector (v1 parity).
gitlabbodystring—
googlebodystring—
hashbodystring—
herokubodystring—
homepagebodystring—
iambodystring—
idbodystring—Id is the user's STABLE OPAQUE identifier — the value the OIDC sub claim carries.
idCardbodystring—
idCardTypebodystring—
influxcloudbodystring—
infoflowbodystring—
instagrambodystring—
intercombodystring—
invitationbodystring—
invitationCodebodystring—
ipWhitelistbodystring—
isAdminbodyboolean—
isDefaultAvatarbodyboolean—State flags.
isDeletedbodyboolean—
isForbiddenbodyboolean—
isOnlinebodyboolean—
isVerifiedbodyboolean—
kakaobodystring—
karmabodyinteger (int64)—
kwaibodystring—
languagebodystring—
larkbodystring—
lastChangePasswordTimebodystring—
lastNamebodystring—
lastSigninIpbodystring—
lastSigninTimebodystring—
lastSigninWrongTimebodystring—
lastfmbodystring—
ldapbodystring—
linebodystring—
linkedinbodystring—
locationbodystring—
mailrubodystring—
managedAccountsbodyiam.ManagedAccount[]—
managedAccounts[].applicationbodystring—
managedAccounts[].signinUrlbodystring—
managedAccounts[].usernamebodystring—
meetupbodystring—
mfaAccountsbodyiam.MfaAccount[]—
mfaAccounts[].accountNamebodystring—
mfaAccounts[].issuerbodystring—
mfaAccounts[].originbodystring—
mfaEmailEnabledbodyboolean—
mfaItemsbodyiam.MfaItem[]—
mfaItems[].namebodystring—
mfaItems[].rulebodystring—
mfaPhoneEnabledbodyboolean—
mfaPushEnabledbodyboolean—
mfaPushProviderbodystring—
mfaPushReceiverbodystring—
mfaRadiusEnabledbodyboolean—
mfaRadiusProviderbodystring—
mfaRadiusUsernamebodystring—
mfaRememberDeadlinebodystring—
mfaRememberDigestbodystring—MfaRememberDigest is the digest of the token held by the ONE browser the deadline above applies to.
microsoftonlinebodystring—
multiFactorAuthsbodyiam.MfaProps[]—
multiFactorAuths[].countryCodebodystring—
multiFactorAuths[].enabledbodyboolean—
multiFactorAuths[].isPreferredbodyboolean—
multiFactorAuths[].mfaRememberInHoursbodyinteger (int64)—
multiFactorAuths[].mfaTypebodystring—
multiFactorAuths[].urlbodystring—
namebodystring—
nameKeybodystring—NameKey is Fold(Name), derived on every save (BeforeCreate, BeforeUpdate) and on every open for a row saved without it (store.Prepare): the indexed key a case-insensitive username lookup reads (store.GetUserByName).
naverbodystring—
needUpdatePasswordbodyboolean—
nextcloudbodystring—
oktabodystring—
onedrivebodystring—
originalRefreshTokenbodystring—
originalTokenbodystring—
ourabodystring—
ownerbodystring—Identity / tenancy.
passwordHashbodystring—Credential material.
passwordSaltbodystring—
passwordTypebodystring—
patreonbodystring—
paypalbodystring—
permanentAvatarbodystring—
phonebodystring—
preHashbodystring—
preferredMfaTypebodystring—
propertiesbodyobject—
properties.*bodystring—
qqbodystring—
rankingbodyinteger (int64)—
realNamebodystring—
recoveryCodesbodystring[]—
regionbodystring—
registerSourcebodystring—
registerTypebodystring—
salesforcebodystring—
scorebodyinteger (int64)—
shopifybodystring—
signinWrongTimesbodyinteger (int64)—
signupApplicationbodystring—
slackbodystring—
soundcloudbodystring—
spotifybodystring—
steambodystring—
stravabodystring—
stripebodystring—
tagbodystring—
telegrambodystring—
tiktokbodystring—
titlebodystring—
totpSecretbodystring—
tumblrbodystring—
twitchbodystring—
twitterbodystring—
typebodystring—
typetalkbodystring—
uberbodystring—
updatedAtbodystring (date-time)—
updatedTimebodystring—
verificationCodebodystring—
vkbodystring—
webauthnCredentialsbodyany[]—Multi-factor authentication.
wechatbodystring—
wecombodystring—
weibobodystring—
wepaybodystring—
xerobodystring—
yahoobodystring—
yammerbodystring—
yandexbodystring—
zoombodystring—

Failure carries the platform error shape — see Errors.

Examples

hanzo iam users owner set <owner> <name>
import { Configuration, IamApi } from 'hanzoai';

const api = new IamApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.putIamUsersByOwnerByName({ owner: 'owner', name: 'name', password: "<password>", user: {"accessKey":"<accessKey>","accessSecret":"<accessSecret>","accessSecretHash":"<accessSecretHash>","accessToken":"<accessToken>"} });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import IamApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = IamApi(client).put_iam_users_by_owner_by_name(owner='owner', name='name', password="<password>", user={"accessKey":"<accessKey>","accessSecret":"<accessSecret>","accessSecretHash":"<accessSecretHash>","accessToken":"<accessToken>"})
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.IamAPI.PutIamUsersByOwnerByName(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, iam_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = iam_api::put_iam_users_by_owner_by_name(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.IamApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new IamApi(client).putIamUsersByOwnerByName();
curl -X PUT https://api.hanzo.ai/v1/iam/users/<owner>/<name> \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "password": "<password>",
       "user": {
         "accessKey": "<accessKey>",
         "accessSecret": "<accessSecret>",
         "accessSecretHash": "<accessSecretHash>",
         "accessToken": "<accessToken>"
       }
     }'

MCP reaches iam through the iam tool, which names its 44 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_iam_applications"
         }
       }
     }'

IAM API · All Hanzo APIs · Interactive reference

Was this page useful?