Physique & body fat

POST /v1/body · $0.01 a call

Send a front or side photo of one adult in fitted clothes, shorts or a swimsuit. A vision model grades visible cues on fixed anchor scales: abdominal definition, vascularity, muscle separation and development per group, symmetry and posture. The body fat range and physique score are then computed from published visual reference charts and a fixed formula, so the same cues always give the same numbers. Add height and weight for a second, BMI-based body fat estimate.

For physique raters, ai gym coaches, body transformation trackers.

Request

Send the photo as image (multipart), image_base64 or image_url, as described in the overview. These optional fields go alongside it:

FieldTypeDescription
contextstring, up to 500 charactersAnything the user adds, e.g. "just woke up, flexed" or "6 months of training".
sexone of male, femalePicks the body fat reference chart. Taken from the photo when missing.
agenumber, 18 to 100Years. Used by the BMI-based estimate (default 30 when height and weight are given without it).
height_cmnumber, 100 to 250With weight_kg, adds a second body fat estimate from BMI (Deurenberg formula).
weight_kgnumber, 30 to 300With height_cm, adds a second body fat estimate from BMI.
goalone of cut, bulk, recomp, maintainAdds a goal-specific note to the training focus.

Photo tips. One adult, front view, standing straight in even light. Shirtless, a fitted top or swimwear, with the waist visible. Full body if you want legs scored.

curl https://ourapi.keronlabs.com/v1/body \
  -H "Authorization: Bearer $FORKCAST_KEY" \
  -F image=@physique.jpg \
  -F sex="male"

Response

FieldDescription
summaryOne line for a list view, e.g. "Physique 75/100 (Advanced), est. body fat 12 to 15%".
physique_score0 to 100. 45% muscle development, 30% leanness against an athletic range, 10% symmetry, 15% posture.
levelBeginner (<35), Novice (35+), Intermediate (50+), Advanced (65+) or Elite (80+).
score_breakdownEach part of the score on 0 to 100.
body_fatestimate, low and high in %, the visual range, the BMI-based estimate when height and weight were sent, and which reference chart was used.
musclesshoulders, chest, arms, back, core, legs: score 1 to 10, or null when not visible.
strongest / weakestThe highest and lowest scored visible groups.
v_taperWaist to shoulder width ratio and a category: strong, moderate, slight or none.
posturePosture issues seen, with severity mild, moderate or severe.
training_focusPlain suggestions for the weakest groups and notable posture issues.
confidence0 to 1. Lower for loose clothing, back views, poor light or few visible groups.
warningsWhat limited the estimate and how to take a better photo.

Example

Output of this API's own code on a sample photo. Values will differ for your photos.

{
  "metadata": {
    "id": "req_9cf4da08fe7f40dab71a",
    "engine": "body",
    "status": "success",
    "cached": false,
    "credits_used": 1,
    "created_at": "2026-10-19T09:30:00.000Z",
    "processing_ms": 3400
  },
  "summary": "Physique 75/100 (Advanced), est. body fat 12 to 15%",
  "physique_score": 75,
  "level": "Advanced",
  "score_breakdown": {
    "muscle": 53,
    "leanness": 100,
    "symmetry": 78,
    "posture": 90
  },
  "body_fat": {
    "estimate": 13,
    "low": 11.5,
    "high": 14.5,
    "method": "visual",
    "visual": {
      "low": 11.5,
      "high": 14.5,
      "mid": 13
    },
    "bmi_based": null,
    "reference_chart": "male"
  },
  "muscles": {
    "shoulders": {
      "visible": true,
      "score": 6
    },
    "chest": {
      "visible": true,
      "score": 6
    },
    "arms": {
      "visible": true,
      "score": 6
    },
    "back": {
      "visible": false,
      "score": null
    },
    "core": {
      "visible": true,
      "score": 5
    },
    "legs": {
      "visible": false,
      "score": null
    }
  },
  "strongest": [
    "shoulders",
    "chest"
  ],
  "weakest": [
    "core"
  ],
  "symmetry": 8,
  "v_taper": {
    "waist_to_shoulder_ratio": 0.76,
    "category": "moderate"
  },
  "posture": [
    {
      "issue": "rounded_shoulders",
      "severity": "mild"
    }
  ],
  "training_focus": [
    "Add weighted crunches or cable crunches and hanging leg raises, 2 to 3 times a week."
  ],
  "confidence": 0.85,
  "warnings": [],
  "disclaimer": "Visual estimates for fitness tracking only. Not a medical assessment. For an accurate body fat number use DEXA or a similar measurement."
}