# True Fit Integration Documentation > Information for project managers, architects, and developers about how to integrate True Fit into a retail website. ## Guides - [Frequently Asked Questions](https://techdocs.truefitcorp.com/docs/shopify-faq.md) - [Daily Product Catalog Feed](https://techdocs.truefitcorp.com/docs/daily-product-catalog-feed-copy.md) - [Weekly Incremental Returns Feed](https://techdocs.truefitcorp.com/docs/weekly-incremental-returns-feed.md) - [Product Detail Page Integration](https://techdocs.truefitcorp.com/docs/product-detail-page-integration.md) - [Order Confirmation Page Integration](https://techdocs.truefitcorp.com/docs/order-confirmation-integration.md) - [Adaptive Site Integration](https://techdocs.truefitcorp.com/docs/adaptive-site-integration.md) - [Other Integration Topics](https://techdocs.truefitcorp.com/docs/integration-techniques.md) - [Marketing Page Integration](https://techdocs.truefitcorp.com/docs/marketing-page-integration.md) - [Size Guide Integration](https://techdocs.truefitcorp.com/docs/size-guide-integration.md) - [Size Sampling Integration](https://techdocs.truefitcorp.com/docs/behavioral-size-sampling-pop-up-integration.md) - [True Fit on Dynamic Pages](https://techdocs.truefitcorp.com/docs/true-fit-on-dynamic-pages-1.md) - [Best Practices for Single Page Apps](https://techdocs.truefitcorp.com/docs/best-practices-for-single-page-apps.md) - [Widget Update API](https://techdocs.truefitcorp.com/docs/widget-update-api.md) - [Browser Support](https://techdocs.truefitcorp.com/docs/browser-support.md) - [Integration With HTTP APIs](https://techdocs.truefitcorp.com/docs/integration-with-http-apis.md) - [A/B Test Tracking](https://techdocs.truefitcorp.com/docs/experiment-settings-event-hook.md) - [JavaScript Event Hooks](https://techdocs.truefitcorp.com/docs/javascript-event-hooks.md) - [Commitment to Accessibility](https://techdocs.truefitcorp.com/docs/commitment-to-accessibility.md) - [Shopify Size Sampling Banner Integration](https://techdocs.truefitcorp.com/docs/size-sampling-integration.md) - [Shopify Marketing Page Integration](https://techdocs.truefitcorp.com/docs/marketing-page-integration-copy.md) - [Matrixify Returns Feed Integration](https://techdocs.truefitcorp.com/docs/matrixify-returns-feed.md) - [Loop Returns Integration](https://techdocs.truefitcorp.com/docs/loop-returns-integration.md) - [Tapcart Integration](https://techdocs.truefitcorp.com/docs/tapcart-integration.md) - [Native App Integration Overview](https://techdocs.truefitcorp.com/docs/overview.md) - [API Reference](https://techdocs.truefitcorp.com/docs/api-reference.md) - [iOS App True Fit SDK](https://techdocs.truefitcorp.com/docs/ios-app-true-fit-sdk.md) - [Installation for iOS](https://techdocs.truefitcorp.com/docs/installation-for-ios.md) - [Integration for iOS](https://techdocs.truefitcorp.com/docs/integration-for-ios.md) - [Order Confirmation Page for iOS](https://techdocs.truefitcorp.com/docs/order-confirmation-page-for-ios.md) - [API Reference for iOS](https://techdocs.truefitcorp.com/docs/api-reference-for-ios.md) - [Android App True Fit SDK](https://techdocs.truefitcorp.com/docs/android-app-true-fit-sdk.md) - [Installation for Android](https://techdocs.truefitcorp.com/docs/installation-for-android.md) - [Integration for Android](https://techdocs.truefitcorp.com/docs/option-1-standard-integration-for-android.md) - [Order Confirmation Page for Android](https://techdocs.truefitcorp.com/docs/order-confirmation-page-for-android.md) - [API Reference for Android](https://techdocs.truefitcorp.com/docs/api-reference-for-android.md) - [React Native True Fit SDK](https://techdocs.truefitcorp.com/docs/react-native-true-fit-sdk.md) - [Overview](https://techdocs.truefitcorp.com/docs/overview-1.md) - [Confidence API](https://techdocs.truefitcorp.com/docs/confidence-api.md) - [Request & Response](https://techdocs.truefitcorp.com/docs/request-response.md) - [iFrame Messaging](https://techdocs.truefitcorp.com/docs/iframe-messaging.md) - [Complete Example](https://techdocs.truefitcorp.com/docs/complete-example.md) - [Order Confirmation Integration](https://techdocs.truefitcorp.com/docs/order-confirmation-integration-1.md) - [iFrame Container Guidance](https://techdocs.truefitcorp.com/docs/iframe-container-guidance.md) - [API Reference](https://techdocs.truefitcorp.com/docs/api-reference-1.md) - [Overview](https://techdocs.truefitcorp.com/docs/overview-2.md) - [Getting Started](https://techdocs.truefitcorp.com/docs/getting-started-1.md) - [Supported APIs](https://techdocs.truefitcorp.com/docs/supported-apis.md) - [Metadata API](https://techdocs.truefitcorp.com/docs/metadata-api.md) - [Content API](https://techdocs.truefitcorp.com/docs/content-api.md) - [Processing the Data File](https://techdocs.truefitcorp.com/docs/processing-the-data-file.md) - [Legacy Shopify Integration](https://techdocs.truefitcorp.com/docs/shopify-integration.md) - [Legacy JavaScript Event Hooks](https://techdocs.truefitcorp.com/docs/legacy-javascript-event-hooks.md) - [Legacy JSON Object Reference](https://techdocs.truefitcorp.com/docs/legacy-json-object-reference.md) - [Legacy Order Confirmation Website Integrations](https://techdocs.truefitcorp.com/docs/oldorder-confirmation-integration.md) - [Widget Integration - Alternative Approach](https://techdocs.truefitcorp.com/docs/shopify-widget-integration-old-themes.md) - [Shopify Headless Integration](https://techdocs.truefitcorp.com/docs/shopify-headless-integration.md): You can access the headless integration by following these steps for Shopify: ## API Reference - [Overview](https://techdocs.truefitcorp.com/reference/registration-api.md) - [Get a new user session token, or reflect the current one if a valid token already present in the header. A token must be passed on all subsequent requests to the API.](https://techdocs.truefitcorp.com/reference/get_token.md) - [Track a checkout event for the retailer when a user completes an order and checks out.](https://techdocs.truefitcorp.com/reference/post_checkout.md) - [Retrieve the profiles on the current session.](https://techdocs.truefitcorp.com/reference/get_profiles.md) - [Create a profile for a user. Or, link a Store User ID and retrieve the profiles for the current session.](https://techdocs.truefitcorp.com/reference/post_profiles.md) - [Retrieve a specific profile by id](https://techdocs.truefitcorp.com/reference/get_profiles-profileid.md) - [Update a profile](https://techdocs.truefitcorp.com/reference/put_profiles-profileid.md) - [Delete a recipient from a shopper's profile.](https://techdocs.truefitcorp.com/reference/delete_profiles-profileid.md) - [Get a Fit Recommendation for the given styles.](https://techdocs.truefitcorp.com/reference/get_profiles-profileid-fit-recommendations.md) - [Change the active profile on the session.](https://techdocs.truefitcorp.com/reference/post_profiles-profileid-set-active.md): Set the `profileId` on the path as an active profile. - [Get a category specific profile strength for a profile.](https://techdocs.truefitcorp.com/reference/get_profiles-profileid-strength-category.md) - [Retrieve normalized sizes for the shopper profile.](https://techdocs.truefitcorp.com/reference/get_normalized-sizes.md) - [Determine if provided category is recommendable.](https://techdocs.truefitcorp.com/reference/get_normalized-sizes-recommendable.md) - [Retrieve the closet items for the given profile.](https://techdocs.truefitcorp.com/reference/get_profiles-profileid-closet.md) - [Saves a closet item for the given profile.](https://techdocs.truefitcorp.com/reference/post_profiles-profileid-closet.md) - [Get a specific closet item by ID.](https://techdocs.truefitcorp.com/reference/get_profiles-profileid-closet-closetid.md) - [Updates a closet item for the given profile.](https://techdocs.truefitcorp.com/reference/put_profiles-profileid-closet-closetid.md): The closetId in the path must match the id in the body. - [Deletes a Closet Item](https://techdocs.truefitcorp.com/reference/delete_profiles-profileid-closet-closetid.md) - [Get the current authentication state.](https://techdocs.truefitcorp.com/reference/get_auth.md) - [Save a True Fit account using an email address and password.](https://techdocs.truefitcorp.com/reference/post_auth-save.md) - [Log in to a True Fit account using an email address and password.](https://techdocs.truefitcorp.com/reference/post_auth-login.md) - [Logs the current user out of their True Fit account.](https://techdocs.truefitcorp.com/reference/post_auth-logout.md) - [Update an email address and/or password for a saved True Fit account.](https://techdocs.truefitcorp.com/reference/post_auth-update.md) - [Request a password reset e-mail for a forgotten password.](https://techdocs.truefitcorp.com/reference/post_auth-forgot.md) - [Recover a forgotten password via a password reset token sent to the user after calling /auth/forgot.](https://techdocs.truefitcorp.com/reference/post_auth-recover.md) - [Retrieve the available brands for the given combination of category, gender, and age group.](https://techdocs.truefitcorp.com/reference/get_brands.md) - [Retrieve the brand object based on a brandId.](https://techdocs.truefitcorp.com/reference/get_brands-brandid.md) - [Retrieve the suggested brands for the given combination of category, gender, and age group.](https://techdocs.truefitcorp.com/reference/get_brands-suggested.md) - [Retrieve the brand styles for the brand, category, gender, and age group.](https://techdocs.truefitcorp.com/reference/get_brands-brandid-styles.md) - [Retrieve the brand style object for the brand style id.](https://techdocs.truefitcorp.com/reference/get_brands-brandid-styles-brandstyleid.md) - [Retrieve the classes for the brand, category, gender, and age group.](https://techdocs.truefitcorp.com/reference/get_brands-brandid-classes.md) - [Retrieve the available sizes for the given combination of brandId, category, gender, and age group.](https://techdocs.truefitcorp.com/reference/get_sizes.md) - [Retrieve the size object based on a sizeId.](https://techdocs.truefitcorp.com/reference/get_sizes-sizeid.md) - [Retrieve the available bra sizes.](https://techdocs.truefitcorp.com/reference/get_bra-sizes.md) - [Retrieve product information for multiple products.](https://techdocs.truefitcorp.com/reference/get_products.md) - [Retrieve the product information for a single product.](https://techdocs.truefitcorp.com/reference/get_products-styleid.md) - [Retrieve available style attributes for the given category, ageGroup, gender, and optional class combination.](https://techdocs.truefitcorp.com/reference/get_style-attributes.md) - [Retrieve the available inseam lengths.](https://techdocs.truefitcorp.com/reference/get_inseams.md) - [Retrieve the available sleeve lengths.](https://techdocs.truefitcorp.com/reference/get_sleeve-lengths.md) - [Get all product ratings for the user.](https://techdocs.truefitcorp.com/reference/get_profiles-profileid-product-ratings.md) - [Save the user's product rating.](https://techdocs.truefitcorp.com/reference/post_profiles-profileid-product-ratings.md) - [Update the user's product rating.](https://techdocs.truefitcorp.com/reference/put_profiles-profileid-product-ratings-productratingid.md) - [Deletes a user's product rating.](https://techdocs.truefitcorp.com/reference/delete_profiles-profileid-product-ratings-productratingid.md) - [Send session information to True Fit for more advanced reporting.](https://techdocs.truefitcorp.com/reference/post_analytics-tracking.md) - [Overview](https://techdocs.truefitcorp.com/reference/partner-overview.md) - [Create a True Fit user for one of your users](https://techdocs.truefitcorp.com/reference/syncids.md): Creates a True Fit user and maps one of your user identifiers to it. Call this once per user, before any other endpoint. **Sync each user exactly once and store the returned `tfPartnerUserId`.** Re-syncing a `partnerUserId` that has already been synced is not supported: it issues a new `tfPartnerUserId` and detaches the profiles, measurements, and closet items written under the previous one. ### Signing the request Requests are signed with HMAC-SHA256 using the shared partner secret issued during onboarding. Build the canonical string from every query parameter **except** `hash`, sorted by parameter name, URL-encoding each value: ``` canonical = "partnerId=&partnerUserId=" # sorted, hash excluded hash = hex(hmac_sha256(partnerSecret, canonical)) ``` `redirectUri`, when present, participates in the signature like any other parameter. The comparison is timing-safe and the hash must be lowercase hex. This endpoint does **not** use Basic authentication - do not send an `Authorization` header. - [List the user's profiles](https://techdocs.truefitcorp.com/reference/listprofiles.md): Returns every profile belonging to the user, oldest first is not guaranteed - treat the order as unspecified and address profiles by `profileId`. A user with no profiles yet returns an empty array. - [Create a profile](https://techdocs.truefitcorp.com/reference/createprofile.md): Creates a profile for the user. The created profile records your `partnerId` as its `originStore`. An empty object is a valid body; both fields are optional. - [Update a profile](https://techdocs.truefitcorp.com/reference/updateprofile.md): Partially updates the profile. Only the fields you send are changed. Updating a profile re-runs body estimation, so a subsequent recommendation may briefly return `userEstimationInProgress`. - [Delete a profile](https://techdocs.truefitcorp.com/reference/deleteprofile.md) - [Read the profile's measurements](https://techdocs.truefitcorp.com/reference/getmeasurements.md) - [Add or replace measurements](https://techdocs.truefitcorp.com/reference/upsertmeasurements.md): 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. - [List the profile's closet items](https://techdocs.truefitcorp.com/reference/listclosetitems.md) - [Add a closet item](https://techdocs.truefitcorp.com/reference/createclosetitem.md): Adds a garment the user owns. The submitted combination of `brand`, `department`, `category`, `sellingLocale`, `hierarchyLabels`, `sellingSize`, and `sizeVariants.sizeType` must resolve to a size that exists in True Fit's catalogue - arbitrary garments cannot be added. See the integration guide for how to pick values that validate. Adding a closet item re-runs body estimation, so a recommendation requested immediately afterwards may return `userEstimationInProgress`. - [Update a closet item](https://techdocs.truefitcorp.com/reference/updateclosetitem.md): Partially updates a closet item. The fields you send are merged over the stored item and the merged result is re-validated against True Fit's size catalogue, so a partial update can be rejected because of fields you did not send. - [Delete a closet item](https://techdocs.truefitcorp.com/reference/deleteclosetitem.md) - [Recommend sizes for up to 100 products](https://techdocs.truefitcorp.com/reference/getbulkrecommendation.md): Returns a recommended size per product for the given profile. The response array has the **same length and order as the request array**, so results can be matched positionally. Each result also echoes the `retailerDomain`, `productId`, and `locale` you sent. Failures are per item: a product that cannot be recommended returns `success: false` with an `error`, and does not fail the other items. This is a `POST` because the product list is sent in the body; it has no side effects and returns `201`. - [Get aggregate fit guidance for up to 100 products](https://techdocs.truefitcorp.com/reference/getbulkgeneralguidance.md): Returns crowd-sourced fit guidance for products - how the product ran for other shoppers - without reference to any individual user. Unlike every other endpoint, this one needs **no user identifier**: the partner API key alone authorizes it, and no `partnerUserId` or `tfPartnerUserId` query parameter is required. Use it for anonymous visitors and for product pages where no profile exists. The response array has the same length and order as the request array, and failures are per item. ## Changelog - [Version 2024.05](https://techdocs.truefitcorp.com/changelog/version-202405.md) - [Version 2023.06](https://techdocs.truefitcorp.com/changelog/version-202306.md) - [Version 2023.03](https://techdocs.truefitcorp.com/changelog/version-202303.md) - [Version 2023.02](https://techdocs.truefitcorp.com/changelog/version-202302.md) - [Version 2023.01](https://techdocs.truefitcorp.com/changelog/version-202301.md) - [Version 2022.12](https://techdocs.truefitcorp.com/changelog/version-202212.md) - [Version 2022.09](https://techdocs.truefitcorp.com/changelog/version-202209.md) - [Version 2022.08](https://techdocs.truefitcorp.com/changelog/version-202208.md) - [Version 2022.05](https://techdocs.truefitcorp.com/changelog/version-202205.md) - [Version 2022.04](https://techdocs.truefitcorp.com/changelog/version-202204.md)