---
title: "Get started — API / SDK integrator"
audience: "An integrator embedding WEARFITS on a custom site, app, or middleware"
goal: "Call the API that matches a recipe, with the right credential"
status: live
do_not:
  - "Choose an endpoint before choosing an outcome"
  - "Put a server API key in storefront JavaScript"
manual: true
last_updated: "2026-09-22"
description: "Use this path when you are embedding WEARFITS in a custom site, app, or middleware. Choose an outcome first. The developer index maps each outcome to a host..."
---


# API / SDK integrator

Use this path when you are embedding WEARFITS in a custom site, app, or middleware. [Choose an outcome](../start/choose.md) first. The [developer index](../developers/index.md) maps each outcome to a host and a reference page.

If the merchant is on Shopify or WooCommerce, prefer the native app or plugin. Build a custom embed when the recipe says the app does not cover that outcome — shoe size and bags are the usual cases.

## 1. API keys

Create a key at [dash.wearfits.com](https://dash.wearfits.com). Send it as `X-API-Key` on `api.wearfits.com` requests. Product SDKs that run in the shopper browser use the key or embed URL documented for that product — do not put server secrets in storefront JavaScript.

The shoe-size widget does not use this key. It uses a public `clientId` that WEARFITS registers. [Recommend a shoe size](../shoes/recommend-size.md).

Usage for AR and AI try-on is reported by the product SDKs. Custom server-to-server usage reporting is not a public API.

## 2. Canonical APIs

Base URL: `https://api.wearfits.com`

| Product | Endpoint | Docs |
|---------|----------|------|
| 2D → 3D shoes | `POST /api/v1/shoe-3d` then `GET /api/v1/jobs/{jobId}` | [API reference](../shoe3d-generator/api-reference.md) |
| Clothing digital twin | `POST /api/v1/digital-twin` | [Clothing API](../genai-tryon/api-reference.md) |
| Clothing virtual fitting | `POST /api/v1/virtual-fitting` | [Clothing API](../genai-tryon/api-reference.md) |
| Clothing size | `POST /api/v1/size-fitting` | [Clothing size recipe](../clothing/recommend-size.md) |
| AR product / viewer | `https://dev.wearfits.com` and `/tryon` | [AR API](../ar-tryon/api-reference.md), [AR SDK](../ar-tryon/sdk-guide.md) |
| Shoe size (store widget) | Size SDK on `size.wearfits.com` | [Shoe size recipe](../shoes/recommend-size.md), [Size SDK](../size/sdk-guide.md) |

Always use `POST /api/v1/shoe-3d` — not a legacy `/shoe3d` path — in new integrations.

`POST /api/v1/size-fitting` is clothing only. Do not send it a shoe.

Interactive explorer: [api.wearfits.com/reference](https://api.wearfits.com/reference).

## 3. Hosted embed guides

- Shoes AR: [tryon.wearfits.com/docs/integration-shoes](https://tryon.wearfits.com/docs/integration-shoes) and the [2D to 3D SDK guide](../shoe3d-generator/sdk-guide.md)
- Clothing: [tryon.wearfits.com/docs/integration](https://tryon.wearfits.com/docs/integration) and the [clothing SDK guide](../genai-tryon/sdk-guide.md)
- Shoe size: WEARFITS must register your store `clientId` and origins before go-live. Recommendations are advisory.

An on-shoe fit picture is not part of the shoe-size widget or the clothing size API. The widget returns the advisory modal only.

## 4. Platform apps

If the merchant is on Shopify or WooCommerce, prefer the native app or plugin instead of a from-scratch embed:

- [Shopify](shopify.md) — shoe AR, and apparel only when that access is already on the store. No shoe size.
- [WooCommerce](woocommerce.md) — shoe AR, plus an earlier-stage clothing iframe. No shoe size.
