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 :

HTTP
GET https://api.sealtrust.io/v1/partner-portal/interventions

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

NomTypeObligatoireDescription
skipintegernonLe 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.
limitintegernonLe 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

NomTypeObligatoireDescription
AuthorizationstringnonBearer suivi de votre jeton de session. Obligatoire si vous n'envoyez pas le cookie de session.
CookiestringnonLe 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"

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.

JSON
{
  "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.

ChampTypeDescription
totalintegerLe nombre total d'interventions enregistrées sous votre compte, toutes pages confondues.
countintegerLe nombre d'interventions réellement rendues dans cette page.
skipintegerLa valeur de skip appliquée, telle que vous l'avez envoyée.
limitintegerLa valeur de limit appliquée, telle que vous l'avez envoyée.
itemsarrayLes interventions de la page, de la plus récente à la plus ancienne.

Chaque entrée de items compte douze champs.

ChampTypeDescription
idintegerL'identifiant de l'intervention.
product_idintegerLe produit qui porte cette intervention.
brand_idintegerLa marque à laquelle appartient ce produit.
event_typestringLe type d'intervention. Voir la liste ci-dessous.
proof_levelstring ou nullCe que l'auteur a prouvé au moment de l'enregistrement. Voir la liste ci-dessous.
titlestringL'intitulé saisi à l'enregistrement.
descriptionstring ou nullLe détail libre que vous avez saisi, ou null.
event_metadataobject ou nullLes informations complémentaires enregistrées avec l'intervention. Voir ci-dessous.
performed_bystring ou nullLe nom affiché de l'auteur, suivi de sa qualité entre parenthèses.
product_namestring ou nullLe 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_atstringLa date de l'intervention, au format ISO 8601 avec fuseau.
created_atstringLa 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.

ValeurCe qu'elle veut dire
declaredVous avez saisi un identifiant de produit et rien d'autre.
customer_codeLe client a généré un code à usage unique et vous l'a communiqué.
work_orderLa marque a émis un ordre de travail nommant ce produit et votre compte.
nullNous 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.

CodeConditionQue faire
401Aucun 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.
401Une déconnexion ou un changement de mot de passe a révoqué le jeton.Reconnectez-vous pour obtenir un nouveau jeton.
401Le 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.
401Le jeton ne porte aucune adresse e-mail.Reconnectez-vous.
401Le 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.
401Le compte n'est plus actif.Contactez la marque qui vous a accrédité, ou le support.
403Le 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.
403Le 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.
403L'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.
403L'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.
404Le compte désigné par le jeton n'existe plus.Reconnectez-vous. Si le compte a été supprimé, demandez une nouvelle accréditation à la marque.
422skip 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.
422Une 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.
429Vous 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.
500Une 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

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