True Fit Measurements API
Body measurements attached to a profile.
Body measurements attached to a profile.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/true-fit-measurements-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: True Fit Partner Measurements API
version: '2026-08-05'
description: 'These APIs can be used to manage True Fit profiles on behalf of your own users and to
request size recommendations for retailer products.'
contact:
name: True Fit
email: tech@truefit.com
license:
name: Proprietary - (c) True Fit Corporation
servers:
- url: https://partner.truefitcorp.com/api
description: Partner API
security:
- partnerApiKey: []
tags:
- name: Measurements
description: Body measurements attached to a profile.
paths:
/partner/{partnerId}/profile/{profileId}/measurements:
parameters:
- $ref: '#/components/parameters/partnerId'
- $ref: '#/components/parameters/profileId'
- $ref: '#/components/parameters/partnerUserId'
- $ref: '#/components/parameters/tfPartnerUserId'
get:
operationId: getMeasurements
tags:
- Measurements
summary: Read the profile's measurements
responses:
'200':
description: 'The profile''s measurements. Each exact measurement is echoed as submitted and
additionally carries a normalized value in True Fit''s standard unit (inches for
lengths and girths, pounds for weight, months for age).
'
content:
application/json:
schema:
$ref: '#/components/schemas/MeasurementsResponse'
examples:
heightWeightAge:
value:
exactMeasurements:
height:
unit: ft
value: 5
secondUnit: in
secondValue: 6
normalizedValue: 66
normalizedUnit: in
weight:
unit: lb
value: 140
normalizedValue: 140
normalizedUnit: lb
generalMeasurements:
waist: typical
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/ProfileNotFound'
put:
operationId: upsertMeasurements
tags:
- Measurements
summary: Add or replace measurements
description: 'Upserts the measurements you send. Measurement points you omit are left untouched;
this is not a full replacement of the measurement set.
Writing measurements re-runs body estimation, so a recommendation requested
immediately afterwards may return `userEstimationInProgress`. Retry after a short delay.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MeasurementsRequest'
examples:
exact:
value:
exactMeasurements:
height:
unit: ft
value: 5
secondUnit: in
secondValue: 6
weight:
unit: lb
value: 140
age:
unit: year
value: 30
general:
value:
generalMeasurements:
waist: typical
bust: small
responses:
'200':
description: Measurements written. No response body.
'400':
$ref: '#/components/responses/ValidationFailed'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/ProfileNotFound'
components:
schemas:
Uom:
type: string
description: Unit of measure.
enum:
- cm
- mm
- ft
- in
- kg
- year
- st
- lb
- month
example: in
MeasurementPoint:
type: string
description: A point on the body that can carry a measurement. Case-sensitive.
enum:
- armLength
- bust
- calf
- chest
- cupSize
- footBall
- footHeelToBall
- footInstepHeight
- footInstepWidth
- footLength
- footWidth
- head
- height
- highHip
- inseam
- inseamWithLift
- lowHip
- naturalWaist
- neck
- ribcage
- shoulders
- sleeveLength
- stomach
- thigh
- torsoLength
- upperArm
- waist
- weight
- footArchSupport
- toe
- heelWidth
- sleeveWidth
- age
example: height
MeasurementsRequest:
type: object
description: 'Measurements to upsert. Points you omit are left unchanged. At least one of the two
maps should be present; an empty object is accepted and is a no-op.
'
properties:
exactMeasurements:
type: object
description: Numeric measurements keyed by measurement point.
propertyNames:
$ref: '#/components/schemas/MeasurementPoint'
additionalProperties:
$ref: '#/components/schemas/ExactMeasurementValue'
generalMeasurements:
type: object
description: 'Qualitative measurements keyed by measurement point - how the user describes a body
point, or how they prefer a garment to fit there.
'
propertyNames:
$ref: '#/components/schemas/MeasurementPoint'
additionalProperties:
$ref: '#/components/schemas/GeneralMeasurementValue'
MeasurementsResponse:
type: object
required:
- exactMeasurements
- generalMeasurements
properties:
exactMeasurements:
type: object
propertyNames:
$ref: '#/components/schemas/MeasurementPoint'
additionalProperties:
$ref: '#/components/schemas/ExactMeasurementResponseValue'
generalMeasurements:
type: object
propertyNames:
$ref: '#/components/schemas/MeasurementPoint'
additionalProperties:
$ref: '#/components/schemas/GeneralMeasurementValue'
ExactMeasurementResponseValue:
allOf:
- $ref: '#/components/schemas/ExactMeasurementValue'
- type: object
required:
- normalizedValue
- normalizedUnit
properties:
normalizedValue:
type: number
description: The measurement converted to True Fit's standard unit for that point.
example: 66
normalizedUnit:
type: string
description: 'Standard unit for the point - `in` for lengths and girths, `lb` for weight,
`month` for age.
'
example: in
Error:
type: object
description: Standard error body.
required:
- statusCode
- message
properties:
statusCode:
type: integer
example: 404
message:
type: string
example: Profile not found
error:
type: string
example: Not Found
GeneralMeasurementValue:
type: string
description: A qualitative measurement - how the user describes a body point or fit preference.
enum:
- verySmall
- small
- typical
- big
- veryBig
example: typical
ValidationError:
type: object
description: Schema validation failure. Note this body carries no `statusCode`.
required:
- message
- error
properties:
message:
type: string
example: Validation failed
error:
type: object
description: Failing field path to error message.
additionalProperties:
type: string
ExactMeasurementValue:
type: object
description: 'A numeric measurement. Compound values use both unit pairs: 5''6" is
`{ unit: "ft", value: 5, secondUnit: "in", secondValue: 6 }`.
'
required:
- unit
- value
properties:
unit:
allOf:
- $ref: '#/components/schemas/Uom'
description: Primary unit - `ft` for feet, `kg` for kilograms, and so on.
value:
type: number
example: 5
secondUnit:
allOf:
- $ref: '#/components/schemas/Uom'
description: Secondary unit, used alongside the primary - `in` for inches with `ft` for feet.
secondValue:
type: number
example: 6
parameters:
profileId:
name: profileId
in: path
required: true
description: 'A profile belonging to the identified user, from `GET /profile`. Profiles belonging to
another user return `404` rather than `403`, so the endpoint cannot be used to probe
for the existence of other users'' profiles.
'
schema:
type: string
format: uuid
example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
partnerUserId:
name: partnerUserId
in: query
required: false
description: 'Your own identifier for the user, as passed to `GET /id-sync`. Send either this or
`tfPartnerUserId`; omitting both returns `400`. If both are sent, `tfPartnerUserId` wins.
'
schema:
type: string
example: acme-user-42817
tfPartnerUserId:
name: tfPartnerUserId
in: query
required: false
description: 'True Fit''s identifier for the user, returned by `GET /id-sync`. Send either this or
`partnerUserId`; omitting both returns `400`. Takes precedence when both are sent.
'
schema:
type: string
example: p-3f9c1a80-5d2e-4a17-9b64-8e0c2d7f1a55
partnerId:
name: partnerId
in: path
required: true
description: Your partner identifier, issued during onboarding.
schema:
type: string
example: acme
responses:
ProfileNotFound:
description: 'The `profileId` does not exist or does not belong to the identified user. Also returned
when the `partnerId` is unknown or disabled.
'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
profileNotFound:
value:
statusCode: 404
message: Profile not found
error: Not Found
Unauthorized:
description: 'Missing or invalid Basic credentials, or a user identifier that does not match a known
partner user.
'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
missingCredentials:
value:
statusCode: 401
message: Missing Basic auth credentials
error: Unauthorized
invalidCredentials:
value:
statusCode: 401
message: Invalid credentials
error: Unauthorized
unknownUser:
summary: The identifier has no True Fit mapping - call GET /id-sync first
value:
statusCode: 401
message: Unknown partner user
error: Unauthorized
ValidationFailed:
description: 'The request body or query string failed schema validation. `error` maps each failing
field path to its message; array indices appear as the first path segment.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
examples:
missingField:
value:
message: Validation failed
error:
0.retailerDomain: 'Invalid input: expected string, received undefined'
badEnum:
value:
message: Validation failed
error:
category: 'Invalid option: expected one of "belts"|"bottoms"|"bras"'
securitySchemes:
partnerApiKey:
type: http
scheme: basic
description: 'Empty username, partner API key as the password:
`Authorization: Basic <base64(":" + apiKey)>`.
'