> ## Documentation Index
> Fetch the complete documentation index at: https://docs.noimosai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gérer exécution et facturation

> Exécution asynchrone, nouvelles tentatives idempotentes, réservations, facturation et artefacts.

## Vue d’ensemble

Cette page décrit devis, réservation, exécution asynchrone, facturation et récupération des artefacts. Suivez les traitements longs par identifiant sans garder une connexion HTTP ouverte.

## Comprendre exécution et facturation

`POST /tools/quote` renvoie version tarifaire, coût minimal et réservation maximale pour l’entrée. Le devis est gratuit, sans appel de services externes ni réservation de fonds.

Gardez les mêmes `tool` et `arguments` et ajoutez :

* `priceVersion` — Version tarifaire du devis
* `maximumChargeMicros` — Réservation maximale du devis

Si les prix changent ou le plafond est insuffisant, la requête est rejetée avant traitement. Obtenez et vérifiez un nouveau devis.

## Réserver et régler les frais

À l’acceptation, le maximum est temporairement réservé sur le solde prépayé en USD. À la fin, le coût réel est facturé et la part inutilisée restituée.

| Champ | Signification |
| - | - |
| `reservedMicros` | Maximum réservé à l’acceptation ; conserve sa valeur initiale après achèvement. |
| `chargedMicros` | Frais définitifs après achèvement ou échec. `0` pendant le traitement signifie que la facturation reste en attente. |
| `currency` | `usd`. 1 USD vaut 1,000,000 micros. |

Un échec ou une annulation peut entraîner la facturation de coûts externes déjà engagés. Aucun dépassement automatique du maximum réservé n’est facturé.

## Suivre l’état

L’acceptation renvoie HTTP 202 et un identifiant. Suivez `Retry-After: 5` et interrogez le même identifiant à au moins cinq secondes d’intervalle.

| État | Signification | Action |
| - | - | - |
| `queued` | En file d’attente | Attendre au moins cinq secondes puis réinterroger |
| `running` | En cours | Interroger le même identifiant |
| `waiting` | Attente d’un traitement externe | Interroger le même identifiant |
| `succeeded` | Réussi et facturé | Lire `output` et `chargedMicros` |
| `failed` | Échoué ; coûts engagés facturés | Lire `errorCode` et les frais définitifs |
| `cancelled` | Annulation terminée | Vérifier les frais définitifs |
| `needs_review` | Résultat ou coût à vérifier | Ne pas relancer ; contacter l’assistance avec l’identifiant |

## Éviter les doublons par idempotence

Une clé d’idempotence évite de créer plusieurs exécutions lors de renvois accidentels. Les appels payants à `POST /tools/{tool}` nécessitent `Idempotency-Key`.

La clé comporte 8–128 caractères : lettres, chiffres, `.`, `_`, `:` ou `-`. Créez-en une par requête logique et conservez-la avec l’identifiant d’exécution.

* Même clé API, même corps et même clé d’idempotence renvoient la même exécution.
* Modifier le corps ou la clé API avec la même clé d’idempotence renvoie HTTP 409.
* Après rupture de connexion, renvoyez sans modifier corps ni clé d’idempotence.
* Renvoyer un traitement `needs_review` avec une nouvelle clé crée une autre exécution payante.

> [!WARNING]
>
> L’absence de réponse ne prouve pas que la requête n’a pas été acceptée. Ne créez pas de nouvelle clé si le résultat est inconnu.

## Annuler une exécution

`POST /tools/executions/{id}/cancel` demande l’arrêt d’un travail non commencé. La clé créatrice ou un `ADMIN` du projet peut le demander.

Un traitement externe déjà commencé et ses frais peuvent ne pas être annulables. Vérifiez `cancelRequested`, le `status` final et `chargedMicros`.

## Récupérer les artefacts

Images, audio et vidéos générés figurent dans `output.artifacts` avec identifiant, format, taille, empreinte et expiration. Les fichiers et URL permanentes ne sont pas inclus dans le résultat.

`GET /tools/executions/{id}/artifacts/{artifactId}/download` fournit une URL valable jusqu’à cinq minutes. Les fichiers stockés expirent après 30 jours.

Même temporaires, ces URL donnent accès à des données privées. Ne les journalisez ni ne les publiez, et n’y ajoutez pas la clé Developer Platform.

## Pages associées

Ces pages détaillent la première exécution et les endpoints.

* [Premiers pas](https://docs.noimosai.com/fr/developers/api/getting-started.md)
* [Référence de l’API](https://docs.noimosai.com/fr/developers/api/reference.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.