Méthode GET/partner-portal /interventions
Lister les interventions que votre compte partenaire a enregistrées, de la plus récente à la plus ancienne. Session de compte partenaire.
Sur cette page
Vous recevez l'historique des événements de cycle de vie dont votre compte est l'auteur : la réparation, la maintenance, le reconditionnement, le service après-vente, le recyclage, la fin de vie, la destruction et le retour. En pratique, ce sont les interventions que vous avez enregistrées depuis le portail partenaire. Chaque entrée porte le produit concerné, le niveau de preuve retenu au moment de l'enregistrement et la date. La liste est paginée et triée de la plus récente à la plus ancienne.
Adresse complète :
GET https://api.sealtrust.io/v1/partner-portal/interventionsLe même point d'entrée répond aussi sans le préfixe /v1, à
https://api.sealtrust.io/partner-portal/interventions. Les deux adresses
appellent le même code. Utilisez la forme /v1 pour une nouvelle intégration.
#Autorisation
Session d'un compte partenaire, de type réparateur ou recycleur. Vous
présentez le jeton de session obtenu à la connexion (POST /auth/login) de
deux façons au choix :
- l'en-tête
Authorization: Bearer <jeton de session>, pour un appel depuis votre propre code ; - le cookie de session
access_token, qu'un navigateur envoie tout seul quand vous appelez depuis le portail partenaire.
La clef d'API partenaire n'ouvre pas ce point d'entrée. Elle sert à la surface
machine à machine /v1/partner/*, qui est une surface distincte.
Un compte dont le rôle n'est ni réparateur ni recycleur reçoit un 403.
#Plafond d'appels
Un plafond d'appels s'applique à ce point d'entrée. Il est réglé pour l'usage normal du portail, où vous cherchez un produit puis enregistrez une intervention.
Au-delà, l'API répond 429. Le refus porte un en-tête Retry-After qui donne le
nombre de secondes à attendre. Attendez ce délai, puis rappelez.
Le plafond couvre l'ensemble du portail partenaire. Alterner entre les points d'entrée ne vous redonne donc pas de marge. Espacez vos appels au lieu de les envoyer en rafale.
La valeur du plafond n'est pas un engagement et peut changer sans préavis.
N'inscrivez aucun seuil en dur dans votre code, appuyez-vous sur Retry-After.
Ce point d'entrée ne consomme aucun quota de produits ni aucun quota quotidien.
#Paramètres de chemin et de requête
Ce point d'entrée n'a pas de paramètre de chemin.
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
skip | integer | non | Le nombre d'interventions à sauter avant de commencer la page. Vaut 0 par défaut. Envoyez une valeur négative et le service répond 422. |
limit | integer | non | Le nombre d'interventions à rendre au maximum. Vaut 20 par défaut. Le minimum est 1, le maximum est 100. Sortez de ces bornes et le service répond 422, sans troncature silencieuse. |
Il n'existe aucun autre paramètre. La liste ne se filtre ni par produit, ni par marque, ni par type d'intervention, ni par date. Faites ce tri dans votre code à partir des champs rendus.
#En-têtes
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
Authorization | string | non | Bearer suivi de votre jeton de session. Obligatoire si vous n'envoyez pas le cookie de session. |
Cookie | string | non | Le cookie access_token, posé par la connexion et envoyé automatiquement par un navigateur. Obligatoire si vous n'envoyez pas l'en-tête Authorization. |
Un appel serveur à serveur qui porte l'en-tête Authorization est accepté sans
en-tête Origin ni Referer. Un appel de navigateur qui porte le cookie de
session doit venir d'un domaine SealTrust autorisé, sinon la réponse est 403.
#Corps de la requête
Ce point d'entrée n'a pas de corps de requête. Toute l'information que vous envoyez tient dans les deux paramètres de requête ci-dessus.
#Requête d'exemple
La première page, vingt interventions au maximum.
curl -i -X GET "https://api.sealtrust.io/v1/partner-portal/interventions?skip=0&limit=20" \
-H "Authorization: Bearer JETON-DE-SESSION-DE-DEMONSTRATION"const reponse = await fetch(
"https://api.sealtrust.io/v1/partner-portal/interventions?skip=0&limit=20",
{
method: "GET",
headers: {
Authorization: "Bearer JETON-DE-SESSION-DE-DEMONSTRATION",
},
},
);
const page = await reponse.json();
console.log(reponse.status, page.total);
for (const intervention of page.items) {
console.log(
intervention.id,
intervention.event_type,
intervention.proof_level,
intervention.product_name,
intervention.occurred_at,
);
}import requests
response = requests.get(
"https://api.sealtrust.io/v1/partner-portal/interventions",
headers={
"Authorization": "Bearer JETON-DE-SESSION-DE-DEMONSTRATION",
},
params={"skip": 0, "limit": 20},
timeout=30,
)
print(response.status_code)
print(response.json())Pour lire la page suivante, augmentez skip de la valeur de limit : skip=20
avec limit=20, puis skip=40, et ainsi de suite. Le champ total vous donne
le nombre d'interventions à parcourir.
#Réponse d'exemple
Code HTTP 200OK
Code HTTP 200.
{
"total": 2,
"count": 2,
"skip": 0,
"limit": 20,
"items": [
{
"id": 812,
"product_id": 4471,
"brand_id": 12,
"event_type": "repair",
"proof_level": "customer_code",
"title": "Remplacement du joint d'étanchéité",
"description": "Joint remplacé, étanchéité contrôlée à 5 ATM.",
"event_metadata": {
"partner_type": "repairer",
"replaced_parts": "joint torique",
"cost_eur": 48,
"notes": "Pièce d'origine"
},
"performed_by": "Atelier Exemple (réparateur accrédité)",
"product_name": "Lampe d'atelier Exemple",
"occurred_at": "2026-08-19T14:32:07.481920Z",
"created_at": "2026-08-19T14:32:07.481920Z"
},
{
"id": 796,
"product_id": 4318,
"brand_id": 12,
"event_type": "maintenance",
"proof_level": "declared",
"title": "Révision annuelle",
"description": null,
"event_metadata": {
"partner_type": "repairer"
},
"performed_by": "Atelier Exemple (réparateur accrédité)",
"product_name": "Lampe d'atelier Exemple",
"occurred_at": "2026-08-11T09:05:44.220118Z",
"created_at": "2026-08-11T09:05:44.220118Z"
}
]
}La réponse compte cinq champs.
| Champ | Type | Description |
|---|---|---|
total | integer | Le nombre total d'interventions enregistrées sous votre compte, toutes pages confondues. |
count | integer | Le nombre d'interventions réellement rendues dans cette page. |
skip | integer | La valeur de skip appliquée, telle que vous l'avez envoyée. |
limit | integer | La valeur de limit appliquée, telle que vous l'avez envoyée. |
items | array | Les interventions de la page, de la plus récente à la plus ancienne. |
Chaque entrée de items compte douze champs.
| Champ | Type | Description |
|---|---|---|
id | integer | L'identifiant de l'intervention. |
product_id | integer | Le produit qui porte cette intervention. |
brand_id | integer | La marque à laquelle appartient ce produit. |
event_type | string | Le type d'intervention. Voir la liste ci-dessous. |
proof_level | string ou null | Ce que l'auteur a prouvé au moment de l'enregistrement. Voir la liste ci-dessous. |
title | string | L'intitulé saisi à l'enregistrement. |
description | string ou null | Le détail libre que vous avez saisi, ou null. |
event_metadata | object ou null | Les informations complémentaires enregistrées avec l'intervention. Voir ci-dessous. |
performed_by | string ou null | Le nom affiché de l'auteur, suivi de sa qualité entre parenthèses. |
product_name | string ou null | Le nom du produit au moment de la lecture. Vaut null si le produit ne porte pas de nom, ou si la ligne produit n'est plus jointe. Ne vous en servez pas pour décider qu'un produit a disparu. |
occurred_at | string | La date de l'intervention, au format ISO 8601 avec fuseau. |
created_at | string | La date d'écriture de l'enregistrement, au format ISO 8601 avec fuseau. |
event_type prend l'une des huit valeurs qu'un compte partenaire peut
enregistrer. Quatre relèvent de la réparation : repair, maintenance,
reconditioning, after_sale_service. Quatre relèvent de la fin de vie :
recycling, end_of_life, destruction, return. Une même entrée ne porte
qu'une seule de ces valeurs.
proof_level prend l'une de ces valeurs.
| Valeur | Ce qu'elle veut dire |
|---|---|
declared | Vous avez saisi un identifiant de produit et rien d'autre. |
customer_code | Le client a généré un code à usage unique et vous l'a communiqué. |
work_order | La marque a émis un ordre de travail nommant ce produit et votre compte. |
null | Nous n'avons pas posé la question à cet enregistrement. Il date d'avant l'existence des niveaux de preuve, ou il vient d'un autre chemin que le portail partenaire. |
Le service écrit proof_level à la création et ne le modifie plus jamais.
event_metadata porte la clef partner_type, qui vaut repairer ou
recycler, sur les interventions enregistrées depuis le portail partenaire.
Le champ peut valoir null, et une entrée plus ancienne peut ne pas porter
cette clef. Testez sa présence avant de la lire.
Les autres clefs sont celles que vous avez envoyées. Le portail partenaire y
écrit replaced_parts et cost_eur pour une réparation,
recovered_materials et method pour un traitement de fin de vie, et notes
dans les deux cas.
#Erreurs
Le corps d'une réponse d'erreur porte un champ detail. Selon le cas, ce champ
contient une phrase ou une liste.
| Code | Condition | Que faire |
|---|---|---|
| 401 | Aucun jeton de session n'accompagne l'appel, ni en en-tête Authorization, ni en cookie. La réponse porte aussi WWW-Authenticate: Bearer. | Connectez-vous, puis envoyez le jeton obtenu. |
| 401 | Une déconnexion ou un changement de mot de passe a révoqué le jeton. | Reconnectez-vous pour obtenir un nouveau jeton. |
| 401 | Le jeton présenté n'est pas un jeton de session. Un jeton en attente de vérification à deux facteurs donne le message MFA verification required. | Terminez la connexion, y compris la vérification à deux facteurs, puis utilisez le jeton de session. |
| 401 | Le jeton ne porte aucune adresse e-mail. | Reconnectez-vous. |
| 401 | Le service n'a pas pu lire le jeton du tout. Le message est Invalid JWT token. | Reconnectez-vous. Si l'erreur revient, contactez le support. |
| 401 | Le compte n'est plus actif. | Contactez la marque qui vous a accrédité, ou le support. |
| 403 | Le jeton est expiré, mal formé, ou sa signature ne correspond pas. Le message est Token invalide. | Reconnectez-vous. Traitez ce 403 comme une session à renouveler. |
| 403 | Le compte n'est ni un compte réparateur ni un compte recycleur. | Utilisez le compte partenaire que la marque a accrédité. Un compte administrateur de marque n'ouvre pas cette surface. |
| 403 | L'appel vient d'un navigateur, porte le cookie de session et n'annonce ni Origin ni Referer. | Appelez depuis le portail partenaire, ou passez à l'en-tête Authorization pour un appel serveur à serveur. |
| 403 | L'appel vient d'un domaine qui n'est pas autorisé. Le message est Forbidden origin. | Appelez depuis un domaine SealTrust, ou passez à l'en-tête Authorization. |
| 404 | Le compte désigné par le jeton n'existe plus. | Reconnectez-vous. Si le compte a été supprimé, demandez une nouvelle accréditation à la marque. |
| 422 | skip est négatif, limit est inférieur à 1 ou supérieur à 100, ou l'une des deux valeurs n'est pas un entier. detail est une liste qui nomme le paramètre fautif. | Corrigez la valeur. La borne haute de limit est 100. |
| 422 | Une valeur de pagination envoyée est hors des bornes que le service accepte. Le message est générique et ne nomme pas le paramètre. La réponse porte un en-tête X-Request-Id. | Réduisez skip. Une pagination normale reste très en dessous de cette borne. |
| 429 | Vous avez dépassé le plafond d'appels. La réponse porte un en-tête Retry-After. | Attendez le nombre de secondes indiqué par Retry-After, puis réessayez. Le plafond couvre tout le portail partenaire, espacez donc l'ensemble de vos appels. |
| 500 | Une erreur inattendue s'est produite pendant le traitement de votre appel. Le corps vaut {"detail": "Internal Server Error"} et la réponse porte un en-tête X-Request-Id. | Réessayez. Si l'erreur persiste, contactez le support en indiquant la valeur de X-Request-Id. |
Ce point d'entrée ne renvoie jamais 404 pour un historique vide. Un compte
partenaire qui n'a encore rien enregistré reçoit un 200 avec items vide et
total à 0.
#Voir aussi
POST /partner-portal/interventions, enregistrer une intervention sur un produit.GET /partner-portal/products/{identifier}, retrouver un produit d'une marque qui vous a accrédité.GET /partner-portal/me, lire votre profil de partenaire et les marques qui vous ont accrédité.
Cette page vous a-t-elle été utile ?
Votre réponse ouvre un courriel pré-rempli dans votre messagerie, à destination de contact@sealtrust.io. Vous le relisez avant de l'envoyer.