update_user
Update an existing end user (identify by user_email, checked first, or external_id). Only fields you pass change (none at all is 400 NO_FIELDS_TO_UPDATE); metadata replaces the whole object, except referral_code (kept unless you send it) and stripe_account_id (Cred-only: the stored value stays and a value you send is silently dropped). signup_* fields overwrite attribution (use to correct it). 404 USER_NOT_FOUND. To change a wallet use set_user_wallet. Costs 1 CRD (platform credit) per call, charged even when the call is then rejected (a 429 RATE_LIMITED costs nothing). Error results include request_id; quote it to support.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| No | New email | ||
| api_key | No | Cred API key (optional if set via the x-api-key header) | |
| metadata | No | New metadata (replaces existing) | |
| project_id | No | Cred project ID (optional; the API key already identifies the project) | |
| signup_url | No | Corrected signup URL (also re-derives signup_host) | |
| user_email | No | Current email of the user to update | |
| external_id | No | External ID of the user to update | |
| signup_host | No | Corrected signup host | |
| x402_payment | No | Base64 x402 PaymentPayload, only when a previous call failed with an x402 PaymentRequired because the account is out of CRD | |
| signup_credit_type_id | No | Corrected signup credit type |