Functionaliteit · Mannequin-generatie
AI mannequin-generatie API voor je eigen modellen
In één zin
Photta’s mannequin-generatie API bouwt een fotorealistisch AI-model op basis van attributen die je kiest, retourneert een herbruikbare mannequin-id en kost 4 credits. Twee builders: één voor kleding, één afgestemd op close-ups van sieraden.
- Typische duur: 30-60s
- Credits: 4 credits
- Verwerking: async, polling
- Limieten: 600 requests/min
- Authenticatie: Bearer key
Elk getal op deze pagina is afkomstig uit de Photta-API-documentatie · gecontroleerd
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]In één oogopslag
In één oogopslag
- Endpoint
- POST /api/v1/mannequins/generate
- Authenticatie
- Bearer API key
- Verwerking
- Asynchroon — poll het status-endpoint
- Typische duur
- 30-60s
- Credits
- 4 credits
- Invoerlimieten
- Tot 10 MB per afbeelding; JPEG, PNG, WebP
- Idempotent
- Nee
Request en response
Request
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]202 Accepted / Completed
{
"data": {
"id": "mmk_r4s5t6",
"status": "processing",
"category": "Female",
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z"
},
"request_id": "req_mnk002"
}{
"data": {
"id": "mmk_r4s5t6",
"status": "completed",
"mannequin": {
"id": "mnk_v7w8x9",
"name": "Generated Mannequin",
"gender": "female",
"thumbnail_url": "https://cdn.photta.app/mannequins/mnk_v7w8x9-thumb.jpg"
},
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z",
"completed_at": "2026-04-10T14:00:42Z",
"duration_ms": 42000
},
"request_id": "req_mnk003"
}Request-parameters
categoryType: stringVereist
Mannequin category.
Waarden:FemaleMaleGirlChildBoyChildethnicityType: string
Ethnic appearance.
Waarden:east_asian_koreaneast_asian_chinesesoutheast_asiansouth_asiannordicwestern_europeaneastern_europeanmediterraneanafricanafrican_americanmiddle_easternlatin_americanbrazilianmixed_asian_europeanpolynesianageType: string
Age range.
Waarden:early_20slate_20searly_30slate_30s40s50sbaby_1toddler_2_4young_5_7child_8_10preteen_11_13skin_toneType: string
Skin tone.
Waarden:lightlight_mediummediummedium_darkdarkface_shapeType: string
Face shape.
Waarden:ovalsquareroundheartoblongdiamondeye_colorType: string
Eye color.
Waarden:browndark_brownblackbluegreenhazelgrayambereye_shapeType: string
Eye shape.
Waarden:almondroundmonolidhoodedupturneddownturnedexpressionType: string
Facial expression.
Waarden:neutralsoft_smilewarm_smileseriousconfidentfriendlyfacial_hairType: string
Facial hair style (Male only).
Waarden:nonelight_stubblemedium_stubbleshort_beardfull_beardgoateemustachemakeupType: string
Makeup style (Female only).
Waarden:naturalminimalsoft_glamprofessionaleditorialhair_styleType: string
Hair style. Available options depend on category — use /options endpoint.
hair_colorType: string
Hair color.
Waarden:blackdark_brownmedium_brownlight_brownauburnredblondeplatinum_blondegraywhitehair_textureType: string
Hair texture.
Waarden:straightwavycurlycoilybody_typeType: string
Body type. Options depend on category — use /options endpoint.
heightType: string
Height.
Waarden:shortaveragetallglassesType: string
Glasses.
Waarden:noneeyeglassessunglassesfrecklesType: string
Freckles.
Waarden:nonelightprominentpiercingsType: string
Piercings.
Waarden:noneearnosemultiple
Errors
- 400
invalid_request_error - The request is malformed or contains invalid parameters.
- 401
authentication_error - The API key is missing, invalid, or expired.
- 402
insufficient_credits_error - Your account does not have enough credits.
- 404
not_found_error - The requested resource does not exist.
- 409
conflict_error - The request conflicts with current state — e.g. your concurrent-batch cap is reached.
- 429
rate_limit_error - Too many requests. Slow down and retry.Retry-After: 30
- 500
api_error - An internal server error occurred. Retry later.
Limieten
- 600 verzoeken per minuut per API key (Vast venster; de limiet is identiek op elk abonnement)
- Een 429 bevat Retry-After: 30 seconden
- Tot 10 MB per afbeelding
- Formaten: JPEG, PNG, WebP
- Gelijktijdige batches per abonnement: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Uitsluitend polling — de API stuurt geen webhooks.
Attributen erin, een herbruikbaar model eruit
Lees de opties, kies attributen, verzend, poll en hergebruik vervolgens het id.
Stap 1
Genereer een API-key
Mannequin-generatie gebruikt dezelfde inloggegevens en hetzelfde creditsaldo als elke andere Photta-functionaliteit.
Stap 2
Lees de optiecatalogus
GET `/api/v1/mannequins/generate/options` retourneert elke geaccepteerde waarde, inclusief de lijsten voor `hair_style` en `body_type` die per categorie verschillen. Stuur je formulier hiermee aan in plaats van de enums te hardcoderen.
Stap 3
POST de mannequin
POST `/api/v1/mannequins/generate` met `category` — `Female`, `Male`, `GirlChild` of `BoyChild` — plus een van de 17 optionele attributen: etniciteit, leeftijd, huidskleur, gezichts- en oogvorm, expressie, gezichtsbeharing, make-up, haar, lichaamstype, lengte, bril, sproeten en piercings.
Stap 4
Poll totdat de taak is voltooid
GET `/api/v1/mannequins/generate/:id` elke 3 seconden totdat `data.status` `completed` of `failed` is; gebruikelijke verwerkingstijd is 30 tot 60 seconden.
Stap 5
Hergebruik de mannequin
De voltooide body bevat een `mannequin`-object met een eigen id. Geef dat id mee als `mannequin_id` bij latere try-on- of eyewear-taken en elk beeld behoudt hetzelfde gezicht.
Hetzelfde endpoint in Node.js, Python en cURL
Node.js
AI mannequin-generatie API in Node.js
Roep Photta's aI mannequin-generatie API aan vanuit een Node.js-backend met native fetch. Geen SDK vereist: sla je sleutel op, verzend de taak, poll voor het resultaat.
LezenPython
AI mannequin-generatie API in Python
Roep Photta's aI mannequin-generatie API aan in Python met de requests-bibliotheek. Een wrapper van dertig regels, async-vriendelijk via httpx, werkt in Django, FastAPI en Celery.
LezencURL
AI mannequin-generatie API met cURL
Roep Photta's aI mannequin-generatie API direct aan vanuit de shell met cURL. Verzenden, pollen, downloaden — elk fragment werkt naadloos samen met jq voor gescripte pipelines.
Lezen
Vragen die developers stellen voor het genereren van modellen
Wat is een AI-mannequin?
Een gegenereerd model waarvan je het uiterlijk specificeert in plaats van te casten. Het wordt geretourneerd als een id, zodat hetzelfde gezicht, haar en lichaam elk kledingstuk in een catalogus kan dragen.
Hoeveel kost een mannequin?
4 credits, voor zowel de kleding-builder als de sieraden-builder. Het hergebruiken van een bestaande mannequin in een latere shoot kost niets extra — je betaalt voor de try-on, niet voor het model.
Welke attributen kan ik instellen?
`category` is verplicht. Al het andere is optioneel: etniciteit, leeftijd, huidskleur, gezichtsvorm, oogkleur en -vorm, expressie, gezichtsbeharing, make-up, haarstijl, kleur en textuur, lichaamstype, lengte, bril, sproeten en piercings. Het options-endpoint vermeldt de geaccepteerde waarden.
Waar dient de sieraden-builder voor?
POST `/api/v1/mannequins/jewelry/generate` bouwt een model dat is afgestemd op close-up sieradenwerk: het accepteert `jewelry_type`, `shot_type`, `camera_angle`, `background` en `lighting` in plaats van de full-body-attributen, zodat de halslijn, het oor of de hand van dichtbij correct overkomt.
Kan ik hetzelfde model hergebruiken in meerdere shoots?
Ja — dat is het hele doel van het endpoint. Het gegenereerde mannequin-id wordt geaccepteerd als `mannequin_id` door kleding-try-on, sieraden-try-on en de eyewear-studio.
Hoe poll ik voor het resultaat?
GET `/api/v1/mannequins/generate/:id` elke 3 seconden totdat `data.status` `completed` of `failed` is. De jewelry builder pollt zijn eigen statuspad.
Gerelateerde functionaliteiten
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.
Bekijk het endpointMogelijkheden
Sieraden try-on API voor kettingen, ringen, armbanden en oorbellen
Plaats kettingen, ringen, armbanden en oorbellen op AI-modellen via REST. 5 credits bij 2K, ingebouwde close-up mannequins, reflectie-bewuste rendering uit de Photta-documentatie.
Bekijk het endpointBouwen
Bouw een virtual try-on-feature voor je app
End-to-end recept voor het uitrollen van een virtual try-on-feature met de Photta API: uploaden, submitten, pollen vanuit een worker, resultaat renderen. TypeScript + server-only patronen.
Bekijk het endpointVergelijken
Photta vs Fitroom — kies de juiste match voor mode-API's
Photta en Fitroom vergeleken op endpoints, creditkosten per call, prijsmodel en integratie-oppervlak. Overgenomen van beide sites op 2026-04-19. Geen verzonnen cijfers.
Bekijk het endpointSnelstartgids
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.
Bekijk het endpointReferentie
Photta API-fouten
De volledige lijst van Photta API-fouttypen met hun statuscodes, de structuur van een foutbody, en welke fouten het waard zijn om opnieuw te proberen.
Bekijk het endpointReferentie
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.
Bekijk het endpoint
Elk getal op deze pagina is afkomstig uit de Photta-API-documentatie · gecontroleerd
Probeer de API in vijf minuten
Genereer een Photta API-sleutel, plak het bovenstaande cURL-fragment en je hebt je eerste afbeelding op een model voordat de koffie klaar is.
- 30-60s
- 4 credits
- async, polling
- 600 requests/min
- Bearer key