> ## Documentation Index
> Fetch the complete documentation index at: https://docs.copyfy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# search_products

> Search Copyfy Top Products: winning products from Shopify stores, ranked like the dashboard.

Searches Copyfy Top Products with the same filters and ranking as the **Products** page of the dashboard. Each result includes the product, the estimated revenue, orders, and traffic of its store, and a link to the store in Copyfy.

**Cost:** 1 credit per successful call.

## Arguments

| Argument               | Type                         | Allowed values                                                                                                                                                                                                                                                                                                    |
| ---------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`                | string                       | Free text, matched like the search box of the dashboard page (for example product titles, store names, and domains). 1 to 200 characters.                                                                                                                                                                         |
| `niches`               | array of strings or integers | Niche names or ids from [`list_filter_options`](/tools/list-filter-options) with `kind: "niches"`. A parent niche includes its sub-niches. Up to 20.                                                                                                                                                              |
| `countries`            | array of strings             | Store countries as ISO 3166-1 alpha-2 codes, for example `US`, `FR`. Up to 50.                                                                                                                                                                                                                                    |
| `currencies`           | array of strings             | Store currencies as ISO 4217 codes, for example `USD`, `EUR`.                                                                                                                                                                                                                                                     |
| `languages`            | array of enums               | Storefront languages: `English`, `French`, `Spanish`, `German`, `Italian`, `Portuguese`, `Dutch`, `Polish`, `Norwegian`, `Swedish`, `Danish`, `Finnish`, `Chinese`, `Japanese`, `Korean`, `Arabic`, `Russian`, `Turkish`, `Hindi`, `Thai`, `Vietnamese`, `Indonesian`, `Greek`, `Czech`, `Hungarian`, `Romanian`. |
| `domains`              | array of strings             | Domain extensions, for example `.com`, `.fr`, `.co.uk`.                                                                                                                                                                                                                                                           |
| `pixels`               | array of enums               | Tracking pixels on the store: `TikTok`, `Snapchat`, `Facebook`, `Instagram`, `Google`, `Twitter`, `Pinterest`, `Reddit`, `TripleWhale`, `Applovin`.                                                                                                                                                               |
| `themes`               | array of strings             | Shopify theme names from `list_filter_options` with `kind: "themes"`.                                                                                                                                                                                                                                             |
| `apps`                 | array of strings             | Installed Shopify app names from `list_filter_options` with `kind: "apps"` and a `query`.                                                                                                                                                                                                                         |
| `social_networks`      | array of enums               | Social networks linked from the store: `Facebook`, `Instagram`, `TikTok`, `YouTube`, `Pinterest`, `Twitter`, `Snapchat`, `Reddit`.                                                                                                                                                                                |
| `monthly_revenue`      | range                        | Estimated monthly revenue, in the store's currency.                                                                                                                                                                                                                                                               |
| `monthly_visits`       | range                        | Estimated monthly visits.                                                                                                                                                                                                                                                                                         |
| `traffic_growth_pct`   | range                        | Traffic growth score, in percent: the store's month-over-month changes in visits, added up over the months Copyfy has on record. Accepts negative values.                                                                                                                                                         |
| `active_ads`           | range                        | Number of currently active Meta ads.                                                                                                                                                                                                                                                                              |
| `products_count`       | range                        | Catalog size (number of products).                                                                                                                                                                                                                                                                                |
| `monthly_orders`       | range                        | Estimated monthly orders.                                                                                                                                                                                                                                                                                         |
| `shop_created_between` | date range                   | Store creation date: `{ "from": "YYYY-MM-DD", "to": "YYYY-MM-DD" }`. Either bound can be omitted.                                                                                                                                                                                                                 |
| `page`                 | integer                      | 1 to 20. Default: `1`.                                                                                                                                                                                                                                                                                            |
| `per_page`             | integer                      | 1 to 25. Default: `10`.                                                                                                                                                                                                                                                                                           |

A **range** is an object `{ "min": number, "max": number }`. Both bounds are optional and must be zero or more, except for `traffic_growth_pct`. Every argument is optional: with no filters, you get the same default ranking as the dashboard.

Product-specific arguments:

| Argument     | Type  | Allowed values                                                                                                                                                                                                  |
| ------------ | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `price`      | range | Product price, in the store's currency.                                                                                                                                                                         |
| `sort_by`    | enum  | `recommended` (Copyfy relevance score used by the dashboard), `revenue`, `orders`, `traffic`, `traffic_growth`, `active_ads` (all five rank by the store's figures), `price`, `newest`. Default: `recommended`. |
| `sort_order` | enum  | `asc`, `desc`. Default: `desc`. Keep `desc` with `sort_by: "recommended"` to get the best products first.                                                                                                       |

Niche names resolve like the dashboard filter. An unknown niche returns [`invalid_arguments`](/errors#invalid_arguments) with a hint to call `list_filter_options`.

## Example

Top 5 products in the Pets niche from US stores making at least \$10,000 a month, sorted by store revenue:

```json Tool call theme={null}
{
  "name": "search_products",
  "arguments": {
    "niches": ["Pets"],
    "countries": ["US"],
    "monthly_revenue": { "min": 10000 },
    "sort_by": "revenue",
    "per_page": 5
  }
}
```

```json Result (trimmed) theme={null}
{
  "results": [
    {
      "id": 48213377,
      "title": "Self-Cleaning Slicker Brush",
      "url": "https://example-pet-store.com/products/self-cleaning-slicker-brush",
      "image_url": "https://cdn.shopify.com/s/files/1/example/brush.jpg",
      "price": 24.99,
      "currency": "USD",
      "created_at": "2026-03-02T09:14:00.000Z",
      "shop": {
        "id": 902114,
        "name": "Example Pet Store",
        "domain": "example-pet-store.com",
        "country": "US",
        "estimated_monthly_revenue": 214800,
        "estimated_monthly_orders": 8595,
        "monthly_visits": 184000,
        "traffic_growth_pct": 18.4,
        "active_ads": 37,
        "is_tracked": false
      },
      "dashboard_url": "https://app.copyfy.io/dashboard/track/902114"
    }
  ],
  "pagination": { "page": 1, "per_page": 5, "total": 412, "has_more": true }
}
```

## Result fields

| Field                            | Type           | Description                                                                                                                                                             |
| -------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                             | integer        | Copyfy product id. Pass it to [`get_product`](/tools/get-product).                                                                                                      |
| `title`                          | string         | Product title (third-party content).                                                                                                                                    |
| `url`                            | string or null | Product page on the store.                                                                                                                                              |
| `image_url`                      | string or null | Main product image.                                                                                                                                                     |
| `price`                          | number         | Lowest variant price, in `currency`.                                                                                                                                    |
| `currency`                       | string or null | Store currency (ISO 4217).                                                                                                                                              |
| `created_at`                     | string or null | Date the product was created on the store (ISO 8601).                                                                                                                   |
| `shop`                           | object         | The store that sells the product: `id`, `name`, `domain`, `country`, and its estimates below. Pass `shop.id` to [`get_shop`](/tools/get-shop).                          |
| `shop.estimated_monthly_revenue` | number or null | Estimated monthly revenue of the store.                                                                                                                                 |
| `shop.estimated_monthly_orders`  | number or null | Estimated monthly orders of the store.                                                                                                                                  |
| `shop.monthly_visits`            | number or null | Estimated monthly visits of the store.                                                                                                                                  |
| `shop.traffic_growth_pct`        | number or null | Store traffic growth score, in percent: the value the `traffic_growth_pct` filter and the `traffic_growth` sort use.                                                    |
| `shop.active_ads`                | integer        | Active Meta ads of the store.                                                                                                                                           |
| `shop.is_tracked`                | boolean        | `true` when you track the store in Copyfy, so [`get_product`](/tools/get-product) can return the product's details. `get_product` also works for your own brand stores. |
| `dashboard_url`                  | string         | The store's page in Copyfy.                                                                                                                                             |

Copyfy does not estimate sales per product. Revenue, orders, traffic, growth, and active ads are store-level estimates, so they sit under `shop`, and products from the same store share them. The revenue, orders, traffic, growth, and active ads filters and sort options apply to these store figures too.

`pagination.has_more` is `false` on page 20, the last page you can request. If the page exceeds 64 KiB, the last items are dropped and the result includes `"truncated": true`.
