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

# Shopee Shop Products

> Get products from a Shopee Indonesia shop by shop ID

## Overview

The `/shopee/shop/products` endpoint retrieves a list of products from a specific shop on Shopee Indonesia (shopee.co.id), including product details, pricing, and inventory information.

<Note>
  This endpoint uses **browser rendering** to bypass anti-bot protection. Requests may take longer compared to renderless endpoints.
</Note>

<Warning>
  Currently only Indonesia (country=id) is supported. More Southeast Asian markets will be added in future updates.
</Warning>

## Credits

**25 credits** per successful request.

## Parameters

### Query Parameters

<ParamField query="shopId" type="string" required>
  The Shopee shop/seller ID (e.g., "12651109").
</ParamField>

<ParamField query="country" type="string" required>
  Country code. Currently only `id` (Indonesia) is supported.
</ParamField>

<ParamField query="page" type="number" default="0">
  Page number for pagination (0-indexed, starts at 0).
</ParamField>

<ParamField query="limit" type="number" default="30">
  Number of products per page (max 100).
</ParamField>

<ParamField query="sortBy" type="string">
  Sort order for results:

  * `relevance` - Most relevant (default)
  * `ctime` - Latest/newest first
  * `sales` - Best selling
  * `price` - Price: Low to High
  * `-price` - Price: High to Low
</ParamField>

## Example Requests

### Basic Shop Products

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.scrapengine.io/api/v1/shopee/shop/products?shopId=12651109&country=id" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const params = new URLSearchParams({
    shopId: "12651109",
    country: "id",
  });

  const response = await fetch(
    `https://api.scrapengine.io/api/v1/shopee/shop/products?${params}`,
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
      },
    }
  );

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.scrapengine.io/api/v1/shopee/shop/products"
  headers = {"Authorization": "Bearer YOUR_API_KEY"}
  params = {
      "shopId": "12651109",
      "country": "id"
  }

  response = requests.get(url, headers=headers, params=params)
  print(response.json())
  ```
</CodeGroup>

### Shop Products with Pagination and Sorting

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.scrapengine.io/api/v1/shopee/shop/products?shopId=12651109&country=id&page=0&limit=50&sortBy=sales" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const params = new URLSearchParams({
    shopId: "12651109",
    country: "id",
    page: "0",
    limit: "50",
    sortBy: "sales",
  });

  const response = await fetch(
    `https://api.scrapengine.io/api/v1/shopee/shop/products?${params}`,
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
      },
    }
  );

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.scrapengine.io/api/v1/shopee/shop/products"
  headers = {"Authorization": "Bearer YOUR_API_KEY"}
  params = {
      "shopId": "12651109",
      "country": "id",
      "page": 0,
      "limit": 50,
      "sortBy": "sales"
  }

  response = requests.get(url, headers=headers, params=params)
  print(response.json())
  ```
</CodeGroup>

## Response

### Success Response (200)

Returns shop products:

```json theme={null}
{
  "shopId": "12651109",
  "shopName": "Toko Aksesoris HP",
  "totalProducts": 234,
  "products": [
    {
      "position": 1,
      "itemId": "22133637031",
      "shopId": "12651109",
      "name": "Gantungan Handphone Kristal Ungu",
      "link": "https://shopee.co.id/Gantungan-Handphone-Kristal-Ungu-i.12651109.22133637031",
      "image": "https://down-id.img.susercontent.com/file/product.jpg",
      "price": 15000,
      "priceDisplay": "Rp15.000",
      "originalPrice": 20000,
      "discount": "-25%",
      "currency": "Rp",
      "rating": 4.8,
      "ratingCount": 456,
      "soldCount": 1234,
      "soldCountDisplay": "1,2rb terjual",
      "stock": 150,
      "isFreeShipping": true
    },
    {
      "position": 2,
      "itemId": "22133637032",
      "shopId": "12651109",
      "name": "Case iPhone 15 Pro Max Silikon",
      "link": "https://shopee.co.id/Case-iPhone-15-Pro-Max-i.12651109.22133637032",
      "image": "https://down-id.img.susercontent.com/file/product2.jpg",
      "price": 25000,
      "priceDisplay": "Rp25.000",
      "currency": "Rp",
      "rating": 4.9,
      "ratingCount": 892,
      "soldCount": 2500,
      "soldCountDisplay": "2,5rb terjual",
      "stock": 300,
      "isFreeShipping": true
    }
  ],
  "pagination": {
    "currentPage": 0,
    "totalPages": 8,
    "limit": 30
  },
  "country": "id"
}
```

### Response Headers

| Header                | Description                       |
| --------------------- | --------------------------------- |
| `x-remaining-credits` | Number of API credits remaining   |
| `x-trace-id`          | Unique identifier for the request |

### Error Responses

| Status | Description                                         |
| ------ | --------------------------------------------------- |
| `400`  | Bad Request - Missing shopId or unsupported country |
| `401`  | Unauthorized - Invalid or missing API key           |
| `404`  | Not Found - Shop not found                          |
| `500`  | Internal Server Error                               |

## Use Cases

* **Inventory analysis**: Get complete product catalog from a shop
* **Competitive intelligence**: Monitor competitor product offerings
* **Price monitoring**: Track prices across a seller's entire catalog
* **Product discovery**: Find all products from a specific seller
* **Dropshipping research**: Identify potential supplier products

## Notes

* This endpoint uses **browser rendering** which may result in longer response times
* Shopee uses 0-indexed pagination (page 0 is the first page)
* Prices are in Indonesian Rupiah (IDR)
* Use pagination to retrieve all products from shops with large catalogs
