# Virtual Tux

The Virtual Tux is an API that predicts tuxedo measurements, including jacket, shirt, vest, and pant sizes & fits, plus a subset of body measurements based on a minimum of 4 inputs, including height, weight, and age. All responses are returned as JSON.

See [Common API Topics](/common-api-topics.md) for global patterns across all endpoints.

## API

## Virtual Tux API

<mark style="color:blue;">`GET`</mark> `https://api.boldmetrics.io/virtualtux/get?`

Please note the `client_id` and `user_key` requirements, along with the minimum required inputs.

#### Query Parameters

| Name                                         | Type    | Description                                                                                                                                                      |
| -------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| client\_id<mark style="color:red;">\*</mark> | String  | Your account ID provided by Bold Metrics                                                                                                                         |
| user\_key<mark style="color:red;">\*</mark>  | String  | Your secret key provided by Bold Metrics                                                                                                                         |
| anon\_id                                     | String  | The id for the customer being fitted                                                                                                                             |
| event\_type                                  | String  | Event for the reservation, one of "WED" or "PROM"                                                                                                                |
| coat\_style\_no                              | Integer | Four digit code for selected coat                                                                                                                                |
| pants\_style\_no                             | Integer | Four digit code for selected pants                                                                                                                               |
| shirt\_style\_no                             | Integer | Four digit code for selected shirt                                                                                                                               |
| vest\_style\_no                              | Integer | Four digit code for selected vest                                                                                                                                |
| age<mark style="color:red;">\*</mark>        | Integer | age in years                                                                                                                                                     |
| height<mark style="color:red;">\*</mark>     | Integer | Height in inches                                                                                                                                                 |
| weight<mark style="color:red;">\*</mark>     | Integer | Weight in pounds                                                                                                                                                 |
| jean\_inseam                                 | Integer | Inseam of typically worn jeans in inches                                                                                                                         |
| waist<mark style="color:red;">\*</mark>      | Integer | Waist self-measurement                                                                                                                                           |
| shoe\_size\_us                               | Integer | Shoe Size (American)                                                                                                                                             |
| jacket\_size                                 | String  | Size of jacket reported by customer                                                                                                                              |
| chest                                        | Float   | Chest self measurement                                                                                                                                           |
| coat\_sleeve                                 | Float   | Coat sleeve self measurement                                                                                                                                     |
| hip                                          | Float   | Hip self measurement                                                                                                                                             |
| neck                                         | Float   | Neck self measurement                                                                                                                                            |
| outseam                                      | Float   | Out seam self measurement                                                                                                                                        |
| overarm                                      | Float   | Overarm self measurement                                                                                                                                         |
| shirt\_sleeve                                | Float   | Shirt sleeve self measurement                                                                                                                                    |
| coat\_fit                                    | String  | Selected fit of coat, one of "REG" or "SLIMFIT"                                                                                                                  |
| pants\_fit                                   | String  | Selected fit of pants: one of “REG”, “SLIMFIT”, or “EXTREME”. Alternately, fit may refer to a customer’s preference, one of “TAPERED”, “STRAIGHT”, or “RELAXED”. |
| shirt\_fit                                   | String  | Selected fit of shirt: one of “REG” or “FTD”                                                                                                                     |
| reservation\_no                              | String  | The Reservation # for the order                                                                                                                                  |

#### Headers

| Name         | Type   | Description                       |
| ------------ | ------ | --------------------------------- |
| Content-Type | String | application/json, text/javascript |

{% tabs %}
{% tab title="200: OK See code snippet" %}

```javascript
HTTP/1.1 200 OK
 Vary: Accept
 Content-Type: text/javascript

{  "code": 200,
   "customer": {
     "coat_style_no": "1130",
     "height": 72.0,
     "jacket_size": "34R",
     "jean_waist": 30.0,
     "pants_style_no": "1130",
     "shirt_style_no": "5770",
     "shoe_size_us": "12/ D",
     "vest_style_no": "8861",
     "weight": 150.0
   },
   "measurements": {
     "chest": 35.65,
     "coat_sleeve": 17.14,
     "hip": 37.65,
     "neck": 15.13,
     "outseam": 41.15,
     "overarm": 43.45,
     "shirt_sleeve": 34.71,
     "waist": 31.33
   },
   "message": {
     "overall": "OK"
   },
   "size_recommendations": [
     {
       "coat_chest": {
         "confidence": 1.0,
         "size": "34"
       },
       "coat_fit": {
         "confidence": 0.76,
         "size": "REG"
       },
       "coat_length": {
         "confidence": 0.63,
         "size": "L"
       },
       "pants_fit": {
         "confidence": 0.88,
         "size": "REG"
       },
       "pants_length": {
         "confidence": 0.8,
         "size": "R"
       },
       "pants_waist": {
         "confidence": 0.91,
         "size": "31"
       },
       "shirt_collar": {
         "confidence": 0.76,
         "size": "17"
       },
       "shirt_fit": {
         "confidence": 0.72,
         "size": "FTD"
       },
       "shirt_sleeve": {
         "confidence": 0.85,
         "size": "35"
       },
       "vest_length": {
         "confidence": 0.97,
         "size": "REG"
       },
       "vest_size": {
         "confidence": 0.62,
         "size": "SML"
       }
     },
     {<snip>},
     {<snip>}
   ]
 }
```

{% endtab %}

{% tab title="400: Bad Request Bad Request" %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="401: Unauthorized Unauthorized `client_id` and/or `user_key`" %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="404: Not Found Not Found" %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="500: Internal Server Error Internal Server Error" %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="429: Too Many Requests Too Many Requests" %}

{% endtab %}
{% endtabs %}

## **Example response**

```
 HTTP/1.1 200 OK
 Vary: Accept
 Content-Type: text/javascript

{  "code": 200,
   "customer": {
     "coat_style_no": "1130",
     "height": 72.0,
     "jacket_size": "34R",
     "jean_waist": 30.0,
     "pants_style_no": "1130",
     "shirt_style_no": "5770",
     "shoe_size_us": "12/ D",
     "vest_style_no": "8861",
     "weight": 150.0
   },
   "measurements": {
     "chest": 35.65,
     "coat_sleeve": 17.14,
     "hip": 37.65,
     "neck": 15.13,
     "outseam": 41.15,
     "overarm": 43.45,
     "shirt_sleeve": 34.71,
     "waist": 31.33
   },
   "message": {
     "overall": "OK"
   },
   "size_recommendations": [
     {
       "coat_chest": {
         "confidence": 1.0,
         "size": "34"
       },
       "coat_fit": {
         "confidence": 0.76,
         "size": "REG"
       },
       "coat_length": {
         "confidence": 0.63,
         "size": "L"
       },
       "pants_fit": {
         "confidence": 0.88,
         "size": "REG"
       },
       "pants_length": {
         "confidence": 0.8,
         "size": "R"
       },
       "pants_waist": {
         "confidence": 0.91,
         "size": "31"
       },
       "shirt_collar": {
         "confidence": 0.76,
         "size": "17"
       },
       "shirt_fit": {
         "confidence": 0.72,
         "size": "FTD"
       },
       "shirt_sleeve": {
         "confidence": 0.85,
         "size": "35"
       },
       "vest_length": {
         "confidence": 0.97,
         "size": "REG"
       },
       "vest_size": {
         "confidence": 0.62,
         "size": "SML"
       }
     },
     ...
   ]
 }
```

## **Garment Attributes**

Compared to our other endpoints, the Virtual Tux has the option to include garment attributes. These help identify size and fit for the customer, and is based on the following fields:

* *coat\_style\_no*
* *pants\_style\_no*
* *shirt\_style\_no*
* *vest\_style\_no*

If these fields are not provided or not fields that have been registered, then a general model is used that does not take the garment into account.

Additionally, if a customer selects a specific fit, we can include that in the model input.

* *coat\_fit*
* *pants\_fit*
* *shirt\_fit*

If a fit is not given, then the model can recommend which fit is best for the customer.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.boldmetrics.io/virtual-tux.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
