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.
openapi: 3.2.0
info:
title: True Fit - Consumer Fit Recommendation API
description: These APIs can be used to create a custom True Fit integration.
version: '3.0'
servers:
- url: /profile/public/v3/{tla}
tags:
- name: Fit Recommendation
description: Retrieve True Fit powered size recommendations for a profile.
paths:
/profiles/{profileId}/fit-recommendations:
get:
tags:
- Fit Recommendation
summary: Get a Fit Recommendation for the given styles
parameters:
- name: X-TF-UserToken
in: header
description: The session token for the current user.
required: true
style: simple
explode: false
schema:
type: string
- name: profileId
in: path
required: true
style: simple
explode: false
schema:
type: string
- name: locale
in: query
description: 'Identifier specifying the locale to use when retrieving suggested brands or any type of sizes e.g. sizes, bra sizes, inseams or sleeve lengths. This attribute is only required when the store supports multiple locales. Use an ISO 639 language code followed by an ISO 3166 country code, e.g. en_US. '
required: false
style: form
explode: true
schema:
type: string
- name: integrationPlatform
in: query
description: Specifies whether the call is being made from inside the context of an app or the web.
required: false
style: form
explode: true
schema:
type: string
enum:
- App
- Web
- name: s
in: query
description: Store Style IDs to request Fit Recommendations for.
required: true
style: form
explode: true
schema:
minItems: 1
type: array
items:
type: string
responses:
'200':
description: The Fit Recommendation results for the requested styles.
headers:
X-TF-UserToken:
description: The updated token for the user. This updated token should be used on all following requests. This header is only present when the token has cycled.
style: simple
explode: false
schema:
type: string
X-TF-UserTokenMaxAge:
description: This will be most useful when storing the token as a cookie. The value is the suggested max age of the token (in seconds).
style: simple
explode: false
schema:
type: integer
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FitDetailsResultSet'
operationId: getProfilesByProfileIdFitRecommendations
x-operation-id-source: derived
components:
schemas:
FitDetailsResultSet:
required:
- status
- styleId
type: object
properties:
styleId:
type: string
description: The store style ID that this result corresponds to.
status:
type: string
description: If the status is success, render the fit details page. If the status is estimationinprogress, a refershAfter should also come back on the FitDetailsResultSet, and another call for a fit rec should be made after the refreshAfter delay. For any other status, don't render the fit details page.
enum:
- error
- incompletegarment
- incompleteprofile
- invaliddepartment
- success
- estimationinprogress
- sizenotavailable
- unrecommendabledepartment
bestSize:
$ref: '#/components/schemas/FitDetails'
sizeUp:
$ref: '#/components/schemas/FitDetails'
sizeDown:
$ref: '#/components/schemas/FitDetails'
refreshAfter:
type: integer
description: If we can't provide a recommendation at the moment, the amount of time in milliseconds to wait before trying to retrieve a recommendation again.
FitMeasurementPoint:
required:
- measurementPoint
- pomType
- value
type: object
properties:
measurementPoint:
type: string
enum:
- Bust
- Chest
- FootLength
- FootWidth
- Inseam
- LowHip
- NaturalWaist
- Neck
- Shoulders
- SleeveLength
- Thigh
- Waist
pomType:
type: string
enum:
- Girth
- Length
- Width
value:
maximum: 7
minimum: 0
type: number
description: 'A value between 0 - 7 that represents how good of a fit an item is at a specific point. 0 represents snuggest, 3 or 4 represent an ideal fit, and 7 represents loosest.
'
FitDetails:
required:
- size
type: object
properties:
size:
type: string
recommended:
type: boolean
score:
maximum: 5
minimum: 1
type: number
description: A value between 1.0 and 5.0 that determines how good the overall fit of an item is.
overallFit:
maximum: 7
minimum: 0
type: number
description: A value between 0 - 7 that represents how good the overall fit of an item is. 0 represents snuggest, 3 or 4 represent an ideal fit, and 7 represents loosest. This should only come back if the list of poms are empty.
poms:
type: array
items:
$ref: '#/components/schemas/FitMeasurementPoint'
x-explorer-enabled: false