Snelstart
Eerste Photta-afbeelding in minder dan vijf minuten.
Eén account, één API-sleutel, vijf shell-commando's. De onderstaande stappen komen exact overeen met wat de officiële Photta-documentatie aanbeveelt — geen wrappers, geen SDK's, geen aannames over frameworks.
In één zin
Meld je aan op ai.photta.app, klik op Generate API key, exporteer deze als PHOTTA_API_KEY, doe een POST naar /api/v1/tryon/apparel en poll het geretourneerde generatie-ID elke 3 seconden totdat de status op completed staat — meestal binnen 1.5 tot 4 minuten.
Hoe het werkt
Vijf commando's van nul naar eerste afbeelding
Plak ze in volgorde in een terminal. Elk fragment is zelfvoorzienend en gebruikt alleen curl + jq.
- 01
Stap 1
Genereer een API-sleutel
Meld je aan op ai.photta.app en open het Developers-dashboard. Klik op Generate API key — live sleutels beginnen met photta_live_. Exporteer deze zodat de rest van de handleiding hem vanuit je shell kan lezen.
# Sign up at ai.photta.app, open the Developers dashboard, # click "Generate API key" and copy it into your env. export PHOTTA_API_KEY="photta_live_xxxxx" export PHOTTA_BASE_URL="https://ai.photta.app/api/v1" - 02
Stap 2
POST je eerste try-on
Roep /api/v1/tryon/apparel aan met een product image-URL, een mannequin_id en een pose_id. De API antwoordt direct met 202 Accepted en retourneert een generatie-ID in data.id.
curl -X POST "$PHOTTA_BASE_URL/tryon/apparel" \ -H "Authorization: Bearer $PHOTTA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "product_type": "dress", "product_images": ["https://example.com/dress.jpg"], "mannequin_id": "mnq_athena_ts", "pose_id": "pose_standing_front", "resolution": "2K", "aspect_ratio": "3:4" }' # Response: 202 Accepted + data.id (generation ID) - 03
Stap 3
Poll tot voltooiing
Gebruik GET /api/v1/tryon/apparel/:id elke 3 seconden. De typische voltooiingstijd is 1.5–4 minuten. Stel een bovengrens in voor het aantal pogingen, zodat een vastgelopen taak je script niet oneindig blokkeert.
# Loop every 3 seconds until status flips to "completed". # Typical completion: 1.5–4 minutes. Max 120 attempts = 6 min. for i in $(seq 1 120); do RESULT=$(curl -s "$PHOTTA_BASE_URL/tryon/apparel/$ID" \ -H "Authorization: Bearer $PHOTTA_API_KEY") STATUS=$(echo "$RESULT" | jq -r '.data.status') [ "$STATUS" = "completed" ] && break [ "$STATUS" = "failed" ] && echo "Job failed" && exit 1 sleep 3 done - 04
Stap 4
Sla de output op
Wanneer de status verspringt naar completed, bevat data.output_url de gerenderde afbeelding. Download de bytes naar je eigen opslag, zodat je product niet afhankelijk is van Photta's CDN voor de weergave.
# Pull the final URL out of the response and save the bytes. OUTPUT_URL=$(echo "$RESULT" | jq -r '.data.output_url') curl -sO "$OUTPUT_URL" echo "Saved $(basename "$OUTPUT_URL")" - 05
Stap 5
Ga eerlijk om met foutmodi
Differentieer op de HTTP-statuscode: 402 voor onvoldoende credits, 429 voor rate limits (volg Retry-After), 5xx voor tijdelijke serverfouten. Elke error body bevat een machine-leesbare error.code waar je op kunt reageren.
# Surface the common failure modes honestly. case "$STATUS_CODE" in 402) echo "Out of credits — top up at ai.photta.app" ;; 429) echo "Rate limited — honour Retry-After header" ;; 4??) echo "Client error: $(echo "$BODY" | jq '.error.message')" ;; 5??) echo "Server error — retry with backoff" ;; esac
Vragen die andere developers stellen
Vragen over het aan de slag gaan
Hoe lang duurt de snelstart?+
Vijf minuten voor de aanmelding + sleutelgeneratie + eerste cURL. De generatie zelf duurt 1.5 tot 4 minuten, dus reken op tien minuten totale tijd voordat je je eerste afbeelding op een model ziet.
Heb ik een creditcard nodig om het te proberen?+
Nieuwe accounts worden geleverd met proefcredits die je kunt besteden voordat je betaalt. Wanneer je klaar bent voor productie, sluit je een abonnement af voor een hoger maandelijks tegoed en snellere rate limits.
Welk endpoint moet ik als eerste proberen?+
Kleding try-on (/api/v1/tryon/apparel) — dit wordt het meest gebruikt, de documentatie is het meest compleet en het dekt het async + polling patroon dat elk ander Photta-endpoint hergebruikt. Als je daar eenmaal vertrouwd mee bent, werken sieraden en ghost mannequin op precies dezelfde manier.
Kan ik het vanuit de browser draaien?+
Nee. Je API-sleutel moet aan de serverkant blijven — als je deze naar een browser stuurt, lekt hij naar elke bezoeker. Leid calls via een dunne proxy op je eigen backend (Next.js route handler, Express, Flask, Lambda) en laat de browser communiceren met jouw proxy.
Snelstart