Advanced Search
The advanced search API queries your third parties, dossiers and documents using a criteria builder: a tree of conditions you compose freely, over any field available for your account.
Instead of fixed filters, you compose a tree of boolean conditions (AND / OR) over the fields of your choice: standard fields, custom attributes, scores, indicators or form answers. Each resource exposes a search endpoint (paginated results) and an export endpoint (CSV / XLS / XLSX).
For the technical details — endpoints, parameters, request bodies and response examples — see the Advanced Search V2 section of the API documentation.
One sentence, one query
Let’s take a business need expressed in plain language, and see how it translates into a query.
I want all my third parties at risk that haven’t submitted their ISO 27001 certification.
{
"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" }
}The three conditions are joined by AND: only third parties matching all three are returned.
Three queryable resources
The same mechanism applies to three resources. A condition can even target a resource other than the one queried (cross-resource filtering) — for example finding third parties that have a dossier of a given type.
Legal name, country, headcount, turnover, scores, indicators…
Type, status, start and expiration dates…
Type, status, deposit and expiration dates, form fields…
The principle: a tree of conditions
A group has a single operator (AND or OR) that joins all its conditions and sub-groups. To mix AND and OR, you nest sub-groups — depth is unlimited.
Example: A AND (B OR C) is modeled as an AND group containing condition A and an OR sub-group containing B and C.
The 3-step flow
Query the reference-data catalog to get the fields allowed for your account: technical name, type, permitted operators and possible values. It is the source of truth — you never invent names or values.
Copy the field descriptors into a tree of conditions joined by AND / OR.
Send the query to the endpoint of the target resource, or export the result as CSV / XLS / XLSX.
From catalog to query
In practice: you fetch a field from the reference-data catalog, then copy its descriptor into a search condition.
I fetch the « country » field from the catalog
{
"field": "addressCountryCode",
"label": "Pays",
"fieldType": "TEXT",
"nature": "MAIN_FIELD",
"resourceType": "THIRD_PARTY",
"options": [ { "value": "FR", "label": "France" }, … ],
"availableOperators": ["EQUAL", "IN_SET", …]
}I paste it into a condition (+ operator and value)
{
"field": {
"field": "addressCountryCode",
"fieldType": "TEXT",
"nature": "MAIN_FIELD",
"resourceType": "THIRD_PARTY"
},
"operator": "EQUAL",
"values": ["FR"]
}→ I search documents of French third parties
The highlighted fields come from the catalog; the operator and values are up to you.
Anatomy of a condition
A condition combines a field, an operator and values.
{
"field": {
"field": "addressCountryCode",
"fieldType": "TEXT",
"nature": "MAIN_FIELD",
"resourceType": "THIRD_PARTY"
},
"operator": "EQUAL",
"values": ["FR"]
}Values are always strings: write ["50"] not [50], ["true"] for a boolean, ["2026-01-01"] for a date.
Field natures
Each field carries a nature indicating where the data comes from. For attributes, calculated attributes, indicators and form fields, an identifier (id) is required.
| Nature | Meaning |
|---|---|
MAIN_FIELD | Standard field of the resource |
ATTRIBUTE | Account custom attribute (referenced by its ID) |
SCORE | Score from a data provider (Ecovadis, CreditSafe…) |
CALCULATED_ATTRIBUTE | Calculated attribute (referenced by the calculation ID) |
INDICATOR | Calculated indicator (SmartPilot) |
FORM_FIELD | Document form field (referenced by UUID) |
The endpoints
Each resource exposes a search endpoint (and its export twin).
For search and export, the accountId is in the URL path. For reference-data, it is a query parameter. Mixing them up returns a 404 error.
Export
Each resource has an export endpoint, the twin of the search: same request body (filters, sort, outputs), but it returns a file (CSV, XLS or XLSX) instead of paginated JSON. The endpoint is the search URL suffixed with /export, and the format is chosen via the required exportType parameter.
Choosing columns
The body additionally accepts columnsVisibility, which maps each column code to true or false and works as an opt-out: by default all columns are exported, you only list those to hide (false). A column set to true or absent stays visible — so omitting columnsVisibility exports everything.
Example — export third parties without the DUNS and VAT columns:
{ "columnsVisibility": { "duns": false, "vat": false } }This page covers the concepts. The full list of fields, operators and possible values is provided dynamically by the reference-data catalog, specific to your account.