メニュー

金価格APIリファレンス

すべてのエンドポイントのパラメーターとフィールド。ベースURL:https://goldapi.dev/api/v1

すべてのエンドポイントにAPIキーが必要です。キーがない、または誤っていると401、制限を超えると429が返ります。各エンドポイントのコードは下記にあり、すべての説明は次をご覧ください: エラー

認証

すべてのリクエストにこのヘッダーでキーが必要です。簡単なテストでは ?api_key= でも送れます。キーは、アカウントを登録したサイトでのみ使えます。ブラウザから直接呼び出せますが、キーが訪問者に見えてしまいます。

Header
X-API-Key: YOUR_API_KEY

制限に達したとき

Freeは1時間あたり100リクエスト、Basicは2,000、Proは無制限です。カウントはアカウントの全キーの合計で、プランにより拒否されたリクエストも含み、毎正時にリセットされます。X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset(Unix時間)ヘッダーで状況を確認でき、Proには X-RateLimit-Limit: unlimited のみ返ります。制限を超えると429と秒単位の Retry-After ヘッダーが返ります。 無料プランの制限

リアルタイム価格

GET/api/v1/price/{symbol}/{currency}/{karat}APIキー · Free以上

任意の通貨での金属のリアルタイム価格を、単位あたりとグラムあたりで返します。金はカラットを選べます。

パスパラメーター

symbolstring必須
金属:XAU、XAG、XPT、XPD、HG。
currencystring
通貨コード。既定はUSD。/rates にあるコードを使えます。
karatint
金のみ:24、22、21、18、14。既定は24。グラム価格が変わります。

クエリパラメーター

currencystring
クエリパラメーターでも同じ値を指定できます。両方ある場合はパスが優先されます。
karatint
クエリパラメーターでも同じ値を指定できます。両方ある場合はパスが優先されます。

レスポンスのフィールド

price
単位あたりの価格。カラットでは変わりません。エジプトポンド建ての金はエジプトの現地市場に連動します。
gram
1グラムの価格。金はレスポンスのカラットで計算します。EGPでは10ポンド未満を除き整数です。
gramBuy, gramSell
EGP建ての金のみ:グラムの推定買値と売値。
karat
金のみ:グラム価格のカラット。
prevClose, chPercent
Proのみ:指定通貨での直近の終値と、そこからの変化率(%)。終値がない場合はnullです。
updatedAt
この応答の時刻。

レスポンスコード

200 OK401 api_key_required401 invalid_api_key403 key_disabled403 account_suspended403 email_not_verified400 unknown_currency_or_unavailable400 unknown_karat400 karat_only_for_gold404 unknown_symbol429 rate_limit_exceeded

レスポンススキーマ

{
  "symbol": string,
  "name": string,
  "currency": string,
  "unit": string,        // "oz" | "lb"
  "price": number,
  "gram": number,
  "gramBuy"?: number,    // gold in EGP
  "gramSell"?: number,   // gold in EGP
  "karat"?: number,      // gold
  "prevClose"?: number | null,  // Pro
  "chPercent"?: number | null,  // Pro
  "updatedAt": string    // ISO-8601
}
レスポンス例
{
    "symbol": "XAU",
    "name": "Gold",
    "currency": "USD",
    "unit": "oz",
    "price": 4072.1,
    "gram": 130.921,
    "karat": 24,
    "updatedAt": "2026-11-07T02:39:32+02:00"
}

カラット別価格

GET/api/v1/karatAPIキー · Free以上

金のグラムあたりのライブ価格を、全カラット(24、22、21、18、14)について1回のリクエストで返します。1つのカラットだけなら /price を使います。

クエリパラメーター

currencystring
通貨コード。既定はUSD。/rates にあるコードを使えます。

レスポンスのフィールド

karats[].karat
カラットとその純度: 24 = 100%, 22 = 91.66%, 21 = 87.5%, 18 = 75%, 14 = 58.33%。
karats[].gram
1グラムの価格。金はレスポンスのカラットで計算します。EGPでは10ポンド未満を除き整数です。
karats[].gramBuy, gramSell
EGP建ての金のみ:グラムの推定買値と売値。
updatedAt
この応答の時刻。

レスポンスコード

200 OK401 api_key_required401 invalid_api_key403 key_disabled403 account_suspended403 email_not_verified400 unknown_currency_or_unavailable429 rate_limit_exceeded503 prices_unavailable

レスポンススキーマ

{
  "currency": string,
  "karats": [
    {
      "karat": number,
      "gram": number,
      "gramBuy"?: number,   // EGP
      "gramSell"?: number   // EGP
    }
  ],
  "updatedAt": string    // ISO-8601
}
レスポンス例
{
    "currency": "USD",
    "karats": [
        {
            "karat": 24,
            "gram": 130.921
        },
        {
            "karat": 22,
            "gram": 120.0022
        },
        {
            "karat": 21,
            "gram": 114.5558
        },
        {
            "karat": 18,
            "gram": 98.1907
        },
        {
            "karat": 14,
            "gram": 76.3662
        }
    ],
    "updatedAt": "2026-11-07T02:39:32+02:00"
}

換算

GET/api/v1/convertAPIキー · Free以上

金属と通貨、2つの金属、2つの通貨の間をライブ価格で換算します。金はカラットを選べます。

クエリパラメーター

fromstring必須
換算元: 金属(XAU、XAG、XPT、XPD、HG)または /rates にある通貨コード。
tostring必須
換算先。選択肢は from と同じです。
amountnumber
数量。デフォルトは1で、0より大きい必要があります。
unitstring
金属側の単位: gram, tola, oz, tael, kilo, lb。デフォルトは金属自体の単位です(oz、銅は lb)。
karatint
片方が金の場合: 24, 22, 21, 18, 14。デフォルトは24。

レスポンスのフィールド

unit
金属側の単位。両方が通貨の場合は含まれません。
karat
使用したカラット。片方が金の場合のみ。
rate
from 1単位あたりの to での価値。
result
数量に rate を掛けた値。
updatedAt
この応答の時刻。

レスポンスコード

200 OK401 api_key_required401 invalid_api_key403 key_disabled403 account_suspended403 email_not_verified400 from_and_to_required400 invalid_amount400 unknown_unit400 unknown_karat400 karat_only_for_gold400 unknown_currency_or_unavailable429 rate_limit_exceeded503 prices_unavailable

レスポンススキーマ

{
  "from": string,
  "to": string,
  "amount": number,
  "unit"?: string,     // metal side
  "karat"?: number,    // gold side
  "rate": number,
  "result": number,
  "updatedAt": string  // ISO-8601
}
レスポンス例
{
    "from": "XAU",
    "to": "USD",
    "amount": 1,
    "unit": "gram",
    "karat": 24,
    "rate": 130.921,
    "result": 130.92,
    "updatedAt": "2026-11-07T02:39:32+02:00"
}

シンボル

GET/api/v1/symbolsAPIキー · Free以上

APIが扱う金属と、その名前と単位を返します。

レスポンスのフィールド

symbol
金属のシンボル。
name
金属の名前。
unit
価格の単位:oz または lb。

レスポンスコード

200 OK401 api_key_required401 invalid_api_key403 key_disabled403 account_suspended403 email_not_verified429 rate_limit_exceeded

レスポンススキーマ

{
  "symbols": [
    { "symbol": string, "name": string, "unit": string }
  ],
  "_server_time": string  // ISO-8601
}
レスポンス例
{
    "symbols": [
        {
            "symbol": "XAU",
            "name": "Gold",
            "unit": "oz"
        },
        {
            "symbol": "XAG",
            "name": "Silver",
            "unit": "oz"
        },
        {
            "symbol": "XPT",
            "name": "Platinum",
            "unit": "oz"
        },
        {
            "symbol": "XPD",
            "name": "Palladium",
            "unit": "oz"
        },
        {
            "symbol": "HG",
            "name": "Copper",
            "unit": "lb"
        }
    ],
    "_server_time": "2026-11-07T02:39:32+02:00"
}

為替レート

GET/api/v1/ratesAPIキー · Free以上

米ドルに対する今日の為替レートを、よく使われる通貨から順に返します。

レスポンスのフィールド

base
基準通貨:USD。
rates
1米ドルに対する各通貨のレート。

レスポンスコード

200 OK401 api_key_required401 invalid_api_key403 key_disabled403 account_suspended403 email_not_verified429 rate_limit_exceeded

レスポンススキーマ

{
  "base": "USD",
  "rates": { [currency: string]: number },
  "_server_time": string  // ISO-8601
}
レスポンス例
{
    "base": "USD",
    "rates": {
        "USD": 1,
        "EUR": 0.89048,
        "GBP": 0.742915,
        "INR": 94.537031,
        "CNY": 6.682525,
        "JPY": 157.835475
    },
    "_server_time": "2026-11-07T02:39:32+02:00"
}

日次履歴

GET/api/v1/history/{symbol}APIキー · Basic以上

金属の日次終値を古い順に、アーカイブにある範囲で返します。最後は進行中の当日なので、days より1行多い場合があります。各日はその日の為替レートを使い、EGP建ての金はその日の現地市場プレミアムも使います。保存レートがない日は除かれます。

パスパラメーター

symbolstring必須
金属:XAU、XAG、XPT、XPD、HG。

クエリパラメーター

currencystring
通貨コード。既定はUSD。日次データがある通貨のみで、「通貨」に一覧があります。
rangestring
1W、1M、3M、6M、1Y、ALL(10年)。days より優先され、他の値は無視されます。
daysint
日数。既定は365。1〜3650の範囲に収められます。

レスポンスのフィールド

days
range と1〜3650の制限を適用した後の日数です。
count
返された行数。
history[].date, close
日付と単位あたりの終値。当日の終値は1日が終わるまで変わります。

レスポンスコード

200 OK401 api_key_required401 invalid_api_key403 key_disabled403 account_suspended403 email_not_verified400 unknown_currency403 feature_requires_basic404 unknown_symbol429 rate_limit_exceeded

レスポンススキーマ

{
  "symbol": string,
  "currency": string,
  "days": number,
  "count": number,
  "history": [
    { "date": string, "close": number }  // YYYY-MM-DD, oldest first
  ],
  "_server_time": string  // ISO-8601
}
レスポンス例
{
    "symbol": "XAU",
    "currency": "USD",
    "days": 1,
    "count": 2,
    "history": [
        {
            "date": "2026-11-06",
            "close": 4072
        },
        {
            "date": "2026-11-07",
            "close": 4072.1001
        }
    ],
    "_server_time": "2026-11-07T02:39:32+02:00"
}

日次ローソク足

GET/api/v1/ohlc/{symbol}APIキー · Pro以上

1日ごとのローソク足を古い順に返し、最後は進行中の当日です。各日はその日の為替レートを使い、EGP建ての金はその日の現地市場プレミアムも使います。保存レートがない日は除かれます。

パスパラメーター

symbolstring必須
金属:XAU、XAG、XPT、XPD、HG。

クエリパラメーター

currencystring
通貨コード。既定はUSD。日次データがある通貨のみで、「通貨」に一覧があります。
startunix
開始日(Unix時間、秒)。既定は保存されている最初の日です。
endunix
終了日(Unix時間、秒)。既定は今日までです。

レスポンスのフィールド

count
返された行数。
candles[].date, open, high, low, close
日付と単位あたりの価格。
candles[].sealed
確定した日は true、まだ変わる可能性があれば false。

レスポンスコード

200 OK401 api_key_required401 invalid_api_key403 key_disabled403 account_suspended403 email_not_verified400 unknown_currency403 feature_requires_pro404 unknown_symbol429 rate_limit_exceeded

レスポンススキーマ

{
  "symbol": string,
  "currency": string,
  "count": number,
  "candles": [
    {
      "date": string,  // YYYY-MM-DD
      "open": number,
      "high": number,
      "low": number,
      "close": number,
      "sealed": boolean
    }
  ],
  "_server_time": string  // ISO-8601
}
レスポンス例
{
    "symbol": "XAU",
    "currency": "USD",
    "count": 2,
    "candles": [
        {
            "date": "2026-11-06",
            "open": 4090.3,
            "high": 4106.7998,
            "low": 4032.5,
            "close": 4072,
            "sealed": true
        },
        {
            "date": "2026-11-07",
            "open": 4072.3999,
            "high": 4072.3999,
            "low": 4072.1001,
            "close": 4072.1001,
            "sealed": false
        }
    ],
    "_server_time": "2026-11-07T02:39:32+02:00"
}

通貨

/price、/karat、/convert、/rates は166通貨に対応し、/rates に一覧があります。/history と /ohlc は各日のレートを保存しているため、下記の47通貨に対応します。この2つで他のコードを指定すると、400 unknown_currency が返ります。

USDEGPSARAEDKWDQARBHDOMRJODIQDLBPSDGYERLYDTNDDZDMADEURGBPTRYINRIDRCNYVNDPKRJPYCADAUDSGDHKDKRWTHBPHPMXNBRLZARCHFNZDILSMYRPLNCZKSEKNOKDKKHUFRON

エラー

エラーは error フィールドを持つJSONで、表にあるフィールドが加わるものもあります。リクエストはキー、時間制限、プラン、パラメーターの順に確認されます。

ステータスエラー発生条件追加で返す項目
400unknown_currency_or_unavailable不明な通貨、または現在価格を取得できないsymbol, currency
400unknown_currency/history または /ohlc で、日次データのない通貨を指定した場合currency, allowed
400unknown_karat24、22、21、18、14以外のカラットkarat, allowed
400karat_only_for_gold金以外の金属にカラットを指定symbol
400from_and_to_requiredfrom または to がありません
400invalid_amountamount が0より大きい数値ではありませんamount
400unknown_unitgram, tola, oz, tael, kilo, lb 以外の単位unit, allowed
401api_key_requiredリクエストにキーがない
401invalid_api_keyキーが無効
403feature_requires_basicプランにこのエンドポイントが含まれない
403feature_requires_proプランにこのエンドポイントが含まれない
403key_disabledキーが無効
403account_suspendedアカウントが停止中
403email_not_verifiedアカウントのメールが未確認
403Forbidden/api または /api/v1 のみのアドレス。レスポンスは error ではなく status と message です。
404unknown_symbol不明な金属symbol
404not_foundそのエンドポイントがないか、パスに余分な部分があります。履歴とローソク足の currency はクエリパラメーターのみです。
429rate_limit_exceededプランの1時間あたりのリクエストを超えた
503prices_unavailable金属の価格を現在取得できません