🦔
PythonでAPIより現在の為替レートを取得する方法
為替レートがAPI取得できるサイト
為替レート取得APIは以下の2社のサイトから取得が可能です。
・OAND証券
・GMOコイン
OAND証券利用条件
- 会員ステータスがGoldの方でプロコースかつ口座残高が25万以上のお客様
- API 契約書の内容に同意していただける方
- プログラムを設計、実装できるだけの専門知識をお持ちの方
※1.前月50万米ドル以上
GMOコイン利用条件
- 無料
- API経由で注文または注文変更が行われ、その注文が約定した場合、1通貨ごとに0.002円
おすすめ
おすすめは、無料で利用できるGMOコインです。
OAND証券で会員ステータスGoldになるためには、前月50万米ドル以上が必要になるのでOAND証券で取引をしている人でないとハードルが高いです。
GMOコインAPIで現在の為替レートを取得する
ドル円為替レートの取得方法
以下のコードでドル円為替レートの取得が可能です。
1.GMOコインのAPIで最新の為替レートを取得
まずは、最新の全為替レートを取得します。
import requests
import json
import pandas as pd
# GMOコインのAPIで最新の為替レートを取得
end_point = 'https://forex-api.coin.z.com/public'
api_path = f'/v1/ticker'
response = requests.get(f'{end_point}{api_path}')
if response.status_code != 200:
print(f'エラーが発生しました。ステータス:{response.status_code}, メッセージ:{response.text}')
exit(-1)
# レスポンス結果を取得
data = response.json()
print(data)
以下のようにJSON形式で結果が返却されます。
【結果】
{'status': 0, 'data': [{'symbol': 'USD_JPY', 'ask': '156.878', 'bid': '156.874', 'timestamp': '2024-12-31T15:34:40.96835Z', 'status': 'OPEN'}, {'symbol': 'EUR_JPY', 'ask': '162.689', 'bid': '162.676', 'timestamp': '2024-12-31T15:34:40.969019Z', 'status': 'OPEN'}, {'symbol': 'GBP_JPY', 'ask': '196.701', 'bid': '196.684', 'timestamp': '2024-12-31T15:34:40.969066Z', 'status': 'OPEN'}, {'symbol': 'AUD_JPY', 'ask': '97.229', 'bid': '97.223', 'timestamp': '2024-12-31T15:34:40.968769Z', 'status': 'OPEN'}, {'symbol': 'NZD_JPY', 'ask': '87.942', 'bid': '87.936', 'timestamp': '2024-12-31T15:34:40.969379Z', 'status': 'OPEN'}, {'symbol': 'CAD_JPY', 'ask': '109.142', 'bid': '109.137', 'timestamp': '2024-12-31T15:34:40.9686Z', 'status': 'OPEN'}, {'symbol': 'CHF_JPY', 'ask': '173.305', 'bid': '173.297', 'timestamp': '2024-12-31T15:34:40.969754Z', 'status': 'OPEN'}, {'symbol': 'EUR_USD', 'ask': '1.03689', 'bid': '1.03681', 'timestamp': '2024-12-31T15:34:40.971352Z', 'status': 'OPEN'}, {'symbol': 'TRY_JPY', 'ask': '4.424', 'bid': '4.409', 'timestamp': '2024-12-31T15:34:40.969689Z', 'status': 'OPEN'}, {'symbol': 'ZAR_JPY', 'ask': '8.313', 'bid': '8.303', 'timestamp': '2024-12-31T15:34:40.971703Z', 'status': 'OPEN'}, {'symbol': 'MXN_JPY', 'ask': '7.54', 'bid': '7.538', 'timestamp': '2024-12-31T15:34:40.971281Z', 'status': 'OPEN'}, {'symbol': 'GBP_USD', 'ask': '1.25391', 'bid': '1.25382', 'timestamp': '2024-12-31T15:34:40.970926Z', 'status': 'OPEN'}, {'symbol': 'AUD_USD', 'ask': '0.61978', 'bid': '0.61974', 'timestamp': '2024-12-31T15:34:40.970861Z', 'status': 'OPEN'}, {'symbol': 'NZD_USD', 'ask': '0.5606', 'bid': '0.56053', 'timestamp': '2024-12-31T15:34:40.970252Z', 'status': 'OPEN'}], 'responsetime': '2024-12-31T15:34:41.061Z'}
2.取得結果をpandasに格納
取得したデータをPandsに格納します。
# pandasにデータを格納
df = pd.DataFrame(data["data"])
print(df)
以下のように格納されます。
【結果】
symbol ask bid timestamp status
0 USD_JPY 156.878 156.874 2024-12-31T15:34:40.96835Z OPEN
1 EUR_JPY 162.689 162.676 2024-12-31T15:34:40.969019Z OPEN
2 GBP_JPY 196.701 196.684 2024-12-31T15:34:40.969066Z OPEN
3 AUD_JPY 97.229 97.223 2024-12-31T15:34:40.968769Z OPEN
4 NZD_JPY 87.942 87.936 2024-12-31T15:34:40.969379Z OPEN
5 CAD_JPY 109.142 109.137 2024-12-31T15:34:40.9686Z OPEN
6 CHF_JPY 173.305 173.297 2024-12-31T15:34:40.969754Z OPEN
7 EUR_USD 1.03689 1.03681 2024-12-31T15:34:40.971352Z OPEN
8 TRY_JPY 4.424 4.409 2024-12-31T15:34:40.969689Z OPEN
9 ZAR_JPY 8.313 8.303 2024-12-31T15:34:40.971703Z OPEN
10 MXN_JPY 7.54 7.538 2024-12-31T15:34:40.971281Z OPEN
11 GBP_USD 1.25391 1.25382 2024-12-31T15:34:40.970926Z OPEN
12 AUD_USD 0.61978 0.61974 2024-12-31T15:34:40.970861Z OPEN
13 NZD_USD 0.5606 0.56053 2024-12-31T15:34:40.970252Z OPEN
3.USDJPYのデータのみ抽出
取得したデータからドル円のデータを抽出します。
# USDJPYのデータのみ抽出
usd_jpy_data = df.loc[df['symbol'] == 'USD_JPY']
print(usd_jpy_data)
以下のように抽出されます。
【結果】
symbol ask bid timestamp status
0 USD_JPY 156.878 156.874 2024-12-31T15:34:40.96835Z OPEN
以上で最新為替レートが取得できます。
Discussion