The Batch Reporting API allows you to extract Eulerian reporting data from the views available in the interface.
It should be used as a means of automating the extraction of reports already available in the Eulerian interface. It should not be considered a tool for creating, in a single query, a level of granularity or a combination of data that does not exist in the reports.
For example, if an analysis requires combining multiple sources or views, multiple API requests must be made, and then the results must be aggregated on the BI side, data warehouse, or processing script.
To retrieve the complete data from J-1, it is recommended to start the exports from .
During the night, Eulerian synchronizes the cold database to integrate the data from the previous day. A very early morning query, for example around 05:00, may fall during this synchronization and encounter unavailability or return incomplete data.
The operational recommendation is therefore to schedule API jobs from onwards.
A simple method for building an API request is to start with the desired report in the Eulerian interface, and then observe the request generated by the interface.
Open the desired report in the Eulerian interface.
Open the browser's developer tools with F12 .
Go to the tab.
Identify the reporting query generated by the interface.
Retrieve the parameters needed to build the API body.
Value of the kind , with the prefix rt# in the API body
Value to use in the path field of the JSON body
Publisher IDs, leverage, media plan or campaign depending on the view viewed
The path visible in the console already contains the IDs corresponding to the data level being viewed: publisher, lever, media plan, campaign, etc.
The endpoint used to query the Batch Reporting API is of the form:
POST /ea/{site}/report/{batch}/query.json
The JSON body typically contains an array
Content-Type: application/json
reports , in which we define:
Key points to consider in the report
Data source / report type
Media reporting level or scope
Optional filters, for example on sales types
"path": "mcMEDIAINCOMING[?].mcMEDIAAD.mcOPE"
kind , path , dimensions and metrics must be adapted to the ratio that we wish to reproduce.
Filters on sales types are managed via segmentFilterClauses .
Example of a query with a filter on the type of sale:
"path": "mcMEDIAINCOMING[?].mcMEDIAAD.mcOPE",
"segmentFilterClauses": [
Les IDs à renseigner dans value doivent être récupérés dans l’interface Eulerian via la recherche .
À retenir : il ne faut pas utiliser directement le libellé métier du type de vente dans la requête API. Il faut utiliser son ID technique.
Pour récupérer les IDs des types de ventes :
Aller dans l’interface Eulerian.
Utiliser la barre de recherche en haut à droite.
Rechercher .
Identifier les IDs correspondant aux types de ventes souhaités.
Utiliser ces IDs dans segmentFilterClauses.value.
Exemple :
"segmentFilterClauses": [
Les valeurs ci-dessus sont données à titre d’exemple. Elles doivent être adaptées au périmètre client et aux types de ventes réellement visibles dans l’interface.
SPONSOREDLINK / Liens sponsorisés
These IDs can be used to check or build path related to media views.
For attribution algorithms, the IDs are visible in the Eulerian interface, via the page.
This will allow you to identify the attribution model used in the reporting views.
To industrialize the use of the Eulerian reporting API, it is recommended to:
- starting from an existing view in the Eulerian interface to build the API request;
- retrieve the
kind , path and IDs via the Network tab of the browser; - schedule API calls starting from 06:00;
- use technical IDs rather than business labels;
- use
segmentFilterClauses to apply specific filters; - execute multiple queries when the desired view combines multiple perimeters;
- aggregate the results on the BI side, data warehouse or processing script;
- retain an extraction timestamp to facilitate data auditing.
POST /ea/{site}/report/{batch}/query.json
Starting from an existing view in the interface
Retrieving the kind and path
Via the browser's Network tab
segmentFilterClauses with field: "ordertype_id"
Use this to check the path
Via the Template Creation and Editing page
Make multiple queries and then aggregate them on the BI side.
To query media plans via the Eulerian reporting API, it is recommended to split the query into several parts so that it remains viable and usable.
The best practice includes performing a query for each acquisition channel.
Each request follows the same structure, but with a different path depending on the desired lever.
mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[3].mcPUBLISHER
mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[2].mcPUBLISHER
mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[17].mcPUBLISHER
mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[5].mcPUBLISHER
mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[4].mcPUBLISHER
In these examples:
mcWEBSITE[1] corresponds to the site in question;mcMEDIAPLAN[1] corresponds to the targeted media plan;mcMEDIA[x] corresponds to the acquisition lever;mcPUBLISHER allows you to go down to the support/publisher level.
IDs must be adapted to the client context and the desired level of reporting.
Example for the lever, with attribution views 3 , 8 and 6 , over the period from .
"path": "mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[3].mcPUBLISHER",
"name": "Attribution rule",
"type": "attributionrule",
"field": "publisheralias_alias",
"name": "Ventes réelles",
"field": "realscartvalid"
"dateFrom": "2026-04-01",
"dateFormat": "YYYY-MM-DD"
To query another lever, simply use the same structure and replace the value of the
path by that of the desired lever.
For example, for SEA, the path becomes:
This approach helps to secure response times, better control the volumes returned and facilitate the aggregation of results on the BI or data warehouse side.
"path": "mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[5].mcPUBLISHER"
During a query, it may happen that the publisheralias_alias dimension returns an empty value even though metrics are present.
This behavior is normal and depends on how Eulerian tracking has been implemented on partner platforms.
When Eulerian tracking is implemented within a third-party platform such as a DSP, ad server, or media platform, campaign tracking parameters do not directly collect the publisher or campaign name via a readable macro, for example:
In this case, tracking can be powered by technical IDs, for example:
ead-publisher={{publisher_name}}, qui deviendrait "lequipe.fr"
Eulerian then uses EPC connectors to map the ID collected in the tracking settings to the actual publisher or campaign label as it appears in the third-party platform.
ead-publisher={{publisher_id}}, qui deviendrait "1234"
These revised labels are called on the Eulerian side. They are accessible via the dimension:
"field": "publisheralias_alias",
Conversely, when the publisher's name is sent directly to the tracking, without requiring connector mapping, the following dimension must be used:
"field": "publisher_name",
To avoid having to manually switch between publisher_name and publisheralias_alias , you can use the following API option:
This option allows you to ask the API to prioritize the alias when it exists, while keeping the raw name when the alias is not available.
"overwriteNameByAlias": true
It specifically addresses the following case:
- If the publisher has an alias, the API returns the alias;
- If the publisher does not have an alias, the API returns the
publisher_name .
This helps to limit empty lines in exports and to obtain a “Support” dimension that is more directly usable on the BI or data warehouse side.
The overwriteNameByAlias option must be added at the report block level, at the same level as kind , path , segments , dimensions , metrics and dateRanges .
Example on the social lever:
"path": "mcWEBSITE[1].mcGLOBALMEDIAPLAN.mcMEDIAPLAN[1].mcMEDIA[17].mcPUBLISHER",
"overwriteNameByAlias": true,
"name": "Attribution rule",
"type": "attributionrule",
"field": "publisher_name",
"name": "Ventes réelles",
"field": "realscartvalid"
"dateFrom": "2026-04-01",
"dateFormat": "YYYY-MM-DD"
Lorsque overwriteNameByAlias est activé, il est recommandé d’utiliser la dimension standard publisher_name :
"field": "publisher_name",
L’API se charge alors d’appliquer l’alias lorsque celui-ci est disponible.
Cette approche est plus simple que de requêter séparément publisher_name et publisheralias_alias, puis de réconcilier les deux champs côté BI.
L’option overwriteNameByAlias ne s’applique pas uniquement aux publishers.
Elle peut également s’appliquer aux autres dimensions disposant d’un mécanisme d’alias, par exemple :
This option therefore allows for cleaner and more consistent labels in API exports when Eulerian connectors feed aliases.
For queries by support/publisher:
Use publisher_name as the primary dimension.
Add "overwriteNameByAlias": true in the report block.
Test the result on the levers where the two logics coexist, particularly Social.
Keep this option if the supports are correctly retrieved with the expected aliases and without unjustified empty lines.
This option is particularly useful for the Social lever, where some campaigns can be tracked via partner IDs and then reprocessed by alias, while other campaigns can be tracked manually with an already available publisher name.