True Fit Measurements API

Body measurements attached to a profile.

Operations 2

GET /partner/{partnerId}/profile/{profileId}/measurements Read the profile's measurements #
PUT /partner/{partnerId}/profile/{profileId}/measurements Add or replace measurements #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/true-fit-measurements-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

true-fit-measurements-api-openapi.yml Raw ↑
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)>`.

        '