# CNFans — Produtos do Taobao (China Sourcing) (`guzik_andre/cnfans-produtos-china`) Actor

Busca produtos no Taobao via a API de busca da CNFans (agente de compras): título original, tradução em inglês (de graça, feita pela própria CNFans), preço em CNY, vendas e pedido mínimo. Segunda fonte de sourcing chinês, sem anti-bot, complementando o yiwugo-produtos-china.

- **URL**: https://apify.com/guzik\_andre/cnfans-produtos-china.md
- **Developed by:** [Andre Guzik](https://apify.com/guzik_andre) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 resultados

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## CNFans — Taobao Products via Purchase Agent / Produtos do Taobao

*English below. [Português mais abaixo](#português).*

***

### English

CNFans is a Chinese "purchase agent" (daigou) platform: it buys on Taobao
on behalf of overseas customers and consolidates/ships the parcel. This
Actor uses CNFans' own public search API to pull Taobao products
directly — original Chinese title, a free English translation (already
done by CNFans itself), price in CNY, sales count and minimum order
quantity. It's a second, independent China-sourcing source alongside this
developer's **Yiwugo — Wholesale Products from Yiwu**, covering Taobao's
much larger and more consumer-oriented catalog instead of Yiwu's
small-commodities wholesale market.

As a bonus for Brazilian buyers, it can also translate the (already
English) title to Portuguese for free and estimate Brazilian import tax
(Remessa Conforme) — see below.

#### What you get, per product

- `id` / `urlProduto` — product identifier and page link (on CNFans)
- `titulo` — original product name, in Chinese
- `tituloIngles` — English translation, done for free by CNFans itself
- `tituloPt` — title translated to Portuguese (free machine translation
  via MyMemory, see `traduzirTitulo` in the input)
- `precoCny` — price in CNY (RMB)
- `vendas` — accumulated sales count reported by Taobao (often `0` even
  for popular products — not always populated by the source)
- `pedidoMinimoQuantidade` — minimum order quantity
- `imagemUrl` — main product image
- `impostoEstimado` — estimated Brazilian Import Tax + ICMS (Remessa
  Conforme regime), only with `calcularImposto: true` — see dedicated
  section below

#### Example output

```json
{
  "termoBuscado": "led lamp",
  "id": "0000K71AUmrqSBWAefuUbbG0_dcFIxY1eOoRl7Lvl2a4X20",
  "titulo": "美的台灯宿舍磁吸灯大学生充电护眼灯学习超长续航酷毙灯阅读灯",
  "tituloIngles": "Midea Desk Lamp Dormitory Magnetic Lamp College Student Rechargeable Eye Protection Lamp Study Ultra-Long Battery Life Cool Lamp Reading Lamp",
  "precoCny": 49,
  "vendas": 0,
  "pedidoMinimoQuantidade": 1,
  "imagemUrl": "https://img.alicdn.com/imgextra/i1/2095418680/O1CN01hEUcf7DVxmG1chua_!!4611686018427383096-0-item_pic.jpg",
  "urlProduto": "https://cnfans.com/product?id=0000K71AUmrqSBWAefuUbbG0_dcFIxY1eOoRl7Lvl2a4X20&platform=TAOBAO",
  "tituloPt": "Lâmpada de mesa Midea Dormitório Lâmpada magnética Estudante universitário Lâmpada de proteção ocular recarregável",
  "impostoEstimado": {
    "quantidadeConsiderada": 1,
    "valorDeclaradoBrl": 37.59,
    "aliquotaIi": 0,
    "ii": 0,
    "icms": 7.70,
    "valorTotalComImpostos": 45.29,
    "cotacaoDolarUsada": 5.1527,
    "cotacaoCnyUsada": 0.767,
    "fonteParametros": "receita_federal_ao_vivo"
  }
}
```

#### Input

| Field | Required | Description |
|---|---|---|
| `termosBusca` | Yes | List of search terms, in English (CNFans translates from Chinese automatically, and search itself also accepts English). Brand/IP-related terms may be blocked by CNFans itself as "sensitive" — that term simply fails and the Actor moves on to the rest. |
| `maxResultadosPorTermo` | No | Max products per term (default 20, max 240 — 20 per page). |
| `paginasPorTermo` | No | How many search pages to fetch per term (default 1, max 12). |
| `ordenacao` | No | Result order: `default` (relevance), `price_asc` or `price_desc`. Confirmed live that CNFans has no sales/popularity sort on this endpoint — price is the only real sort available. |
| `precoMinCny` / `precoMaxCny` | No | Filters products by price range in CNY. Applied by this Actor (CNFans' API has no server-side price filter on this endpoint) — a product with no numeric price is dropped when either filter is set. |
| `traduzirTitulo` | No | Translates the (English) title to Portuguese via MyMemory (free). Default `true`. |
| `calcularImposto` | No | Estimates Brazilian Import Tax + ICMS (Remessa Conforme) for each product found. Default `false`. |

#### Data source

CNFans' real search API
(`cnfans.com/search-api/detail/keywords-search-list`, `platform=TAOBAO`)
— found via live network inspection of the actual site (Chrome DevTools),
confirmed to work over plain HTTP with no browser fingerprint headers, no
cookies, no login. Price comes directly in CNY/RMB from Taobao — CNFans'
own currency-conversion parameter does not affect this specific search
endpoint. Only `platform=TAOBAO` is supported for keyword search; CNFans
returns an explicit "unsupported platforms" error for 1688 or Weidian on
this endpoint.

Title translation to Portuguese uses [MyMemory](https://mymemory.translated.net/)
(free machine translation, no generative AI, no cost to anyone) — same
mechanism as this developer's Yiwugo Actor. It's a **shared** daily quota
across all users of this Actor; if it runs out, `tituloPt` comes back
empty for that item and the search continues normally.

#### Import tax estimate (Brazil-specific: Remessa Conforme)

Identical calculation to the Yiwugo Actor: Brazil's own Receita Federal
formula (Import Tax 0% up to US$50, 60% with a US$30 deduction above
that; ICMS "gross-up" style, 17% default), with the two numbers that
change most often (the US$50 threshold and the ICMS rate) **fetched live
from Receita Federal's own public calculator JavaScript on every run**,
and USD/CNY exchange rates fetched live from the Central Bank of Brazil
(PTAX) and a free CNY-BRL rate. Falls back to the last manually-confirmed
value if any live lookup fails (see `fonteParametros: "fallback"`).

**This is not customs/tax advice.** Same caveats as the Yiwugo Actor:
the quantity used is the product's minimum order quantity, ICMS varies
17%–20% by state (17% default used here), and freight/clearance fees are
not included — declared merchandise value only.

#### Known limitations

- `tituloPt` is machine translation of a machine translation
  (Chinese→English by CNFans, then English→Portuguese by MyMemory) — treat
  it as a screening aid, not resale-ready copy.
- `vendas` (sales count) is frequently `0` even for clearly popular
  products — Taobao/CNFans doesn't always populate it; don't treat it as a
  reliable popularity signal.
- Search terms tied to trademarks or brand names can be blocked outright
  by CNFans ("sensitive word") — this is a restriction from the source
  platform, not a bug in this Actor.
- No supplier vetting — Taobao sellers vary widely in reliability; this is
  catalog extraction, not due diligence.

#### Related Actors

From the same developer: **Yiwugo — Wholesale Products from Yiwu, China**
(smaller-commodities wholesale market, a complementary source to this
one), **SP Alvarás de Obras — Building Permits São Paulo**, **CRF-SP —
Pharmacist License**, **PROCON-SP — Company Fines**, **PROCON-PR —
Supplier Complaints**, **ReBEC — Clinical Trials Registry** and
**Curitiba — Business Licenses**.

***

### Português

CNFans é uma plataforma chinesa de "agente de compras" (daigou): compra no
Taobao em nome de clientes de fora da China e consolida/despacha o pacote.
Este Actor usa a própria API de busca pública da CNFans pra extrair
produtos do Taobao direto: título original em chinês, tradução gratuita
pra inglês (já feita pela própria CNFans), preço em CNY, contador de
vendas e pedido mínimo. É uma segunda fonte de sourcing chinês,
independente do **Yiwugo — Produtos do Mercado de Yiwu** deste mesmo
desenvolvedor, cobrindo o catálogo muito maior e mais voltado a
consumidor final do Taobao, em vez do mercado atacadista de pequenos
itens de Yiwu.

Como bônus pra comprador brasileiro, também traduz o título (que já vem
em inglês) pra português de graça e estima o imposto de importação
(Remessa Conforme) — ver abaixo.

#### O que você recebe, por produto

- `id` / `urlProduto` — identificador e link da página do produto (na CNFans)
- `titulo` — nome original do produto, em chinês
- `tituloIngles` — tradução pra inglês, feita de graça pela própria CNFans
- `tituloPt` — título traduzido pra português (tradução automática
  gratuita via MyMemory, ver `traduzirTitulo` no input)
- `precoCny` — preço em CNY (RMB)
- `vendas` — contador de vendas acumuladas reportado pelo Taobao
  (frequentemente `0` mesmo pra produto popular — nem sempre preenchido
  pela fonte)
- `pedidoMinimoQuantidade` — quantidade mínima de pedido
- `imagemUrl` — imagem principal do produto
- `impostoEstimado` — estimativa de Imposto de Importação + ICMS (Remessa
  Conforme), só com `calcularImposto: true` — ver seção própria abaixo

#### Exemplo de saída

```json
{
  "termoBuscado": "led lamp",
  "id": "0000K71AUmrqSBWAefuUbbG0_dcFIxY1eOoRl7Lvl2a4X20",
  "titulo": "美的台灯宿舍磁吸灯大学生充电护眼灯学习超长续航酷毙灯阅读灯",
  "tituloIngles": "Midea Desk Lamp Dormitory Magnetic Lamp College Student Rechargeable Eye Protection Lamp Study Ultra-Long Battery Life Cool Lamp Reading Lamp",
  "precoCny": 49,
  "vendas": 0,
  "pedidoMinimoQuantidade": 1,
  "imagemUrl": "https://img.alicdn.com/imgextra/i1/2095418680/O1CN01hEUcf7DVxmG1chua_!!4611686018427383096-0-item_pic.jpg",
  "urlProduto": "https://cnfans.com/product?id=0000K71AUmrqSBWAefuUbbG0_dcFIxY1eOoRl7Lvl2a4X20&platform=TAOBAO",
  "tituloPt": "Lâmpada de mesa Midea Dormitório Lâmpada magnética Estudante universitário Lâmpada de proteção ocular recarregável",
  "impostoEstimado": {
    "quantidadeConsiderada": 1,
    "valorDeclaradoBrl": 37.59,
    "aliquotaIi": 0,
    "ii": 0,
    "icms": 7.70,
    "valorTotalComImpostos": 45.29,
    "cotacaoDolarUsada": 5.1527,
    "cotacaoCnyUsada": 0.767,
    "fonteParametros": "receita_federal_ao_vivo"
  }
}
```

#### Input

| Campo | Obrigatório | Descrição |
|---|---|---|
| `termosBusca` | Sim | Lista de termos de busca, em inglês (a CNFans traduz do chinês automaticamente, e a busca também aceita inglês). Termos ligados a marca/propriedade intelectual podem ser bloqueados pela própria CNFans ("sensitive word") — o termo simplesmente falha e o Actor segue pros outros. |
| `maxResultadosPorTermo` | Não | Máximo de produtos por termo (padrão 20, máx. 240 — 20 por página). |
| `paginasPorTermo` | Não | Quantas páginas de busca varrer por termo (padrão 1, máx. 12). |
| `ordenacao` | Não | Ordem dos resultados: `default` (relevância), `price_asc` ou `price_desc`. Confirmado ao vivo que a CNFans não tem ordenação por vendas/popularidade nesse endpoint — só existe ordenação por preço. |
| `precoMinCny` / `precoMaxCny` | Não | Filtra produtos por faixa de preço em CNY. Filtro feito por este Actor (a API da CNFans não tem filtro de preço no servidor nesse endpoint) — produto sem preço numérico é descartado quando algum desses filtros está ativo. |
| `traduzirTitulo` | Não | Traduz o título (já em inglês) pra português via MyMemory (grátis). Padrão `true`. |
| `calcularImposto` | Não | Estima Imposto de Importação + ICMS (Remessa Conforme) pra cada produto encontrado. Padrão `false`. |

#### Fonte dos dados

API real de busca da CNFans
(`cnfans.com/search-api/detail/keywords-search-list`, `platform=TAOBAO`)
— achada por inspeção de rede ao vivo no site de verdade (Chrome
DevTools), confirmada funcionando por HTTP puro, sem headers de
fingerprint do navegador, sem cookie, sem login. O preço já vem em
CNY/RMB direto do Taobao — o parâmetro de conversão de moeda da própria
CNFans não afeta esse endpoint específico de busca. Só `platform=TAOBAO`
funciona pra busca por palavra-chave; a CNFans devolve erro explícito
("unsupported platforms") pra 1688 ou Weidian nesse endpoint.

A tradução do título pra português usa a
[MyMemory](https://mymemory.translated.net/) (tradução automática
gratuita, sem IA generativa, sem custo pra ninguém) — mesmo mecanismo do
Actor Yiwugo deste desenvolvedor. É uma cota diária **compartilhada**
entre todos os usuários deste Actor; se estourar, `tituloPt` vem vazio
nesse item e a busca continua normal.

#### Cálculo de imposto (Remessa Conforme)

Cálculo idêntico ao do Actor Yiwugo: fórmula da própria Receita Federal
(Imposto de Importação 0% até US$50, 60% com desconto de US$30 acima
disso; ICMS "por dentro", padrão 17%), com os dois números que mais mudam
(limite de US$50 e alíquota de ICMS) **buscados ao vivo do próprio
JavaScript público da calculadora da Receita Federal a cada execução**, e
cotação de dólar/yuan buscada ao vivo (Banco Central, PTAX oficial, e uma
cotação CNY-BRL gratuita). Cai pro último valor confirmado manualmente se
alguma busca ao vivo falhar (ver `fonteParametros: "fallback"`).

**Isto não é aconselhamento aduaneiro.** Mesmas ressalvas do Actor
Yiwugo: a quantidade considerada é o pedido mínimo do produto, o ICMS
varia de 17% a 20% conforme o estado (usamos 17% como padrão), e não
inclui frete internacional nem taxa de despacho — só o valor declarado da
mercadoria.

#### Limitações conhecidas

- `tituloPt` é tradução automática de uma tradução automática (chinês→
  inglês pela CNFans, depois inglês→português pela MyMemory) — trate como
  apoio pra triagem, não como texto pronto pra revenda.
- `vendas` (contador de vendas) frequentemente vem `0` mesmo pra produto
  claramente popular — Taobao/CNFans nem sempre preenche esse dado; não
  trate como sinal confiável de popularidade.
- Termos de busca ligados a marca registrada podem ser bloqueados
  diretamente pela CNFans ("sensitive word") — é restrição da própria
  plataforma de origem, não bug deste Actor.
- Sem verificação de idoneidade de vendedor — vendedores do Taobao variam
  muito em confiabilidade; isto é extração de catálogo, não due diligence.

#### Actors relacionados

Do mesmo desenvolvedor: **Yiwugo — Produtos do Mercado de Yiwu** (mercado
atacadista de itens pequenos, fonte complementar a este), **SP Alvarás de
Obras — Building Permits São Paulo**, **CRF-SP — Consulta de
Farmacêutico**, **PROCON-SP — Empresas Autuadas**, **PROCON-PR —
Reclamações contra Fornecedor**, **ReBEC — Ensaios Clínicos** e
**Curitiba — Alvarás Comerciais**.

# Actor input Schema

## `termosBusca` (type: `array`):

Palavras-chave a buscar, em inglês (a CNFans traduz do chinês automaticamente e a busca também funciona em inglês). Ex.: "led lamp", "water bottle". Termos ligados a marca/propriedade intelectual podem ser bloqueados pela própria CNFans ("sensitive word") — nesse caso o termo falha e o Actor segue pros outros.

## `maxResultadosPorTermo` (type: `integer`):

Quantos produtos trazer por termo buscado (20 por página — aumente paginasPorTermo pra passar disso).

## `paginasPorTermo` (type: `integer`):

Quantas páginas de busca varrer por termo (20 produtos por página). Só busca a próxima página se ainda não atingiu maxResultadosPorTermo.

## `ordenacao` (type: `string`):

Ordem dos resultados. A CNFans não tem ordenação por vendas/popularidade nessa busca (testado ao vivo — só existe ordenação por preço).

## `precoMinCny` (type: `integer`):

Filtra produtos com preço maior ou igual a este valor, em CNY/RMB. Filtro feito neste Actor (a API da CNFans não suporta filtro de preço no servidor) — produto sem preço numérico é descartado quando este filtro está ativo.

## `precoMaxCny` (type: `integer`):

Filtra produtos com preço menor ou igual a este valor, em CNY/RMB. Mesma observação de precoMinCny.

## `traduzirTitulo` (type: `boolean`):

A CNFans já traduz o título original (chinês) pro inglês de graça. Esta opção traduz esse inglês pro português via MyMemory (tradução automática gratuita). Se a cota diária compartilhada estourar, o campo tituloPt vem vazio — a busca continua normal.

## `calcularImposto` (type: `boolean`):

Calcula uma estimativa de Imposto de Importação + ICMS pra compra pessoa física (Remessa Conforme), considerando o pedido mínimo do produto. Busca cotação de moeda e parâmetros oficiais em tempo real (mais lento). Não é aconselhamento aduaneiro — ver limitações no README.

## Actor input object example

```json
{
  "termosBusca": [
    "led lamp"
  ],
  "maxResultadosPorTermo": 20,
  "paginasPorTermo": 1,
  "ordenacao": "default",
  "traduzirTitulo": true,
  "calcularImposto": false
}
```

# Actor output Schema

## `produtos` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "termosBusca": [
        "led lamp"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("guzik_andre/cnfans-produtos-china").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "termosBusca": ["led lamp"] }

# Run the Actor and wait for it to finish
run = client.actor("guzik_andre/cnfans-produtos-china").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "termosBusca": [
    "led lamp"
  ]
}' |
apify call guzik_andre/cnfans-produtos-china --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,guzik_andre/cnfans-produtos-china"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/AJyKFXDVysj48EAoM/builds/vDFdBpcbuKwVmTW2M/openapi.json
