PLP por keyword
Consulta a primeira página de busca da Temu para uma keyword.
{
"target": "temu.com",
"type": "plp",
"keyword": "capa de iphone",
"page": 1
} // docs
Extrai resultados de busca/listagem (PLP) da Temu via fluxo app off-phone. Custo: 5 créditos por request.
Nota importante: alguns campos podem retornar null em produção,
dependendo da página de origem. Nesta documentação, os exemplos de output são
preenchidos intencionalmente com valores não nulos para facilitar integração.
Quando a entidade consultada não existe na origem, o extract e a tool MCP retornam
200 com data: null e
notFound: true. Esse caso é tratado como resposta concluída,
não como erro de servidor.
curl -X POST https://api.geckoapi.com.br/v1/extract \
-H "Authorization: Bearer SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"target": "temu.com",
"type": "plp",
"keyword": "capa de iphone",
"page": 1
}'
A mesma seam também aparece no MCP hospedado como uma tool dedicada.
Os argumentos reaproveitam os campos do extract, mas target e type
já ficam fixos pela tool.
Endpoint
POST /v1/mcp
Tool name
temu_com_plp
Auth
Bearer ou X-API-Key
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "temu_com_plp",
"arguments": {
"keyword": "capa de iphone",
"page": 1,
"executionId": "exec_example_123"
}
}
}
Campos suportados nesta API do POST /v1/extract,
com regras específicas de obrigatoriedade e condicionais.
| Campo | Tipo | Status | Regra | Default | Exemplo |
|---|---|---|---|---|---|
| url URL alvo da extração. Para alguns PLPs pode ser omitida quando a API monta a URL a partir de outros campos. | string (URL) | Opcional | Aceita URLs temu.com de search_result.html com search_key. Se ausente, keyword é usada para montar a URL canônica. | - | https://www.mercadolivre.com.br/p/MLB123456 |
| keyword Palavra-chave para buscas PLP. Em Google Search ela representa a query enviada ao Google; em Booking PLP é obrigatória; em outros PLPs pode substituir a URL. | string | Condicional | Obrigatório quando url não for enviado. | - | iphone 15 pro max |
| region Regiao textual para buscas OLX PLP (ex.: Regiao de Bauru e Marilia). | string | Opcional | Região Temu. Default: br. | br | Regiao de Bauru e Marilia |
| page Paginacao. Em PLP inicia em 1; em review (MercadoLivre, Booking e Hoteis) inicia em 0. | integer | Opcional | Página de resultados. Default: 1. | 1 | 2 |
Consulta a primeira página de busca da Temu para uma keyword.
{
"target": "temu.com",
"type": "plp",
"keyword": "capa de iphone",
"page": 1
} Também aceita uma URL de busca da Temu com search_key.
{
"target": "temu.com",
"type": "plp",
"url": "https://www.temu.com/br/search_result.html?search_key=capa+de+iphone&search_method=user"
} Mapa de paths de saída com tipo esperado para esta API.
{
"source": "string",
"type": "string",
"url": "string",
"requestUrl": "string",
"extractedAt": "string",
"query": "string | null",
"region": "string",
"totalResults": "number | null",
"primaryResults": "number",
"page": "number",
"resultsPerPage": "number",
"offset": "number",
"hasMore": "boolean | null",
"nextPage": "number | null",
"nextPageUrl": "string | null",
"items": "TemuPlpItem[]"
} {
"source": "temu.com",
"type": "plp",
"url": "https://www.temu.com/br/search_result.html?search_key=capa+de+iphone&search_method=user",
"requestUrl": "https://br.temu.com/api/poppy/v1/search?scene=search",
"extractedAt": "2026-05-18T12:00:00.000Z",
"query": "capa de iphone",
"region": "br",
"totalResults": 128,
"primaryResults": 2,
"page": 1,
"resultsPerPage": 20,
"offset": 0,
"hasMore": true,
"nextPage": 2,
"nextPageUrl": "https://www.temu.com/br/search_result.html?search_key=capa+de+iphone&search_method=user&page=2",
"items": [
{
"position": 1,
"url": "https://www.temu.com/goods.html?goods_id=601099588578152",
"sku": "601099588578152",
"productId": "601099588578152",
"name": "Capinha magnética para iPhone 15 Pro Max",
"currency": "BRL",
"currencyRaw": "R$",
"price": 23.99,
"priceDisplay": "R$23,99",
"regularPrice": 49.99,
"regularPriceDisplay": "R$49,99",
"prices": {
"price": 2399,
"price_str": "R$23,99"
},
"soldQuantity": 1500,
"soldQuantityText": "1.5K+ vendidos",
"aggregateRating": {
"rating": 4.8,
"reviewCount": 231
},
"thumbnail": "https://img.kwcdn.com/product/fancy/case.jpg",
"images": [
{
"url": "https://img.kwcdn.com/product/fancy/case.jpg"
}
],
"sponsored": false
}
]
} | Path | Tipo | Descrição | Exemplo |
|---|---|---|---|
| extractedAt | string | Timestamp ISO-8601 da extração. | 2026-05-18T12:00:00.000Z |
| hasMore | boolean | null | Indica se a Temu informou haver mais resultados. | true |
| items | TemuPlpItem[] | Lista normalizada de produtos encontrados na busca. | [{"position":1,"url":"https://www.temu.com/goods.html?goods_id=601099588578152","sku":"601099588578152","productId":"601099588578152","name":"Capinha magnética para iPhone 15 Pro Max","currency":"BRL","currencyRaw":"R$","price":23.99,"priceDisplay":"R$23,99","regularPrice":49.99,"regularPriceDisplay":"R$49,99","prices":{"price":2399,"price_str":"R$23,99"},"soldQuantity":1500,"soldQuantityText":"1.5K+ vendidos","aggregateRating":{"rating":4.8,"reviewCount":231},"thumbnail":"https://img.kwcdn.com/product/fancy/case.jpg","images":[{"url":"https://img.kwcdn.com/product/fancy/case.jpg"}],"sponsored":false}] |
| nextPage | number | null | Próxima página quando hasMore for verdadeiro. | 2 |
| nextPageUrl | string | null | URL canônica da próxima página quando disponível. | https://www.temu.com/br/search_result.html?search_key=capa+de+iphone&search_method=user&page=2 |
| offset | number | Offset upstream calculado a partir da página. | 0 |
| page | number | Página solicitada. | 1 |
| primaryResults | number | Quantidade de produtos normalizados nesta página. | 2 |
| query | string | null | Keyword pesquisada. | capa de iphone |
| region | string | Região Temu usada no fluxo app. | br |
| requestUrl | string | Endpoint upstream usado pelo worker para obter a lista. | https://br.temu.com/api/poppy/v1/search?scene=search |
| resultsPerPage | number | Tamanho de página usado no request upstream. | 20 |
| source | string | Fonte da API. | temu.com |
| totalResults | number | null | Total informado pela Temu quando disponível. | 128 |
| type | string | Tipo de seam extraído. | plp |
| url | string | URL pública/canônica da busca solicitada. | https://www.temu.com/br/search_result.html?search_key=capa+de+iphone&search_method=user |
Respostas com notFound: true não entram nesta tabela,
porque retornam sucesso HTTP 200.
| Status | errorCode | Quando acontece |
|---|---|---|
| 400 | INVALID_PAYLOAD | JSON inválido ou violação das regras de validação do payload. |
| 401 | UNAUTHORIZED | Header Authorization ausente ou token/chave inválida. |
| 402 | INSUFFICIENT_CREDITS | Saldo de créditos insuficiente para a API solicitada. |
| 403 | FORBIDDEN | Usuário sem acesso ou API temporariamente desabilitada. |
| 409 | EXECUTION_CONFLICT | executionId conflita com uma execução em estado incompatível. |
| 429 | RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS | Limite de taxa ou limite de requisições em voo excedido. |
| 5xx | UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_INVOCATION_FAILED / WORKER_FUNCTION_ERROR / WORKER_INVALID_RESPONSE / INTERNAL_ERROR | Falha de servidor no worker, provider/proxy ou gateway. Nesses casos os créditos são estornados automaticamente. |