Iam

Generated from Huudis's own code: every route in this area, what it takes and how to call it.

Method Path What it does
GET /api/v1/iam/access-keys List access keys
POST /api/v1/iam/access-keys Create an access key
DELETE /api/v1/iam/access-keys/{id} Delete an access key
POST /api/v1/iam/access-keys/{id}/revoke Revoke an access key
GET /api/v1/iam/assumed-sessions List assumed sessions
POST /api/v1/iam/assumed-sessions/{id}/revoke Revoke an assumed session
GET /api/v1/iam/groups List groups
POST /api/v1/iam/groups Create a group
DELETE /api/v1/iam/groups/{id} Delete a group
GET /api/v1/iam/groups/{id} Get a group
POST /api/v1/iam/groups/{id}/members Members a group
DELETE /api/v1/iam/groups/{id}/members/{userId} Delete a member
GET /api/v1/iam/identity-providers List identity providers
POST /api/v1/iam/identity-providers Create an identity provider
DELETE /api/v1/iam/identity-providers/{id} Delete an identity provider
PATCH /api/v1/iam/identity-providers/{id} Update an identity provider
GET /api/v1/iam/invites List invites
POST /api/v1/iam/invites Create an invite
DELETE /api/v1/iam/invites/{id} Delete an invite
GET /api/v1/iam/key-actions List key actions
POST /api/v1/iam/key-actions/{id}/undo Undo a key action
GET /api/v1/iam/key-requests List key requests
GET /api/v1/iam/key-requests/{id} Get a key request
POST /api/v1/iam/key-requests/{id}/approve Approve a key request with the code from its challenge.
POST /api/v1/iam/key-requests/{id}/challenge Start approving a key request: a second-factor challenge for the signed-in owner (an emailed code is sent when they have an email factor).
POST /api/v1/iam/key-requests/{id}/deny Deny a key request
GET /api/v1/iam/policies List policies
POST /api/v1/iam/policies Create a policy
DELETE /api/v1/iam/policies/{id} Delete a policy
GET /api/v1/iam/policies/{id} Get a policy
PATCH /api/v1/iam/policies/{id} Update a policy
GET /api/v1/iam/policy-attachments List policy attachments
POST /api/v1/iam/policy-attachments Create a policy attachment
DELETE /api/v1/iam/policy-attachments/{id} Delete a policy attachment
GET /api/v1/iam/roles List roles
POST /api/v1/iam/roles Create a role
DELETE /api/v1/iam/roles/{id} Delete a role
GET /api/v1/iam/roles/{id} Get a role
GET /api/v1/iam/service-accounts List service accounts
POST /api/v1/iam/service-accounts Create a service account
DELETE /api/v1/iam/service-accounts/{id} Delete a service account
GET /api/v1/iam/service-accounts/{id} Get a service account
GET /api/v1/iam/users List users
POST /api/v1/iam/users Create an user
DELETE /api/v1/iam/users/{id} Delete an user
PATCH /api/v1/iam/users/{id} Update an user
POST /api/v1/iam/users/{id}/reset-password Reset password an user

List access keys

GET /api/v1/iam/access-keys

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListAccessKeys. See access keys.

Query parameters

Name Type Required Notes
principalType user or service_account yes
principalId string yes min length 1

Example

curl -X GET "https://huudis.com/api/v1/iam/access-keys" \
  -H "Authorization: Bearer <access token>"

Create an access key

POST /api/v1/iam/access-keys

Authentication: Takes a signed-in person's session or bearer token only. An access key is refused (PERSON_ONLY): this route creates or revokes an access key — a person decides which keys exist.

Body

Field Type Required Notes
principalType user or service_account yes
principalId string yes min length 1
label string no max length 120
expiresAt string (date-time) no

Example

curl -X POST "https://huudis.com/api/v1/iam/access-keys" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"principalType":"user","principalId":"…","label":"…","expiresAt":"2026-01-01T00:00:00Z"}'

Delete an access key

DELETE /api/v1/iam/access-keys/{id}

Authentication: Takes a signed-in person's session or bearer token only. An access key is refused (PERSON_ONLY): this route creates or revokes an access key — a person decides which keys exist.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/access-keys/:id" \
  -H "Authorization: Bearer <access token>"

Revoke an access key

POST /api/v1/iam/access-keys/{id}/revoke

Authentication: Takes a signed-in person's session or bearer token only. An access key is refused (PERSON_ONLY): this route creates or revokes an access key — a person decides which keys exist.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X POST "https://huudis.com/api/v1/iam/access-keys/:id/revoke" \
  -H "Authorization: Bearer <access token>"

List assumed sessions

GET /api/v1/iam/assumed-sessions

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListAssumedSessions. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/assumed-sessions" \
  -H "Authorization: Bearer <access token>"

Revoke an assumed session

POST /api/v1/iam/assumed-sessions/{id}/revoke

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:RevokeAssumedSession. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X POST "https://huudis.com/api/v1/iam/assumed-sessions/:id/revoke" \
  -H "Authorization: Bearer <access token>"

List groups

GET /api/v1/iam/groups

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListGroups. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/groups" \
  -H "Authorization: Bearer <access token>"

Create a group

POST /api/v1/iam/groups

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:CreateGroup. See access keys.

Body

Field Type Required Notes
name string yes min length 1; max length 120
description string no max length 500

Example

curl -X POST "https://huudis.com/api/v1/iam/groups" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","description":"…"}'

Delete a group

DELETE /api/v1/iam/groups/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:DeleteGroup. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/groups/:id" \
  -H "Authorization: Bearer <access token>"

Get a group

GET /api/v1/iam/groups/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:GetGroup. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X GET "https://huudis.com/api/v1/iam/groups/:id" \
  -H "Authorization: Bearer <access token>"

Members a group

POST /api/v1/iam/groups/{id}/members

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:AddGroupMember. See access keys.

Path parameters

Name Type Required Notes
id string yes

Body

Field Type Required Notes
userId string yes min length 1

Example

curl -X POST "https://huudis.com/api/v1/iam/groups/:id/members" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"userId":"…"}'

Delete a member

DELETE /api/v1/iam/groups/{id}/members/{userId}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:RemoveGroupMember. See access keys.

Path parameters

Name Type Required Notes
id string yes
userId string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/groups/:id/members/:userId" \
  -H "Authorization: Bearer <access token>"

List identity providers

GET /api/v1/iam/identity-providers

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListIdentityProviders. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/identity-providers" \
  -H "Authorization: Bearer <access token>"

Create an identity provider

POST /api/v1/iam/identity-providers

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:CreateIdentityProvider itself (a wildcard such as huudis:* does not grant it). A workspace owner approves each key request first, with a second-factor code: the key gets 202 with a request id, then sends the same request again, which runs once. See the workspace's people and sign-in setup.

Body

Field Type Required Notes
name string yes min length 1; max length 120
type saml or oidc yes
metadata object no default {}

Example

curl -X POST "https://huudis.com/api/v1/iam/identity-providers" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","type":"saml","metadata":{}}'

Delete an identity provider

DELETE /api/v1/iam/identity-providers/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:DeleteIdentityProvider itself (a wildcard such as huudis:* does not grant it). A workspace owner approves each key request first, with a second-factor code: the key gets 202 with a request id, then sends the same request again, which runs once. See the workspace's people and sign-in setup.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/identity-providers/:id" \
  -H "Authorization: Bearer <access token>"

Update an identity provider

PATCH /api/v1/iam/identity-providers/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:UpdateIdentityProvider itself (a wildcard such as huudis:* does not grant it). A workspace owner approves each key request first, with a second-factor code: the key gets 202 with a request id, then sends the same request again, which runs once. See the workspace's people and sign-in setup.

Path parameters

Name Type Required Notes
id string yes

Body

Field Type Required Notes
name string no min length 1; max length 120
metadata object no

Example

curl -X PATCH "https://huudis.com/api/v1/iam/identity-providers/:id" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","metadata":{}}'

List invites

GET /api/v1/iam/invites

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListInvites. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/invites" \
  -H "Authorization: Bearer <access token>"

Create an invite

POST /api/v1/iam/invites

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:InviteMember itself (a wildcard such as huudis:* does not grant it). A key's change happens at once and every workspace owner is emailed a link to undo it; granting, changing or removing the owner role needs an owner's approval first. See the workspace's people and sign-in setup.

Body

Field Type Required Notes
email string (email) yes max length 200
role owner or admin or member no default "member"

Example

curl -X POST "https://huudis.com/api/v1/iam/invites" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"email":"…","role":"member"}'

Delete an invite

DELETE /api/v1/iam/invites/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:DeleteInvite. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/invites/:id" \
  -H "Authorization: Bearer <access token>"

List key actions

GET /api/v1/iam/key-actions

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListKeyActions. See access keys.

Query parameters

Name Type Required Notes
limit any no

Example

curl -X GET "https://huudis.com/api/v1/iam/key-actions" \
  -H "Authorization: Bearer <access token>"

Undo a key action

POST /api/v1/iam/key-actions/{id}/undo

Authentication: Takes a signed-in person's session or bearer token only. An access key is refused (PERSON_ONLY): this route is a workspace owner's check on what access keys do.

Path parameters

Name Type Required Notes
id string yes

Body

Field Type Required Notes
revokeKey boolean no default false

Example

curl -X POST "https://huudis.com/api/v1/iam/key-actions/:id/undo" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"revokeKey":false}'

List key requests

GET /api/v1/iam/key-requests

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListKeyRequests. See access keys.

Query parameters

Name Type Required Notes
limit any no
status any no

Example

curl -X GET "https://huudis.com/api/v1/iam/key-requests" \
  -H "Authorization: Bearer <access token>"

Get a key request

GET /api/v1/iam/key-requests/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:GetKeyRequest. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X GET "https://huudis.com/api/v1/iam/key-requests/:id" \
  -H "Authorization: Bearer <access token>"

Approve a key request with the code from its challenge.

POST /api/v1/iam/key-requests/{id}/approve

Authentication: Takes a signed-in person's session or bearer token only. An access key is refused (PERSON_ONLY): this route is a workspace owner's check on what access keys do.

Path parameters

Name Type Required Notes
id string yes

Body

Field Type Required Notes
challengeToken string yes min length 1
code string yes min length 1; max length 64

Example

curl -X POST "https://huudis.com/api/v1/iam/key-requests/:id/approve" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"challengeToken":"…","code":"…"}'

Start approving a key request: a second-factor challenge for the signed-in owner (an emailed code is sent when they have an email factor).

POST /api/v1/iam/key-requests/{id}/challenge

Start approving a key request: a second-factor challenge for the signed-in owner (an emailed code is sent when they have an email factor).

Authentication: Takes a signed-in person's session or bearer token only. An access key is refused (PERSON_ONLY): this route is a workspace owner's check on what access keys do.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X POST "https://huudis.com/api/v1/iam/key-requests/:id/challenge" \
  -H "Authorization: Bearer <access token>"

Deny a key request

POST /api/v1/iam/key-requests/{id}/deny

Authentication: Takes a signed-in person's session or bearer token only. An access key is refused (PERSON_ONLY): this route is a workspace owner's check on what access keys do.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X POST "https://huudis.com/api/v1/iam/key-requests/:id/deny" \
  -H "Authorization: Bearer <access token>"

List policies

GET /api/v1/iam/policies

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListPolicies. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/policies" \
  -H "Authorization: Bearer <access token>"

Create a policy

POST /api/v1/iam/policies

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:CreatePolicy. See access keys.

Body

Field Type Required Notes
name string yes min length 1; max length 120
description string no max length 500
document object yes

Example

curl -X POST "https://huudis.com/api/v1/iam/policies" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","description":"…","document":{"Version":"…","Statement":[]}}'

Delete a policy

DELETE /api/v1/iam/policies/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:DeletePolicy. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/policies/:id" \
  -H "Authorization: Bearer <access token>"

Get a policy

GET /api/v1/iam/policies/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:GetPolicy. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X GET "https://huudis.com/api/v1/iam/policies/:id" \
  -H "Authorization: Bearer <access token>"

Update a policy

PATCH /api/v1/iam/policies/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:UpdatePolicy. See access keys.

Path parameters

Name Type Required Notes
id string yes

Body

Field Type Required Notes
description string no max length 500
document object no

Example

curl -X PATCH "https://huudis.com/api/v1/iam/policies/:id" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"description":"…","document":{"Version":"…","Statement":[]}}'

List policy attachments

GET /api/v1/iam/policy-attachments

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListPolicyAttachments. See access keys.

Query parameters

Name Type Required Notes
policyId string no
principalType user or group or role or service_account no
principalId string no

Example

curl -X GET "https://huudis.com/api/v1/iam/policy-attachments" \
  -H "Authorization: Bearer <access token>"

Create a policy attachment

POST /api/v1/iam/policy-attachments

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:AttachPolicy. See access keys.

Body

Field Type Required Notes
policyId string yes min length 1
principalType user or group or role or service_account yes
principalId string yes min length 1

Example

curl -X POST "https://huudis.com/api/v1/iam/policy-attachments" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"policyId":"…","principalType":"user","principalId":"…"}'

Delete a policy attachment

DELETE /api/v1/iam/policy-attachments/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:DetachPolicy. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/policy-attachments/:id" \
  -H "Authorization: Bearer <access token>"

List roles

GET /api/v1/iam/roles

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListRoles. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/roles" \
  -H "Authorization: Bearer <access token>"

Create a role

POST /api/v1/iam/roles

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:CreateRole. See access keys.

Body

Field Type Required Notes
name string yes min length 1; max length 120
description string no max length 500
trustPolicy object yes
maxSessionDurationSec integer no min 900; max 43200

Example

curl -X POST "https://huudis.com/api/v1/iam/roles" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","description":"…","trustPolicy":{"Version":"…","Statement":[]},"maxSessionDurationSec":900}'

Delete a role

DELETE /api/v1/iam/roles/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:DeleteRole. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/roles/:id" \
  -H "Authorization: Bearer <access token>"

Get a role

GET /api/v1/iam/roles/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:GetRole. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X GET "https://huudis.com/api/v1/iam/roles/:id" \
  -H "Authorization: Bearer <access token>"

List service accounts

GET /api/v1/iam/service-accounts

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListServiceAccounts. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/service-accounts" \
  -H "Authorization: Bearer <access token>"

Create a service account

POST /api/v1/iam/service-accounts

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:CreateServiceAccount. See access keys.

Body

Field Type Required Notes
name string yes min length 1; max length 120
description string no max length 500

Example

curl -X POST "https://huudis.com/api/v1/iam/service-accounts" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","description":"…"}'

Delete a service account

DELETE /api/v1/iam/service-accounts/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:DeleteServiceAccount. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/service-accounts/:id" \
  -H "Authorization: Bearer <access token>"

Get a service account

GET /api/v1/iam/service-accounts/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:GetServiceAccount. See access keys.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X GET "https://huudis.com/api/v1/iam/service-accounts/:id" \
  -H "Authorization: Bearer <access token>"

List users

GET /api/v1/iam/users

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies allow huudis:ListUsers. See access keys.

Example

curl -X GET "https://huudis.com/api/v1/iam/users" \
  -H "Authorization: Bearer <access token>"

Create an user

POST /api/v1/iam/users

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:AddMember itself (a wildcard such as huudis:* does not grant it). A key's change happens at once and every workspace owner is emailed a link to undo it; granting, changing or removing the owner role needs an owner's approval first. See the workspace's people and sign-in setup.

Body

Field Type Required Notes
email string (email) yes max length 200
name string no max length 120
password string no min length 10; max length 200
role owner or admin or member no default "member"
emailVerified boolean no default true
sendInviteEmail boolean no default true

Example

curl -X POST "https://huudis.com/api/v1/iam/users" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"email":"…","name":"…","password":"…","role":"member","emailVerified":true,"sendInviteEmail":true}'

Delete an user

DELETE /api/v1/iam/users/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:RemoveMember itself (a wildcard such as huudis:* does not grant it). A key's change happens at once and every workspace owner is emailed a link to undo it; granting, changing or removing the owner role needs an owner's approval first. See the workspace's people and sign-in setup.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X DELETE "https://huudis.com/api/v1/iam/users/:id" \
  -H "Authorization: Bearer <access token>"

Update an user

PATCH /api/v1/iam/users/{id}

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:UpdateMember itself (a wildcard such as huudis:* does not grant it). A key's change happens at once and every workspace owner is emailed a link to undo it; granting, changing or removing the owner role needs an owner's approval first. See the workspace's people and sign-in setup.

Path parameters

Name Type Required Notes
id string yes

Body

Field Type Required Notes
role owner or admin or member no
emailVerified boolean no

Example

curl -X PATCH "https://huudis.com/api/v1/iam/users/:id" \
  -H "Authorization: Bearer <access token>" \
  -H "Content-Type: application/json" \
  -d '{"role":"owner","emailVerified":false}'

Reset password an user

POST /api/v1/iam/users/{id}/reset-password

Authentication: Takes a signed-in person's session or bearer token, or an IAM access key (Huudis-HMAC-SHA256) whose user's policies name huudis:ResetMemberPassword itself (a wildcard such as huudis:* does not grant it). A workspace owner approves each key request first, with a second-factor code: the key gets 202 with a request id, then sends the same request again, which runs once. See the workspace's people and sign-in setup.

Path parameters

Name Type Required Notes
id string yes

Example

curl -X POST "https://huudis.com/api/v1/iam/users/:id/reset-password" \
  -H "Authorization: Bearer <access token>"
Huudis Docs · Iam — reference | Huudis