> For the complete documentation index, see [llms.txt](https://requestmechanic.gitbook.io/request-mechanic-api-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://requestmechanic.gitbook.io/request-mechanic-api-documentation/user/user-registration-step-1.md).

# User Registration - Step 1

The `POST /user/registration/step1/` endpoint allows a new user to register by providing their email, password, account type, and optional referral or coupon codes.

***

#### Parameters

**Request Body**

| **Field**       | **Type**       | **Description**                                                         |
| --------------- | -------------- | ----------------------------------------------------------------------- |
| `email`         | String (email) | **Required.** The user's email address. Must be a valid email format.   |
| `password`      | String         | **Required.** The user's password. Minimum length: 1.                   |
| `account_type`  | String         | **Required.** The type of account. Acceptable values: `[type1, type2]`. |
| `referral_code` | String         | Optional. A referral code provided by another user.                     |
| `coupon_code`   | String         | Optional. A coupon code to apply during registration.                   |

**Example Request Body**

```json
{
  "email": "user@example.com",
  "password": "securePassword123",
  "account_type": "type1",
  "referral_code": "REF12345",
  "coupon_code": "COUPON2024"
}
```

***

#### Responses

**Success Response**

**HTTP Status Code:** `201 Created`

| **Field**       | **Type**       | **Description**                                 |
| --------------- | -------------- | ----------------------------------------------- |
| `email`         | String (email) | The registered email address.                   |
| `password`      | String         | The registered password.                        |
| `account_type`  | String         | The account type specified during registration. |
| `referral_code` | String         | The referral code provided, if any.             |
| `coupon_code`   | String         | The coupon code applied, if any.                |

**Example Response Body**

```json
{
  "email": "user@example.com",
  "password": "securePassword123",
  "account_type": "type1",
  "referral_code": "REF12345",
  "coupon_code": "COUPON2024"
}
```
