## API Documentation ___ > Values required in **`bold`**. ### **Accounts** | `account` | field | data type | metadata | | :-------------| :---------------- | :-------------------------------------------------- | | id | unsigned integer | primary key, auto-increments, generated by database | | username | string | required | | email | string | required | | password | string | required | | timezone | string | | | earliest_time | string | | | latest_time | string | | | created_at | datetime | generated by database | #### Register an account **`POST /api/account/register`** ##### Request A json object for the user to register with **`username`**, **`email`**, **`password`**, `timezone`, `earliest_time` and `latest_time`. ``` { "username": "jean, "email": "jean@example.com", "password": "really-strong-password", "timezone": "Europe/Brussels", "earliest_time":"09:30 AM", "latest_time":"10:00 PM" } ``` ##### Response A json object for the registered user with `id`, `username`, `email`, `timezone`, `earliest_time` and `latest_time`. ``` { "id": 1, "username": "jean", "email": "jean@example.com", "timezone": "Europe/Brussels", "earliest_time":"09:30 AM", "latest_time":"10:00 PM" } ``` #### Update an account **`PUT /api/account/:id/profile`** ##### Request A json object for the user to register with `id` and any of `username`, `email`, `password`, `timezone`, `earliest_time`, `latest_time`. ``` { "id": 15, "earliest_time":"08:30 AM", "latest_time":"08:00 PM" } ``` ##### Response A json object for the registered user with `id`, `username`, `email`, `timezone`, `earliest_time` and `latest_time`. ``` { "id": 1, "username": "jean", "email": "jean@example.com", "timezone": "Europe/Brussels", "earliest_time":"09:30 AM", "latest_time":"10:00 PM" } ``` #### Delete an account **`DELETE /api/account/:id`** ##### Request A json object for the user to delete with `id`. ``` { "id": 15 } ``` ##### Response A json object for the deleted user with `username` and `email`. ``` { "username": "jean", "email": "jean@example.com" } ``` #### Log in an account **`POST /api/account/login`** ##### Request A json object for the user to login with either **`email`** or **`username`**, and **`password`** . ``` { "username": "jean", "password": "super-strong-password" } ``` ##### Response A json object for the registered user with `id`, `username`, `email`, `timezone`, `earliest_time` and `latest_time`. ``` { "id": 1, "username": "jean", "email": "jean@example.com", "timezone": "Europe/Brussels", "earliest_time":"09:30 AM", "latest_time":"10:00 PM" } ```