Virtual Tux

An API providing tuxedo size recommendations.

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 for global patterns across all endpoints.

API

Virtual Tux API

GET 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*

String

Your account ID provided by Bold Metrics

user_key*

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*

Integer

age in years

height*

Integer

Height in inches

weight*

Integer

Weight in pounds

jean_inseam

Integer

Inseam of typically worn jeans in inches

waist*

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

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>}
   ]
 }

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.

Last updated