Bouwen · No-code automatisering
Automatiseer een catalogus zonder code te schrijven
In één zin
Een no-code-uitvoering dient een batch productfoto's in met één HTTP-node, wacht 3 seconden, leest de batchstatus uit en herhaalt dit tot voltooiing voordat de URL's terug naar je sheet worden geschreven.
- Credits: 4 credits bij 2K · 5 credits bij 4K
- Typische duur: 1.5–4 min per image
- Verwerking: async, polling
Elk getal op deze pagina is afkomstig uit de Photta-API-documentatie · gecontroleerd
Een HTTP-node, een wacht-node en een voorwaarde. n8n, Make of elke tool die HTTP spreekt kan een volledige catalogus door het batch-endpoint verwerken.
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/ghost-mannequin/batch \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_images": [
{
"image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/shirt-front.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/trousers-front.jpg",
"image_side": "front"
}
],
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, buttoned up",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/ghost-mannequin/batch", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"product_images": [
{
"image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/shirt-front.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/trousers-front.jpg",
"image_side": "front"
}
],
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, buttoned up",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/ghost-mannequin/batch",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"product_images": [
{
"image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/shirt-front.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/trousers-front.jpg",
"image_side": "front"
}
],
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, buttoned up",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
},
)
data = res.json()["data"] # data["id"], data["status"]Hoe het werkt
Een spreadsheet erin, een map met afbeeldingen eruit
Exporteer de catalogus, configureer één HTTP-node, loop met pauzes, schrijf de URL's terug.
Stap 1
Exporteer de catalogus
Eén rij per kledingstuk met een openbare afbeeldings-URL. Die kolom is de enige invoer die het batch-endpoint vereist.
Stap 2
Haal een Photta API key op
Sla deze op in de credential vault van je automatiseringstool, niet in de node body, zodat geëxporteerde workflows geen geheimen bevatten.
Stap 3
Configureer de HTTP-node
POST, de bearer-header en de hier getoonde JSON-body. Elk item in de array is één kledingstuk; de stylingvelden gelden voor allemaal.
Stap 4
Loop met pauzes
Wacht 3 seconden, lees de batch uit, controleer of de status voltooid is en herhaal indien nodig. Dat interval komt overeen met de officiële documentatie.
Stap 5
Respecteer de limieten
Zowel de limiet voor batchgrootte als die voor gelijktijdige batches hangt af van je abonnement. Dien één batch in, wacht tot deze klaar is en dien dan pas de volgende in.
Stap 6
Schrijf de URL's terug
Zodra de batch is afgerond, bevat elk item zijn eigen output-URL. Schrijf deze terug naar de sheet en download de bestanden binnen dezelfde run.
De nodes en hun inhoud
De request body is het voorbeeld uit de API-documentatie; de lus volgt het gedocumenteerde polling-interval.
{
"product_images": [
{
"image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/shirt-front.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/trousers-front.jpg",
"image_side": "front"
}
],
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, buttoned up",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/ghost-mannequin/batch \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_images": [
{
"image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/shirt-front.jpg",
"image_side": "front"
},
{
"image": "https://cdn.yourstore.com/products/trousers-front.jpg",
"image_side": "front"
}
],
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, buttoned up",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id'){
"nodes": [
{
"name": "Wait",
"type": "n8n-nodes-base.wait",
"parameters": {
"amount": 3,
"unit": "seconds"
}
},
{
"name": "Read batch",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "GET",
"url": "https://api.photta.app/api/v1/ghost-mannequin/batch/{{ $json.data.batch_id }}"
}
},
{
"name": "Done?",
"type": "n8n-nodes-base.if",
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.data.status }}",
"value2": "completed"
}
]
}
}
}
]
}# 600 requests per minute per key, fixed window.
# One batch submission plus one poll every 3 seconds is ~21 requests per minute
# per batch in flight, so the concurrency cap binds long before the rate limit.
# On a 429, wait the Retry-After seconds (30 by default) before the next node runs.Veelgestelde vragen van developers
Vragen over no-code-uitvoeringen
Moet ik code schrijven?
Nee. Alles hier is een HTTP-request met een JSON-body, wat elke automatiseringstool kan versturen. De enige tekst die je invoert, is de body op deze pagina.
Hoeveel afbeeldingen passen er in één run?
De API-batchlimiet is 5 afbeeldingen op Free en Hobby, 10 op Seller, 25 op Brand en 50 op Studio. Grotere catalogi worden opgedeeld in meerdere opeenvolgende batches.
Wat gebeurt er als één afbeelding mislukt?
De rest van de batch gaat gewoon door. De batch-body vermeldt hoeveel er voltooid en hoeveel er mislukt zijn, en credits voor mislukte items worden gerestitueerd.
Kan dit volgens een schema worden uitgevoerd?
Ja. Trigger de workflow bijvoorbeeld elke nacht om de rijen op te halen die nog geen afbeelding hebben. De polling-lus blijft identiek, of deze nu handmatig of gepland wordt gestart.
Werkt dit in Make of Zapier?
Overal waar je een HTTP-request met een header en JSON-body kunt versturen en tussen stappen kunt wachten. De nodenamen verschillen; de drie stappen blijven hetzelfde.
Gerelateerde pagina's
Gerelateerde artikelen
Mogelijkheden
Batch ghost mannequin API voor complete catalogi
Dien meerdere kledingfoto's in één ghost mannequin-request in. Id's per item, geaggregeerde polling en vooraf creditreservering. 4 credits per afbeelding op 2K.
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.
LezenRate limits
LezenPricing
Lezen
Elk getal op deze pagina is afkomstig uit de Photta-API-documentatie · gecontroleerd
Een catalogus, zonder developer
Eén HTTP-node en een pauze. De body op deze pagina is exact die uit de officiële documentatie.