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')

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Een catalogus, zonder developer

Eén HTTP-node en een pauze. De body op deze pagina is exact die uit de officiële documentatie.