Recherche avancée

L’API de recherche avancée interroge vos tiers, dossiers et documents à l’aide d’un constructeur de critères : un arbre de conditions que vous composez librement, sur n’importe quel champ disponible pour votre compte.

Le constructeur de critères

Plutôt que des filtres figés, vous composez un arbre de conditions booléennes (ET / OU) sur les champs de votre choix : champs standards, attributs personnalisés, scores, indicateurs ou réponses de formulaire. Chaque ressource expose un endpoint de recherche (résultats paginés) et un endpoint d’export (CSV / XLS / XLSX).

Pour le détail technique — endpoints, paramètres, corps de requête et exemples de réponse — consultez la section Advanced Search V2 de la documentation API.

Une phrase, une requête

Prenons un besoin métier exprimé en langage naturel, et voyons comment il se traduit en requête.

Votre besoin

Je veux tous mes tiers à risque qui n’ont pas déposé leur certification ISO 27001.

La requête (arbre de critères)
Je cherche des tiers
ETtoutes ces conditions
IndicateurFinancial Risk=High Risk
DocumentType de document=Certification ISO 27001
DocumentStatut du document=MISSING
Le corps de requête envoyé
{
  "filters": {
    "connectiveOperator": "AND",
    "conditions": [
      {
        "field": {
          "field": "<indicatorId>",
          "fieldType": "TEXT",
          "nature": "INDICATOR",
          "resourceType": "THIRD_PARTY",
          "id": <indicatorId>
        },
        "operator": "EQUAL",
        "values": ["High Risk"]
      },
      {
        "field": {
          "field": "documentTypeId",
          "fieldType": "TEXT",
          "nature": "MAIN_FIELD",
          "resourceType": "DOCUMENT"
        },
        "operator": "EQUAL",
        "values": [4311]
      },
      {
        "field": {
          "field": "documentStatus",
          "fieldType": "TEXT",
          "nature": "MAIN_FIELD",
          "resourceType": "DOCUMENT"
        },
        "operator": "EQUAL",
        "values": ["MISSING"]
      }
    ],
    "childGroups": []
  },
  "sort": { "name": "ASC" }
}

Les trois conditions sont reliées par ET : seuls les tiers qui remplissent les trois sont retournés.

Trois ressources interrogeables

La même mécanique s’applique à trois ressources. Une condition peut même cibler une autre ressource que celle interrogée (filtrage croisé) — par exemple chercher des tiers ayant un dossier d’un certain type.

Tiers

Raison sociale, pays, effectif, chiffre d’affaires, scores, indicateurs…

Dossiers

Type, statut, dates de début et d’expiration…

Documents

Type, statut, dates de dépôt et d’expiration, champs de formulaire…

Le principe : un arbre de conditions

Un groupe possède un seul opérateur (ET ou OU) qui relie toutes ses conditions et ses sous-groupes. Pour mélanger des ET et des OU, on imbrique des sous-groupes — la profondeur est illimitée.

Exemple : A ET (B OU C) se modélise par un groupe ET contenant la condition A et un sous-groupe OU contenant B et C.

Le déroulé en 3 étapes

1
Découvrir les champs

Interrogez le catalogue reference-data pour obtenir les champs autorisés pour votre compte : nom technique, type, opérateurs permis et valeurs possibles. C’est la source de vérité — vous n’inventez ni les noms ni les valeurs.

2
Construire la requête

Recopiez les descripteurs de champ dans un arbre de conditions reliées par ET / OU.

3
Rechercher ou exporter

Envoyez la requête à l’endpoint de la ressource voulue, ou exportez le résultat en CSV / XLS / XLSX.

Du catalogue à la requête

Concrètement : vous récupérez un champ dans le catalogue reference-data, puis vous recopiez son descripteur dans une condition de recherche.

1
GET/reference-data/advanced-search-fields?accountId=…&language=fr&feature=ADVANCED_SEARCH

Je récupère le champ « pays » dans le catalogue

{
  "field": "addressCountryCode",
  "label": "Pays",
  "fieldType": "TEXT",
  "nature": "MAIN_FIELD",
  "resourceType": "THIRD_PARTY",
  "options": [ { "value": "FR", "label": "France" }, … ],
  "availableOperators": ["EQUAL", "IN_SET", …]
}
2

Je le colle dans une condition (+ opérateur et valeur)

{
  "field": {
    "field": "addressCountryCode",
    "fieldType": "TEXT",
    "nature": "MAIN_FIELD",
    "resourceType": "THIRD_PARTY"
  },
  "operator": "EQUAL",
  "values": ["FR"]
}
3
POST/account/:accountId/documents/advanced-search-v2

Je recherche les documents des tiers français

Les champs surlignés proviennent du catalogue ; l'opérateur et les valeurs, c'est vous qui les choisissez.

Anatomie d’une condition

Une condition associe un champ, un opérateur et des valeurs.

{
  "field": {
    "field": "addressCountryCode",
    "fieldType": "TEXT",
    "nature": "MAIN_FIELD",
    "resourceType": "THIRD_PARTY"
  },
  "operator": "EQUAL",
  "values": ["FR"]
}

Les valeurs sont toujours des chaînes : écrivez ["50"] et non [50], ["true"] pour un booléen, ["2026-01-01"] pour une date.

Les natures de champ

Le champ porte une nature qui indique d’où vient la donnée. Pour les attributs, attributs calculés, indicateurs et champs de formulaire, un identifiant (id) est requis.

NatureSignification
MAIN_FIELDChamp standard de la ressource
ATTRIBUTEAttribut personnalisé du compte (référencé par son ID)
SCOREScore d’un fournisseur de données (Ecovadis, CreditSafe…)
CALCULATED_ATTRIBUTEAttribut calculé (référencé par l’ID du calcul)
INDICATORIndicateur calculé (SmartPilot)
FORM_FIELDChamp d’un formulaire de document (référencé par UUID)

Les endpoints

Chaque ressource expose un endpoint de recherche (et son jumeau d’export).

POST/api/v1/account/:accountId/third-parties/advanced-search-v2
POST/api/v1/account/:accountId/dossiers/advanced-search-v2
POST/api/v1/account/:accountId/documents/advanced-search-v2
GET/api/v1/reference-data/advanced-search-fields?accountId=:accountId
Attention à la position de l’accountId

Pour la recherche et l’export, l’accountId est dans le chemin de l’URL. Pour reference-data, il est en paramètre de requête. Les confondre renvoie une erreur 404.

Export

Chaque ressource a un endpoint d’export, jumeau de la recherche : même corps de requête (filters, sort, outputs), mais il renvoie un fichier (CSV, XLS ou XLSX) au lieu du JSON paginé. L’endpoint est l’URL de recherche suffixée de /export, et le format se choisit via le paramètre obligatoire exportType.

Choisir les colonnes

Le corps accepte en plus columnsVisibility, qui associe chaque code de colonne à true ou false et fonctionne en logique de masquage : par défaut toutes les colonnes sont exportées, vous ne listez que celles à masquer (false). Une colonne à true ou absente reste visible — omettre columnsVisibility exporte donc tout.

Exemple — exporter des tiers sans les colonnes DUNS et TVA :

{ "columnsVisibility": { "duns": false, "vat": false } }

Cette page présente les concepts. La liste complète des champs, opérateurs et valeurs possibles est fournie dynamiquement par le catalogue reference-data, propre à votre compte.