Méthode GET/partner/mint/batch/status/{job_id}

Lit l'avancement d'un lot de produits envoyé à la frappe, à partir de l'identifiant rendu au moment de l'envoi.

Sur cette page

Vous suivez l'avancement d'un lot envoyé à la frappe, et vous savez quand arrêter votre boucle. Interrogez ce point d'entrée autant de fois que nécessaire : il ne crée ni ne modifie aucun produit, et il ne consomme aucun quota quotidien. Lisez l'avertissement ci-dessous avant de conclure, à partir de cette lecture, que vos articles existent.

Le serveur expose deux adresses qui appellent le même code : /v1/partner/mint/batch/status/{job_id} et /partner/mint/batch/status/{job_id}. Utilisez la forme /v1 pour toute nouvelle intégration.

#Autorisation

Droit requis sur la clef : mint:batch.

C'est le même droit que l'envoi d'un lot. Une clef qui n'a pas ce droit reçoit 403, et le message nomme le droit manquant.

Authentifiez-vous par l'en-tête Authorization, au format Bearer.

HTTP
Authorization: Bearer votre_clef

Seule une clef de la marque qui a envoyé le lot peut le lire.

#Plafond d'appels

Le plafond de débit de l'API partenaire s'applique à ce point d'entrée, sur une fenêtre fixe de 60 secondes.

Deux compteurs tournent en même temps, un pour votre clef, un pour la somme des clefs de votre marque. Le plafond appliqué vient d'une valeur posée sur votre compte, ou à défaut de votre offre. Quand aucune des deux n'est définie, il est de 120 appels par fenêtre.

Ne devinez pas cette valeur. Toute réponse qui a franchi le contrôle de débit porte quatre en-têtes qui la donnent. Une réponse 401, un 403 d'authentification ou un 503 arrivent avant ou pendant ce contrôle, et ne les portent pas.

En-têteCe qu'il contient
X-RateLimit-Limitle plafond applicable, en appels par fenêtre
X-RateLimit-Remainingce qu'il vous reste dans la fenêtre en cours
X-RateLimit-Resetl'horodatage, en secondes depuis 1970, où la fenêtre repart
X-RateLimit-Scopekey ou brand, selon celui des deux compteurs qui est le plus contraignant

Ce point d'entrée ne consomme aucune unité de votre quota quotidien, et aucune unité du quota mensuel de produits de votre offre.

#Paramètres de chemin et de requête

NomTypeObligatoireDescription
job_idchaîneouiL'identifiant de lot rendu par l'envoi du lot, dans le champ job_id de sa réponse. Placez-le dans le chemin de l'adresse.

Ce point d'entrée n'accepte aucun paramètre de requête.

#Corps de la requête

Aucun. C'est une lecture, elle n'a pas de corps.

#Requête d'exemple

curl -sS https://api.sealtrust.io/v1/partner/mint/batch/status/0000a1b2c3d4e5f6 \
  -H "Authorization: Bearer st_test_0000000000000000000000000000000000000000000000"

#Réponse d'exemple

Code HTTP 200OK

Code HTTP 200, pour un lot de 500 lignes en cours de traitement, dont douze lignes ont déjà abouti.

200 OK
{
  "job_id": "0000a1b2c3d4e5f6",
  "status": "started",
  "is_finished": false,
  "batch_status": "pending",
  "items_count": 500,
  "success_count": 12,
  "error_count": 0,
  "enqueued_at": "2026-08-20T09:14:32.118431+00:00",
  "started_at": "2026-08-20T09:14:33.402118+00:00",
  "ended_at": null,
  "result": null,
  "exc_info": null
}

Les douze clefs sont toujours présentes dans cette forme de réponse. Seules leurs valeurs changent. Les compteurs sont là dès votre premier appel : chaque ligne du lot est comptée au moment où elle aboutit. Quand le traitement du lot arrive à son terme, is_finished passe à vrai et ended_at porte une date. Cela vous dit que le traitement est allé au bout. Pour savoir combien d'articles ont été créés, lisez success_count.

ChampTypeDescription
job_idchaîneL'identifiant que vous avez demandé, repris tel quel.
statuschaîneL'avancement du traitement du lot. Les valeurs sont détaillées ci-dessous.
is_finishedbooléenVrai quand le traitement du lot est terminé. Un lot qui répond status: "failed" peut porter l'une ou l'autre valeur. Pilotez votre boucle sur status.
batch_statuschaîne ou nulL'état du lot lui-même. Les valeurs sont détaillées ci-dessous.
items_countentier ou nulLe nombre de lignes du lot.
success_countentier ou nulLe nombre d'articles réellement créés à l'instant de votre lecture, compté ligne par ligne.
error_countentier ou nulLe nombre de lignes réellement en échec à l'instant de votre lecture, compté ligne par ligne.
enqueued_atchaîne ou nulDate et heure à laquelle le lot a été accepté et mis en attente de traitement.
started_atchaîne ou nulDate et heure du début du traitement. Nul tant qu'il n'a pas commencé.
ended_atchaîne ou nulDate et heure de fin du traitement. Nul tant qu'il n'est pas terminé.

Les trois dates portent le décalage +00:00 : elles suivent le temps universel.

La réponse porte deux champs de plus, result et exc_info. Ils sont internes à notre traitement. Ignorez-les : ne les affichez pas, ne les stockez pas, n'y branchez aucune logique. Aucun des deux ne vous dit combien d'articles ont été créés.

#Les valeurs de status

ValeurCe qu'elle veut dire
queuedle lot attend son tour
startedle lot est en cours de traitement
finishedle lot est allé au bout, quel que soit le nombre d'articles créés
failedle traitement s'est arrêté sur un échec. Des lignes peuvent avoir abouti quand même : lisez success_count
unknownaucun lot accessible avec cette clef ne correspond à cet identifiant

D'autres valeurs que ces cinq peuvent apparaître. Les types du SDK TypeScript en déclarent quatre de plus : deferred, scheduled, stopped et canceled. Écrivez votre boucle de façon à traiter une valeur inattendue sans planter.

Bouclez tant que le statut vaut queued ou started. Arrêtez-vous sur finished, sur failed et sur unknown. Arrêter votre boucle ne vous dit rien du nombre d'articles créés : ce nombre se lit dans success_count.

#Les valeurs de batch_status

Un lot envoyé par cette API part à pending. Seul son traitement le fait changer, vers retrying, vers pending_multisig, ou vers un état terminal, success, partial ou failed. La valeur running n'apparaît pas sur cette voie : n'écrivez pas de branche pour elle. partial signifie qu'une partie seulement des articles a été créée. Comparez alors success_count et items_count.

#La réponse quand aucun lot accessible ne correspond

Quand aucun lot accessible avec votre clef ne correspond à l'identifiant, vous recevez 200, avec deux champs et rien d'autre.

200 OK
{
  "job_id": "0000a1b2c3d4e5f6",
  "status": "unknown"
}

#La seconde forme de réponse, sur un lot ancien

Nous ne gardons le détail du déroulement que pendant un temps. Passé ce délai, la réponse prend une seconde forme, construite à partir de l'état du lot lui-même. Elle porte les sept premiers champs et rien d'autre : ni les trois dates, ni les deux champs internes. Les compteurs, eux, sont dans les deux formes. Traitez les deux formes.

200 OK
{
  "job_id": "0000a1b2c3d4e5f6",
  "status": "failed",
  "is_finished": true,
  "batch_status": "failed",
  "items_count": 500,
  "success_count": 0,
  "error_count": 500
}

Elle peut porter n'importe quel statut, y compris queued et started. Ne déduisez pas de sa forme que le lot est terminé.

Dans cette forme de réponse, is_finished vaut vrai pour success, partial et failed, et status vient de l'état du lot. Un lot dont chaque ligne a été rejetée y répond status: "failed" et is_finished: true, et la première forme répond la même chose pour la même exécution. Ne comparez pas deux lectures faites à des moments différents pour en déduire que le lot a changé d'état. Le nombre d'articles créés se lit dans success_count.

#Erreurs

CodeConditionQue faire
401l'en-tête Authorization est absentajoutez-le, la réponse porte aussi WWW-Authenticate: Bearer
401l'en-tête ne commence pas par Bearer suivi d'un espacecorrigez la forme de l'en-tête, la réponse porte aussi WWW-Authenticate: Bearer
401la valeur envoyée après Bearer fait moins de 40 caractèresenvoyez le secret complet, cette réponse ne porte pas WWW-Authenticate
401la valeur envoyée n'est pas une clef connuevérifiez que vous copiez le secret entier, sans espace ni retour à la ligne
403la clef a été révoquée, le message donne son étatcréez une nouvelle clef depuis la console de votre marque
403la clef a atteint sa date d'expirationcréez une nouvelle clef, l'ancienne ne redeviendra jamais valide
403la clef n'a pas le droit mint:batch, le message le nommecréez une clef portant ce droit, il commande aussi l'envoi d'un lot
403vous n'avez pas accès à ce lotvérifiez que vous interrogez le bon identifiant avec la clef de la bonne marque
429votre clef a dépassé son propre plafond de débitattendez le nombre de secondes indiqué par Retry-After, puis réessayez. X-RateLimit-Scope vaut alors key
429l'ensemble des clefs de votre marque a dépassé le plafond de la marqueattendez le nombre de secondes indiqué par Retry-After, puis réessayez. X-RateLimit-Scope vaut alors brand. Ajouter des clefs ne relève pas ce plafond
500une erreur interne inattendueréessayez. Si le refus se répète, écrivez-nous en donnant la valeur de l'en-tête X-Request-Id de la réponse
503le service qui tient les compteurs de débit est momentanément indisponiblel'appel n'a rien lu. Réessayez plus tard

Aucun code d'erreur de cette liste ne dépend du contenu du lot. Le contrôle des refus liés au lot lui-même, taille, colonnes, catégories et quota de votre offre, a lieu au moment de l'envoi, sur POST /v1/partner/mint/batch.

#Voir aussi

Votre réponse ouvre un courriel pré-rempli dans votre messagerie, à destination de contact@sealtrust.io. Vous le relisez avant de l'envoyer.

Proposer une correctionSignaler un problème