# API Documentation: Get Level Information

## Endpoint  
**URL**:  
```
https://db.lilacdancecenter.com/api/get_level
```

**Method**:  
`GET`

---

## Query Parameters  
| Parameter    | Type    | Description                                  |
|--------------|---------|----------------------------------------------|
| `first_name`  | String  | The dancer's first name. Required.           |
| `last_name`   | String  | The dancer's last name. Required.            |

Example Request:  
```
https://db.lilacdancecenter.com/api/getlevel?first_name=John&last_name=Doe
```

---

## Response  

The endpoint returns a JSON object containing the dancer's levels for each dance style and their first competition date.  

### JSON Response Format  
```json
{
  "smooth_level": "bronze",
  "standard_level": "silver",
  "rhythm_level": "silver",
  "latin_level": "bronze",
  "start_date": "2022-03-12T00:00:00.000-05:00",
  "level_dates" {
    "smooth": {
      "newcomer": {
        "date": "2022-03-12T00:00:00.000-05:00",
        "event_id": 72276,
        },
      "bronze": { ... },
      ...
    },
    "standard": { ... },
    ...
  } 
}
```

### Response Parameters  
| Field           | Type   | Description                                                                 |
|------------------|--------|-----------------------------------------------------------------------------|
| `smooth_level`    | String | The level of the dancer in Smooth style (e.g., bronze, silver, etc.).       |
| `standard_level`  | String | The level of the dancer in Standard style (e.g., bronze, silver, etc.).     |
| `rhythm_level`    | String | The level of the dancer in Rhythm style (e.g., bronze, silver, etc.).       |
| `latin_level`     | String | The level of the dancer in Latin style (e.g., bronze, silver, etc.).        |
| `start_date`      | Date String | The UTC timestamp of the dancer's first competition in the format `YYYY-MM-DDTHH:MM:SS.MS-05:00`. <br>Ex: `2022-03-12T00:00:00.000-05:00`|
| `level_dates` | Nested Dictionary | Contains the dates at which this individual reached a level, per style. Also includes the LilacDB event id that caused the level increase for those curious. <br>Event id use: `https://db.lilacdancecenter.com/events?event_id=xxxxx`

---

## Behavior  

- The API retrieves the levels associated with the provided dancer's first and last name.  
- The `start_date` field corresponds to the date and time of the dancer's **first competition**.  

---

## Example Usage  
**Request**:  
```
GET https://db.lilacdancecenter.com/api/get_level?first_name=Jane&last_name=Doe
```

**Response**:  
```json
{
  "smooth_level": "silver",
  "standard_level": "gold",
  "rhythm_level": "bronze",
  "latin_level": "silver",
  "start_date": "2023-06-15T00:00:00.000-05:00",
  "level_dates": { ... }
}
```

This response indicates that:
- The dancer "Jane Doe" has the following dance levels:
  - Smooth: Silver
  - Standard: Gold
  - Rhythm: Bronze
  - Latin: Silver
- Their first competition took place on **June 15, 2023**.

---

## Notes  
- Levels are categorized into predefined tiers such as **bronze**, **silver**, or **gold**, as detailed in the MIT Ballroom Dance Team's [About YCN Points](http://ballroom.mit.edu/index.php/ycn-proficiency-points/)