---
title: "List Websites"
method: GET
path: "/v1/websites"
tags: ["v1"]
---

# List Websites

`GET /v1/websites`

## Request

- Base URL: `https://api.trychannel3.com`
- URL: `https://api.trychannel3.com/v1/websites`
- Auth: API key in header `x-api-key`

Paginated list of websites, capped at the top 5,000.

With `category_ids`, lists the websites selling those categories — best
first, each category contributing at most its top 1,000.

## Query parameters

- `limit` integer: Max items per page (1-100).
- `cursor` string, nullable: Pagination cursor returned by a prior call. Omit for the first page.
- `category_ids` string[], nullable: If provided, only websites selling in these categories will be returned. Accepts category slugs. Categories that do not exist, or that are not available for search, are rejected with a 422.
- `country` 'US' | 'GB' | 'EU' | 'AU' | 'CA' | 'IE' | 'DE' | 'AT' | 'FR' | 'BE' | 'IT' | 'ES' | 'NL' | 'SE' | 'FI' | 'PT' | 'CZ' | 'GR' | 'RO' | 'CH' | 'PL': ISO 3166-1 alpha-2 country code (plus the pan-region ``EU``).

## Response `200`

Successful Response

- PaginatedListWebsitesResponse
  - `items` Website[], required: List of websites
    - `id` string, required
    - `name` string, nullable
    - `url` string, required
    - `logo_url` string, nullable
    - `description` string, nullable
    - `best_commission_rate` number: The maximum commission rate for the website in the requested country (default 'US'), as a percentage
    - `countries` CountryCode[]: Countries where this website has offers indexed in the catalog. Pass one in the X-Channel3-Country header to get this website's products there. Empty when the website has no products indexed yet.
  - `next_cursor` string, nullable: Cursor to fetch the next page of results. Null if no more results.

## Other responses

- `401`: Unauthorized - Invalid or missing authentication
- `402`: Payment required
- `422`: Validation Error
- `500`: Internal Server Error

## Changes

- **2026-10-28** `fbe04bdb7b70`: 1 info
  - added the optional property `items/items/countries` to the response with the `200` status
- **2026-10-20** `f642382eaf91`: 1 info
  - added the enum value `PL` to the property `anyOf[subschema #1: CountryCode]/` of the `query` request parameter `country`
- **2026-10-19** `7d1e0ccffc95`: 1 info
  - added the enum value `CH` to the property `anyOf[subschema #1: CountryCode]/` of the `query` request parameter `country`
- **2026-10-16** `93329818bdf4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/channel3-ai/apis/channel3-typescript-api/changes/v1/websites/get.md)

---

[API](https://skmtc.dev/channel3-ai/apis/channel3-typescript-api.md) - [All operations](https://skmtc.dev/channel3-ai/apis/channel3-typescript-api/llms.txt) - [OpenAPI document](https://skmtc.dev/channel3-ai/apis/channel3-typescript-api/revisions/f9f7b422ab5d?raw)
