一、接口基础信息
请求方式:HTTP GET
认证机制:OAuth 2.0 Bearer Token
请求地址:
https://api.jumia.com/search/v1/list
二、核心请求参数
参数名 类型 示例值 说明
q string "smartphone" 搜索关键词
category int 123 类目ID
page int 1 分页页码
sort string "newest" 排序规则(newest/price_asc/price_desc)
max_price float 500.0 价格上限(单位:本地货币)
三、响应数据结构(JSON格式)
{
"total_items": 1500,
"items": [
{
"id": "SN12345678",
"name": "Samsung Galaxy S21",
"price": 450.99,
"original_price": 499.99,
"rating": 4.5,
"image_url": "https://img.jumia.com/...",
"seller_info": {
"id": "SELLER987",
"name": "TechHub Africa",
"rating": 4.8
}
}
],
"facets": {
"categories": [
{"id": 123, "name": "Mobile Phones", "count": 1200}
],
"brands": [
{"name": "Samsung", "count": 300}
]
}
}
四、Python调用示例
import requests
import pandas as pd
def fetch_jumia_search(keyword, max_pages=3):
headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
all_items = []
for page in range(1, max_pages+1):
params = {
"q": keyword,
"page": page,
"sort": "price_asc"
}
response = requests.get(
"https://api.jumia.com/search/v1/list",
headers=headers,
params=params
)
if response.status_code == 200:
data = response.json()
all_items.extend(data['items'])
return pd.DataFrame(all_items)
调用示例
df = fetch_jumia_search("wireless headphones")
print(df[['name', 'price', 'rating']].head())
五、关键注意事项
标准API套餐:100次/分钟请求限制
建议添加延时控制:time.sleep(0.5)
original_price 字段可能为null(无折扣时)
图片URL需拼接完整路径:"https://img.jumia.com" + image_url
if response.status_code == 401:
raise Exception("Token过期,需刷新凭证")
elif response.status_code == 429:
print("触发限流,等待重试...")
六、进阶应用场景
监控特定商品价格波动
daily_data = fetch_jumia_search("iPhone 13")
price_history = daily_data.groupby('id')['price'].agg(['min','max'])
分析手机类目品牌分布
phone_data = fetch_jumia_search("", category=123)
brand_distribution = phone_data['seller_info.name'].value_counts()
(注:实际API参数可能因Jumia版本更新调整,建议查阅最新官方文档:developer.jumia.com)