Bygg · No-code-automatisering
Automatiser en katalog uten å skrive kode
I én setning
En no-code-kjøring sender inn en batch med produktbilder via én HTTP-node, venter i 3 sekunder, leser batch-statusen og gjentar til den er ferdig før URL-ene skrives tilbake til regnearket ditt.
- Credits: 4 credits ved 2K · 5 credits ved 4K
- Typisk tidsbruk: 1.5–4 min per image
- Prosessering: asynkron, polling
Hvert tall på denne siden er hentet fra dokumentasjonen for Photta-API-et · verifisert
En HTTP-node, en vente-node og en betingelse. n8n, Make eller ethvert verktøy som støtter HTTP kan kjøre en hel katalog gjennom batch-endepunktet.
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"]Slik fungerer det
Et regneark inn, en bildemappe ut
Eksporter katalogen, konfigurer én HTTP-node, loop med ventetider, skriv URL-ene tilbake.
Trinn 1
Eksporter katalogen
Én rad per plagg med en offentlig bilde-URL. Den kolonnen er det eneste inputet batch-endepunktet trenger.
Trinn 2
Skaff en Photta-API-nøkkel
Lagre den i automatiseringsverktøyets hvelv for credentials, ikke i node-bodyen, slik at eksporterte arbeidsflyter ikke inneholder hemmeligheter.
Trinn 3
Konfigurer HTTP-noden
POST, Bearer-headeren og JSON-bodyen som vises her. Hvert element i arrayet er ett plagg; stylingfeltene gjelder for alle sammen.
Trinn 4
Loop med ventetider
Vent i 3 sekunder, les batchen, sjekk om statusen er fullført, og gjenta. Dette intervallet er det som oppgis i dokumentasjonen.
Trinn 5
Overhold grensene
Maksimal batchstørrelse og grensen for samtidige batcher følger planen din. Send inn én batch, fullfør den, og send deretter inn neste.
Trinn 6
Skriv URL-ene tilbake
Når batchen er ferdig, har hvert element sin egen output_url. Skriv dem inn i arket og last ned filene i samme kjøring.
Nodene, og hva de skal inneholde
Request-bodyen er eksempelet API-dokumentasjonen publiserer; loopen følger det dokumenterte polling-intervallet.
{
"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.Spørsmål utviklere stiller
Spørsmål om no-code-kjøringer
Må jeg skrive kode?
Nei. Alt her er en HTTP-forespørsel med en JSON-body, noe alle automatiseringsverktøy kan sende. Den eneste teksten du taster inn, er bodyen som vises på denne siden.
Hvor mange bilder får plass i én kjøring?
API-ets batchgrense er 5 bilder på Free og Hobby, 10 på Seller, 25 på Brand og 50 på Studio. Lengre kataloger kjøres som flere batcher etter hverandre.
Hva skjer hvis ett bilde feiler?
Resten av batchen fortsetter. Batch-bodyen rapporterer hvor mange som ble fullført og hvor mange som feilet, og credits for feilede elementer refunderes.
Kan dette kjøres etter en tidsplan?
Ja. Trigger arbeidsflyten hver natt og la den hente radene som mangler bilde. Polling-loopen er den samme enten et menneske starter den eller den trigges av en tidsplan.
Fungerer dette i Make eller Zapier?
Overalt hvor du kan sende en HTTP-forespørsel med en header og en JSON-body, samt vente mellom stegene. Nodenavnene varierer; de tre stegene forblir de samme.
Relaterte sider
Relatert lesestoff
Funksjoner
Batch ghost mannequin-API for hele varekataloger
Send inn mange klesbilder i én ghost mannequin-forespørsel. Id-er per element, aggregert polling og forhåndsreservasjon av credits. 4 credits per bilde i 2K.
LesHurtigstart
Første Photta-bilde på under fem minutter.
Registrer deg, generer en API-nøkkel, kjør ditt første cURL-kall, utfør polling til det er fullført, lagre resultatet. Fem trinn, dokumentert fra start til slutt.
LesRate limits
LesPricing
Les
Hvert tall på denne siden er hentet fra dokumentasjonen for Photta-API-et · verifisert
En katalog, uten en utvikler
Én HTTP-node og en ventetid. Bodyen på denne siden er den som publiseres i dokumentasjonen.