国际货币汇率 - LLM Markdown

# 国际货币汇率

> 来源页面: https://www.gugudata.com/api/details/currencyexchange

## 概览

- API 标识: `currencyexchange`
- 分类: 金融/基础
- 描述: 查询货币对汇率,支持最新公布数据与指定历史日期
- 标签: 汇率查询 / 多币种支持
- 短标签: 基础数据 / 货币汇率
- 详情页: https://www.gugudata.com/api/details/currencyexchange
- LLM Markdown: https://www.gugudata.com/api/details/currencyexchange/llm.md
- 数据预览: https://www.gugudata.com/preview/currencyexchange
- 购买开通: https://www.gugudata.com/order/currencyexchange
- APP KEY 管理: https://www.gugudata.com/portal/
- 订单与续费: https://www.gugudata.com/portal/orders

## 给大模型的接入指令

如果你正在帮助用户接入这个 API,请优先使用本文档中的接口地址、请求方式、请求参数、返回参数、状态码、cURL 示例和预览数据生成代码或排查问题。

- 接入目标: 调用 `国际货币汇率`,不要臆造未在文档中出现的参数或返回字段。
- AppKey 获取: 用户登录咕咕数据开发者中心后,在 `APP KEY 管理` 页面复制对应产品的 AppKey。
- AppKey 替换: 示例中的 `YOUR_APPKEY`、`APPKEY`、`{{YOUR_APPKEY}}`、`{{appkey}}`、`{{appKey}}` 都应替换为用户自己的 AppKey。
- AppKey 传递: 推荐使用 `X-GUGUDATA-APPKEY` 或 `X-API-Key` 请求头;OpenAI 兼容客户端可使用 `Authorization: Bearer <AppKey>`;历史 query 参数 `appkey` 继续有效。
- 开通与续费: 未开通时引导用户访问购买开通页;已开通或需要续费时,引导用户进入开发者中心或订单与续费页。
- 错误处理: HTTP 状态码代表传输层结果,响应体内的业务状态码代表接口业务结果,代码中应分别处理。
- 生产建议: AppKey 应保存在服务端环境变量或密钥配置中,由服务端统一发起请求,不要写入网页、App 客户端或公开仓库。

关键链接:

- 接口详情页: https://www.gugudata.com/api/details/currencyexchange
- LLM Markdown: https://www.gugudata.com/api/details/currencyexchange/llm.md
- 数据预览: https://www.gugudata.com/preview/currencyexchange
- 购买开通页: https://www.gugudata.com/order/currencyexchange
- 开发者中心 APP KEY 管理: https://www.gugudata.com/portal/
- 订单与续费: https://www.gugudata.com/portal/orders

## API 功能

- 指定源币种和目标币种,查询 EUR/CNY、USD/CNY 等货币对的汇率;
- 目标币种留空时,一次返回该源币种在公布日期支持的全部目标汇率;
- 默认查询来源最新公布的数据,并返回对应的日期标识;
- 指定历史日期查询,适合为历史订单和财务记录补充换算参考;
- 支持来源在指定日期提供的数字资产代码,如 BTC;实际可用性以当日数据为准;
- 兼容来源公布的特殊代码,如 $MYRO 和 BTC.B,可查询其已提供的历史汇率;
- 汇率表示 1 单位源币对应的目标币金额,便于明确换算方向;
- 返回公布日期的 UTC 零点毫秒时间戳,便于按日期保存汇率记录;
- 目标汇率以数组返回,每项包含源币种、目标币种、数值汇率和日期标识;
- 可为跨币种商品价格展示提供换算参考,展示时保留汇率日期;
- 可用于跨币种报表的数据整理,统一说明报表采用的币种和汇率日期;
- 支持同币种查询,可与其他货币对使用一致的返回结构;
- 默认最大 QPS:5,可在开发者中心自助升级,月付年付订单接口调用次数不限。
- [接口调用状态与状态监控](https://www.gugudata.com/status)

## API 文档

- 接口地址: `https://api.gugudata.com/v2/finance/currency-exchange`
- 返回格式: `application/json; charset=utf-8`
- 请求方式: `GET`
- 请求协议: `HTTPS`
- 请求示例: `https://api.gugudata.com/v2/finance/currency-exchange?appkey=YOUR_APPKEY&source=EUR&target=CNY&date=latest`
- 接口测试: https://api.gugudata.com/v2/finance/currency-exchange/demo
- Apifox: https://doc.gugudata.com/
- Postman: https://www.postman.com/gugudata/gugudata-official
- OpenAPI: https://www.gugudata.com/openapi/gugudata.openapi.3.1.json

## 鉴权方式

接口支持以下 AppKey 传递方式,任选一种即可;已有请求示例、Postman 集合和历史代码仍可继续使用原来的 `appkey` 参数方式。

| 传输载体 | 参数 | 示例 | 说明 |
| --- | --- | --- | --- |
| HTTP Header | `X-GUGUDATA-APPKEY` | `X-GUGUDATA-APPKEY: YOUR_APPKEY` | 推荐方式,适合服务端接入和统一封装。 |
| HTTP Header | `X-API-Key` | `X-API-Key: YOUR_APPKEY` | 通用 API Key Header,便于和常见 API 客户端集成。 |
| HTTP Header | `Authorization` | `Authorization: Bearer YOUR_APPKEY` | 适合 OpenAI 兼容接口或 Bearer Token 风格客户端。 |
| Query 参数 | `appkey` | `?appkey=YOUR_APPKEY` | 兼容现有示例、Postman 集合、浏览器调试和历史代码。 |

> 部分历史 POST 接口仍兼容表单或 JSON body 中的 `appkey`;新接入建议优先使用 Header 或 Query 参数。

## 请求参数

| 参数名 | 参数类型 | 是否必须 | 默认值 | 备注 |
| --- | --- | --- | --- | --- |
| appkey | string | 是 | 无 | 支持 appkey/appKey Query、X-GUGUDATA-APPKEY/X-API-Key Header 或 Bearer;多处提供须一致,同名参数不得重复。 |
| source | string | 是 | 无 | 必填源币种代码,如 EUR、USD。忽略首尾空白并转大写,最多 20 个字符,允许字母、数字、$、.;是否支持以指定日期来源数据为准。 |
| target | string | 否 | 无 | 目标币种代码,如 CNY;不传或留空返回全部目标币种,代码规则与 source 相同。 |
| date | string | 否 | latest | 默认 latest,空字符串同 latest;或 YYYY-MM-DD,如 2024-03-06。历史可用性以来源实际提供为准,历史结果必须匹配请求日期。 |

## 返回参数

| 参数名 | 参数类型 | 备注 |
| --- | --- | --- |
| dataStatus.requestParameter | string | 真实可读的 source、target、date,不含凭据。 |
| dataStatus.statusCode | integer | 成功 200;参数错误 400;依赖失败 503。公共鉴权错误保持。 |
| dataStatus.status | string | 成功为 SUCCESS,错误为相应业务状态。 |
| dataStatus.statusDescription | string | 业务状态说明。 |
| dataStatus.responseDateTime | string | 接口响应时间,不是汇率公布时间。 |
| dataStatus.dataTotalCount | integer | 成功顶层对象数量为 1,含全量查询;不是目标币种数量。 |
| data.sourceCurrency | string | 归一化后的源币种代码。 |
| data.targetCurrency | array | 目标汇率数组,保持来源顺序。 |
| data.targetCurrency[].sourceCurrency | string | 源币种代码。 |
| data.targetCurrency[].targetCurrency | string | 目标币种代码。 |
| data.targetCurrency[].exchangeRate | number | 1 单位源币对应的目标币金额,有限正数;不代表交易成交价。 |
| data.targetCurrency[].lastUpdateTimestamp | string | 来源公布日期的 UTC 零点毫秒时间戳字符串,不是请求时间或盘中更新时间。 |
| data.lastUpdateTimestamp | string | 来源公布日期的 UTC 零点毫秒时间戳字符串,不是请求时间或盘中更新时间。 |

## 接口常见 HTTP 响应状态码

> 以下为接口调用中常见的 HTTP 传输层状态码,不等同于响应体内的业务状态码;完整状态码注册表以 IANA HTTP Status Code Registry 为准。

| 状态码 | 状态码解释 | 备注 |
| --- | --- | --- |
| 200 | 请求成功 | HTTP 请求已成功处理;业务状态请结合响应体中的自定义业务码判断。 |
| 201 | 资源已创建 | 创建类接口请求成功,并已生成对应资源。 |
| 202 | 请求已接受 | 请求已被接受处理,结果可能异步完成。 |
| 204 | 无响应内容 | 请求成功但响应体为空,适用于无需返回数据的操作。 |
| 400 | 请求参数错误 | 请求参数缺失、格式错误或参数组合不合法。 |
| 401 | 认证失败 | 缺少、无效或未通过认证的访问凭证(如 AppKey)。 |
| 403 | 无权限访问 | 订单到期、权限不足或接口额度不可用。 |
| 404 | 资源不存在 | 请求路径不存在。 |
| 405 | 请求方法不允许 | 当前路径不支持该 HTTP 方法。 |
| 408 | 请求超时 | 客户端请求在服务端等待时间内未完成,可稍后重试。 |
| 409 | 请求冲突 | 请求与当前资源状态冲突,调整参数或业务状态后重试。 |
| 413 | 请求内容过大 | 上传文件或请求体超过接口限制。 |
| 414 | 请求地址过长 | 请求 URL 超过服务端可处理长度,建议减少查询参数或改用 POST。 |
| 415 | 请求内容类型不支持 | 上传或请求体的内容类型不符合接口要求。 |
| 422 | 请求语义错误 | 请求格式正确,但参数取值、语义或业务约束无法处理。 |
| 429 | 请求频率受限 | 默认按来源 IP 限速,单 IP 最多 5 QPS,可满足常规业务调用。超出限制时接口会返回 429 请求频率受限;已购买接口订单可加购 10 QPS 扩展。 |
| 431 | 请求头过大 | 请求头字段过大或过多,建议精简 Header 后重试。 |
| 500 | 服务器内部错误 | 服务端处理异常,请稍后重试。 |
| 502 | 服务暂时不可用 | 请稍后重试。 |
| 503 | 服务暂时不可用 | 请稍后重试。 |
| 504 | 请求超时 | 请稍后重试。 |

## 接口自定义业务状态码

| 业务状态码 | 业务状态码解释 | 备注 |
| --- | --- | --- |
| 200 | 成功 | SUCCESS |
| 400 | 参数错误 | PARAMETER_ERROR |
| 402 | 凭据缺失或无效 | APPKEY_NOT_SUPPLIED / APPKEY_NOT_EXISTED |
| 403 | 订单过期或无权限 | APPKEY_EXPIRED |
| 429 | 请求频率超限 | REQUEST_FREQUENCY_LIMIT |
| 500 | 内部错误 | FAILED |
| 503 | 解析或鉴权服务暂时不可用 | UPSTREAM_UNAVAILABLE / AUTH_SERVICE_UNAVAILABLE |
| 505 | 调用包额度不可用 | APPKEY_CALL_CREDITS_EXHAUSTED |

## cURL 请求示例

```bash
curl --location --request GET 'https://api.gugudata.com/v2/finance/currency-exchange?appkey=YOUR_APPKEY&source=EUR&target=CNY&date=latest'
```

## 常见问题 Q&A

### Q: 如何完成第一次 API 调用?
A: 先确认当前接口的请求方法、必填参数和成功状态,再使用对应产品的 AppKey 发起请求;以实际响应中的业务状态判断结果。 [查看接入指南](https://www.gugudata.com/developers/getting-started)

### Q: 如何保证请求时 AppKey 的安全性?
A: 在开发者中心的 APP KEY 管理页面复制对应产品的 AppKey,并保存在服务端环境变量或密钥管理服务中。不要写入网页、App 客户端、公开仓库或日志。

### Q: 接口可以用于哪些开发语言?
A: Java、Python、Node.js、PHP、Go、C#、Swift、Kotlin 等支持 HTTP 请求的语言均可接入;也可以通过 OpenAPI、Postman 或 Apifox 查看和调试接口。

### Q: 请求失败或超时后可以重试吗?
A: 先区分 HTTP 状态与业务错误。参数、鉴权和权限错误应修正后再请求;超时并不表示服务端未执行,重试前需确认接口是否会重复计费或产生副作用。 [查看接入指南](https://www.gugudata.com/developers/errors-and-retries)

### Q: 接口的性能可以保证吗?
A: 实际响应时间受接口类型、参数和网络环境影响。请按当前套餐的 QPS 控制并发,生产接入前完成联调与容量评估。

## 服务协议以及服务免责声明

- [服务协议](https://www.gugudata.com/license)
- [服务免责声明](https://www.gugudata.com/disclaimer)

## 技术支持

- 技术支持邮箱: support@gugudata.com
- 微信客服: https://work.weixin.qq.com/kfid/kfcf9a60a6afe3337b7