Gids · Migratie
Migreren van FASHN naar Photta wat er verandert, wat hetzelfde blijft
In één zin
Een try-on-integratie naar Photta verhuizen betekent een nieuwe bearer key, een nieuwe request body en een nieuw statuspad. De opzet van de integratie — submit, poll, download, store — verandert niet.
- Typische duur: 1.5–4 min
- Credits: 5 credits bij 2K · 6 credits bij 4K
- Verwerking: async, polling
Elk getal op deze pagina is afkomstig uit de Photta-API-documentatie · gecontroleerd
Het korte antwoord
Teams stappen over tussen try-on-API's om de gebruikelijke redenen: de output sluit beter aan op hun catalogus, de prijs per afbeelding pakt gunstiger uit bij hun volume, of ze hebben functionaliteit nodig die de huidige leverancier niet biedt — batch ghost mannequin, detail-close-ups, gegenereerde modellen hergebruikt over een seizoen.
Drie dingen: het credential, de request body en het statuspad. Photta authenticeert met een bearer key bij elke call, gebruikt eigen veldnamen en rapporteert de taakstatus via een per-functionaliteit status-endpoint. Elke waarde die je code verstuurt is gedocumenteerd als een enum of een id die je eerst kunt opvragen.
De architectuur. Beide zijn asynchrone API's waar je naar submit en die je pollt, dus je queue, je worker, je retry-beleid en je storage blijven allemaal gewoon werken. In de praktijk is een migratie een nieuwe clientmodule en een nieuwe set veldnamen, geen compleet nieuwe pipeline.
Het endpoint waar je naartoe verhuist
Gelezen uit de Photta API-documentatie, niet handmatig geschreven.
In één oogopslag
- Endpoint
- POST /api/v1/tryon/apparel
- Authenticatie
- Bearer API key
- Verwerking
- Asynchroon — poll het status-endpoint
- Typische duur
- 1.5–4 min
- Credits
- 5 credits bij 2K · 6 credits bij 4K
- Beeldverhoudingen
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- Invoerlimieten
- Tot 10 MB per afbeelding; JPEG, PNG, WebP
- Idempotent
- Nee
De vier zaken die daadwerkelijk veranderen
Authenticatie
Eén Bearer-sleutel op elk endpoint, aangemaakt in je Photta-dashboard. Geen afzonderlijke scopes per endpoint en geen token-exchange-stap.
De request body
Photta accepteert snake_case-velden met gedocumenteerde enums, en id's voor het model, de pose en de achtergrond die je ophaalt via de resource-endpoints en cacht.
Polling
Poll het statusEndpoint van de capability elke 3 seconden totdat het completed of failed meldt. Er zijn geen webhooks, dus er hoeft niets nieuws publiekelijk te worden blootgesteld.
Hoe er wordt afgerekend
Credits per call — 5 bij 2K en 6 bij 4K voor apparel try-on — afgeschreven zodra de taak start en automatisch gerestitueerd wanneer deze mislukt.
Het nieuwe request
Dezelfde call in cURL, Node.js en Python.
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/apparel \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": true,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/tryon/apparel", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": true,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/tryon/apparel",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": True,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
},
)
data = res.json()["data"] # data["id"], data["status"]Vragen over migreren
Hoe lang duurt een migratie?
Het is één clientmodule: een nieuwe sleutel, nieuwe veldnamen, een nieuw statuspad. Als je worker al submits en polling uitvoert, blijft de omliggende code ongewijzigd.
Moet ik mijn queue aanpassen?
Nee. Beide API's zijn asynchroon, dus wat je vandaag ook gebruikt — Celery, BullMQ, Inngest, een crontab — behoudt dezelfde opzet. Alleen de aanroepen binnen de taak veranderen.
Wat gebeurt er met afbeeldingen die ik al heb gegenereerd?
Dat zijn bestanden in je eigen opslag en daar verandert niets aan. Migreren beïnvloedt alleen wat je hierna rendert, niet wat je al hebt gepubliceerd.
Hoe verhouden de prijzen zich?
De vergelijkingspagina zet Photta’s kosten in credits per call af tegen wat FASHN op hun eigen prijspagina publiceert, inclusief de datum waarop elk cijfer is gecontroleerd. Je eigen volume bepaalt wat voordeliger uitvalt.
Kan ik beide tegelijk draaien?
Ja, en het is de veiligste manier om over te stappen. Stuur een deel van je catalogus via het nieuwe endpoint, vergelijk de output op echte producten en migreer vervolgens de rest.
Lees verder
Mogelijkheden
Virtual try-on API voor kleding
REST API die kleding op AI-mannequins plaatst. Asynchroon, generatie in 1.5–4 minuten, 5 credits bij 2K, 6 bij 4K. Voorbeelden in cURL, Node.js en Python.
LezenVergelijken
Photta vs FASHN — AI-mode-API, zij aan zij
Photta en FASHN vergeleken: endpoints, creditprijzen, abonnementsniveaus, concurrency-limieten. Afkomstig van de officiële prijzenpagina van elk bedrijf op 2026-04-19. Geen verzonnen cijfers.
LezenReferentie
Photta API-prijzen
Wat elk Photta API-endpoint kost in credits op 2K en 4K, hoe facturering en restituties werken, en welke endpoints gratis zijn. Geen geldprijs per afbeelding.
LezenReferentie
Photta API rate limits
De Photta API rate limit, het bijbehorende venster, de Retry-After-header, het polling-interval en de gelijktijdigheidslimieten per abonnement, rechtstreeks uit de API-documentatie.
LezenSnelstartgids
Eerste Photta-afbeelding in minder dan vijf minuten.
Registreer je, genereer een API-sleutel, voer je eerste cURL-call uit, poll totdat deze is voltooid, sla het resultaat op. Vijf stappen, end-to-end gedocumenteerd.
Lezen
Elk getal op deze pagina is afkomstig uit de Photta-API-documentatie · gecontroleerd
Draai beide tegelijk, schakel dan over
Richt een kopie van je queue op het nieuwe endpoint en vergelijk het resultaat zelf.
- 1.5–4 min
- 5 credits bij 2K · 6 credits bij 4K
- async, polling