Create a free 3D shoe
WEARFITS /create lets a new personal account turn photos of one shoe into a 3D model, try it on with a phone, share it publicly, and upgrade from the result page when more product features are needed.
The flow includes:
- One free shoe generation
- Magic-link sign-in
- Upload of one to four shoe photos
- A short store question
- 3D preview with AR on compatible mobile devices
- Phone try-on and desktop QR codes
- Ready and failed email notifications
- Public sharing at
/s/<slug> - Plan checkout that returns to the same model
Availability may be introduced gradually. If the flow is paused or your account is directed to Plans, use the available plan options or contact WEARFITS.
Prerequisites
For the dashboard flow, you need:
- A personal WEARFITS account without an active plan
- Access to the email address used for sign-in
- One to four photos of the same shoe
- JPG, JPEG, PNG, or WebP images
- A modern browser
- A compatible phone for AR and phone try-on
Accounts already using a team or partner workspace should generate models through that workspace instead of the free /create flow.
How the flow works
graph TD
A[Open /create] --> B[Choose 1–4 shoe photos]
B --> C[Request a magic sign-in link]
C --> D[Open the link]
D --> E[Answer the store question]
E --> F[Click Generate]
F --> G[Generation in progress]
G --> H{Generation result}
H -->|Ready| I[3D preview, AR and phone try-on]
H -->|Ready| J[Enable public sharing]
H -->|Ready| K[Upgrade or open the model in Studio]
H -->|Failed| L[Failure email and retry guidance]
J --> M[Public /s/ page]
K --> N[Secure plan checkout]
N --> O[Return to the same result page]
Step-by-step
1. Choose photos
Open:
Choose one to four photos showing the same shoe from different angles. A plain background and good lighting generally produce better results.
Before sign-in, photos remain in the current browser. They are not sent for generation until you return from the magic link and explicitly start the generation.
If you open the sign-in link on another device or browser, the original photo draft will not be available there. Return to the browser where you selected the photos, or choose the photos again.
2. Sign in with a magic link
Enter your email address and select the sign-in or sign-up action. WEARFITS sends a secure link to your inbox.
The /create sign-in flow returns you to the generator. It does not require the usual AI/AR onboarding question.
3. Answer the store question
Before generation, answer:
Do you sell shoes online?
You can select Yes or No. If you select Yes, you can optionally enter your store URL. The address should be a normal web address, such as:
This information helps WEARFITS understand the type of customer using the self-serve flow. It does not grant or remove product access.
4. Start generation
Select Generate my 3D shoe.
Generation does not start merely because photos were uploaded. The explicit Generate action is required.
The progress screen shows:
- That the model is being prepared
- The elapsed time
- Typical timing of approximately 10–27 minutes
There is no percentage or countdown. You can close the browser while the generation continues.
5. Review the result
When the model is ready, the result page provides:
- An interactive 3D preview
- AR on compatible mobile browsers
- A phone try-on link
- A QR code for opening the phone experience from a desktop
- A public sharing option
- Upgrade actions for downloading or using the model in the wider WEARFITS product
On a phone, use the AR or try-on action directly. On a computer, scan the displayed QR code with your phone.
Email notifications
WEARFITS sends a transactional email when the generation finishes.
Ready email
The ready email includes:
- A link to view the result
- A See it on your foot action
- A QR code for opening the model on a phone when sharing is enabled
- Guidance about what a plan unlocks
Failed email
If the generation fails, the email explains that the model could not be completed and provides retry guidance when another attempt is available.
A failed generation does not always mean that another free attempt is available. The result page is the source of truth for whether Try again is offered.
Free-generation limits
The self-serve offer is intended for one first model:
- One free generation per person and verified mailbox
- A retry may be available when a generation fails in an eligible way
- Daily capacity is limited
- Additional generations and product features require a plan
Deleting a model does not restore the free generation. A completed free generation remains used even if the model is later removed.
Public sharing
From the result page, enable sharing to create a public URL such as:
Anyone with the URL can open the public page without a WEARFITS account. The page includes the 3D model, supported AR actions, phone try-on access, and a Made with WEARFITS badge.
To disable sharing, turn off the sharing control on the result page. The public URL then stops displaying the model. You can enable sharing again later if the result remains eligible.
Do not share the URL if the model is intended to remain private.
Using the /create API
The web interface is the recommended way to use the flow. The following same-origin endpoints are also available for authenticated dashboard integrations.
These endpoints use the signed-in WEARFITS session. They are not anonymous API endpoints, and an API key is not required for the browser flow.
1. Save the store answer
curl -X POST "https://dash.wearfits.com/api/v1/create/claim" \
-H "Content-Type: application/json" \
-H "Cookie: <authenticated-session-cookie>" \
--data '{
"sellsShoesOnline": true,
"storeUrl": "https://example.com"
}'
Successful response:
Other successful outcomes can indicate that a generation is already running, that the free generation has already been used, or that the account should use its existing product access instead.
2. Upload a source image
Send the image as the request body. The endpoint accepts a prepared image rather than a JSON base64 payload.
curl -X POST "https://dash.wearfits.com/api/v1/create/source-images" \
-H "Content-Type: image/jpeg" \
-H "Cookie: <authenticated-session-cookie>" \
--data-binary "@front.jpg"
Successful response:
Repeat this request for each photo, then use the returned URLs when submitting the generation.
3. Submit the generation
curl -X POST "https://dash.wearfits.com/api/v1/create/requests" \
-H "Content-Type: application/json" \
-H "Cookie: <authenticated-session-cookie>" \
--data '{
"sourceImages": [
{
"kind": "external",
"url": "https://temporary-image-url.example/front.jpg"
},
{
"kind": "external",
"url": "https://temporary-image-url.example/side.jpg"
}
]
}'
A newly created request returns a response similar to:
{
"success": true,
"created": true,
"data": {
"id": "request-id",
"status": "processing",
"createdAt": "2026-10-12T10:00:00.000Z",
"elapsedMinutes": 0,
"glbUrl": null,
"thumbnailUrl": null,
"shareEnabled": false,
"shareUrl": null,
"tryOnUrl": null,
"failureCopy": null,
"canDownload": false,
"downloadUrl": null,
"studioUrl": null,
"retryAvailable": false,
"retryRefusal": null,
"retrySourceImages": null
}
}
If the account already has an active free request, the endpoint returns the existing request rather than starting a duplicate generation. In that case, created is false.
4. Read the result
curl "https://dash.wearfits.com/api/v1/create/requests/request-id" \
-H "Cookie: <authenticated-session-cookie>"
A ready result includes links according to the account’s access:
{
"success": true,
"data": {
"id": "request-id",
"status": "ready_for_qa",
"createdAt": "2026-10-12T10:00:00.000Z",
"elapsedMinutes": 18,
"glbUrl": "https://model-file.example/shoe.glb",
"thumbnailUrl": "https://image.example/shoe.jpg",
"shareEnabled": true,
"shareUrl": "https://dash.wearfits.com/s/AbC_-123xyz9",
"tryOnUrl": "https://tryon.example/shoe",
"failureCopy": null,
"canDownload": false,
"downloadUrl": null,
"studioUrl": null,
"retryAvailable": false,
"retryRefusal": "FREE_GENERATION_USED",
"retrySourceImages": null
}
}
A plan unlocks the downloadable model file and the option to open the model in 3D Studio.
5. Toggle public sharing
curl -X POST "https://dash.wearfits.com/api/v1/create/requests/request-id/share" \
-H "Content-Type: application/json" \
-H "Cookie: <authenticated-session-cookie>" \
--data '{"enabled": false}'
Response:
A request belonging to another account, a non-free request, or a deleted request is not exposed through this endpoint.
6. Start plan checkout
The result page can offer available plans through its own checkout:
curl -X POST "https://dash.wearfits.com/api/v1/create/checkout" \
-H "Content-Type: application/json" \
-H "Cookie: <authenticated-session-cookie>" \
--data '{
"requestId": "request-id",
"priceKey": "basic_monthly",
"attemptId": "7b7f5f7e-9f16-4b7f-a2ec-7bd0d7e9d3cb"
}'
Successful response:
Redirect the browser to data.url. After payment, WEARFITS returns the customer to the same result page. The page then reflects the account’s updated access, including download and Studio actions.
If checkout is not configured or the account is not eligible to buy from the result page, use the main Plans page instead.
Direct 2D-to-3D integrations
For direct WEARFITS 2D-to-3D integrations, use the canonical endpoint:
The /create flow is the recommended self-serve experience because it handles sign-in, eligibility, photo preparation, progress, sharing, notifications, and checkout.
TODO: Add the full direct
/api/v1/shoe-3dauthentication, request, and response contract to the API reference. This article documents the customer-facing/createflow and its dashboard endpoints.
Notes and caveats
- Keep the magic-link flow in the same browser where photos were selected if you want the draft to be restored automatically.
- AR and phone try-on depend on device and browser support. If AR is unavailable, open the try-on link on a compatible phone.
- The progress indicator is intentionally indeterminate. Generation time can vary.
- A public share URL can be opened without an account. Treat it as public information.
- Downloading the GLB, additional generations, store integrations, and other product capabilities require an applicable plan.
- If the generation fails, follow the retry instruction on the result page rather than submitting a second request manually.