Développer · Automatisation no-code
Automatiser un catalogue sans écrire de code
En une phrase
Une exécution no-code soumet un batch de photos de produits avec un nœud HTTP, attend 3 secondes, lit le statut du batch et répète jusqu’à la fin avant d’écrire les URL dans votre feuille de calcul.
- Crédits: 4 crédits en 2K · 5 crédits en 4K
- Délai typique: 1.5–4 min per image
- Traitement: asynchrone, polling
Chaque chiffre sur cette page provient de la documentation de l'API Photta · vérifié
Un nœud HTTP, un nœud d’attente et une condition. n8n, Make ou tout outil gérant HTTP peut traiter un catalogue entier via l’endpoint de batch.
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"]Comment ça fonctionne
Une feuille de calcul en entrée, un dossier d’images en sortie
Exportez le catalogue, configurez un nœud HTTP, bouclez avec des attentes, réécrivez les URL.
Étape 1
Exporter le catalogue
Une ligne par vêtement avec une URL d’image publique. Cette colonne est la seule entrée requise par l’endpoint de batch.
Étape 2
Obtenir une clé d’API Photta
Stockez-la dans le gestionnaire de secrets de votre outil d’automatisation, pas dans le corps du nœud, afin que les workflows exportés ne contiennent aucun secret.
Étape 3
Configurer le nœud HTTP
POST, le header Bearer et le corps JSON présenté ici. Chaque élément du tableau correspond à un vêtement ; les champs de style s’appliquent à l’ensemble.
Étape 4
Boucler avec des attentes
Attendez 3 secondes, lisez le batch, vérifiez si le statut est terminé, et recommencez la boucle. Cet intervalle est celui publié dans la documentation.
Étape 5
Respecter les limites
La limite de taille de batch et la limite de batchs simultanés dépendent de votre forfait. Soumettez un batch, terminez-le, puis soumettez le suivant.
Étape 6
Réécrire les URL
Lorsque le batch est terminé, chaque élément comporte sa propre URL de sortie. Écrivez-les dans la feuille et téléchargez les fichiers au cours de la même exécution.
Les nœuds, et ce qu’ils contiennent
Le corps de la requête est l’exemple publié par la documentation de l’API ; la boucle suit l’intervalle de polling documenté.
{
"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.Questions fréquentes des développeurs
Questions sur les exécutions no-code
Dois-je écrire du code ?
Non. Tout repose ici sur une requête HTTP avec un corps JSON, ce que tout outil d’automatisation sait envoyer. Le seul texte à renseigner est le corps affiché sur cette page.
Combien d’images peut-on traiter par exécution ?
La limite de batch de l’API est de 5 images pour Free et Hobby, 10 pour Seller, 25 pour Brand et 50 pour Studio. Les catalogues plus longs sont traités en plusieurs batchs successifs.
Que se passe-t-il si une image échoue ?
Le reste du batch continue. Le corps de réponse du batch indique le nombre d’éléments completed et failed, et les credits des éléments en échec sont remboursés.
Cela peut-il tourner selon un calendrier ?
Oui. Déclenchez le workflow chaque nuit et laissez-le récupérer les lignes qui n’ont pas encore d’image. La boucle de polling reste la même, qu’elle soit lancée manuellement ou planifiée.
Cela fonctionne-t-il dans Make ou Zapier ?
Partout où vous pouvez envoyer une requête HTTP avec un header et un corps JSON, puis patienter entre les étapes. Le nom des nœuds varie ; les trois étapes restent identiques.
Pages associées
Lectures connexes
Fonctionnalités
API ghost mannequin par lot pour des catalogues entiers
Soumettez plusieurs photos de vêtements en une seule requête ghost mannequin. Des identifiants par élément, un polling agrégé et une réservation préalable des credits. 4 credits par image en 2K.
LireDémarrage rapide
Première image Photta en moins de cinq minutes.
Inscrivez-vous, générez une clé d'API, lancez votre premier appel cURL, effectuez le polling jusqu'à la complétion, persistez le résultat. Cinq étapes documentées de bout en bout.
LireRate limits
LirePricing
Lire
Chaque chiffre sur cette page provient de la documentation de l'API Photta · vérifié
Un catalogue, sans développeur
Un nœud HTTP et une attente. Le corps présenté sur cette page est celui publié dans la documentation.