mcpField
B
bcra-macro

bcra-macro

github.com/gauss314データ・データベース252272 回インストール19 週間前に更新
リポジトリ

bcra-macro について

bcra-macroは、アルゼンチン中央銀行の金融統計APIを利用するスキルです。全国マクロ経済系列の検索、過去データの取得、方法論の確認ができ、大規模データもフィルターとページ分割で扱えます。

主な機能

  1. 01金融変数カタログの閲覧
  2. 02カテゴリやメタデータによる系列の絞り込み
  3. 03日付付き過去データの取得
  4. 04変数の方法論情報の参照
  5. 05大規模なカタログや系列のページ分割

活用シーン

  1. 01為替レート、準備高、通貨量の追跡
  2. 02指定期間のマクロ時系列データの取得
  3. 03統計変数の算出方法の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gauss314/skills --skill bcra-macro

インストール後、Claude Code で/bcra-macroを入力して読み込まれたか確認します。

同梱ファイルreferences/VARIABLES.md

詳細

BCRA Macro — 統計・金融 API v4.0

BCRA の公式 API で、全国のマクロ経済変数(州別ではありません)を照会できます。
ベース URL: https://api.bcra.gob.ar
全カタログ: 1220 系列 → ./references/VARIABLES.md に全国の系列を 638 件掲載しています。

エンドポイント

#エンドポイント用途
1GET /estadisticas/v4.0/Monetarias変数カタログ(ページネーション対応)
2GET /estadisticas/v4.0/Monetarias/{IdVariable}変数の時系列データ(ページネーション対応)
3GET /estadisticas/v4.0/Metodologia方法論のインデックス(ページネーション対応)
4GET /estadisticas/v4.0/Metodologia/{IdVariable}変数の方法論情報

認証: 不要です。CORS: 開放されています。エンコーディング: 一部のテキストは ISO-8859-1 です。


1. 変数カタログ

GET /estadisticas/v4.0/Monetarias

メタデータ(idVariable、descripcion、categoria、tipoSerie、periodicidad、unidadExpresion、moneda、primerFechaInformada、ultFechaInformado、ultValorInformado)を含む全件の一覧を返します。

使用可能なフィルター(クエリパラメーター)
パラメーター型説明
IdVariableintID が完全一致する項目で絞り込みます
Categoriastringアクセント記号を除いた部分一致検索("depositos"、"prestamos")
PeriodicidadstringD は日次、M は月次、T は四半期ごと
MonedastringPES、DOL、ML、ME、MEyML
TipoSeriestringStock、Flujo、Tasa など
UnidadExpresionstring自由形式のテキスト
Limitintデフォルトは 1000、最大 3000
Offsetintページネーション(開始位置に加算)
最小限の例
import requests, pandas as pd
r = requests.get("https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias", params={"Limit": 3000})
df = pd.DataFrame(r.json()["results"])

2. 変数の時系列データ

GET /estadisticas/v4.0/Monetarias/{IdVariable}

{idVariable, detalle: [{fecha, valor}]} を返します。

パラメーター型必須説明
IdVariableint (path)はい変数の ID
DesdestringいいえYYYY-MM-DD
HastastringいいえYYYY-MM-DD
Limitintいいえデフォルトは 1000、最大 3000
Offsetintいいえページネーション
r = requests.get("https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias/1",
                 params={"Desde": "2020-01-01", "Hasta": "2025-12-31"})
df = pd.DataFrame(r.json()["results"][0]["detalle"])
df["fecha"] = pd.to_datetime(df["fecha"])
df = df.set_index("fecha").sort_index()

3. 方法論

GET /estadisticas/v4.0/Metodologia           # índice paginado
GET /estadisticas/v4.0/Metodologia/{idVar}   # ficha completa
r = requests.get("https://api.bcra.gob.ar/estadisticas/v4.0/Metodologia/1")
print(r.json()["results"][0]["detalle"])

4. ページネーション:3000 件の上限を超える方法

API が 1 回の呼び出しで返すのは最大 3000 行です。最も長い日次系列(国際準備高、ID 1)は、1996 年以降の約 9000 件の観測値があります。方法は 2 つあります。

方法 A — Offset によるページネーション(最も簡単)

レスポンスが空になるまで、Offset += Limit を加算しながら繰り返します。

import requests, pandas as pd

def get_serie(id_variable, limit=3000):
    url = f"https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias/{id_variable}"
    offset, partes = 0, []
    while True:
        r = requests.get(url, params={"Limit": limit, "Offset": offset}).json()
        det = r["results"][0]["detalle"]
        if not det:
            break
        partes.append(pd.DataFrame(det))
        offset += limit
    df = pd.concat(partes).drop_duplicates("fecha").sort_values("fecha")
    df["fecha"] = pd.to_datetime(df["fecha"])
    return df.set_index("fecha")

reservas = get_serie(1)  # ~9000 observaciones desde 1996
方法 B — 日付範囲で分割(長い系列ではより高速)

全期間を複数の期間(例:年単位)に分割し、それぞれを Desde/Hasta で指定して取得します。系列が 50,000 件を超える場合や、非常に古いデータをまとめて取得したい場合は、こちらが推奨されます。

import requests, pandas as pd
from datetime import date

def get_serie_por_chunks(id_variable, desde, hasta, ventana_dias=365):
    url = f"https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias/{id_variable}"
    partes, d = [], pd.to_datetime(desde)
    fin = pd.to_datetime(hasta)
    while d <= fin:
        h = min(d + pd.Timedelta(days=ventana_dias - 1), fin)
        r = requests.get(url, params={"Desde": d.strftime("%Y-%m-%d"),
                                       "Hasta": h.strftime("%Y-%m-%d"),
                                       "Limit": 3000}).json()
        partes.append(pd.DataFrame(r["results"][0]["detalle"]))
        d = h + pd.Timedelta(days=1)
    df = pd.concat(partes).drop_duplicates("fecha").sort_values("fecha")
    df["fecha"] = pd.to_datetime(df["fecha"])
    return df.set_index("fecha")

base = get_serie_por_chunks(15, "1996-01-01", date.today().isoformat())
方法 C — カタログのページネーション(全変数の一覧を再取得する場合)
def catalogo_completo(limit=3000):
    url = "https://api.bcra.gob.ar/estadisticas/v4.0/Monetarias"
    offset, todo = 0, []
    while True:
        r = requests.get(url, params={"Limit": limit, "Offset": offset}).json()
        batch = r["results"]
        todo += batch
        if len(batch) < limit:
            break
        offset += limit
    return pd.DataFrame(todo)
基本ルール
  • レスポンスに total は含まれません → 常に len(batch) < limit または detalle == [] を確認してください。
  • 小分けに何度も呼び出すより、大きなリクエストを 1 回送る(Limit=3000)ほうが効率的です。
  • API に公開レート制限はありませんが、節度を守ってください。大量に繰り返し取得する場合は、呼び出しの間に time.sleep(0.2) を追加してください。

全国変数(よく使われる ID)

完全な一覧は VARIABLES.md(全国系列 638 件)をご覧ください。特によく参照される 30 件は次のとおりです。

ID説明期間
1国際準備高(百万 USD)D
4小売為替レート($/USD)D
5基準卸売為替レート($/USD)D
7民間銀行 BADLAR 金利(% TNA)D
8民間銀行 TM20 金利(% TNA)D
11BAIBAR 金利(% TNA)D
1230 日預金金利(% TNA)D
13当座預金貸越金利(% TNA)D
14個人ローン金利(% TNA)D
15マネタリーベース(百万 $)D
16通貨流通高(百万 $)D
17民間保有の紙幣・硬貨(百万 $)D
18金融機関預金(百万 $)D
19民間部門向け貸出(百万 $)D
26金融政策金利(% TNA)D
27CPI 月次変動率(%)M
28CPI 前年比変動率(%)M
29REM - 今後 12 か月のインフレ率中央値(%)M
30CER(指数、基準 2.2.02=1)D
31UVA($)D
32UVI($)D
40ICL - 賃貸契約指数($)D
1187為替バンド - 下限($/USD)D
1188為替バンド - 上限($/USD)D
1189ペソ定期預金金利(% TNA)D
1197延滞利息金利 TIM(% TNA)D
1232M1(百万 $)D
1233M2(百万 $)D
1234M3(百万 $)D

ヒント: API のリファクタリングにより ID が変更されることがあります。変数の現在の ID を確認するには、カタログのエンドポイントを使用してください。

カタログに含まれるカテゴリ

カテゴリ全国の件数説明
主要変数35主要なマクロ指標(金利、為替レート、準備高、マネタリーベース、CER、UVA、CPI)
日次金融レポート33IMD の日次系列(対外項目、M1/M2/M3、BCRA 貸出)
Series.xlsm154マネタリーベースと準備高の変動要因
預金金利10通貨と期間別の預金金利
保有者の種類と使途別貸出74使途別貸出(住宅ローン、自動車ローン、個人ローン)
保有者の種類別貸出120通貨別の国内公的・民間部門向け貸出
保有者の種類別預金212通貨と期間別の国内公的・民間部門預金

除外対象(地方・自治体系列 582 件): ID 322 以降は州(ブエノスアイレス、コルドバ、サンタフェなど)別に細分化されており、全国集計を含まずに「州政府」または「自治体」に言及する項目も除外されています。

通貨コード

コード意味
ML自国通貨(アルゼンチン・ペソ)
ME外貨(米ドル)
MEyML自国通貨と外貨の合計
USD米ドル(換算なし)

系列の種類

月末残高 · 残高 · 金利 · 日次フロー · 為替レート · 変動率 · 比率 · 指数 · 計算単位 · マージン · 金額


技術上の注意事項

  • 認証不要 — キーやトークンは必要ありません。
  • ページネーション上限: 1 回の呼び出しにつき 3000 件。
  • エンコーディング: レスポンスに拡張文字(ISO-8859-1)が含まれる場合があります — response.encoding または pd.read_json(..., encoding="utf-8") を使用してください。
  • 日付形式: ISO 8601(YYYY-MM-DD)。
  • SLA: ベストエフォートであり、正式な保証はありません。

便利なリンク

コメント