Para obter preços da Decathlon Portugal com uma API, envie um POST para https://api.scavio.dev/api/v1/decathlon/search com {"query": "sapatilhas running", "country": "pt"}. A resposta traz 40 produtos da decathlon.pt, cada um com preço em cêntimos de euro, marca, disponibilidade, classificação, número de avaliações e URL. Para o preço riscado, o GTIN e as variantes, passe esse URL a /api/v1/decathlon/product. Cada pedido custa 2 créditos. A Decathlon não oferece uma API pública de catálogo, por isso esta é a forma mais direta de ter esses dados em JSON sem manter um scraper.
Este guia usa respostas reais da API da Decathlon do Scavio capturadas a 2 de novembro de 2026.
O que precisa
- Uma API key do Scavio. No registo recebe 50 créditos grátis, sem cartão e sem conta na Decathlon: 25 pedidos.
- Qualquer linguagem que faça pedidos HTTP. Os exemplos usam cURL e Python.
Passo 1: pesquise produtos na decathlon.pt
curl -X POST 'https://api.scavio.dev/api/v1/decathlon/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"query": "sapatilhas running", "country": "pt"}'A resposta, cortada a 1 dos 40 produtos e sem alterar nenhum valor:
{
"data": {
"query": "sapatilhas running",
"page": 1,
"country": "pt",
"count": 40,
"products": [
{
"position": 4,
"id": "337693",
"name": "Sapatilhas de Corrida Homem Kalenji Jogflow 100.1 Preto/Cinzento",
"brand": "DECATHLON",
"url": "https://www.decathlon.pt/p/calcado-de-corrida-jogflow-100-1-homem-vermelho/337693/c77c20m8733468",
"image": "https://contents.mediadecathlon.com/p3239545/k$d1d9003b160994e2bc8bbb7f9ffcfbd4/picture.jpg",
"price": 1495,
"currency": "EUR",
"availability": "InStock",
"rating": 4.54,
"review_count": 17029
}
]
},
"response_time": 3974,
"fetched_at": "2026-11-02T18:12:16.019Z",
"credits_used": 2
}| Campo | O que é |
|---|---|
id | Número do modelo na Decathlon. É o mesmo em todos os países |
price | Preço atual em cêntimos de euro: 1495 são 14,95 euros |
currency | EUR na decathlon.pt |
availability | Valor Schema.org: InStock, OutOfStock, PreOrder |
rating, review_count | Classificação média e número de avaliações do modelo |
url | URL da variante (cor) concreta, pronto para o endpoint de produto |
Cada cor aparece como uma linha própria com o mesmo id, e o nome e o URL nem sempre coincidem: aqui o nome diz "Preto/Cinzento" e o URL termina em "vermelho". Use o URL como chave e confirme a cor na ficha.
Passo 2: pagine e separe o marketplace
Acrescente "page": 2 para os 40 produtos seguintes, até um máximo de 50 páginas. A decathlon.pt também vende produtos de outras lojas: têm /p/mp/ no URL e um id longo em vez do número do modelo. Na pesquisa "bicicleta btt", 8 das 40 linhas eram do marketplace (Moma Bikes, DYU, RCB, Evercross, Cloot Bike) e 32 da Rockrider:
import requests
API = "https://api.scavio.dev/api/v1/decathlon/search"
HEADERS = {"Authorization": "Bearer sk_live_your_key"}
r = requests.post(API, headers=HEADERS, timeout=90,
json={"query": "bicicleta btt", "country": "pt"})
linhas = r.json()["data"]["products"]
proprias = [p for p in linhas if "/p/mp/" not in p["url"]]
print(len(proprias), "de", len(linhas)) # 32 de 40
for p in proprias[:5]:
print(p["name"], p["price"] / 100, "EUR")Esta pesquisa demorou 8,9 segundos; a de sapatilhas, 4,0. Defina um timeout generoso.
Passo 3: abra a ficha do produto
Passe o url de um resultado ao endpoint de produto:
curl -X POST 'https://api.scavio.dev/api/v1/decathlon/product' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"product_url": "https://www.decathlon.pt/p/btt-de-passeio-expl-50-cinzento-escuro/342673/c33m8754796", "country": "pt"}'Cortada (as 8 imagens e os 6 breadcrumbs omitidos, 1 das 3 ofertas), sem alterar valores:
{
"id": "342673",
"name": "BTT de Passeio EXPL 50 Cinzento-escuro",
"brand": "ROCKRIDER",
"url": "https://www.decathlon.pt/p/btt-de-passeio-expl-50-cinzento-escuro/342673/c33m8754796",
"country": "pt",
"sku": "4650094",
"gtin": "3583787132647",
"color": "Cinza antracite",
"price": 22900,
"list_price": null,
"currency": "EUR",
"availability": "InStock",
"rating": 4.57,
"review_count": 2687,
"best_rating": 5,
"category": "Bicicleta BTT",
"offers": [
{
"price": 22900,
"currency": "EUR",
"availability": "InStock",
"seller": null
}
]
}list_price é o preço riscado e vem a null quando não há promoção, como aqui. Na Rockrider Race 740 de carbono veio a 149900 com price a 99900: 999 euros em vez de 1.499, um terço a menos. gtin é o código de barras EAN, a chave para comparar a mesma variante noutra loja. Os breadcrumbs dão o caminho no site: Desportos, Ciclismo, Bicicletas, Bicicletas BTT, Bicicletas BTT trail.
Passo 4: compare com Espanha
O id do modelo é o mesmo em todos os países, por isso com a mesma key basta mudar country. Para fixar a mesma cor, passe o URL da variante com o domínio do outro país (o código c33m8754796 no fim é o mesmo) e compare pelo gtin:
curl -X POST 'https://api.scavio.dev/api/v1/decathlon/product' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"product_url": "https://www.decathlon.es/es/p/producto/342673/c33m8754796", "country": "es"}'A decathlon.es devolveu o mesmo GTIN, 3583787132647, a 259,99 euros: mais 13,5% do que em Portugal. Repetimos para 9 BTT Rockrider e as 9 eram mais baratas cá, entre 13% e 30%. Nas sapatilhas Kiprun Kipcore foi ao contrário: 35,95 euros em Portugal e 28,99 em Espanha. Os números completos estão nas melhores APIs de preços da Decathlon.
Os dois endpoints
| Endpoint | O que devolve | Créditos |
|---|---|---|
/api/v1/decathlon/search | 40 produtos por página: id, nome, marca, URL, imagem, preço em cêntimos, moeda, disponibilidade, classificação e avaliações | 2 |
/api/v1/decathlon/product | Ficha completa: descrição, imagens, SKU, GTIN, cor, preço, preço riscado, ofertas por variante, classificação, categoria e breadcrumbs | 2 |
Os dois funcionam na decathlon.pt com "country": "pt" e noutras 6 lojas da Decathlon com o respetivo código. A documentação da pesquisa e a da ficha de produto descrevem cada parâmetro.
Limites a ter em conta
- A pesquisa não traz
list_price; para saber se algo está em promoção é preciso a ficha (mais 2 créditos por produto). - Nos produtos do marketplace,
sellervem anull: a API não identifica a loja externa. - Não devolve o texto das avaliações, só a média e o número.
- No máximo 50 páginas por pesquisa; para catálogos grandes, divida em pesquisas mais concretas.
Quanto custa
Pesquisa e ficha custam 2 créditos cada. No plano Growth com pagamento anual (2 dólares por 1.000 créditos), uma pesquisa de 40 produtos custa 0,004 dólares, e 1.000 linhas ficam por cerca de 0,10 dólares. Acompanhar 100 fichas por dia são 6.000 créditos por mês, cerca de 12 dólares. Os 50 créditos do registo dão para 25 pedidos. Planos em preços.
Para começar
- Registe-se em dashboard.scavio.dev: 50 créditos grátis, sem cartão.
- Copie a sua API key no dashboard.
- Envie um POST para
/api/v1/decathlon/searchcom"country": "pt".
Experimente a API da Decathlon grátis ou teste-a sem registo na página da API da Decathlon Portugal.
Frequently asked questions
Como obtenho o preço de um produto da Decathlon Portugal?
Envie um POST para /api/v1/decathlon/product com o URL do produto ou o id numérico e "country": "pt". A API da Decathlon do Scavio devolve price em cêntimos de euro (22900 são 229,00 euros), list_price quando há preço riscado, o GTIN, o SKU e a disponibilidade. Custa 2 créditos.
Como sei se um produto da Decathlon está em promoção?
A ficha de produto traz list_price, o preço riscado que a Decathlon mostra, ao lado de price. Se list_price não for null, o desconto é 1 - price / list_price. A 2 de novembro de 2026, a BTT Rockrider Race 740 custava 999 euros na decathlon.pt, com preço riscado de 1.499. A pesquisa não traz list_price; é preciso a ficha.
Consigo comparar o preço da Decathlon Portugal com o de Espanha?
Sim. O id do modelo é o mesmo em todos os países, por isso basta repetir o pedido com "country": "es" e comparar pelo gtin. Foi assim que vimos que 9 BTT Rockrider eram entre 13% e 30% mais baratas em Portugal, enquanto as sapatilhas Kiprun Kipcore eram 24% mais caras.
Os dados são atualizados em tempo real?
Cada pedido lê a decathlon.pt no momento. Não há cache: o campo fetched_at da resposta é a hora exata da leitura. Para acompanhar preços basta agendar os pedidos e guardar as respostas.