# CreateUser Method

## Description

Creates a user.

Usernames and email addresses must be unique across all users of all Skeddly accounts. Many email servers support "+ notation" to support unique passwords for a single inbox. For example, if the real email address was "<user@example.com>", then "<user+skeddly@example.com>" would forward to the same inbox. Essentially, everything between the "+" and "@" characters is ignored. Check with your IT team to see if your email servers support "+ notation".

## HTTP Request

`POST https://api.skeddly.com/api/Users/`

## Body

The body is a JSON structure with the following properties.

### emailAddress

Email address for the new user. It must not already be used by another user.

Type: `string`

Required: Yes

### managedPolicyIds

List of Managed Policy IDs to apply to the new user.

Type: Array of `string`

Required: No

### password

Password for the new user.

Type: `string`

Required: Yes

### username

Username for the new user.

Type: `string`

Required: Yes

## Returns

A [User](/data-types/user-object.md) object.

## Sample Request

{% tabs %}
{% tab title="HTTP" %}

```http
POST /api/Users HTTP/1.1
Host: api.skeddly.com
Authorization: AccessKey <api key>
Content-Type: application/json

{
    "emailAddress": "user@example.com",
    "managedPolicyIds": [
        "full"
    ],
    "username": "user1",
    "password": "reallygoodpassword"
}
```

{% endtab %}

{% tab title="Bash" %}

```bash
curl -X POST "https://api.skeddly.com/api/Users" \
  -H "Authorization: AccessKey <api key>" \
  -d emailAddress="user@example.com" \
  -d username="user1" \
  -d password="reallygoodpassword" \
  -d managedPolicyIds[]=full
```

{% endtab %}
{% endtabs %}

## Sample Response

```javascript
{
    "emailAddress": "user@example.com",
    "lastAccessDate": "2016-06-09T11:00:00Z",
    "managedPolicies": [
        {
            "managedPolicyId": "full",
            "name": "Full Access"
        }
    ],
    "mfaType": "none",
    "status": "enabled",
    "userId": "u-00000001",
    "username": "user1"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skeddly.com/resources/users/createuser-method.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
