Skip to content

Products List

v1.0.0
OpenAPI 3.1.0

Upriver API

A social insights API for ad generation platforms. It provides structured signals, like psychographics, behavioral insights, trends, and audience language, to help AI models generate relevant, higher-converting ads.

Server:https://api.upriver.ai

Production API server

Client Libraries

Products List

​

Returns a list of products associated with a brand. Requires brand_url on every request, including pagination requests that send cursor. When cursor is provided, brand_url must match the brand encoded in that cursor.

Response format:

  • json: Returns structured data with product list (default)
  • text: Returns natural language report

Returns verified products and services; pricing plans, features, gift cards, documentation and signup actions are excluded. Use limit=1–20 and optionally filter by tier: primary or secondary. Products are discovered in bounded batches, with primary offerings preferred within each batch; this is not a global ranking or an exhaustive catalog. Continue with next_cursor and the same tier filter. A page may be empty while has_more is true.

Body·BrandProductInput
required
application/json

Input model for brand product research endpoint.

  • brand_url
    Type: string · Brand Url
    required

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

  • brand_name
    Type: string · Brand Name
    deprecated
    nullable

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

  • response_format
    Type: string · ResponseFormatenum

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

    values
    • json
    • text
  • cursor
    Type: string · Cursornullable

    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.

  • tier
    Type: string · Tierenumnullable

    Optional product relationship filter: primary is what the business mainly sells or provides; secondary covers complementary or incidental offerings outside its main business. Omit to include all verified products, including those whose relationship cannot be established. Use the same filter on every pagination request.

    values
    • primary
    • secondary
  • limit
    Type: integer · Limit
    min:  
    1
    max:  
    20

    Maximum products to return, from 1 to 20. Fewer may be returned when the website supports fewer offerings.

  • include
    Type: array string[] | null · Includeenumnullable

    Which per-product fields to return. Allowed values: 'description', 'image_url'. Omit the field to get 'description' only (the default). Add 'image_url' to also get product images. An explicit empty list returns name, url, and tier when known. Unrequested fields are omitted. Example: ["description", "image_url"]

    values
    • description
    • image_url
Responses
  • application/json
  • application/json
  • application/json
Request Example for post/v1/brand/products
curl https://api.upriver.ai/v1/brand/products \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_SECRET_TOKEN' \
  --data '{
  "brand_url": "https://glossier.com",
  "limit": 5,
  "include": [
    "description",
    "image_url"
  ]
}'
{
  "brand_url": "https://www.glossier.com",
  "brand_name": "Glossier",
  "products": [
    {
      "name": "Boy Brow",
      "tier": "primary",
      "category": "Brows",
      "description": "A brushable, buildable brow gel that shapes and fills brows.",
      "url": "https://www.glossier.com/products/boy-brow",
      "image_url": "https://www.glossier.com/cdn/images/boy-brow.jpg"
    }
  ],
  "next_cursor": "string",
  "has_more": true,
  "effort": "low"
}