Hello Flexmonster team,
I would like to understand why multiple requests are being sent from the UI to the server, invoking the POST /members API, even when nested fields are present but have not yet been expanded.

The /members response include all nested data, which seems unnecessary at this stage since the user has not expanded the corresponding rows or columns.

Is it possible to configure Flexmonster so that these requests are made only for the data required to render the current view?
For context, I am using a custom API connected to a ClickHouse database. I'm not sure if this setup could be influencing this behavior.
Hello, Leonardo!
Thank you for reaching out to us.
Kindly note that our team needs more details to address your case. Could you please provide us with the report object for the discussed view? You can save the report by clicking the "Save" Toolbar button on UI or by typing flexmonster.getReport() in your dev console.
This will greatly help us investigate the case further.
Looking forward to hearing from you.
Kind regards,
Solomiia
Here is:
{
"dataSource": {
"type": "api",
"url": "<url>",
"index": "sales",
"mapping": {
"sale_quantity": {
"format": "amount",
"caption": "Quantidade Un"
},
"sale_cx_quantity": {
"format": "amount"
},
"sale_total_value_gross": {
"format": ""
},
"sale_total_value_liquid": {
"format": ""
},
"sale_sell_discount": {
"format": ""
},
"sale_freight_amount": {
"format": ""
},
"sale_insurance_amount": {
"format": ""
},
"sale_net_weight_grams": {
"format": ""
},
"sale_net_weight_kilo": {
"format": ""
},
"sale_net_weight_ton": {
"format": "weight"
},
"sale_gross_weight_grams": {
"format": ""
},
"sale_gross_weight_kilo": {
"format": ""
},
"sale_gross_weight_ton": {
"format": "weight"
},
"sale_volume": {
"format": "weight"
},
"origin_provider_name": {
"caption": "Nome"
},
"provider_name": {
"caption": "Nome"
},
"client_name": {
"caption": "Nome"
}
}
},
"slice": {
"rows": [
{
"uniqueName": "origin_provider_name"
},
{
"uniqueName": "provider_name"
},
{
"uniqueName": "client_name"
}
],
"columns": [
{
"uniqueName": "[Measures]"
}
],
"measures": [
{
"uniqueName": "sale_quantity",
"aggregation": "sum",
"format": "amount"
}
]
},
"options": {
"dateTimezoneOffset": 0
},
"formats": [
{
"name": "",
"thousandsSeparator": ".",
"decimalSeparator": ",",
"maxDecimalPlaces": 2
},
{
"name": "amount",
"thousandsSeparator": ".",
"decimalPlaces": 0
}
],
"version": "2.9.121",
"creationDate": "2026-04-06T12:35:00.850Z"
}
Hello, Leonardo!
Thank you for providing us with your report configuration.
We've noticed that on the screenshot, there are some multilevel hierarchies or folders in the Field List that are not configured in the provided report.
In case there are some additional configurations coming from the server, could you also share the /fields response with us?
Looking forward to hearing from you.
Kind regards,
Solomiia
Hey,
Here is the response of /fields:
{
"fields": [
{
"type": "number",
"folder": "Data Sellout",
"caption": "Semana Ano (Segunda)",
"uniqueName": "week_year_monday"
},
{
"type": "number",
"folder": "Data Sellout",
"caption": "Dia Mes",
"uniqueName": "month_day"
},
{
"type": "string",
"folder": "Data Sellout",
"caption": "Nome Mes",
"uniqueName": "month_name"
},
{
"type": "number",
"folder": "Data Sellout",
"caption": "YYYYMM",
"uniqueName": "year_month"
},
{
"type": "string",
"folder": "Data Sellout",
"caption": "MM/YYYY",
"uniqueName": "month_year"
},
{
"type": "date",
"folder": "Data Sellout",
"caption": "Data",
"uniqueName": "date"
},
{
"type": "number",
"folder": "Data Sellout",
"caption": "Ano",
"hierarchy": "Data Sellout",
"uniqueName": "year"
},
{
"type": "number",
"folder": "Data Sellout",
"parent": "year",
"caption": "Mes",
"hierarchy": "Data Sellout",
"uniqueName": "month"
},
{
"type": "number",
"folder": "Data Sellout",
"parent": "month",
"caption": "Dia",
"hierarchy": "Data Sellout",
"uniqueName": "day"
},
{
"type": "string",
"folder": "Industria",
"caption": "Tipo",
"uniqueName": "origin_provider_type"
},
{
"type": "string",
"folder": "Industria",
"caption": "Nome",
"uniqueName": "origin_provider_name"
},
{
"type": "string",
"folder": "Industria",
"caption": "ID",
"uniqueName": "origin_provider_identifier"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Tipo",
"uniqueName": "provider_type"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Nome",
"uniqueName": "provider_name"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "ID",
"uniqueName": "provider_identifier"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Fantasia",
"uniqueName": "provider_fantasy_name"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Endereco",
"uniqueName": "provider_adress"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Bairro",
"uniqueName": "provider_neighborhood"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Cidade",
"uniqueName": "provider_city"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Estado",
"uniqueName": "provider_state"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Pais",
"uniqueName": "provider_country"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Codigo Interno",
"uniqueName": "provider_internal_code"
},
{
"type": "string",
"folder": "Distribuidor",
"caption": "Segmento",
"uniqueName": "provider_segment"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Tipo",
"uniqueName": "client_type"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Nome",
"uniqueName": "client_name"
},
{
"type": "string",
"folder": "Varejo",
"caption": "ID",
"uniqueName": "client_identifier"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Fantasia",
"uniqueName": "client_fantasy_name"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Endereco",
"uniqueName": "client_adress"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Bairro",
"uniqueName": "client_neighborhood"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Cidade",
"uniqueName": "client_city"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Estado",
"uniqueName": "client_state"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Pais",
"uniqueName": "client_country"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Codigo Interno",
"uniqueName": "client_internal_code"
},
{
"type": "string",
"folder": "Varejo",
"caption": "Segmento",
"uniqueName": "client_segment"
},
{
"type": "string",
"folder": "Produto",
"caption": "Nome",
"uniqueName": "product_name"
},
{
"type": "string",
"folder": "Produto",
"caption": "Codigo Interno",
"uniqueName": "product_internal_code"
},
{
"type": "string",
"folder": "Produto",
"caption": "EAN",
"uniqueName": "product_ean"
},
{
"type": "string",
"folder": "Produto",
"caption": "SKU",
"uniqueName": "product_sku"
},
{
"type": "string",
"folder": "Produto",
"caption": "Categoria",
"uniqueName": "product_category"
},
{
"type": "string",
"folder": "Produto",
"caption": "Subcategoria",
"uniqueName": "product_subcategory"
},
{
"type": "string",
"folder": "Produto",
"caption": "Marca",
"uniqueName": "product_brand"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "amount",
"caption": "Quantidade Un",
"uniqueName": "sale_quantity"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "amount",
"caption": "Quantidade Cx",
"uniqueName": "sale_cx_quantity"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Valor Unitario",
"uniqueName": "sale_unit_value"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Valor Bruto",
"uniqueName": "sale_total_value_gross"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Valor Liquido",
"uniqueName": "sale_total_value_liquid"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Valor Desconto",
"uniqueName": "sale_sell_discount"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Valor Frete",
"uniqueName": "sale_freight_amount"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Valor Seguro",
"uniqueName": "sale_insurance_amount"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Peso Liq (g)",
"uniqueName": "sale_net_weight_grams"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Peso Liq (kg)",
"uniqueName": "sale_net_weight_kilo"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "weight",
"caption": "Peso Liq (ton)",
"uniqueName": "sale_net_weight_ton"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Peso Bruto (g)",
"uniqueName": "sale_gross_weight_grams"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "",
"caption": "Peso Bruto (kg)",
"uniqueName": "sale_gross_weight_kilo"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "weight",
"caption": "Peso Bruto (ton)",
"uniqueName": "sale_gross_weight_ton"
},
{
"type": "number",
"folder": "Valores Sellout",
"format": "weight",
"caption": "Volume",
"uniqueName": "sale_volume"
},
{
"type": "string",
"folder": "Data Sellout",
"caption": "ddmmyyyy",
"uniqueName": "date_ddmmyyyy"
},
{
"type": "number",
"folder": "Data Sellout",
"caption": "yyyymmdd",
"uniqueName": "date_yyyymmdd"
},
{
"type": "string",
"folder": "Data Sellout",
"caption": "dd/mm/yyyy",
"uniqueName": "date_dd_mm_yyyy"
},
{
"type": "number",
"folder": "Data Sellout",
"caption": "Dia Ano",
"uniqueName": "year_day"
},
{
"type": "number",
"folder": "Data Sellout",
"caption": "Dia Semana (1-7)",
"uniqueName": "week_day"
},
{
"type": "string",
"folder": "Data Sellout",
"caption": "Nome Dia Semana",
"uniqueName": "week_day_name"
},
{
"type": "number",
"folder": "Data Sellout",
"caption": "Semana Ano (Domingo)",
"uniqueName": "week_year_sunday"
}
],
"aggregations": {
"any": [
"count",
"distinctcount"
],
"number": [
"sum",
"count",
"distinctcount",
"average",
"min",
"max"
],
"date": [
"count",
"distinctcount",
"min",
"max"
]
},
"filters": {
"any": {
"members": true,
"query": true
},
"advanced": true
},
"sorted": true
}
Hello, Leonardo!
Thank you for providing the necessary details about the use case.
Our team has created a similar pivot view with our own custom data source API implementation: https://jsfiddle.net/flexmonster/sjbmdxa5/. Please open the Network tab to check that the component is sending /members requests only for the fields present in the slice. We kinly ask you to modify the example to make the described behavior with 13 /members requests reproducible.
Our team also suggests double-checking that there are no controls outside Flexmonster that use our API calls(e.g. getMembers()) that may trigger the component to send additional /members requests.
Looking forward to hearing from you.
Kind regards,
Solomiia
Hi Solomiia,
I believe the members API is not being triggered multiple times in your fiddle because there is no pagination.
I'm working on a huge dataset and there is a pagination returned by the members API.

I see in the API of /members supports pagination (https://www.flexmonster.com/api/members-request#response), but it looks like it is not necessary.
Hello, Leonardo!
Thank you for the details about the pagination.
Kindly note that Flexmonster client sends paginated requests based on the pageTotal number that comes from the server.
If you are using our Flexmonster Data Server, the page count is calculated automatically based on the number of members to improve performance, and this behavior cannot be altered.
In case you have your own server that implements a custom data source API communication protocol, we suggest removing the pageTotal property from your first /members response, and Flexmonster won't send for more.
Hope it helps.
Kind regards,
Solomiia
Hello, Leonardo!
Hope you are doing well.
Our team is wondering if you had some time to look through our previous response regarding the case with additional /members requests being sent to the server. Could you please let us know if configuring the pageTotal property works for your case?
Looking forward to hearing your feedback.
Kind regards,
Solomiia
Hello, Leonardo!
Hope everything is well.
Just checking in to ask if the pageTotal property helped to configure the desired number of /members requests.
Looking forward to hearing your feedback.
Kind regards,
Solomiia