Skip to content

Users

users_config_upsert

Create or update this product's end-user auth configuration.

Tool

users_config_upsert

Create or update this product's end-user auth configuration.

Create or update this product's end-user auth configuration. Only the fields you pass change; the rest keep their current values. Rejected while the product is paused (archived or blocked by the platform).

Behavior

HTTP
PUT /users/config

Arguments

NameTypeRequiredDescription
mfaobjectMFA settings: backup-code batch size, the operator-reset delay, how fresh authentication must be to enroll, and the second-factor lockout ceilings. Merged field-by-field.
emailobjectEmail OTP / magic-link settings. Merged field-by-field. Set `email.from` to a sender on a domain verified in this product's mail toolkit — until then the email strategies are not offered.
oauthobjectOAuth provider credentials and switches, per provider. Merged field-by-field. A provider is offered as a sign-in strategy only when it is enabled AND a full client id + secret pair resolves — from here, or from the deployment's shared development credentials.
inviteobjectInvite lifetime and re-invite cooldown. Merged field-by-field.
captchaobjectCaptcha (Cloudflare Turnstile) settings for flow creation. Merged field-by-field.
recoveryobjectPassword-recovery settings (whether it is offered, how long a reset link lives). Merged field-by-field.
testModeobjectTest mode: whether this product may have TEST USERS — accounts that are excluded from metering, kept out of the default directory listing, never really emailed, and (when the deployment sets one) able to sign in with the fixed magic OTP. REFUSED on a production deployment. Merged field-by-field.
waitlistobjectWaitlist settings: the double-opt-in toggle, how long a pending entry is retained before the sweep erases it, the confirmation link lifetime, and the embeddable widget’s copy and colours. Merged field-by-field, including inside `widget`.
retentionobjectHow long DEAD rows are kept before the retention sweep removes them: spent one-time tokens, expired flow attempts, expired sessions and their refresh tokens. These are grace periods on top of expiry, never lifetimes — an unswept expired row is inert. Merged field-by-field.
protectionobjectRate limits, lockout and breached-password settings. Merged field-by-field.
signupModestringHow end users may join this product: 'public' (anyone), 'invite-only', or 'waitlist'. Default 'public'.
emailChangeobjectEmail-change settings: confirmation lifetime, the old address's revert window, the post-revert cooldown and the operator-override delay. Merged field-by-field.
notificationsobjectWhich security notification emails this product sends. All on by default. Merged field-by-field.
allowedOriginsarrayBrowser origins allowed to drive this product's end-user flows, up to 20. Scheme + host + port only, matched exactly. Replaces the whole list. Empty means "no browser origin" once this product has a publishable key.
passwordPolicyobjectPassword rules for this product. Merged field-by-field into the current policy.
sessionTtlHoursintegerEnd-user session lifetime in hours. Default 720 (30 days).
refreshSlidingDaysintegerInactivity window of a session in days — every refresh slides it forward. Default 30.
refreshAbsoluteDaysintegerHard time-box of a session in days, counted from sign-in and never extended. Default 365.
redirectUriAllowlistarrayCallback URIs the browser code handoff may deliver a one-time authorization code to, up to 20. Matched EXACTLY — no wildcards, no prefixes, no fragments — so list every callback in full. Replaces the whole list.
accessTokenTtlMinutesintegerAccess JWT lifetime in minutes, 5-60. Default 10. Short on purpose: a revoked session dies within one TTL.

Response

FieldTypeAlwaysDescription
mfaobject
emailobject
oauthobject
inviteobject
statusstring
captchaobject
recoveryobject
testModeobject
waitlistobject
productIdstring
retentionobject
protectionobject
signupModestring
emailChangeobject
notificationsobject
allowedOriginsarray
passwordPolicyobject
sessionTtlHoursinteger
lifecycleBlockedboolean
lifecycleArchivedboolean
refreshSlidingDaysinteger
refreshAbsoluteDaysinteger
redirectUriAllowlistarray
accessTokenTtlMinutesinteger
captchaSecretConfiguredboolean

Try it

Create or update this product's end-user auth configuration.

When to use

Create or update this product's end-user auth configuration. Only the fields you pass change; the rest keep their current values. Rejected while the product is paused (archived or blocked by the platform).

Example

Ask your agent something like this:

Create or update this product's end-user auth configuration.

The agent will invoke users_config_upsert with these arguments:

{}

Esc

Start typing to search the docs.

navigateselect