> For the complete documentation index, see [llms.txt](https://docs.struct.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.struct.com/tutorials/guides/how-to-use-struct-pims-api/use-of-browse-endpoints.md).

# Use of Browse endpoints

{% tabs %}
{% tab title="HTML" %}
**GET** /v1/browse/products
{% endtab %}
{% endtabs %}

### Using the Browse Endpoint

When browsing entities using the browse endpoints in the PIM, specific parameters are required to define the search. Below is an example with the product entity, which is also applicable to the browse endpoints for the other entities. You can view the method header below with its expected parameters.

{% code title="C#" %}

```csharp
public BrowseProductsResultSet? Products(int page = 1, DateTimeOffset? lastModifiedAfter = null, bool includeArchived = false, bool renderValues = false)
```

{% endcode %}

**Input Parameters**

* `Page`: Specifies the page number.
* `LastModifiedAfter`: Filters results modified after a specified date.
* `IncludeArchived`: Includes archived products in the results.
* `RenderValues`: Determines if values should be rendered.

We can now use the `browse/products` endpoint to retrieve products from a specific page. Below is an example of retrieving products from page 1.

{% code title="C#" %}

```csharp
BrowseProductsResultSet? products = apiService._client.Browse.Products(1, null, false, false);
```

{% endcode %}

The data has been retrieved successfully, but the values are nested within a complex structure. This can be seen in attributes like `CountryOfOrigin` or `Description`, where their values appear as `[]` instead of displaying the actual content.

<figure><img src="/files/l4YAfWRjXgXBNiaNLUak" alt=""><figcaption><p>Example of a browse/products result with RenderValues set to false</p></figcaption></figure>

However, by using the `RenderValues` parameter, you can modify the output to provide rendered, human-readable data. An example of this can be seen below.

{% code title="C#" %}

```csharp
BrowseProductsResultSet? products = apiService._client.Browse.Products(1, null, false, true);
```

{% endcode %}

<figure><img src="/files/i2LJwvZ9orBcmfzbrpbS" alt=""><figcaption><p>Example of a browse/products result with RenderValues set to true</p></figcaption></figure>

With this we can see that values such as `CountryOfOrigin` and `Description` is now rendered, which will support further handling of data without the need for formatting.

### Display rendering of values

When browsing values, you can specify which attributes to display and their render pattern, for complex attributes. These settings are available when configuring or editing a complex attribute type. You can find this option under the "Hide advanced data type settings" dropdown.

<figure><img src="/files/TQnDcCtwLs6XAtJj7qVA" alt=""><figcaption><p>Edit attribute page on a complex atrribute</p></figcaption></figure>

In this example, 'Height' and 'Width' are chosen for display, while 'Length' is excluded. The pattern determines how the attributes are rendered and in this example it is set so pattern the attributes is displayed in is "Height - Width".

<figure><img src="/files/JElIhgmZiHPWHDwAmlIo" alt=""><figcaption><p>Example of Display rendering and Render pattern on a complex attribute</p></figcaption></figure>

Once 'Display rendering' and 'Render pattern' are set, the complex attribute values will align with this configuration when retrieved via the browse/products endpoint. Below, we use the `browse/variants` endpoint as an example.

<figure><img src="/files/6rT3q4d5QJHaRWspcsMW" alt=""><figcaption><p>Example of a browse/variants result with RenderValues set to true</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.struct.com/tutorials/guides/how-to-use-struct-pims-api/use-of-browse-endpoints.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
