Skip to main content

Method Signature

getBrowseResults(
  filterName: string,
  filterValue: string,
  parameters?: IBrowseParameters,
  networkParameters?: NetworkParameters
): Promise<GetBrowseResultsResponse>

Parameters

filterName
string
required
Filter name to display results from (e.g., "group_id", "category", "brand")
filterValue
string
required
Filter value to display results from (e.g., "t-shirts", "electronics", "Nike")
parameters
object
Additional parameters to refine the result set
networkParameters
object
Parameters relevant to the network request

Returns

Returns a Promise that resolves to a browse results response object.
request
object
Information about the request that was made, including applied filters and parameters
response
object
The browse results data
result_id
string
Unique identifier for this result set, used for analytics tracking

Examples

Basic Browse Request

const results = await constructorio.browse.getBrowseResults(
  'group_id',
  't-shirts'
);

console.log(results.response.results); // Array of product results
console.log(results.response.total_num_results); // Total count

Browse with Pagination

const results = await constructorio.browse.getBrowseResults(
  'category',
  'electronics',
  {
    resultsPerPage: 40,
    page: 2
  }
);

Browse with Filters

const results = await constructorio.browse.getBrowseResults(
  'group_id',
  't-shirts',
  {
    resultsPerPage: 40,
    filters: {
      size: 'medium',
      color: 'blue'
    },
    filterMatchTypes: {
      size: 'all'
    }
  }
);

Browse with Sorting

const results = await constructorio.browse.getBrowseResults(
  'brand',
  'Nike',
  {
    sortBy: 'price',
    sortOrder: 'ascending',
    resultsPerPage: 24
  }
);

Browse with Advanced Options

const results = await constructorio.browse.getBrowseResults(
  'category',
  'shoes',
  {
    filters: {
      brand: ['Nike', 'Adidas'],
      price: '50-200'
    },
    filterMatchTypes: {
      brand: 'any'
    },
    hiddenFields: ['internal_id', 'warehouse_location'],
    variationsMap: {
      group_by: [
        {
          name: 'color',
          field: 'data.color'
        }
      ],
      dtype: 'array'
    },
    fmtOptions: {
      groups_max_depth: 2
    }
  }
);

Browse with Timeout

const results = await constructorio.browse.getBrowseResults(
  'group_id',
  'accessories',
  {
    resultsPerPage: 20
  },
  {
    timeout: 5000 // 5 second timeout
  }
);

Error Handling

try {
  const results = await constructorio.browse.getBrowseResults(
    'group_id',
    't-shirts',
    { resultsPerPage: 24 }
  );
  
  // Process results
  console.log(results.response.results);
} catch (error) {
  console.error('Browse request failed:', error);
}

Additional Resources

Build docs developers (and LLMs) love