Metr Fit / API V1

Adaptive questionnaires

Ask each customer only the questions that help for this product.

The question bank

curl --fail-with-body -X GET "$METR_API_URL/v1/stores/$STORE_ID/products/$PRODUCT_ID/fit-questionnaire" \
  -H "Authorization: Bearer $METR_API_KEY"

Optional ?color=black restricts available_sizes to that exact variant color. Session creation returns the frozen questionnaire (version fit-quiz-2.0.0) to use for actual answers. Every question is optional.

Question shape

{
  "id": "reference_size",
  "section": "sizes",
  "label": "Which size fits you well at another brand?",
  "type": "single_select",
  "options": [
    "cht_alpha:M"
  ],
  "option_labels": {
    "cht_alpha:M": "Alpha M"
  }
}

Use id as the answer key, label as the visible question, option_labels (when present) as display text for options, and min/max/unit for numbers. Question IDs beginning measurements. map into the answers.measurements object.

Adaptive flow

curl --fail-with-body -X POST "$METR_API_URL/v1/stores/$STORE_ID/fit-sessions/$SESSION_ID/next-question" \
  -H "Authorization: Bearer $METR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "answers": {
    "height_cm": 176,
    "weight_kg": 75
  },
  "skipped": []
}'

The response is {done, question, asked, estimate}. Show question, add the answer (or its ID to skipped) and call again. The quiz asks explicit inputs first when something uses them, then the question with the largest expected reduction in size uncertainty. A tape measurement must be worth twice a click. It stops when one size has at least 0.8 of the probability, nothing useful remains, or ten questions were asked. Then submit the answers for a recommendation.

What can be asked

  • explicit: body_track (only for unisex apparel; picks the illustration set), height_cm, weight_kg and age. Product type and gender come from the product.
  • sizes: usual_size at this brand, reference_size at another brand that shares its chart, and size_consistency.
  • fit: preferred_fit (close, regular or loose) for apparel.
  • body_shape: silhouette_shoulders, silhouette_waist, silhouette_hips and silhouette_thigh, answered with a fashion_sizing_assets illustration such as female_tops_waist_stomach:3. They describe shape for Jev and never become centimetres. They are asked only when Jev is enabled.
  • measurements: optional body tape measurements in centimetres for chart areas. Garment-only lengths are not asked.
  • Footwear asks only usual size, reference size, consistency and foot length.

Quiz completion

A session starts with POST /fit-sessions and expires after 24 hours. The API records fit_started. Submitting valid answers and receiving a recommendation records fit_completed and recommendation_generated atomically. A customer can redo the quiz by creating a new session.