---
title: "Create User"
method: POST
path: "/{sub_domain}/api/users"
tags: ["Users"]
---

# Create User

`POST /{sub_domain}/api/users`

## Request

- Base URL: `https://api.commpeak.com/dialer`
- URL: `https://api.commpeak.com/dialer/{sub_domain}/api/users`
- Auth: API key in header `Authorization`

Creates a new user and returns the created record.

**When to use.** Add a user to your account. If a user with the same `username` already exists, that existing user is returned and no new user is created.

**Required fields.** `username`, `email` and `sip_option`.

**Notes.** If you omit `password`, a temporary password is generated for the user. When `sip_option` is set to Custom URI, `sip_uri` is required. You can also assign roles and desks by passing their IDs. See the request schema for the full list of accepted fields.

**Returns.** `201 Created` with `{ "users": [ { ... } ] }`.

**Example.**
```json
{
  "username": "demo",
  "email": "test@example.com",
  "sip_option": 0
}
```

## Path parameters

- `sub_domain` string, required: Dialer Name (subdomain)

## Request body

- UserCreateInput
  - `username` string, required: Username.
  - `email` string, required: Email address.
  - `password` string, nullable: Password for the user account.
  - `sip_option` integer, required: SIP option (0 - WebRTC, 2 - Custom URI (needs sip_uri), 3 - Built in PBX).
  - `is_active` integer, nullable: Whether the user is active (1/0).
  - `is_clockedin` string, nullable: Timestamp the user clocked in.
  - `sip_uri` string, nullable: SIP URI (required when sip_option is Custom URI).
  - `auto_dial` integer, nullable: Auto-dial status (1/0).
  - `is_deleted` integer, nullable: Whether the user is deleted (1/0).
  - `use_extended_ip_acl` integer, nullable: Use extended IP ACL (1 - yes, 0 - no).
  - `is_predictive_clockedin` string, nullable: Timestamp the user clocked in for predictive dialing.
  - `predictive_dynamic_extension` string, nullable: Predictive dynamic extension.
  - `timezone_id` integer, nullable: Timezone ID.
  - `first_name` string, nullable: First name.
  - `last_name` string, nullable: Last name.
  - `virtual_extension` string, nullable: Virtual extension.
  - `default_language` string, nullable: Default language (e.g. en_US, es_ES, pt_BR).
  - `max_session_time` string, nullable: Maximum session time.
  - `max_concurrent_sessions` string, nullable: Maximum concurrent sessions.
  - `twofa_type` string, nullable: Two-factor authentication type (default, disabled, email, google).
  - `member_all_skill_groups` string, nullable: Member of all skill groups (1/0).
  - `member_all_desks` string, nullable: Member of all desks (1/0).
  - `user_region` string, nullable: PBX region (0 - default).
  - `desks` integer[], nullable: IDs of desks associated with the user.
  - `roles` integer[], nullable: IDs of roles assigned to the user.
  - `skill_groups` integer[], nullable: IDs of skill groups assigned to the user.

## Response `201`

Successful Response

- UsersResponse
  - `users` UserResult[], required
    - `id` integer, nullable: User ID.
    - `username` string, nullable: Username.
    - `email` string, nullable: Email address.
    - `virtual_extension` integer, nullable: Virtual extension.
    - `first_name` string, nullable: First name.
    - `last_name` string, nullable: Last name.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/commpeak/apis/commpeak-dialer-api.md) - [All operations](https://skmtc.dev/commpeak/apis/commpeak-dialer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/commpeak/apis/commpeak-dialer-api/revisions/18c5edc07544?raw)
