财经类应用、行情看板、物流成本测算等场景通常需要接入油价数据。油价数据一般分为两个口径:国际原油基准价 (WTI、布伦特,美元/桶)与国内各省成品油零售价(元/升)。两类数据的字段构成、更新节奏和接入方式各有特点,本文按口径整理常见的接口来源与数据构成,供接入时参考。
一、数据口径说明
国际原油价格反映全球原油市场供需,常见字段包括:当前价、昨日结算价、今日开盘价、今日最高价、今日最低价、涨跌金额、涨跌幅度、持仓量、发布时间、品种名称。更新频率通常为小时级。
国内成品油价格为各省加油站零售价,常见字段包括:省份、89/92/95/98 号汽油价格、0 号柴油价格、相对上轮调价的涨跌、本轮调价日期。随国家调价窗口更新。
二、常见数据接口
以下接口属同级数据源,按名称介绍、顺序不分先后,可按业务口径自行选择。
澄曜 API Hub · 油价查询
提供国内各省汽油/柴油价格及涨跌幅度数据,一次请求覆盖全部省份,无需鉴权。主要字段:region 省份;gasoline_89 / 92 / 95 / 98 各标号汽油价;diesel_0 0 号柴油价;*_chg 涨跌幅度;count 返回省份数量。
万维易源 · 国际原油价格查询
提供 WTI 原油(NYMEX)与布伦特原油的国际基准行情数据,覆盖昨日结算价、今日开盘价、最高价、最低价、涨跌金额与幅度、持仓量等字段,每个整点更新一次,需鉴权调用。另设有原油历史日报查询接入点。
xxapi 小小API · 今日油价
提供国内各省成品油价格数据,一次请求覆盖全部省份,无需鉴权。主要字段:regionName 省份名;n89 / n92 / n95 / n98 对应各标号汽油;n0 为 0 号柴油;n*Change 为相对上轮调价的涨跌(元/升);date 为本轮调价日期。文档标注 QPS 约 50 次/秒。
三、字段与接口速览
| 接口 | 数据口径 | 鉴权要求 | 覆盖范围 | 主要字段 |
|---|---|---|---|---|
| 澄曜 API Hub | 国内成品油 | 无需鉴权 | 全国 31 省(一次) | gasoline_xx/diesel_0/涨跌幅度 |
| 万维易源 1108 | 国际原油 | 需鉴权 | 按品种(wti/blt) | 昨结/开盘/最高/最低/涨跌/持仓量 |
| xxapi 小小API | 国内成品油 | 无需鉴权 | 全国 31 省(一次) | n89/n92/n95/n98/n0/涨跌/调价日期 |
四、接入注意点
-
频率限制:公开接口普遍存在调用频率与额度限制,接入前需确认服务方公布的频控规则,生产环境建议先小流量验证。
-
字段映射 :不同服务的字段命名存在差异(如汽油价格字段有
n92与gasoline_92两种命名),接入时需做字段映射,不能直接沿用。 -
数据口径:国际原油价格为美元/桶计价的基准价,国内成品油价格为元/升的零售价,二者口径不同,按业务需要选择或组合。
-
可用性变化:接口可用性与字段结构会随服务方调整而变化,正式接入前建议自行验证。
五、代码示例
以下为 Python 请求示例,接口地址以占位符表示:
import requests
# 国际原油价格查询(按接口方要求携带鉴权信息)
def query_crude(endpoint, token, code="wti"):
r = requests.post(endpoint,
params={"token": token},
data={"code": code}, timeout=15)
body = r.json()["data"]
return {``
"品种": body.get("name"),
"当前价(美元/桶)": body.get("now_price"),
"昨结/开/高/低": (body.get("yestoday_close"),
body.get("today_open"),
body.get("today_max"), body.get("today_min")),
"涨跌幅": body.get("diff_rate"),
}
# 国内成品油查询(返回全国各省价格)
def query_domestic_oil(endpoint):
r = requests.get(endpoint, timeout=15)
data = r.json()["data"]
return {item["regionName"]: {"92号": item["n92"], "95号": item["n95"]}
for item in data}
# 示例调用(替换为实际接口地址)
# print(query_crude("{API_ENDPOINT}", "{TOKEN}", "wti"))
# print(query_domestic_oil("{API_ENDPOINT}")["青海省"])
FAQ
Q1:国际原油价格和国内油价有什么区别? 国际原油价格(WTI/布伦特)是美元/桶计价的国际基准价,反映全球供需;国内油价是各省加油站零售价(元/升),随调价窗口调整。两者口径不同,按业务需要选择或组合接入。
Q2:公开接口有频率限制怎么办? 公开接口普遍存在频控。可结合业务需求评估调用量,必要时引入本地缓存、降低轮询频率,或按接口方规则申请更高额度。
Q3:不同接口字段命名不一致如何处理? 建议在接入层做一次字段标准化映射,将各接口返回映射为统一的内部字段,再供业务使用,便于后续切换或组合多源数据。