Skip to main content
Shopee is one of Southeast Asia and Latin America’s leading e-commerce platforms, providing a marketplace for sellers to list products and manage orders. The Shopee Open Platform API enables access to your seller data including products, orders, advertising campaigns, and shop performance metrics.

Configuring Shopee as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Shopee option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need to authorize Nekt to access your Shopee seller data. Click on the Shopee Authorization button and log in with your Shopee seller account. Grant the necessary permissions for the shop you want to extract data from. The following configurations are available:
  • API URL: Select the appropriate API endpoint for your region:
    • https://partner.shopeemobile.com - Global (Southeast Asia)
    • https://openplatform.shopee.com.br - Brazil
    • https://openplatform.shopee.cn - China
  • Start Date: The earliest date from which records will be synced. If not provided, all available historical data will be extracted.
Make sure you have the correct API permissions enabled in your Shopee Partner account. The connector requires access to Product, Order, and Payment APIs depending on which streams you select.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data, which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data, which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every supported stream, its slug (the exact identifier to pass when creating the source via API), and a short description.

Fields by stream

Below you’ll find the specific fields available within each stream:
Complete product catalog with detailed information including pricing, inventory, media, and attributes.
FBS (Fulfillment by Shopee) warehouse stock per product and warehouse location.
Stock held in the seller’s own warehouses. This stream flattens the seller stock array into one row per product and warehouse location.
Complete order details including buyer information, items, payments, and shipping.
Financial breakdown per order, including marketplace commission data.
Orders whose escrow has been released, by settlement date. Escrow Details answers what an order is expected to yield and follows the order’s own update time; this stream answers what Shopee actually paid out, and when. Settlement can happen, and be adjusted, without the order being touched, so the release time is the reliable way to follow the money.
Every movement of the seller’s Shopee wallet balance. Captures financial events not found in Escrow Details, such as early payouts (e.g. Shopee Acelera), adjustments (e.g. ICMS DIFAL charges), refund clawbacks, and withdrawals.
The current reading of the product counters, one row per item. Shopee returns lifetime totals with no date of their own, so every run overwrites the previous reading in the table.
Daily series of the product counters, derived from the Product Analytics stream. This stream is opt-in and provides one reading per item per day, allowing you to calculate daily variations.

Use Cases for Data Analysis

This guide outlines valuable business intelligence use cases when consolidating Shopee data, along with ready-to-use SQL queries that you can run on Explorer.

1. Product Performance Overview

Analyze product performance combining catalog data with engagement metrics. Business Value:
  • Identify best-selling and most-viewed products
  • Understand conversion from views to sales
  • Optimize product listings based on engagement

2. Order Status Analysis

Track order distribution by status to monitor fulfillment health. Business Value:
  • Monitor order processing efficiency
  • Identify bottlenecks in fulfillment
  • Track cancellation rates and reasons

Implementation Notes

Shopee uses Unix timestamps (seconds since epoch) for date/time fields. To convert in queries:
The connector supports multiple regional API endpoints:
  • Global (SEA): Singapore, Malaysia, Thailand, Vietnam, Philippines, Indonesia, Taiwan
  • Brazil: Specific endpoint for Brazilian marketplace
  • China: Mainland China operations
Make sure to select the correct API URL for your shop’s region.
The connector supports incremental sync for:
  • Orders: Uses update_time as the replication key
  • Escrow List: Uses escrow_release_time as the replication key
  • Wallet Transactions: Uses create_time as the replication key
  • Product Analytics and Daily Product Analytics: Use snapshot_time as the replication key. It is not a filter (the counters are always read for the whole catalog); it makes the load merge on the primary key instead of replacing the table on every run.
For orders, escrow list, and wallet transactions, only records modified or created since the last sync will be extracted. When no start date is set, the Escrow List and Wallet Transactions streams default to the last six months, which is the furthest back Shopee’s financial endpoints allow.The Products, FBS Stock, and Seller Stock streams list the full catalog on every run, so items that have not been touched since the start date are still present.
The Daily Product Analytics stream is designed as a daily snapshot series (this stream is opt-in and not selected by default). Because Shopee returns lifetime counters (such as sale, views, and likes) with no historical dates, this derived stream uses the extraction time to key the records. Every row extracted in a run is stamped with the exact same snapshot_date and snapshot_time. This ensures one reading per item per day, allowing you to calculate daily variations by differencing against previous days. The standard Product Analytics stream, by contrast, keeps only the current reading (one row per item) and updates it on every run. Both streams are fed by a single read of the counters per batch of items, so selecting both does not increase the number of API requests.
The Shopee API returns warehouse stock nested inside the product information as two arrays of the same shape: shopee_stock for Fulfillment by Shopee and seller_stock for the seller’s own warehouses. Both remain available nested in stock_info_v2 on the Products stream. The FBS Stock and Seller Stock streams unnest these arrays into one row per product and location, so questions such as which items are out of stock at which warehouse become a plain WHERE instead of an UNNEST on every query.
The connector automatically manages access token refresh to prevent authentication failures:
  • Access tokens are refreshed proactively 30 minutes before expiration
  • The signing key is dynamically updated when generating new tokens
  • Refresh tokens are stored securely in the Meltano database
  • Token expiration defaults to 4 hours if not specified by the API
Shopee data contains nested structures. When querying:
  • Use UNNEST to flatten arrays (e.g., item_list in orders)
Example for order items:

Troubleshooting

Skills for agents

Download Shopee skills file

Shopee connector documentation as plain markdown, for use in AI agent contexts.