C#
// PUT /v1/users/{user_id}/exchange_primary_factor
const stytch = require('stytch');
const client = new stytch.Client({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
};
client.Users.ExchangePrimaryFactor(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// PUT /v1/users/{user_id}/exchange_primary_factor
package main
import (
"context"
"log"
"github.com/stytchauth/stytch-go/v18/stytch/consumer/stytchapi"
"github.com/stytchauth/stytch-go/v18/stytch/consumer/users"
)
func main() {
client, err := stytchapi.NewClient(
"${projectId}",
"${secret}",
)
if err != nil {
log.Fatalf("error instantiating client: %v", err)
}
params := &users.ExchangePrimaryFactorParams{
UserID: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
}
resp, err := client.Users.ExchangePrimaryFactor(context.Background(), params)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}
// PUT /v1/users/{user_id}/exchange_primary_factor
package com.example;
import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.users.ExchangePrimaryFactorRequest;
import com.stytch.java.consumer.StytchClient;
public class Main {
public static void main(String[] args) {
StytchClient.configure("${projectId}", "${secret}");
ExchangePrimaryFactorRequest params = new ExchangePrimaryFactorRequest();
params.setUserId("user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6");
Object result = StytchClient.getUsers().exchangePrimaryFactor(params);
if (result instanceof StytchResult.Success) {
System.out.println(((StytchResult.Success) result).getValue());
} else {
System.out.println(((StytchResult.Error) result).getException());
}
}
}// PUT /v1/users/{user_id}/exchange_primary_factor
package com.example
import com.stytch.java.consumer.StytchClient
import com.stytch.java.consumer.models.users.ExchangePrimaryFactorRequest
fun main() {
StytchClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchClient.users.exchangePrimaryFactor(
ExchangePrimaryFactorRequest(
userId = "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}
// PUT /v1/users/{user_id}/exchange_primary_factor
const stytch = require('stytch');
const client = new stytch.Client({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
};
client.users.exchangePrimaryFactor(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->users->exchange_primary_factor([
'user_id' => 'user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6',
]);# PUT /v1/users/{user_id}/exchange_primary_factor
from stytch import Client
client = Client(
project_id="${projectId}",
secret="${secret}",
)
resp = client.users.exchange_primary_factor(
user_id="user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
)
print(resp)
# frozen_string_literal: true
# PUT /v1/users/{user_id}/exchange_primary_factor
require 'stytch'
client = Stytch::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.users.exchange_primary_factor(
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6"
)
puts resp// PUT /v1/users/{user_id}/exchange_primary_factor
use stytch::consumer::client::Client;
use stytch::consumer::users::ExchangePrimaryFactorRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.users.exchange_primary_factor(
ExchangePrimaryFactorRequest{
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# PUT /v1/users/{user_id}/exchange_primary_factor
curl --request PUT \
--url https://test.stytch.com/v1/users/user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6/exchange_primary_factor \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json'{
"request_id": "<string>",
"user_id": "<string>",
"user": {
"user_id": "<string>",
"emails": [
{
"email_id": "<string>",
"email": "<string>",
"verified": true
}
],
"status": "<string>",
"phone_numbers": [
{
"phone_id": "<string>",
"phone_number": "<string>",
"verified": true
}
],
"webauthn_registrations": [
{
"webauthn_registration_id": "<string>",
"domain": "<string>",
"user_agent": "<string>",
"verified": true,
"authenticator_type": "<string>",
"name": "<string>"
}
],
"providers": [
{
"provider_type": "<string>",
"provider_subject": "<string>",
"profile_picture_url": "<string>",
"locale": "<string>",
"oauth_user_registration_id": "<string>"
}
],
"totps": [
{
"totp_id": "<string>",
"verified": true
}
],
"crypto_wallets": [
{
"crypto_wallet_id": "<string>",
"crypto_wallet_address": "<string>",
"crypto_wallet_type": "<string>",
"verified": true
}
],
"biometric_registrations": [
{
"biometric_registration_id": "<string>",
"verified": true
}
],
"is_locked": true,
"roles": [
"<string>"
],
"name": {
"first_name": "<string>",
"middle_name": "<string>",
"last_name": "<string>"
},
"created_at": "<string>",
"password": {
"password_id": "<string>",
"requires_reset": true
},
"trusted_metadata": {},
"untrusted_metadata": {},
"external_id": "<string>",
"lock_created_at": "<string>",
"lock_expires_at": "<string>"
},
"status_code": 123
}{
"status_code": 401,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "unauthorized_credentials",
"error_message": "Unauthorized credentials.",
"error_url": "https://stytch.com/docs/api/errors/401"
}{
"status_code": 429,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "too_many_requests",
"error_message": "Too many requests have been made.",
"error_url": "https://stytch.com/docs/api/errors/429"
}{
"status_code": 500,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "internal_server_error",
"error_message": "Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong.",
"error_url": "https://stytch.com/docs/api/errors/500"
}Users
Exchange Primary Factor
Exchange a user’s email address or phone number for another.
PUT
/
v1
/
users
/
{user_id}
/
exchange_primary_factor
C#
// PUT /v1/users/{user_id}/exchange_primary_factor
const stytch = require('stytch');
const client = new stytch.Client({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
};
client.Users.ExchangePrimaryFactor(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });// PUT /v1/users/{user_id}/exchange_primary_factor
package main
import (
"context"
"log"
"github.com/stytchauth/stytch-go/v18/stytch/consumer/stytchapi"
"github.com/stytchauth/stytch-go/v18/stytch/consumer/users"
)
func main() {
client, err := stytchapi.NewClient(
"${projectId}",
"${secret}",
)
if err != nil {
log.Fatalf("error instantiating client: %v", err)
}
params := &users.ExchangePrimaryFactorParams{
UserID: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
}
resp, err := client.Users.ExchangePrimaryFactor(context.Background(), params)
if err != nil {
log.Fatalf("error in method call: %v", err)
}
log.Println(resp)
}
// PUT /v1/users/{user_id}/exchange_primary_factor
package com.example;
import com.stytch.java.common.StytchResult;
import com.stytch.java.consumer.models.users.ExchangePrimaryFactorRequest;
import com.stytch.java.consumer.StytchClient;
public class Main {
public static void main(String[] args) {
StytchClient.configure("${projectId}", "${secret}");
ExchangePrimaryFactorRequest params = new ExchangePrimaryFactorRequest();
params.setUserId("user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6");
Object result = StytchClient.getUsers().exchangePrimaryFactor(params);
if (result instanceof StytchResult.Success) {
System.out.println(((StytchResult.Success) result).getValue());
} else {
System.out.println(((StytchResult.Error) result).getException());
}
}
}// PUT /v1/users/{user_id}/exchange_primary_factor
package com.example
import com.stytch.java.consumer.StytchClient
import com.stytch.java.consumer.models.users.ExchangePrimaryFactorRequest
fun main() {
StytchClient.configure(
projectId = "${projectId}",
secret = "${secret}",
)
when (
val result =
StytchClient.users.exchangePrimaryFactor(
ExchangePrimaryFactorRequest(
userId = "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
),
)
) {
is StytchResult.Success -> println(result.value)
is StytchResult.Error -> println(result.exception)
}
}
// PUT /v1/users/{user_id}/exchange_primary_factor
const stytch = require('stytch');
const client = new stytch.Client({
project_id: '${projectId}',
secret: '${secret}',
});
const params = {
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
};
client.users.exchangePrimaryFactor(params)
.then(resp => { console.log(resp) })
.catch(err => { console.log(err) });$response = $client->users->exchange_primary_factor([
'user_id' => 'user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6',
]);# PUT /v1/users/{user_id}/exchange_primary_factor
from stytch import Client
client = Client(
project_id="${projectId}",
secret="${secret}",
)
resp = client.users.exchange_primary_factor(
user_id="user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
)
print(resp)
# frozen_string_literal: true
# PUT /v1/users/{user_id}/exchange_primary_factor
require 'stytch'
client = Stytch::Client.new(
project_id: "${projectId}",
secret: "${secret}"
)
resp = client.users.exchange_primary_factor(
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6"
)
puts resp// PUT /v1/users/{user_id}/exchange_primary_factor
use stytch::consumer::client::Client;
use stytch::consumer::users::ExchangePrimaryFactorRequest;
fn main() {
let client = Client::new("${projectId}", "${secret}").unwrap();
let resp = client.users.exchange_primary_factor(
ExchangePrimaryFactorRequest{
user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
..Default::default()
}
).await;
println!("The response is {:?}", resp);
}# PUT /v1/users/{user_id}/exchange_primary_factor
curl --request PUT \
--url https://test.stytch.com/v1/users/user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6/exchange_primary_factor \
-u '${projectId}:${secret}' \
-H 'Content-Type: application/json'{
"request_id": "<string>",
"user_id": "<string>",
"user": {
"user_id": "<string>",
"emails": [
{
"email_id": "<string>",
"email": "<string>",
"verified": true
}
],
"status": "<string>",
"phone_numbers": [
{
"phone_id": "<string>",
"phone_number": "<string>",
"verified": true
}
],
"webauthn_registrations": [
{
"webauthn_registration_id": "<string>",
"domain": "<string>",
"user_agent": "<string>",
"verified": true,
"authenticator_type": "<string>",
"name": "<string>"
}
],
"providers": [
{
"provider_type": "<string>",
"provider_subject": "<string>",
"profile_picture_url": "<string>",
"locale": "<string>",
"oauth_user_registration_id": "<string>"
}
],
"totps": [
{
"totp_id": "<string>",
"verified": true
}
],
"crypto_wallets": [
{
"crypto_wallet_id": "<string>",
"crypto_wallet_address": "<string>",
"crypto_wallet_type": "<string>",
"verified": true
}
],
"biometric_registrations": [
{
"biometric_registration_id": "<string>",
"verified": true
}
],
"is_locked": true,
"roles": [
"<string>"
],
"name": {
"first_name": "<string>",
"middle_name": "<string>",
"last_name": "<string>"
},
"created_at": "<string>",
"password": {
"password_id": "<string>",
"requires_reset": true
},
"trusted_metadata": {},
"untrusted_metadata": {},
"external_id": "<string>",
"lock_created_at": "<string>",
"lock_expires_at": "<string>"
},
"status_code": 123
}{
"status_code": 401,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "unauthorized_credentials",
"error_message": "Unauthorized credentials.",
"error_url": "https://stytch.com/docs/api/errors/401"
}{
"status_code": 429,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "too_many_requests",
"error_message": "Too many requests have been made.",
"error_url": "https://stytch.com/docs/api/errors/429"
}{
"status_code": 500,
"request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
"error_type": "internal_server_error",
"error_message": "Oops, something seems to have gone wrong, please reach out to support@stytch.com to let us know what went wrong.",
"error_url": "https://stytch.com/docs/api/errors/500"
}Must pass either an
email_address or a phone_number.
This endpoint only works if the user has exactly one factor. You are able to exchange the type of factor for another as well, i.e. exchange an email_address for a phone_number.
Use this endpoint with caution as it performs an admin level action.
Authorizations
Path Parameters
Body
application/json
Response
Successful response
The user object affected by this API call. See the Get user endpoint for complete response field details.
Show child attributes
Show child attributes