DimensionsPot transforms one or more body measurements into a complete anthropometric profile of 130 ISO-compliant body dimensions, each accompanied by a Confidence Score and a 95% prediction interval.
Supply as little as a single anchor — height, foot length, wrist circumference, or any other recognized measurement — and the engine reconstructs the full body profile in under 50 ms (typically under 10 ms on a warmed instance).
Two prediction engines, one endpoint:
| Engine | Method | Training data | Age range |
|---|---|---|---|
| ADULT | Ridge Regression + 4-layer Modifier Pipeline | ANSUR II (n = 6,068) | > 20 y |
| PEDIATRIC | LMS Box-Cox (CDC) + Ridge hybrid | CDC Growth Charts 2000 (218 age points) | 0–20 y |
Set calculation_model to "AUTO" (the default) and routing happens automatically based on age.
Authentication
Subscribe on RapidAPI and copy your key from the dashboard. Two headers are required on every request:
X-RapidAPI-Key: YOUR_KEY
X-RapidAPI-Host: dimensionspot-bodysize-engine.p.rapidapi.com
Your First Request
A complete, copy-paste-ready request. All fields are shown with explicit values; defaults are noted in the Reference section below.
curl -X POST "https://dimensionspot-bodysize-engine.p.rapidapi.com/v1/predict" \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Key: YOUR_KEY" \
-H "X-RapidAPI-Host: dimensionspot-bodysize-engine.p.rapidapi.com" \
-d '{
"input_data": {
"input_unit_system": "metric",
"subject": {
"gender": "male",
"exact_age": 35.0,
"age_category": "ADULT",
"input_origin_region": "EUROPE"
},
"anchors": {
"body_height": 1780,
"body_mass": 82.0
}
},
"output_settings": {
"calculation": {
"calculation_model": "AUTO",
"target_region": "EUROPE",
"body_build_type": "CIVILIAN"
},
"requested_dimensions": {
"bundle": "FULL_BODY",
"specific_dimensions": null
},
"output_format": {
"unit_system": "metric",
"confidence_score_threshold": 0,
"include_range_95": true,
"include_iso_codes": true
}
}
}'
Same request in Python:
import requests
payload = {
"input_data": {
"input_unit_system": "metric",
"subject": {
"gender": "male",
"exact_age": 35.0,
"age_category": "ADULT",
"input_origin_region": "EUROPE"
},
"anchors": {
"body_height": 1780,
"body_mass": 82.0
}
},
"output_settings": {
"calculation": {
"calculation_model": "AUTO",
"target_region": "EUROPE",
"body_build_type": "CIVILIAN"
},
"requested_dimensions": {"bundle": "FULL_BODY"},
"output_format": {
"unit_system": "metric",
"confidence_score_threshold": 0,
"include_range_95": True,
"include_iso_codes": True
}
}
}
response = requests.post(
"https://dimensionspot-bodysize-engine.p.rapidapi.com/v1/predict",
json=payload,
headers={
"X-RapidAPI-Key": "YOUR_KEY",
"X-RapidAPI-Host": "dimensionspot-bodysize-engine.p.rapidapi.com"
}
)
dimensions = response.json()["body_dimensions"]
Request Field Reference
input_data
| Field | Required | Default | Allowed values | Description |
|---|---|---|---|---|
input_unit_system | no | "metric" | "metric" · "imperial" | Unit of the anchor values you supply. Metric: lengths in mm, mass in kg. Imperial: lengths in inches, mass in lbs. |
gender | yes | — | "male" · "female" | Subject biological sex. |
exact_age | no | null | float, 0–120 | Subject age in years. Authoritative engine-routing signal — overrides age_category on conflict. |
age_category | no | "ADULT" | "ADULT" · "INFANT" · "TODDLER" · "CHILD" · "PRE_TEEN" · "TEEN" | Broad age class. Determines engine when exact_age is absent. |
input_origin_region | no | "GLOBAL" | see Regions | Population the input measurements come from. Normalizes anchors to the ANSUR II global baseline before prediction. |
anchors | yes (ADULT) · no (PEDIATRIC) | {} | any body measurement key | The measurements you supply. Values in mm (lengths) or kg (body_mass). |
output_settings.calculation
| Field | Required | Default | Allowed values | Description |
|---|---|---|---|---|
calculation_model | no | "AUTO" | "AUTO" · "ADULT" · "PEDIATRIC" | Engine hint. AUTO routes by exact_age if provided, else by age_category. |
target_region | no | "GLOBAL" | see Regions | Population to calibrate output toward. Independent of input_origin_region. |
body_build_type | no | "CIVILIAN" | "CIVILIAN" · "ATHLETIC" · "OVERWEIGHT" | Morphological modifier applied to soft-tissue dimensions. |
output_settings.requested_dimensions
| Field | Required | Default | Allowed values | Description |
|---|---|---|---|---|
bundle | no | "FULL_BODY" | "FULL_BODY" · "HEAD_FACE" · "HAND_ARM" · "TORSO" · "LEGS_FEET" | Filter output to a body region. |
specific_dimensions | no | null | list of API keys | Request individual dimensions by API key. Combines with bundle as a union. |
output_settings.output_format
| Field | Required | Default | Allowed values | Description |
|---|---|---|---|---|
unit_system | no | "metric" | "metric" · "imperial" | Output unit. Independent of input_unit_system. |
confidence_score_threshold | no | 0 | integer 0–100 | Suppress dimensions below this Confidence Score. 0 returns all dimensions. |
include_range_95 | no | true | bool | Include the [lower, upper] 95% prediction interval per dimension. |
include_iso_codes | no | true | bool | Include the ISO 7250-1:2017 code per dimension. |
Regions
The same 7 codes apply to both input_origin_region and target_region.
| Code | Population source | Coverage note |
|---|---|---|
GLOBAL | ANSUR II (US Military baseline) | Full — both genders |
EUROPE | Aggregated European datasets | Full — both genders |
ASIA_PACIFIC | East Asian & Pacific datasets | Full — both genders |
LATAM | Latin American datasets | Full — both genders |
INDIA | South Asian regional data | Female falls back to ASIA_PACIFIC — noted in meta_warnings |
AFRICA | Sub-Saharan and regional proxy data | Male-only, −10 % confidence penalty — noted in meta_warnings |
MIDDLE_EAST | Middle Eastern regional data | Validated for males 18–30 only |
Bundles
| Bundle | Dimensions | Scope |
|---|---|---|
FULL_BODY | 130 | All available dimensions |
HEAD_FACE | 20 | Head, face, interpupillary distance, neck, bridge width |
HAND_ARM | 32 | Fingers, hand, wrist, forearm, arm, reach |
TORSO | 29 | Chest, waist, hip, shoulder breadths, sitting heights |
LEGS_FEET | 34 | Thigh, knee, calf, ankle, foot |
Minimum Valid Request
For adult subjects, gender plus one anchor is the minimum:
{
"input_data": {
"subject": { "gender": "male" },
"anchors": { "body_height": 1780 }
}
}
This returns all 130 FULL_BODY dimensions in metric with 95% intervals and ISO codes where defined.
Pediatric Requests
Activate the pediatric engine with a pediatric age_category or an exact_age ≤ 20.
{
"input_data": {
"subject": {
"gender": "female",
"exact_age": 7.0,
"age_category": "CHILD",
"input_origin_region": "GLOBAL"
},
"anchors": {}
},
"output_settings": {
"calculation": {
"calculation_model": "AUTO",
"target_region": "GLOBAL",
"body_build_type": "CIVILIAN"
},
"requested_dimensions": { "bundle": "HEAD_FACE" },
"output_format": {
"unit_system": "metric",
"confidence_score_threshold": 0,
"include_range_95": true,
"include_iso_codes": false
}
}
}
Important: In the pediatric engine,
body_heightandbody_massare outputs, not inputs. The CDC LMS method predicts them from age and sex, then uses them as a scaling base for the full 130-dimension skeleton via the adult Ridge model.
Pediatric age categories:
age_category | Typical range | Assumed age (when exact_age absent) | Engine |
|---|---|---|---|
INFANT | 0–2 y | 1.0 y | LMS + Ridge hybrid |
TODDLER | 2–4 y | 3.0 y | LMS + Ridge hybrid |
CHILD | 4–9 y | 6.5 y | LMS + Ridge hybrid |
PRE_TEEN | 9–12 y | 10.5 y | LMS + Ridge hybrid |
TEEN | 12–18 y | 15.0 y | LMS + Ridge hybrid |
ADULT | 18 + | population mean (35 y) | Ridge Regression |
Response Anatomy
{
"header": {
"status": "success",
"calculation_model_used": "ADULT",
"anchors_calculated": false,
"calculated_anchors": {},
"modifiers_applied": [
"Regional Calibration (EUROPE)",
"Civilian Body Composition (BF%=22.9%, delta=0.3%, body_type=CIVILIAN)"
],
"meta_warnings": []
},
"body_dimensions": {
"shoulder_height": {
"label": "Shoulder Height",
"description": "Vertical distance from the floor to the acromion landmark.",
"value": 1426.89,
"unit": "mm",
"type": "BONE",
"confidence_score": 85,
"range_95": [1397.09, 1456.70],
"iso_code": "6.1.4",
"biological_limit_status": "OK"
}
},
"system_info": {
"api_version": "v1",
"model_version": "adult_ridge_v4.0",
"computation_time_ms": 18
}
}
body_dimensions entry fields:
| Field | Type | Description |
|---|---|---|
label | string | Human-readable dimension name. |
value | float | Predicted value in the requested output unit. |
unit | string | "mm" or "inch" for lengths; "kg" or "lb" for mass. |
type | string | BONE (skeletal), FLESH (soft-tissue), or MEASURED (anchor you supplied). |
confidence_score | integer | Reliability index [0–100]. Never over-reported. |
range_95 | list or null | [lower, upper] 95% prediction interval. |
iso_code | string or null | ISO 7250-1:2017 section code. |
biological_limit_status | string | OK or OUT_OF_BOUNDS — NASA-STD-3001/CDC bounds check. |
Confidence Score
confidence_score is an empirically calibrated reliability index. Given the same anchor keys, the score is always deterministic. Actual 95-PI coverage on held-out data is always ≥ the reported score.
| Tier | Anchor condition | BONE score | FLESH score |
|---|---|---|---|
| PRIMARY_RICH | body_height + body_mass + ≥ 1 precision anchor | 87 | 80 |
| PRIMARY_BOTH | body_height + body_mass | 85 | 78 |
| PRIMARY_ONE | body_height or body_mass (not both) | 79 | 62 |
| SECONDARY | one strong secondary anchor (no primary) | 74 | 67 |
| TERTIARY | any other single anchor | 69 | 62 |
Error Reference
| HTTP | Trigger |
|---|---|
422 | Validation error — invalid enum value, anchor out of range, missing required field, adult engine called with empty anchors. |
403 | Request reached backend directly, bypassing RapidAPI gateway. |
500 | Internal engine error. |
Most common 422: submitting body_height in centimetres (e.g., 178.0) instead of millimetres (1780). The sanity bounds catch this immediately.
Utility Endpoints
GET /health — Liveness / readiness probe. Returns 200 when all runtime dependencies are available.
GET /v1/info — Returns all supported enum values (regions, bundles, age categories, body build types), model version identifiers, and the full endpoint map. Safe to cache client-side.
GET /v1/predict/examples — Returns 8 ready-to-use request payloads covering the main use cases (strong anchors, rich anchors, single anchor, targeted dimensions, bundle filter, regional calibration, body build type, pediatric).