# Register user using Rest Api in keycloak

**URL:** <https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390>\
**Category:** Getting advice\
**Created:** [March 17, 2022, 6:26pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390 "2022-03-17T18:26:29Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![jiaday](https://avatars.discourse-cdn.com/v4/letter/j/bb73d2/32.png) [@jiaday](https://forum.keycloak.org/u/jiaday)\
**Post date:** [March 17, 2022, 6:26pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/1 "2022-03-17T18:26:29Z")

</div>

I want to know how can I register user using rest api.  
I am calling api [http://localhost:8080/auth/realms/test/users](http://localhost:8080/auth/realms/test/users) to register user.  
but I am not able to get response.

---

<div class="post-metadata">

**Author:** ![xgp](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/xgp/32/2589_2.png) [@xgp](https://forum.keycloak.org/u/xgp)\
**Post date:** [March 17, 2022, 6:34pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/2 "2022-03-17T18:34:21Z")

</div>

You can create a new user using the REST API. Documentation is here: [Keycloak Admin REST API](https://www.keycloak.org/docs-api/17.0/rest-api/index.html#_users_resource)

Your path looks wrong. Should be `http://localhost:8080/auth/admin/realms/test/users`

---

<div class="post-metadata">

**Author:** ![jiaday](https://avatars.discourse-cdn.com/v4/letter/j/bb73d2/32.png) [@jiaday](https://forum.keycloak.org/u/jiaday)\
**Post date:** [March 17, 2022, 6:47pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/3 "2022-03-17T18:47:45Z")

</div>

Thanks for the quick response.  
However I tried running the api `http://localhost:8080/auth/admin/realms/test/users` in postman. I am getting error as below.  
{

```
"error": "unknown_error"

```

}

 ![image](https://global.discourse-cdn.com/free1/uploads/keycloak/original/2X/b/b22b6e62dafc8d15800f374af547ac073557882f.png)

---

<div class="post-metadata">

**Author:** ![xgp](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/xgp/32/2589_2.png) [@xgp](https://forum.keycloak.org/u/xgp)\
**Post date:** [March 17, 2022, 7:04pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/4 "2022-03-17T19:04:36Z")

</div>

Looks right. A few things:

1. try with header `accept: application/json`
2. try with a minimal user, as it may not like you setting fields that get set automatically. E.g. `{"enabled":true,"attributes":{},"groups":[],"email":"jdoe@example.com","emailVerified":"","firstName":"John","lastName":"Doe"}`
3. check your server logs

---

<div class="post-metadata">

**Author:** ![jiaday](https://avatars.discourse-cdn.com/v4/letter/j/bb73d2/32.png) [@jiaday](https://forum.keycloak.org/u/jiaday)\
**Post date:** [March 17, 2022, 7:14pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/5 "2022-03-17T19:14:02Z")

</div>

Thank you xgp 🤩

it worked perfect. Included username in data and done 👏  
Thanks 🙂

 ![image](https://global.discourse-cdn.com/free1/uploads/keycloak/original/2X/3/379bbfe8857de117771149174a96e4216ebe9c76.png)

user got created:

 ![image](https://global.discourse-cdn.com/free1/uploads/keycloak/original/2X/e/e19bdd3342a76ffc29818285d0ff44a395843d83.png)

---

<div class="post-metadata">

**Author:** ![jiaday](https://avatars.discourse-cdn.com/v4/letter/j/bb73d2/32.png) [@jiaday](https://forum.keycloak.org/u/jiaday)\
**Post date:** [March 18, 2022, 6:10am UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/6 "2022-03-18T06:10:17Z")

</div>

How do I register using password in this data . I need password to login, but when I create user mentioning password, but i am getting below error saying ‘password policy not met’.

 ![image](https://global.discourse-cdn.com/free1/uploads/keycloak/original/2X/8/82f819070620dda362535f6d525e6c7f1c80c725.png)

---

<div class="post-metadata">

**Author:** ![xgp](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/xgp/32/2589_2.png) [@xgp](https://forum.keycloak.org/u/xgp)\
**Post date:** [March 18, 2022, 11:24am UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/7 "2022-03-18T11:24:40Z")

</div>

I don’t know if it works in the same request as the user creation. I’ve never tried that. I use:  
path:  
`/auth/admin/realms/<realm>/users/<user-id>/reset-password`  
payload:  
`{"type":"password","value":"johndoe","temporary":false}`

Also, that’s a legitimate error if you have a password policy set on your realm. Check in the “Authentication”-\>“Password Policy” page of the admin.

---

<div class="post-metadata">

**Author:** ![jiaday](https://avatars.discourse-cdn.com/v4/letter/j/bb73d2/32.png) [@jiaday](https://forum.keycloak.org/u/jiaday)\
**Post date:** [March 18, 2022, 11:30am UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/8 "2022-03-18T11:30:46Z")

</div>

It is working…the issue got resolved.  
I have passed credentials this way  
“credentials”: [{  
“type”: “password”,  
“value”: “Johndoe@1234”,  
“temporary”: false  
}]

It worked.  
But I am facing cors error.  
The resources that I have passed looks correct.  
Not sure what might be causing the cors error.  
Can you suggest anything on it?

 ![image](https://global.discourse-cdn.com/free1/uploads/keycloak/original/2X/8/8dcd04c5f0746b0786035e557f9b219620e3dd7c.png)

---

<div class="post-metadata">

**Author:** ![jiaday](https://avatars.discourse-cdn.com/v4/letter/j/bb73d2/32.png) [@jiaday](https://forum.keycloak.org/u/jiaday)\
**Post date:** [March 21, 2022, 2:25pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/9 "2022-03-21T14:25:45Z")

</div>

Hi,

I have registered user using rest api /users.  
But the saved data is invalid for login.  
Can you suggest something about why it is Invalid when I try to login with the registered user ?

---

<div class="post-metadata">

**Author:** ![edwinjvo1972](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@edwinjvo1972](https://forum.keycloak.org/u/edwinjvo1972)\
**Post date:** [October 25, 2022, 4:02pm UTC](https://forum.keycloak.org/t/register-user-using-rest-api-in-keycloak/14390/10 "2022-10-25T16:02:27Z")

</div>

Hola Estoy creando usuario con keycloak desde la api en c# y este es mi metodo:

Primero me logeo con un usuario admin de mi reino y obtengo el token.

luego esto es para crear un usuario.

```
    private static ResponseBase<UsuarioModel> _responseBase = new();
    private static RestClient cliente = new RestClient();
    private List<UsuarioModel> entities = new List<UsuarioModel>();
    private UsuarioModel entity = new UsuarioModel();

    #region Contruct
    public UsuariosRepositorio()
    {
        cliente = new RestClient("http://localhost:8080/auth");
        cliente.Options.MaxTimeout = -1;
        entities = new List<UsuarioModel>();
        entity = new UsuarioModel();
    });

    #endregion

    public ResponseBase<UsuarioModel> Insert(string? token, UsuarioModel model)
    {
        _responseBase = new ResponseBase<UsuarioModel>();
        try
        {
            string jsonData = JsonConvert.SerializeObject(model, Formatting.Indented);

            var request = new RestRequest("/admin/realms/ircnl-psi-realm/users", Method.Post);
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Authorization", "Bearer " + token);
            request.AddParameter("application/json", jsonData, ParameterType.RequestBody);
            RestResponse response = cliente.Execute(request);

            _responseBase.Entities = new List<UsuarioModel>(); 
            _responseBase.IsSuccess = true;
            _responseBase.MsgType = AlertTypeEnum.success.ToString();
            _responseBase.Message = "Listo";
        }
        catch (Exception ex)
        {
            _responseBase.IsSuccess = false;
            _responseBase.MsgType = AlertTypeEnum.error.ToString();
            _responseBase.Message = ex.Message.ToString();
        }
        return _responseBase;
    }

```

y hasta aca unciona perfecto!!

esto es para crear un usuario con un token de permiso.  
Mi pregunto como hacerle para que dentro mi aplicacion una persona publica pueda registrarse sin que hay que enviarle un token.  
Alguien tiene la solución para esto?
