# Signup

**Step 1: Prepare Your Request**

* **Endpoint:** `/auth/signup`
* **Method:** `POST`
* **URL:** `https://api.talkstackai.com/auth/signup`
* **Headers:** Include `Content-Type: application/json`.

**Step 2:** **Create the Request Body**

* `email`: Email of the user.
* `password` : Password for the account.
* `name` : Name of the user to be registered.

**Example Request Body:**

```
{
    "email": "example@host.com",
    "password": "XXXXXXXXXX",
    "name": "John"
}
```

**Step 3: Send the Request**

Use your preferred HTTP client to send the POST request with the JSON body.

**Step 4: Handle the response**

**Success Response:**

* **Status Code:** `200 OK`
* `token`: The token to be used for authorization. The token is only valid for 2 hours.
* `refreshToken`: Token to be used to get new token and continue session.
* `expirationTime`: Time after which the token will expire.
* `signupStatus`: The signup statuses are based on this enum:<br>

  ```javascript
  export const SIGNUP_STATUS = {
      'CREDENTIALS_MISSING': 0,
      'ACCOUNT_ALREADY_EXISTS': 1,
      'EMAIL_NOT_VERIFIED': 2,
      'SUCCESS': 3,
      'SIGNUP_FAILED': 4,
      'INVALID_EMAIL': 5,
      'EMAIL_NOT_SENT': 6
  }
  ```
* **Response Body**<br>

  ```
  {
      "message": "User registered successfully",
      "status": "success",
      "user": {
          "email": "example@host.com",
          "name": "Johm",
          "active_project": null,
          "created_at": "2025-03-10T05:20:39.831Z",
          "updated_at": "2025-03-10T05:20:39.831Z",
          "company_name": null
      },
      "signupStatus": 3
  }
  ```

**Troubleshooting**

* `400 Bad Request`: If the `email` or `password` or `name` is missing in the request or if the email is not in a valid format or if it already exists.
* `500 Internal Server Error`: For errors in signup.

Last updated 17 hours ago
