AWS Cognito Create a User Programmatically Java Sample Code
Add the Amazon Cognito Java SDK dependency to your Java project.
The following code creates a new user with status CONFIRMED to your Cognito user pool:
//AWS credentials
String ACCESS_KEY = "AKIASI5XVTY2KVH46OND";
String SECRET_KEY = "+sYwUXMeBUDqI/YvJNfoMAlzYnWQ75qRGw06jTML";
String userPoolId = "us-east-1_c174bztKi";
BasicAWSCredentials awsCreds = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
AWSCognitoIdentityProvider cognitoClient = AWSCognitoIdentityProviderClientBuilder
.standard().withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.withRegion("us-east-1").build();
//Test user data
String email = "[email protected]";
String username = "testbuddy";
String password = "Test123$";
try {
AttributeType emailAttr = new AttributeType().withName("email").withValue(email);
AttributeType emailVerifiedAttr =
new AttributeType().withName("email_verified").withValue("false");
AdminCreateUserRequest userRequest =
new AdminCreateUserRequest().withUserPoolId(userPoolId).withUsername(username)
.withTemporaryPassword(password)
.withUserAttributes(emailAttr, emailVerifiedAttr)
.withMessageAction(MessageActionType.SUPPRESS);
AdminCreateUserResult createUserResult = cognitoClient.adminCreateUser(userRequest);
System.out.println("User " + createUserResult.getUser().getUsername()
+ " is created. Status: " + createUserResult.getUser().getUserStatus());
// Make the password permanent and not temporary
AdminSetUserPasswordRequest adminSetUserPasswordRequest =
new AdminSetUserPasswordRequest().withUsername(username)
.withUserPoolId(userPoolId).withPassword(password).withPermanent(true);
cognitoClient.adminSetUserPassword(adminSetUserPasswordRequest);
} catch (AWSCognitoIdentityProviderException e) {
System.out.println(e.getErrorMessage());
} catch (Exception e) {
System.out.println(e);
}