API
esc

Saisissez votre recherche.

Démarrage rapide

Envoyez une photo, créez un produit, enregistrez un webhook et mettez votre premier rendu en file d'attente. Quatre appels, environ cinq minutes.

Ce parcours suit le chemin d’un produit unique afin que chaque étape soit visible. Si vous intégrez un catalogue entier, sautez les étapes 1 et 2 et commencez par les Imports, qui récupèrent les photos pour vous.

Vous avez besoin d’une clé API. Si l’équipe Veeton vous a donné accès à l’API, générez-en une dans le tableau de bord (votre photo de profil en haut à droite → Organisation → Clés API) et conservez-la dans VEETON_KEY ; consultez Authentification pour comprendre le comportement des clés.

  1. Envoyez une photo.

    Les images sont envoyées en multipart/form-data. Le type est lu dans les octets, vous pouvez donc déclarer ce que vous voulez ; les formats JPEG, PNG et WebP jusqu’à 10 Mo sont acceptés. La réponse est un identifiant d’image que vous pouvez référencer par la suite.

    Terminal window
    IMG=$(curl -s https://api.veeton.com/v1/images \
    -H "Authorization: Bearer $VEETON_KEY" \
    -F "file=@./tee-front.jpg" | jq -r .id)
  2. Créez le produit.

    Un produit se compose de votre reference (le SKU dans votre propre système, unique au sein de votre organisation), d’un name et d’une ou plusieurs images, chacune étiquetée avec la vue qu’elle montre.

    Terminal window
    PROD=$(curl -s https://api.veeton.com/v1/products \
    -H "Authorization: Bearer $VEETON_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"name\":\"Crewneck Tee\",\"reference\":\"TEE-001\",
    \"images\":[{\"image_id\":\"$IMG\",\"orientation\":\"front\"}]}" \
    | jq -r .id)
  3. Enregistrez l’adresse où recevoir les résultats.

    Un rendu prend une à deux minutes. Enregistrez un endpoint https:// une seule fois et chaque événement terminal y est livré, signé. Le signing_secret de la réponse n’est affiché qu’une fois ; stockez-le.

    Terminal window
    curl https://api.veeton.com/v1/webhooks \
    -H "Authorization: Bearer $VEETON_KEY" \
    -H "Content-Type: application/json" \
    -d '{"url":"https://your.app/veeton","events":["task.completed","task.failed"]}'
  4. Mettez un rendu en file d’attente.

    Choisissez la famille de tâches qui correspond à ce que vous souhaitez obtenir. Les deux renvoient immédiatement un 202 avec l’id de la tâche.

    # Un rendu net du produit seul, sur un arrière-plan de votre choix
    curl https://api.veeton.com/v1/tasks/beautifier \
    -H "Authorization: Bearer $VEETON_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"subtype\":\"clothing\",
    \"inputs\":{\"product_id\":\"$PROD\",\"background\":\"#ffffff\",
    \"angle_shot\":\"front\",\"style\":\"ghost_mannequin\"}}"
    # Le produit porté par un mannequin issu de GET /v1/models
    MODEL=$(curl -s "https://api.veeton.com/v1/models?limit=1" \
    -H "Authorization: Bearer $VEETON_KEY" | jq -r .data[0].id)
    curl https://api.veeton.com/v1/tasks/tryon \
    -H "Authorization: Bearer $VEETON_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"inputs\":[{\"product_id\":\"$PROD\",\"model_id\":\"$MODEL\",
    \"background\":\"park\",\"angle_shot\":\"full_body_relaxed_symmetric\"}]}"

Ce qui se passe ensuite

La tâche passe par les états queued → processing → completed | failed. Lorsqu’elle atteint un état terminal, votre webhook reçoit un événement task.completed ou task.failed contenant l’identifiant de la tâche ; récupérez la tâche pour obtenir le résultat.

Terminal window
curl https://api.veeton.com/v1/tasks/$TASK \
-H "Authorization: Bearer $VEETON_KEY"
200 OK
{
"id": "01HX5K2MZ7A3Q4FBNDC0EVDXY2",
"type": "beautifier",
"subtype": "clothing",
"status": "completed",
"product_id": "01HX5K2MZ7A3Q4FBNDC0EVDXY1",
"output_image": {
"id": "01HX5K2MZ7A3Q4FBNDC0EVDXYS",
"mime_type": "image/webp",
"width": 1536,
"height": 2048,
"url": "https://…signed…",
"url_expires_at": "2026-09-03T15:32:00Z",
"created_at": "2026-09-03T14:31:40Z"
},
"failure_reason": null,
"started_at": "2026-09-03T14:30:12Z",
"finished_at": "2026-09-03T14:31:40Z",
"created_at": "2026-09-03T14:30:09Z"
}

Les URL signées sont valables une heure. L’id de l’image est permanent : récupérez une nouvelle URL avec GET /v1/images/{id} plutôt que de relancer quoi que ce soit.

Pour aller plus loin

  • Imports pour l’ingestion à l’échelle d’un catalogue.
  • Tâches pour l’ensemble complet des entrées, arrière-plans et mannequins.
  • Exports pour tout relire dans un PIM ou un DAM.
  • La référence de l’API pour chaque champ.