Skip to main content
POST
/
v1
/
brand
/
products
Products List
curl --request POST \
  --url https://api.upriver.ai/v1/brand/products \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "brand_url": "https://glossier.com",
  "brand_name": "<string>",
  "response_format": "json",
  "cursor": "<string>",
  "limit": 10,
  "effort": "auto"
}
'
{
  "brand_url": "https://www.glossier.com",
  "brand_name": "Glossier",
  "products": [
    {
      "name": "<string>",
      "category": "Brows",
      "description": "A brushable, buildable brow gel that shapes and fills brows.",
      "url": "https://www.glossier.com/products/boy-brow"
    }
  ],
  "next_cursor": "<string>",
  "has_more": true,
  "effort": "low"
}

Authorizations

X-API-Key
string
header
required

Body

application/json

Input model for brand product research endpoint.

brand_url
string
required

Required. Brand website URL to research for products. Provide this on every request, including pagination requests that also send a cursor.

Example:

"https://glossier.com"

brand_name
string | null
deprecated

Deprecated — brand name is now resolved automatically from the URL. This field is accepted but ignored.

response_format
enum<string>
default:json

Format for the response: 'json' for structured data, 'text' for natural language

Available options:
json,
text
Example:

"json"

cursor
string | null

Use this to paginate through results, providing the next_cursor returned from a previous request. When set, brand_url is still required and must match the brand encoded in the cursor. If omitted, the first page of results is returned.

limit
integer
default:10

Maximum number of products to return per page.

Required range: 5 <= x <= 20
effort
enum<string>
default:auto

Effort level for product research; 'auto' will adjust hydration effort based on result quality.

Available options:
auto,
low,
mid,
high

Response

Successful Response

Response model for brand product research results.

brand_url
string
required

The brand's primary website URL

Example:

"https://www.glossier.com"

brand_name
string
required

The resolved brand name

Example:

"Glossier"

products
ProductInfo · object[]
required

List of products found on the brand's website

next_cursor
string | null

Pagination cursor for the next page of results (if available).

has_more
boolean | null

Whether there are more pages available.

Example:

true

effort
enum<string>
default:low

Effective effort level actually used to produce these results (resolved; never 'auto').

Available options:
auto,
low,
mid,
high
Example:

"low"