Shopee Scraper API and 1688 API in ChatGPT: A Weekly Go/No-Go Product Table
ChatGPT agent is gone, so we built the weekly Shopee and 1688 product check in ChatGPT Work: 3 of 7 rain items kept 30% after fees. Data: $0.46 a week.

ChatGPT agent mode is no longer available. A weekly product check in ChatGPT now runs in ChatGPT Work, with a scheduled task and a remote MCP plugin. On November 9, 2026, from 00:17 to 02:21 SGT, we ran one full rain-gear check with four EveryInfra capabilities on four Shopee markets. Of 7 top items, only 3 kept more than 30% of the price after Shopee cross-border fees and the 1688 cost. None of those 3 includes shipping yet.
The top EVA poncho on Shopee Malaysia sells for RM2.98. It loses RM2.07 per unit when we add the 150 g shipping cost from the 1688 async detail. One set (1 keyword × 1 market, with one 1688 search per item) costs $0.023071 in data fees, so 20 sets cost about $0.46 a week.
This guide is for sellers who list on Shopee in Southeast Asia or Latin America and buy stock on 1688. It is also for developers who build AI tools for those sellers. At the end you can set up a ChatGPT task that runs every Monday morning. The task reads the top 20 Shopee results for your keywords, finds 1688 sources for the top items and builds one table. The table shows price, cost, fees, shipping and reviews. It ends with one verdict per item: go, no-go, missing data or not the same product.
We used rain gear because the season signal is clear. On October 23, 2026, the Malaysian Meteorological Department said the northeast monsoon starts on October 27, 2026, and lasts until March 2027 (MetMalaysia press release). Seasonal items need a weekly look. A two-week delay can cost you most of the window.

ChatGPT agent is gone: ChatGPT Work does this job now
Many tutorials still tell you to type /agent and let a virtual browser read Shopee prices. That path no longer exists. The OpenAI Help Center page for ChatGPT agent now opens with one line. It says agent is no longer available and tells users to use ChatGPT Work for long tasks (ChatGPT agent, read November 9, 2026).
Two forum threads from July 18 and August 8, 2026, got the same answer: agent is gone, use Work and its cloud browser (thread 1, thread 2, Browser docs).
So in this article, «ChatGPT agent» means how you do this job today. You use Work, a scheduled task and a plugin. You do not use the old agent mode.
The Help Center says ChatGPT now has Chat and Work. Work is «an agent designed for longer, multi-step work and finished deliverables». On the web and on mobile it runs in the cloud. It can run once, repeat on a schedule or a trigger, or watch for changes through scheduled tasks (ChatGPT Work and Codex).
Work shares one usage pool with Codex. The Codex pricing page says that Work usage «uses the same pricing, credits, and usage limits as Codex» (Codex Pricing). For a weekly product check, this matters. Your product task and your coding tasks use the same allowance. If you write code in Codex every day, plan the product task to be short.
Why not let the Work cloud browser read Shopee pages? The cloud browser page gives two reasons itself. Some websites block automated browsers, even when the same site opens in your own browser. Also, when a connected app or plugin can do the task directly, ChatGPT prefers the plugin (Using cloud browser in ChatGPT). Each website decides whether to allow the cloud browser (allowlisting instructions).
Shopee is a large store front with bot controls. Reading 20 results and 3 detail pages through screenshots is slow and can fail. A plugin gives the model JSON fields such as price, rating and seller location, with no guesswork.
The table below lists the ChatGPT facts that this article uses. We opened each source on November 9, 2026. Codex has its own scheduled tasks (Codex docs). They are a separate system, and this article uses only the ChatGPT ones.
| ChatGPT feature | Status in the source text | Source |
|---|---|---|
| Agent mode | No longer available; use Work. The old page still lists 40 agent messages a month on Plus and 400 on Pro, and each scheduled agent run counted | ChatGPT agent help page |
| Work | Agent for long tasks; runs in the cloud on web and mobile; can run once, on a schedule, on a trigger or as a monitor | ChatGPT Work and Codex help page |
| Scheduled tasks | Active task limits: 3 on Free and Go, 5 on Plus, 10 on Business and Edu, 15 on Pro and Enterprise; paid plans can run hourly and at exact times | Scheduled tasks help page |
| Custom MCP | Add it from chatgpt.com/plugins; SSE and streaming HTTP; OAuth, no auth, or mixed | Add custom MCP server guide |
| Confirmations | Tools without readOnlyHint count as write actions and need approval by default | Same guide |
| Usage | Work and Codex share usage; a scheduled task in Chat uses allowance even with no update | Codex Pricing, Scheduled tasks page |
What the go/no-go table must answer
A small Shopee seller in Kuala Lumpur or Manila asks the same questions every Monday. Which items sell this week? What do the top items cost, and how many reviews do they have? What does the same item cost on 1688?
After Shopee commission, transaction fee, service fee and cross-border shipping, what is left per unit? Items with a good margin get a test order. Items with a thin margin get dropped or moved to another market.
Items with a missing number must stay marked as missing. A model must not fill the gap with a guess. A human needs about half a day for this check. You open Shopee, search 1688, read fee tables and look up exchange rates. AI adds value here because it runs the same rules every week. You can then compare this week with last week.
We set the table to four verdicts and six columns of evidence. The verdicts are go, no-go, missing data and not the same product. The evidence is the Shopee price in local currency and USD, reviews or rating, seller location, 1688 cost (the lowest SKU price among the SKUs closest to the Shopee item), platform fees and shipping. Every term in the margin formula has a source. If one term has no source, the row stops at «missing data».
This is the step that AI breaks most easily. A model can write a shipping cost that looks right, but that number has no source.
We picked rain gear because the season signal is clear. The MetMalaysia release of October 23, 2026, says the monsoon starts on October 27, 2026. It expects three to five episodes of heavy rain from November to January, with floods possible near rivers and in low areas. The long-range outlook from the same agency, updated on November 5, 2026, says El Niño is getting stronger. It expects hot and dry weather in the northern states and Sabah from January to March 2027 (MetMalaysia long-range outlook). So the best window for rain gear on Shopee Malaysia is about three months.
The Philippines, Brazil and Mexico have different seasons. We added them on purpose. We want to see how one product type differs across markets in search words and in competition.
Shopee scraper API and 1688 API: what the four capabilities do
Read the catalog first. The EveryInfra catalog is free. For each capability, GET https://api.everyinfra.com/api/v1/social/catalog gives the parameters, the unit price price_usd, the response_fields and the available flag (EveryInfra catalog). We read it on November 9, 2026, at 00:13 SGT. Shopee had 4 capabilities and 1688 had 3, and all of them were available: true. This article uses 4 of them. The platform pages are Shopee data API and 1688 data API.
| Capability | Required | Optional | Price (USD per call) | How we use it |
|---|---|---|---|---|
shopee/search | keyword | country, sort, min_price, max_price | 0.006403 | One word per market, sort: popular, top 20 |
shopee/product_detail | url | country | 0.001389 | One call per top item for reviews, list price and variants |
alibaba1688/search | keyword | sort, min_price, max_price, city | 0.002778 | Chinese source word; tier prices and minimum order |
alibaba1688/product_detail | url | none | 0.001389 | SKU price; add "mode": "async" for weight |
For shopee/search, country accepts id, sg, my, th, ph, vn, br, tw, mx, co and cl. The default is Indonesia. The sort values are relevance, popular, newest, price_asc and price_desc.
The catalog lists 16 response fields: shop_id, item_id, name, url, image_url, price, original_price, discount_pct, currency, rating, rating_scale, rating_count, sold_count, location, is_mall and platform. The field note also says that is_mall, sold_count and rating_count are usually absent. Our test confirms this. In 120 rows, these three fields were empty every time. Put that limit into your prompt, so the model does not look for sales numbers.
The field note for alibaba1688/product_detail is longer. One line in it shaped this article. On a sync call, SKU fields such as weight_g, length_cm, width_cm and height_cm can be empty, so use an async call when you need them.
Cross-border shipping is priced by weight. Without weight, the margin table must stop before shipping. Our 6 sync detail calls had no weight. Our 2 async calls both had it. A later section shows the details.
Connect the EveryInfra remote MCP server in ChatGPT (configuration example)
We did not click through ChatGPT ourselves. The steps below are a configuration example from the OpenAI developer guide. The EveryInfra side is tested. The guide «Add custom MCP server» lists these steps (Add custom MCP server). Open chatgpt.com/plugins. Select the plus button, then Add custom MCP server. Enter a name and the server URL, or choose a Secure MCP Tunnel for a private server. Set the authentication, accept the risk warning and select Create as a plugin.
The supported transports are SSE and streaming HTTP. Authentication can be OAuth, no auth, or both. After you create the plugin, install it. Then type @ in the prompt box to select it. Another OpenAI page suggests that you test each tool in MCP Inspector before you connect ChatGPT (Connect and test your plugin).
Who can add a custom server? The Help Center and the forum do not say the same thing, so check your own account. The Help Center page says custom MCP connections are for ChatGPT Business and Enterprise/Edu on the web. In a Business workspace, only admins and owners can create the plugin (Connecting custom MCP servers).
For personal Plus and Pro accounts, it depends on the account. In two forum threads from late September, some personal accounts saw the menu item and some did not (thread 1, thread 2). If you do not see the menu item, check your plan and workspace first.
Use https://api.everyinfra.com/mcp as the server URL. Do not use a per-platform URL. We checked at 00:16 SGT. The path /mcp/alibaba1688 has its own resource metadata, but /mcp/shopee returns 404. Shopee has no separate MCP URL, so use the main one.
Choose OAuth. The OpenAI guide says ChatGPT can use Client ID Metadata Documents (CIMD) when the authorization server supports them. It can also use dynamic client registration (DCR). We read the EveryInfra metadata. This is what it says.
// GET https://api.everyinfra.com/.well-known/oauth-protected-resource/mcp/all (00:16 SGT)
{
"resource": "https://api.everyinfra.com/mcp/all",
"authorization_servers": ["https://auth.everyinfra.com/oidc"],
"scopes_supported": ["data:call", "search:call", "captcha:call", "ai:call", "account:read", "offline_access"],
"bearer_methods_supported": ["header"]
}
// Authorization server metadata: client_id_metadata_document_supported = true,
// registration_endpoint = null, code_challenge_methods_supported = ["S256"]Three items match what ChatGPT expects. First, the protected resource metadata uses the RFC 9728 format at .well-known/oauth-protected-resource. An initialize call (the first step of an MCP session, MCP Lifecycle) with no credentials returns 401 and puts the metadata URL in the WWW-Authenticate header. The MCP authorization spec asks for this discovery path (MCP Authorization). The authorization server metadata follows RFC 8414.
Second, the server supports CIMD and does not offer DCR, which RFC 7591 defines. The OpenAI plugin auth guide says ChatGPT prefers CIMD when it is available (Plugins Authentication).
Third, scopes_supported includes offline_access. OpenID Connect defines this scope as the way to get a refresh token (OpenID Connect Core 1.0). With a refresh token, the client can renew an expired access token without a new sign-in. We did not check in ChatGPT whether it asks for this scope. For a task that runs once a week, this decides one thing: either your Monday task runs, or it stops at a sign-in prompt. At the first sign-in, check that the consent page lists offline access.
To test the server outside ChatGPT, use MCP Inspector, as the OpenAI guide suggests. Inspector now needs Node 22.19.0 or newer and runs with npx (MCP Inspector).
npx @modelcontextprotocol/inspector@latest --server-url https://api.everyinfra.com/mcp
# To skip OAuth, add the header Authorization: Bearer <your EveryInfra API key> in Inspector
# Call everyinfra_list_capabilities first (read-only, free), then everyinfra_call_apiAt 01:59 SGT we read tools/list with no credentials and got 12 tools. Three of them matter here: everyinfra_list_capabilities lists capabilities, everyinfra_call_api calls a data API, and everyinfra_get_job reads an async job. For a full setup guide, see remote MCP setup and the MCP server page.
Will the weekly task stop at a confirmation?
This point is easy to miss, and it decides whether the task runs alone. The OpenAI guide says ChatGPT reads the readOnlyHint tool annotation. Tools without it count as write actions. Write actions need approval by default. You can tell ChatGPT to remember your choice in one conversation, but a new conversation asks again (Add custom MCP server). The scheduled tasks page adds that an action that needs approval can pause the task until you review it (Scheduled tasks in ChatGPT).
We read the annotations in tools/list. Seven tools, such as everyinfra_list_capabilities, everyinfra_get_job and everyinfra_get_account, have readOnlyHint: true. The tool everyinfra_call_api has readOnlyHint: false and destructiveHint: true. This is on purpose. A data call takes money from your balance, and ChatGPT treats that as an action with a result. So on Monday, the task will probably stop at the first everyinfra_call_api and wait for your approval.
Our earlier article on ChatGPT scheduled tasks for demand research saw the same pause. Our advice: put all data calls at the start of the task, and do not call again during the table step. After one approval, later calls in the same conversation can use the remembered choice. If you do not want to approve every week, accept a simple rhythm. The task starts at 09:00 and you tap approve at 09:10. We did not test whether the remembered choice lasts across weeks. Check this on your own account.
| Tool | readOnlyHint | destructiveHint | Expected behavior in a weekly task (from the OpenAI guide) |
|---|---|---|---|
| everyinfra_list_capabilities | true | false | No approval; reads the catalog |
| everyinfra_call_api | false | true | Counts as a write action; approval by default; task can pause |
| everyinfra_get_job | true | false | No approval; polls async jobs |
| everyinfra_get_account | true | false | No approval; checks the balance at the start |
One real round trip: what the model sends and what comes back
We did not run ChatGPT. But MCP is an open protocol, and ChatGPT sends a standard tools/call (MCP Tools). On November 9, 2026, at 00:27 SGT, we sent the same request straight to https://api.everyinfra.com/mcp. We searched Shopee Malaysia for «shoe cover waterproof». Here are the request and the response. We cut the response to 2 of the 20 items.
{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"everyinfra_call_api",
"arguments":{"platform":"shopee","action":"search",
"params":{"keyword":"shoe cover waterproof","country":"my","sort":"popular"}}}}
// result.content[0].text, parsed:
{"platform":"shopee","action":"search","count":20,
"results":[{"name":"GEESO Reusable Waterproof Rain Shoes Covers Anti-slip Latex ...","price":3.99,
"original_price":7.94,"discount_pct":50,"currency":"MYR","rating":4.7,"location":"Sabah"},
{"name":"Thickened 1 Pair Disposable Shoe Covers ...","price":1,"currency":"MYR","rating":4.8,"location":"Perak"}],
"billing":{"charged":true,"charged_usd":0.006403}}
Two details help in ChatGPT. First, every response has billing.charged_usd. The model sees the cost of each call. Your prompt can ask for a weekly cost total under the table.
Second, the field names are a subset of response_fields in the catalog. Our 5 searches returned 13 fields. rating_count, sold_count and is_mall never appeared at all, and the other names match the catalog. So the prompt can name fields directly, for example «use price and currency, and do not read the price from name». This response held about 13,000 characters of JSON for 20 items. That is small for Work.
Step 1: one word per market, top 20 by popularity
We searched for raincoats in four markets, each in the local word, all with sort: popular. Each call returned 20 rows and cost $0.006403. The Brazil call got a 429 rate limit first. We waited 60 seconds and sent it again.
| Time (SGT) | Market | Keyword | What the word means |
|---|---|---|---|
| 00:17 | Shopee Malaysia | baju hujan | Malay for raincoat |
| 00:25 | Shopee Philippines | raincoat | English, used as is in the Philippines |
| 00:25 | Shopee Mexico | impermeable | Spanish: raincoat (noun) or waterproof (adjective) |
| 00:26 (429 at 00:25) | Shopee Brazil | capa de chuva | Portuguese for raincoat |
| 00:38 | Shopee Mexico | impermeable para lluvia | Spanish: raincoat for rain |
The price is not the most useful part of these results. Two other facts matter more, and the catalog cannot tell you either one. What does the word mean in that market? Who sells in the top 20? We checked each title with a rule for rain gear: raincoat, poncho or rain pants. Then we counted the rain gear rows where location says «Extranjero», which means overseas. The last column shows overseas sellers in all 20 rows, for comparison.
| Market and keyword | Rows | Rain gear rows | Local sellers in rain gear | Overseas sellers in rain gear | Overseas sellers in all 20 rows |
|---|---|---|---|---|---|
| MY baju hujan | 20 | 20 | 18 (2 with no location) | 0 | 0 |
| PH raincoat | 20 | 20 | 16 (4 with no location) | 0 | 0 |
| BR capa de chuva | 20 | 20 | 19 (1 with no location) | 0 | 0 |
| MX impermeable | 20 | 1 | 1 | 0 | 8 |
| MX impermeable para lluvia | 20 | 7 | 5 | 2 (ranks 16 and 18) | 11 |
The Mexico rows were the biggest surprise. In Spanish, «impermeable» is a noun for raincoat. It is also an adjective for waterproof. In the popular sort, the 20 rows held speakers, watches, a shower curtain, a phone mount and football boots. Only 1 row was an EVA raincoat.
«impermeable para lluvia» («raincoat for rain») gave only 7 raincoats. Suppose you tell a model to take the top 3 and search 1688. It will search 1688 for a waterproof speaker and then compute a margin for it.
So the prompt needs a step that checks whether a row is the same type of product. Rows that fail go into the table as «not the same product» and skip the margin step. Give the model a rule or examples for each market. «Remove unrelated items» is not enough.
The second finding is about sellers, and you must remove other product types before you count. In Malaysia, the Philippines and Brazil, no top-20 seller was overseas. The location values were local places such as Perak, Johor, Selangor, Valenzuela City and São Paulo.
Mexico looks different at first. The two searches had 8 and 11 overseas sellers in all 20 rows. But they sell watches, bracelets, bags, football boots, umbrella canopies and dog raincoats. Count rain gear only, and the picture changes. The single raincoat for «impermeable» comes from a local seller. For «impermeable para lluvia», 5 of the 7 rain items come from local sellers. The 2 overseas items rank 16th and 18th, and one of them is disposable rain pants.
For a cross-border seller, this is a direct signal. In all 4 markets, your top rivals for rain gear are local sellers. They pay no cross-border shipping and no cross-border commission. They can set prices that you cannot match. If you count overseas sellers before you check the product type, Mexico gives a false signal that cross-border stock sells. This is one sample of 20 rows. It is not a market-wide result, but a weekly check will show the trend.
Step 2: detail pages, where half of the review counts are missing
Search results have no review count (rating_count was empty in all 120 rows). To see how many people bought an item, you need the detail page.
Between 00:21 and 00:37 SGT we called shopee/product_detail for 7 items. Four were from Malaysia: 3 from the top 7 for «baju hujan», plus the silicone shoe covers at rank 4 in the «shoe cover waterproof» search. One each came from the Philippines, Mexico and Brazil. Only 3 items had a review count. The MY disposable raincoat had 955, the MY COMOTO motorbike rain suit had 39,484, and the BR long clear raincoat had 13,264. The other 4 items had an empty review_count.
The fields sold_count and stock were empty for all 7 items. The catalog note says Shopee does not publish the full record for many products. In that case text, stock, sold_count and variants can be missing, and so can original_price and review_count. In our test, variants and text were there for all 7. The gaps were reviews, sales and stock.
We hit one more trap that belongs in the prompt. The title of the COMOTO item holds an invisible character, Unicode U+2060 (word joiner). The product URL from the search result kept that character. At 00:23 SGT we called shopee/product_detail with that URL. The result was empty, billing.reason was empty_result_refunded and charged_usd was 0.
At 00:28 SGT we used the short form https://shopee.com.my/product/133292231/4791761170, and the full detail came back. Search results already include shop_id and item_id. So tell the model to build the short URL from those two fields. It is safer than passing the long URL. For the refund rules, see failure refunds.
We also made one mistake, and we report it. At 00:21 SGT our script called the MY EVA poncho detail twice, and both calls cost $0.001389. Our script misread the first response and sent the request again. The API did not double charge. In a ChatGPT task, this kind of repeat is more likely, because models like to «check again». Put «call each product detail only once» in the prompt.
1688 API: how to write the source keyword
After Shopee shows what sells, the next step is a source on 1688. We did not use image search here. That approach is in our 1688 API article for Yandex Market sellers, where 15 of 25 image matches were the same item.
This time the model turned each Shopee title into the Chinese words that 1688 suppliers use: material, style and user group. For example, «Thick Foldable Raincoat Hoodie Poncho Reusable» became the Chinese for «EVA raincoat, thick, adult, hooded». The motorbike rain suit became «motorbike raincoat, two-piece set, Oxford cloth». The Brazilian long clear raincoat became «PVC raincoat, long, clear, thick, adult, trench style».
Keyword search costs half of image search, $0.002778 against $0.005556. For standard items like rain gear, keywords are enough. For items where style matters, use image search.
1688 search results include one more useful item: tier prices. Not every row has them. In our 6 searches of 20 rows, between 6 and 13 rows had price_tiers and min_order_quantity. The table shows the first result of three searches. For a new cross-border seller, the minimum order and the tiers set the real cost of the first batch.
| First 1688 result for | Tier 1 | Tier 2 | Tier 3 | Rows with tiers (of 20) |
|---|---|---|---|---|
| EVA raincoat, adult, hooded | 2 to 499 units: 5.2 yuan | 500 to 7,999: 4.2 yuan | 8,000 or more: 3.7 yuan | 9 |
| PVC raincoat, long, adult | 2 to 199 units: 2.73 yuan | 200 to 999: 2.71 yuan | 1,000 or more: 2.69 yuan | 9 |
| Shoe covers, anti-slip | 100,000 to 1,999,999 units: 0.38 yuan | 2,000,000 or more: 0.36 yuan | none | 13 |
The shoe cover row is a warning. Its first result is cheap, but the minimum order is 100,000 pairs. Tell the model to read min_order_quantity before it picks a source. We picked 6 sources from 6 searches. We called a sync detail for each between 00:30 and 01:57 SGT.
| Shopee item | 1688 source (offer ID) | Comparable SKU price (CNY) | Sold on 1688 | Minimum order |
|---|---|---|---|---|
| MY EVA poncho RM2.98 | Thick adult EVA raincoat (734881521779) | 2.4 (140 g SKU), 2.75 (150 g SKU) | 317,119 | 1 |
| MY disposable raincoat RM0.59 | Long thick disposable poncho (1053136443230) | 0.55 to 2.5 | 87,672 | 50 |
| MY motorbike rain suit RM26.90 | Two-piece motorbike rain suit (977251360445) | 14.8 (thin set), 33.9 (thick set) | 55,607 | 1 |
| MY silicone shoe covers RM5.90 | Thick anti-slip silicone shoe covers (929504094901) | 2.3 to 3.2 | 3,933 | 1 |
| PH riding poncho PHP 150 | Riding poncho with double brim (1028409102483) | 11.58 to 17.99 | 17,045 | 1 |
| MX EVA raincoat MXN 34.30 | Same EVA source as MY (734881521779) | 2.4 to 2.75 | 317,119 | 1 |
| BR long clear raincoat BRL 14.98 | Long adult PVC raincoat (1068752085956) | 8.8 to 12.8 | 92 | 1 |
We judged «same product» from titles and specs only. These are close substitutes, not exact matches. The Brazil source sold only 92 units on 1688, the weakest of the 6. Search a few more suppliers before you order. «Sold on 1688» is the sold_count field. The catalog says it can be a 12-month total when the main source cannot answer. Use it only as a rough signal.
Weight: empty on sync calls, present on async calls
All 6 sync detail calls had empty unit_weight_kg, package_dimensions and SKU weights. For margin math, this is a serious gap. Shopee Malaysia prices cross-border shipping at RM0.15 per 10 g. Above 800 g, each extra 250 g adds RM2.2 (Shopee cross-border logistics cost). A 150 g poncho and a 750 g rain suit differ in shipping by five times.
The catalog note gives the fix: use an async call when you need these fields. At 02:20 SGT we sent one detail request with "mode": "async" for the motorbike rain suit and one for the EVA raincoat. The API returned 202 and a job_id at once. We polled GET /api/v1/jobs/{job_id}. The motorbike job was succeeded after about 52 seconds. The EVA job still said finalizing at the first poll and was succeeded after about 64 seconds. Both results had weight_g and size for every SKU. Each source has 35 SKUs.
| SKU name (translated) | Price (CNY) | weight_g | Size (cm) | MY shipping at RM0.15 per 10 g |
|---|---|---|---|---|
| EVA drawstring «100 g» | 2.1 | 120 | 22 × 20 × 1 | RM1.80 |
| EVA drawstring «116 g» | 2.4 | 120 | 22 × 20 × 1 | RM1.80 |
| EVA flat hem «140 g» | 2.4 | 150 | 22 × 20 × 1 | RM2.25 |
| EVA drawstring «150 g» | 2.75 | 160 | 22 × 20 × 1 | RM2.40 |
| Motorbike suit, thin set «about 750 g» | 14.8 | 750 | 30 × 28 × 3.5 | RM11.25 |
| Motorbike long coat «about 750 g» | 10.5 | 750 | 30 × 28 × 3 | RM11.25 |
| Motorbike suit, thick set «about 1 kg» | 15.8 | 1,150 | 30 × 28 × 3.5 | RM21.65 |
| Motorbike «night» set | 33.9 | 1,150 | 32 × 30 × 5 | RM21.65 |
We did not treat the lighter 2.1 yuan «100 g» SKU as comparable, because it is thinner than the Shopee item. Even at 2.1 yuan and 120 g, the MY EVA poncho still loses about RM1.44 per unit. The weight in the SKU name is not the shipping weight. Every EVA SKU weighs 4 to 20 g more than its name says. The thick motorbike set says «about 2 jin», which is 1 kg, but weight_g is 1,150. Use weight_g, not the name.
The async detail also gave ratings. The EVA raincoat has 462 reviews, a 4.9 rating and a 97.4% positive rate. The motorbike rain suit has 87 reviews, a 4.5 rating and an 88.5% positive rate. It supports dropshipping (supports_dropship: true), and the EVA raincoat does not.

In a ChatGPT task, async has one benefit and one cost. The benefit: everyinfra_get_job is read-only, so polling needs no approval. The cost: one more wait, so the model must send the request and check again later. Our advice is to use async for every 1688 detail call. Tell the model to poll with everyinfra_get_job and to use the result only when the status is succeeded. The price stays $0.001389 per call.
The margin formula: where each term comes from
Margin = Shopee price − platform fees − 1688 cost − cross-border shipping − (tax, China domestic freight, returns and ads, which we do not include). Platform fees come from the Shopee fee page for cross-border sellers from China, version of September 22, 2026 (Shopee commission, service and transaction fees). All rates below are for direct cross-border shipping (SLS), non-Mall sellers, with tax included.
| Market | Commission | Transaction fee | Other | Total (share of price) | Fixed fee |
|---|---|---|---|---|---|
| Malaysia | 18.36% | 3.78% | Technical support 5% | 27.14% | RM0.54 per order |
| Philippines | 12% | 2.24% | Platform shipping fee 5.6% (cap PHP 100 per item) | 19.84% | PHP 5 per order |
| Mexico | 16% | 2% | CCB 1% | 19% | none |
| Brazil | 16% | 2% | none | 18% | none |
We checked the Philippine rates against the local Shopee PH seller page. The platform shipping fee is 5.6% for Marketplace and 4.48% for Mall sellers, with a PHP 100 cap per item. The transaction fee is 2.24% (Shopee PH Seller Fees). Both pages agree. The PH page also has a Seller Growth Support Fee by category, updated on October 22, 2026. Its rates are in an image, and the cross-border fee page does not list it, so we did not include it.
Only Malaysia has a public shipping rate that we can cite: RM0.15 per 10 g, plus RM2.2 per 250 g above 800 g. We found no rate table to cite for the other three markets. So their rows stop before shipping.
All exchange rates are official rates from November 6, 2026. Cross rates add small errors. For items that cost a few dollars, the effect is less than one cent. For Mexico, the Banxico FIX of the same day is 18.6297 (Banxico). With FIX, the MX 1688 cost is about MXN 6.66 and «left» is 61.6%, so the verdict does not change. We kept the cross rate so that CNY and MXN come from one table.
| Currency | Units per USD | Rate used | Source |
|---|---|---|---|
| CNY | 6.7168 | CFETS central parity | CFETS central parity |
| MYR | 4.059 | Bank Negara Malaysia middle rate | BNM exchange rate API |
| PHP | about 63.02 | Cross rate through the BNM peso rate | Same BNM data |
| MXN | about 18.81 | Cross rate through the CFETS CNY/MXN rate | Same CFETS data |
| BRL | 5.5013 | Banco Central do Brasil PTAX selling rate | BCB PTAX dataset |
The go/no-go table: results for 7 items
This is the main result. Amounts are in local currency, with USD in brackets. «Left» = price − fees − 1688 cost − known shipping. The 1688 cost is the lowest price among the SKUs closest to the Shopee item. The two Malaysian rows with shipping use real SKU weights from the async detail. The other rows stop before shipping.
| Market and item | Price | Reviews / rating | Fees | 1688 cost | Shipping | Left | Verdict |
|---|---|---|---|---|---|---|---|
| MY EVA poncho | RM2.98 ($0.73) | none / 4.9 | RM1.35 | RM1.45 | RM2.25 (150 g) | −RM2.07 (−69%) | No-go |
| MY disposable raincoat | RM0.59 ($0.15) | 955 / 4.9 | RM0.70 | from RM0.33 | no weight | −RM0.44 | No-go |
| MY motorbike rain suit | RM26.90 ($6.63) | 39,484 / 4.9 | RM7.84 | RM8.94 | RM11.25 (750 g) | −RM1.13 (−4%) | No-go |
| MY silicone shoe covers | RM5.90 ($1.45) | none / 4.7 | RM2.14 | RM1.39 | no weight | RM2.37 before shipping | Missing data |
| MY silicone shoe covers (same item, low-price shop) | RM1.99 ($0.49) | none / 4.8 | RM1.08 | RM1.39 | no weight | −RM0.48 before shipping | No-go |
| PH riding poncho | PHP 150 ($2.38) | none / 4.8 | PHP 34.76 | PHP 108.65 | not computed | PHP 6.59 before shipping | No-go |
| MX EVA raincoat | MXN 34.30 ($1.82) | none / 5.0 | MXN 6.52 | MXN 6.72 | not computed | MXN 21.06 before shipping ($1.12) | Missing data; worth a shipping check |
| BR long clear raincoat | BRL 14.98 ($2.72) | 13,264 / 4.8 | BRL 2.70 | BRL 7.21 | not computed | BRL 5.08 before shipping ($0.92) | Missing data; tax likely too high |
Now the reasoning for each row. The MY EVA poncho is the clearest case of «looks good, is not good». It is number 1 for «baju hujan». A similar 1688 source costs 2.4 yuan, about RM1.45. At a price of RM2.98, these two numbers alone suggest a margin near 50%. But the Shopee cross-border fixed fee of RM0.54 plus 27.14% comes to RM1.35 on RM2.98. Add RM2.25 of shipping for 150 g, and each unit loses RM2.07.
Work the other way, and a cross-border seller needs RM5.82 to break even. That is almost double the current price. The shop that sells at RM2.98 is in Perak, so it is a local seller. Its costs are not the same as yours.
The MY disposable raincoat is more extreme. It sells for RM0.59, and the platform fees alone are RM0.70, which is more than the price. You do not need to compute cost or shipping. Low-price items like this pull traffic for local sellers. Cross-border sellers should skip them. Even at 0 g shipping, the break-even price is RM1.20.
The MY motorbike rain suit has the most reviews in Malaysia, 39,484. Its list price is RM50 and its current price is RM26.90. A similar thin two-piece set on 1688 costs 14.8 yuan. The async detail gives 750 g, so Shopee Malaysia shipping is RM11.25. With RM7.84 of fees, each unit loses RM1.13. The break-even price is RM28.46, only 6% above the current price.
The same supplier has a 10.5 yuan «long coat» SKU, also 750 g. With that SKU, each unit keeps RM1.46, about 5.4%. But it is a single coat, not a set, so it is not the same product.
The thick «night» set costs 33.9 yuan and weighs 1,150 g. Shipping rises to RM21.65 and the break-even price to RM58.57, so it is a clear no-go. This row shows how much weight matters. With one supplier, one wrong SKU moves the result from «just short» to «half the price short».
Look at the MY silicone shoe covers shop by shop. We took the detail for rank 4 in the «shoe cover waterproof» search: Selangor, RM5.90, list price RM19.99, so 70% off. Fees are RM2.14 and the 2.3 yuan source is about RM1.39. Before shipping, RM2.37 is left. At RM0.15 per 10 g, that covers shipping up to 150 g.
But rank 8 in the same search is a silicone shoe cover with almost the same title at RM1.99, also in Selangor, rated 4.8. Fees of RM1.08 plus the RM1.39 source already lose RM0.48 before shipping. The same item sells from RM1.99 to RM5.90. A local seller can sell it at RM1.99, so the RM5.90 price may not hold.
So the verdict is: no-go at the low price, and missing data at the high price until we have the weight. We only ran a sync detail for this source, so there is no weight yet. The next step is one async detail call ($0.001389). This also shows why the pick rule must be fixed in advance, for example «take the top 3 items of the same type by rank, and note the lowest price of the same item». Otherwise «has a chance» only depends on which shop you picked. When weight is missing, a weekly task should make the async call itself, not leave a blank cell.
The PH riding poncho sells for PHP 150. Fees are PHP 34.76: 12% commission, 5.6% platform shipping fee, 2.24% transaction fee and PHP 5. The 11.58 yuan source is about PHP 108.65. Before shipping, only PHP 6.59 is left, about 10 US cents.
Any shipping cost turns it into a loss. It ranks 15th for «raincoat». The Philippine top 20 holds several model-number raincoats such as H-870 and H-885, all near PHP 150. That price level is already very tight.
The MX EVA raincoat keeps the most before shipping. It sells for MXN 34.30. Fees at 19% are about MXN 6.52. The same 1688 EVA source as in Malaysia, at 2.4 yuan, is about MXN 6.72. Before shipping, MXN 21.06 is left, about $1.12 or 61.4% of the price.
This row deserves a shipping check next week. Find a public Shopee Mexico cross-border rate and price 150 g. Also check the Mexican product tax listed in the appendix of the Shopee fee page.
But do not read it as proof that cross-border stock sells in Mexico. This LERFM shop is in México, and only 2 rain items come from overseas sellers, both ranked 16th or lower. In the top 20 for «impermeable», this is the only raincoat, so its rank does not prove that raincoats sell well in Mexico. The «impermeable para lluvia» search also has cheaper local raincoats at MXN 16.42, 22.33 and 40.60. If the same EVA source fits them (not checked), they keep 40.1% to 64.5% before shipping. So 61.4% is one of the better-looking numbers.
The BR long clear raincoat is number 1 for «capa de chuva» in Brazil, with 13,264 reviews. Its list price is BRL 28.88 and its current price is BRL 14.98. Fees at 18% are about BRL 2.70. The 8.8 yuan PVC source is about BRL 7.21. Before shipping, BRL 5.08 is left, about $0.92.
Brazil's problem is tax. The appendix of the Shopee fee page lists a 20% import tax on orders under $50 and a 20% state tax (ICMS). A rough estimate puts each at about BRL 3.00 on the selling price. Together they are more than BRL 5.08. We did not find the tax base or the order of the taxes in the source text. So we only say that tax is likely too high, and we give no exact figure.
Why the top sellers can charge RM2.98
It is easy to read this table as «rain gear on Shopee makes no money». Note first that all 7 items are top items from the popular sort. Top items are often the items with the most price pressure. Rank 30 or rank 50 can hold items with higher prices and fewer rivals. We did not go that deep this time.
A more precise reading is this. In all 4 markets, almost all top rain gear sellers are local. Their costs include no cross-border shipping and no cross-border commission rate. They may buy in bulk and ship from local stock.
So they can price below a cross-border seller's break-even point. A cross-border seller who wants rain gear in these markets has two options. Pick items with a high price and a low weight, like the shoe covers at the high-price shop, though a local shop already sells the same item at RM1.99. Or accept local stock.
The Shopee Malaysia ads notice for October 2026 adds one more cost. From October 13, 2026, Shopee turns 5% of order value into ad credits for eligible MY-SG direct sellers (3% for electronics). Sellers cannot opt out (Shopee MY October 2026 Ads Updates). If you are in this plan, take another 5% off each «left» value in the table.
Mexico has many cross-border sellers, but rain gear is not where they compete. Overseas sellers are 8 to 11 of all 20 rows, and only 0 to 2 of the rain items. This matches what we saw with Amazon and TikTok Shop lists in our ChatGPT dots product research article. For one product type, competition differs more between markets than price does. A weekly look at the share of overseas sellers among same-type items shows earlier than price whether cross-border can work in a market. If you count overseas sellers in all rows, other product types skew the number.
The weekly task prompt for Work
Below is a task prompt that you can paste into ChatGPT Work. It is a configuration example. We did not run it in ChatGPT. It turns every trap above into a rule. Read the catalog first. Use a set word for each market. Check the product type before the margin. Call each detail once. Use async for 1688 details. Stop at «missing data» when a number is missing. Add up the weekly data cost.
Run every Monday at 09:00 (Singapore time). Use only the @EveryInfra plugin for data.
Do not use the browser or other plugins.
1. Call everyinfra_list_capabilities. Confirm shopee/search, shopee/product_detail,
alibaba1688/search and alibaba1688/product_detail are available.
2. For each (country, keyword) pair, call everyinfra_call_api once with platform=shopee,
action=search, params={keyword, country, sort:"popular"}:
(my, "baju hujan") (my, "shoe cover waterproof") (ph, "raincoat")
(mx, "impermeable para lluvia") (br, "capa de chuva")
3. Decide from the title if each row is rain gear. In Mexico, "impermeable" also means
"waterproof": speakers, watches and shower curtains are not rain gear.
Mark other rows "not the same product" and skip step 4 for them.
Count same-type rows where location is "Extranjero".
4. For the top 3 rain gear rows by rank per pair, build https://<shopee domain>/product/<shop_id>/<item_id>.
Call shopee/product_detail once per product.
5. Turn each item title into a Chinese 1688 search word (material + style + user group).
Call alibaba1688/search once per item. Pick the closest match by title and specs.
Call alibaba1688/product_detail with "mode":"async". Poll everyinfra_get_job until
the status is succeeded. Take price and weight_g of the comparable SKU.
6. Use only these platform fees. Do not estimate.
my 27.14% + RM0.54; ph 12% + 5.6% (cap PHP 100) + 2.24% + PHP 5; mx 19%; br 18%.
Compute shipping only for my: RM0.15 per 10 g, plus RM2.2 per 250 g above 800 g.
For other markets write "shipping not computed".
Use central bank exchange rates from this week and write the date.
7. Build one table: market, item, price (local and USD), reviews, rating, fees,
1688 cost, weight, shipping, left, verdict.
Verdict is one of: go (left >= 30% of price and shipping known) / no-go /
missing data (name the missing item) / not the same product.
If a cheaper same-type item is in the search results, write its price and its left value.
8. Under the table, write: number of calls, total of billing.charged_usd,
and items that are new or gone compared with last week.This prompt makes 5 searches a week. It makes up to 15 Shopee detail calls, 15 1688 searches and 15 1688 detail calls. At catalog prices, the most it can cost is $0.032015 + $0.020835 + $0.04167 + $0.020835 = $0.115355 a week. The real cost is lower, because step 3 drops rows that are not rain gear. In the Mexico set, only 7 of 20 rows pass.
Each rule in the prompt comes from one trap in this run. The table links them.
| Rule in the prompt | Trap it stops | Where we saw it |
|---|---|---|
| Step 1: read the catalog first | A capability that is not available | Catalog read at 00:13 SGT |
| Step 2: one set word per market | A word with two meanings | «impermeable»: 1 raincoat in 20 rows |
| Step 3: check product type before margin | A margin for a waterproof speaker | Mexico top 20 |
| Step 4: short URL from shop_id and item_id | Empty detail from a hidden character | U+2060 in the COMOTO title |
| Step 4: one detail call per product | Paid repeat calls | Our own repeat at 00:21 SGT |
| Step 5: async 1688 detail | No weight, so no shipping | 0 of 6 sync calls had weight |
| Step 6: fixed fee list, no estimates | A fee that looks right but has no source | Fee rows from the Shopee fee page |
The scheduled tasks page says paid plans can run tasks hourly and at exact times. Plus has up to 5 active tasks (Scheduled tasks in ChatGPT). One weekly product task uses one of those slots. Keep the instructions free of private data. A shared task link includes the title, instructions and schedule. The Help Center says not to put financial details or passwords there.
Cost: what one week costs
Our side is easy to compute, with the same rule as the prompt above. One set (1 keyword × 1 market) is 1 shopee/search ($0.006403), 3 shopee/product_detail (3 × $0.001389), 3 alibaba1688/search (one source search per item, 3 × $0.002778) and 3 alibaba1688/product_detail (3 × $0.001389). The total is $0.023071. Four sets a week cost $0.0923, 12 sets $0.2769, 20 sets $0.4614, and 40 sets $0.9228. At 20 sets a week, one month (52 weeks ÷ 12) costs about $2.00. If one 1688 search can give sources for all 3 items, a set drops to $0.017515.
Failed calls, empty results and 429 rate limits cost nothing. This run had 28 billed calls: 26 sync and 2 async. It also had 6 rate-limit responses and 1 empty result with a refund, and all of those cost $0.
The ChatGPT side depends on your plan. Plus costs $20 a month (What is ChatGPT Plus). Pro has three tiers at $100, $200 and $500 (About ChatGPT Pro tiers). Work and Codex share usage.
A scheduled task that runs in the background uses allowance even when it posts no update. So the data fee is about two dollars a month, and the real cost is your Work allowance. On October 29, 2026, OpenAI doubled the Work and Codex allowance for Pro 100 and Pro 500. Plus did not change (ChatGPT release notes).
| Item | Per week | Per month | Source |
|---|---|---|---|
| EveryInfra data fee, 20 sets | $0.4614 | about $2.00 | Catalog price_usd, read 2026-11-09 |
| EveryInfra data fee, prompt maximum (5 pairs × 3 items) | up to $0.1154 | up to about $0.50 | Same |
| ChatGPT Plus | not separate | $20 | OpenAI Help Center, read 2026-11-09 |
| ChatGPT Pro | not separate | $100 / $200 / $500 | OpenAI Help Center, read 2026-11-09 |
| Scheduled task slots | uses 1 | 5 on Plus | Scheduled tasks help page |
All test calls in this run
So that you can check every number, here are the times and costs of this run. All calls ran on November 9, 2026. Times are SGT. Each search returned 20 rows.
| Time (SGT) | Capability | Main parameters | Result | Charge (USD) |
|---|---|---|---|---|
| 00:17 | shopee/search | my, baju hujan | 20 rows | 0.006403 |
| 00:21 | alibaba1688/search | EVA raincoat keyword | 20 rows (3 earlier tries got 429) | 0.002778 |
| 00:21 | shopee/product_detail | MY EVA poncho (called twice) | 2 details | 0.002778 |
| 00:22 | alibaba1688/search | disposable and motorbike raincoat keywords | 20 rows each | 0.005556 |
| 00:23 | shopee/product_detail | long URL with U+2060 | empty, refunded | 0 |
| 00:24 to 00:38 | shopee/search ×4, product_detail ×6, MCP tools/call ×1 | ph, mx, br and details | all succeeded | 0.040349 |
| 00:27 | alibaba1688/search | silicone shoe cover keyword | 20 rows | 0.002778 |
| 00:30 to 00:34 | alibaba1688/product_detail ×4 | sync | no weight | 0.005556 |
| 01:54 to 01:57 | alibaba1688/search ×2, product_detail ×2 | PVC poncho, long raincoat | no weight | 0.008334 |
| 02:21 | alibaba1688/product_detail ×2 | mode: async | SKU weights | 0.002778 |
| Total | 28 billed calls (26 sync + 2 async) | 0.07731 |
After the two async requests at 02:21 SGT, the total was $0.07731. Of that, $0.001389 came from our own repeated call. The run needed $0.075921.
Limits and things to watch
First, there are no sales numbers. In shopee/search, sold_count, rating_count and is_mall were empty in all 120 rows. In shopee/product_detail, sold_count and stock were empty for all 7 items, and only 3 had a review count. So this table uses rank in the popular sort, review count when present, and rating. Say this in the prompt. Do not let the model guess sales from words like «Buy 1 Take 1» in a title.
Second, only Malaysia has a shipping cost. We found no public Shopee rate table that we could cite for the Philippines, Mexico or Brazil. Those rows stop before shipping. Your weekly task can give full verdicts for Malaysia first. For the other markets, «left before shipping» works as a filter that tells you where a shipping check is worth the time.
Third, we did not include tax. The appendix of the Shopee fee page lists product taxes. Malaysia has a 10% low-value goods tax. Brazil has a 20% import tax on orders under $50 plus 20% ICMS. Mexico lists an import tax and an anti-dumping duty on shoes.
The tax base and the party who pays differ by market. We only flagged it in the Brazil row and did not put it in the margin. This is not tax advice. Use the Shopee Seller Centre and the local authority as your source.
Fourth, «same type» is not «same item». We found sources by keyword and judged substitutes by title and specs. That works for standard items like rain gear. For items where style matters, such as prints or licensed designs, use image search and ask the model to compare the photos.
Fifth, the ChatGPT side depends on your account. The Help Center says that custom MCP access, remembered approvals and plugin use in scheduled tasks depend on «account, workspace settings and permissions» (Connected apps in ChatGPT). One developer on GitHub reported a strange case on a personal Plus workspace. A connected custom MCP worked for many calls in one conversation. Then it failed with «This conversation does not support developer MCPs» (openai-apps-sdk-examples #230). After the first weekly run, open each tool call and check the input and output. The OpenAI guide recommends the same check (Add custom MCP server).
Sixth, check the season with the latest weather source, not with the model's memory. The MetMalaysia outlook of November 5, 2026, says El Niño is moving toward a very strong level. It expects the northern states and Sabah to turn hot and dry from January to March 2027. So this season, the rain gear window in Malaysia can close earlier than usual. Add a first step to the weekly task: read the latest outlook and write one line about the season. That step makes no data call and costs no data fee. But it tells you whether the data fees that follow are worth it.
FAQ
Can a Shopee scraper API return sold counts?
Do not count on it. The EveryInfra catalog says is_mall, sold_count and rating_count are usually absent in shopee/search. In our 120 rows, all three were empty. In shopee/product_detail, sold_count and stock were empty for all 7 items, and 3 items had a review count. The stable fields are price (120 of 120), seller location (111 of 120) and rating (104 of 120). We use rank in the popular sort plus review count in place of sales. (Suggestions: shopee scraper api, scrape shopee api v4.)
1688 API pricing: what does one 1688 API call cost?
In the EveryInfra catalog of November 9, 2026, alibaba1688/search costs $0.002778 per call, alibaba1688/product_detail costs $0.001389, and alibaba1688/image_search costs $0.005556. Async calls cost the same. Failed and empty calls cost nothing. One search plus one detail for one product costs $0.004167. (Suggestion: 1688 api pricing.)
Where do I get a 1688 API key? Do I need a 1688 developer account?
You do not need a 1688 developer account to get 1688 data through EveryInfra. You need an EveryInfra API key. In ChatGPT, you sign in to EveryInfra with OAuth, so you do not paste a key. See the quickstart. (Suggestions: 1688 api key, 1688 api access.)
Can a personal Plus account add a custom MCP server?
The Help Center names Business and Enterprise/Edu on the web. For a personal account, it depends on the account. Look for Add custom MCP server in the plus menu at chatgpt.com/plugins. If it is there, you can add one. (Question from the OpenAI forum thread «Create MCP App missing from Plugins + menu on personal ChatGPT accounts».)
Will the weekly task ask me to approve every run?
Probably yes. everyinfra_call_api takes money from your balance, so it has readOnlyHint: false. The OpenAI guide says such tools need approval by default.
You can remember the choice in one conversation, but a new conversation asks again. A scheduled task pauses at an action that needs approval. We did not test how this behaves across weeks in ChatGPT. (Question from the approval section of the OpenAI guide «Add custom MCP server» and our ChatGPT scheduled tasks article.)
References
- ChatGPT agent, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/en/articles/11752874-chatgpt-agent>
- ChatGPT Work and Codex, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/articles/20001275>
- Scheduled tasks in ChatGPT, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/en/articles/10291617-tasks-in-chatgpt>
- Using cloud browser in ChatGPT, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/articles/20001280>
- ChatGPT Work's Cloud browser allowlisting, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/articles/11845367>
- Connecting custom MCP servers in ChatGPT, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/en/articles/12584461-connecting-custom-mcp-servers-in-chatgpt>
- Connected apps in ChatGPT, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/en/articles/11487775-connected-apps-in-chatgpt>
- ChatGPT release notes (entry of 2026-10-29), OpenAI Help Center, read 2026-11-09, <https://help.openai.com/en/articles/6825453-chatgpt-release-notes>
- What is ChatGPT Plus, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/en/articles/6950777-what-is-chatgpt-plus>
- About ChatGPT Pro tiers, OpenAI Help Center, read 2026-11-09, <https://help.openai.com/articles/9793128>
- Add custom MCP server, OpenAI developer docs, read 2026-11-09, <https://developers.openai.com/api/docs/guides/custom-mcp-server>
- Connect and test your plugin, OpenAI developer docs, read 2026-11-09, <https://developers.openai.com/plugins/deploy/connect-chatgpt>
- Secure MCP Tunnel, OpenAI developer docs, read 2026-11-09, <https://developers.openai.com/api/docs/guides/secure-mcp-tunnels>
- Plugins Authentication, OpenAI developer docs, read 2026-11-09, <https://developers.openai.com/plugins/build/auth>
- Codex Pricing (Work and Codex share usage), OpenAI developer docs, read 2026-11-09, <https://developers.openai.com/codex/pricing>
- Codex Scheduled tasks, OpenAI developer docs, read 2026-11-09, <https://developers.openai.com/codex/app/automations>
- Browser, ChatGPT Learn, read 2026-11-09, <https://learn.chatgpt.com/docs/browser>
- Agent mode missing across all platforms on pro account, OpenAI forum, 2026-07-18, <https://community.openai.com/t/agent-mode-missing-across-all-platforms-on-pro-account/1387374>
- Agent Mode was removed with no real replacement, OpenAI forum, 2026-08-08, <https://community.openai.com/t/agent-mode-was-removed-with-no-real-replacement/1389601>
- Create MCP App missing from Plugins + menu on personal ChatGPT accounts, OpenAI forum, 2026-09-28, <https://community.openai.com/t/create-mcp-app-missing-from-plugins-menu-on-personal-chatgpt-accounts/1401436>
- Developer Mode missing and MCP app creation unavailable, OpenAI forum, 2026-09-30, <https://community.openai.com/t/developer-mode-missing-and-mcp-app-creation-unavailable-across-multiple-chatgpt-accounts/1402294>
- openai-apps-sdk-examples issue #230, GitHub, 2026-09-03, <https://github.com/openai/openai-apps-sdk-examples/issues/230>
- MCP Authorization (2025-06-18), Model Context Protocol, <https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization>
- MCP Lifecycle (2025-06-18), Model Context Protocol, <https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle>
- MCP Tools (2025-06-18), Model Context Protocol, <https://modelcontextprotocol.io/specification/2025-06-18/server/tools>
- MCP Inspector, Model Context Protocol, read 2026-11-09, <https://modelcontextprotocol.io/docs/tools/inspector>
- RFC 9728 OAuth 2.0 Protected Resource Metadata, IETF, 2025-04, <https://datatracker.ietf.org/doc/html/rfc9728>
- RFC 8414 OAuth 2.0 Authorization Server Metadata, IETF, 2018-06, <https://datatracker.ietf.org/doc/html/rfc8414>
- RFC 7591 OAuth 2.0 Dynamic Client Registration Protocol, IETF, 2015-07, <https://datatracker.ietf.org/doc/html/rfc7591>
- OpenID Connect Core 1.0 (section 11, Offline Access), OpenID Foundation, errata set 2 of 2023-12-15, <https://openid.net/specs/openid-connect-core-1_0.html#OfflineAccess>
- EveryInfra data API catalog, EveryInfra, read 2026-11-09 00:13 SGT, <https://api.everyinfra.com/api/v1/social/catalog>
- EveryInfra MCP protected resource metadata, EveryInfra, read 2026-11-09 00:16 SGT, <https://api.everyinfra.com/.well-known/oauth-protected-resource/mcp/all>
- Shopee commission, service and transaction fees (cross-border, Chinese), Shopee cross-border seller education, version 2026-09-22, <https://shopee.cn/edu/article/25770>
- Shopee cross-border logistics cost and shipping fees (Chinese), Shopee cross-border seller education, updated 2026-08-04, <https://shopee.cn/edu/article/5091>
- October 2026 Ads Updates, Shopee Malaysia Seller Education, 2026-10, <https://seller.shopee.com.my/edu/article/28408>
- Seller Fees, Shopee Philippines Seller Education, updated 2026-04-27 (Seller Growth Support Fee section updated 2026-10-22), <https://seller.shopee.ph/edu/article/21077>
- Start of the Northeast Monsoon 2026/2027 (press release, Malay), MetMalaysia, 2026-10-23, <https://www.met.gov.my/assets/content/siaran_media/default/23%20Oktober%202026%20-%20Kenyataan%20Media%20Permulaan%20Fasa%20Monsun%20Timur%20Laut%202026_2027.pdf>
- Long-range weather outlook, November 2026 to April 2027 (Malay), MetMalaysia, updated 2026-11-05, <https://www.met.gov.my/data/climate/tinjauancuacajangkapanjang.pdf>
- RMB central parity, China Foreign Exchange Trade System, 2026-11-06, <https://www.chinamoney.com.cn/r/cms/www/chinamoney/data/fx/ccpr.json>
- Exchange Rate API, Bank Negara Malaysia, 2026-11-06, <https://api.bnm.gov.my/public/exchange-rate>
- Commercial dollar PTAX dataset, Banco Central do Brasil, data of 2026-11-06, <https://dadosabertos.bcb.gov.br/dataset/dolar-americano-usd-todos-os-boletins-diarios>
- FIX exchange rate, Banco de México (Banxico), data of 2026-11-06, <https://www.banxico.org.mx/tipcamb/tipCamMIAction.do>
Reference BL-117