{"openapi":"3.0.3","info":{"title":"MetalCharts API","description":"Live and historical prices for precious and base metals, plus the exchange data behind them: COMEX warehouse inventory and deliveries, LBMA vaults and clearing, Shanghai SGE and SHFE, India MCX premiums, Guangzhou GFEX warehouse receipts, and CFTC Commitments of Traders positioning. Commercial use is permitted on every plan including the free tier, which allows 200 requests a month. On the free tier, any public display of the data must show a visible link to https://metalcharts.org, such as \"Metal prices by MetalCharts\"; free-tier responses carry an X-Attribution header saying so. Paid plans need no link.","version":"1.0.0","termsOfService":"https://metalcharts.org/api-terms","contact":{"name":"MetalCharts support","email":"support@metalcharts.org","url":"https://metalcharts.org/contact"},"x-logo":{"url":"https://metalcharts.org/icon-512.png","backgroundColor":"#121212"}},"servers":[{"url":"https://api.metalcharts.org","description":"Production"},{"url":"http://localhost:4000","description":"Local development"}],"tags":[{"name":"Prices","description":"Real-time spot prices for all supported assets"},{"name":"History","description":"Historical price data and candles"},{"name":"Metals","description":"Precious and base metals data"},{"name":"Futures","description":"Futures contracts and settlement data"},{"name":"Regional","description":"Regional exchange data (COMEX, LBMA, Shanghai, India, GFEX)"},{"name":"Commodities","description":"Energy, agriculture, and industrial commodities"},{"name":"Crypto","description":"Cryptocurrency prices and history"},{"name":"ETFs","description":"Exchange-traded fund prices and history"},{"name":"Markets","description":"Market indices and 24/7 markets"},{"name":"News","description":"Market news, sentiment, and summaries"},{"name":"Analytics","description":"COT positioning, supply, ATH, currency rates, and economic calendar"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"Pass your API key as: Authorization: Bearer mc_live_..."}},"schemas":{}},"paths":{"/v1/prices/":{"get":{"description":"Latest spot prices for all supported assets (precious and base metals plus key benchmarks) in a single call, keyed by symbol.","tags":["Prices"],"responses":{"200":{"description":"Spot prices keyed by metal symbol.","content":{"application/json":{"schema":{"type":"object","required":["success","data","count","source","cacheAge","isStale","timestamp"],"properties":{"success":{"type":"boolean"},"data":{"description":"Keyed by metal symbol: XAU, XAG, XPT, XPD, HG, ALI, NI, ZN, PB.","type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["symbol","price","exchange","marketType","timestamp"],"properties":{"symbol":{"examples":["XAU"],"type":"string"},"price":{"type":"number"},"change24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"changePercent24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"high24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"low24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"exchange":{"examples":["SPOT"],"type":"string"},"marketType":{"examples":["spot"],"type":"string"},"timestamp":{"format":"date-time","type":"string"},"open24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"bid":{"description":"Indicative bid, a fixed spread below the mid price.","anyOf":[{"type":"number"},{"type":"null"}]},"ask":{"description":"Indicative ask, a fixed spread above the mid price.","anyOf":[{"type":"number"},{"type":"null"}]},"stale":{"description":"True when this quote's feed hasn't updated for more than five days.","type":"boolean"}}}}},"count":{"type":"number"},"source":{"type":"string"},"cacheAge":{"description":"Seconds since the cached value was written.","type":"number"},"isStale":{"type":"boolean"},"timestamp":{"format":"date-time","type":"string"},"_rid":{"description":"Request id, for support.","type":"string"}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Prices"}},"/v1/history/{symbol}":{"get":{"description":"Historical price series for a metal. Symbols are the metal codes, not names: XAU (gold), XAG (silver), XPT (platinum), XPD (palladium), HG (copper), plus ALI, NI, ZN, PB, SN, JBP, LC and UXA. `GOLD` is not valid here; it belongs to /v1/markets. Use the range parameter (for example 1M, 6M, 1Y) or explicit start and end dates to set the window, and interval to pick the candle size. Supported intervals are 15m, 30m, 45m, 1h, 2h, 4h, 8h, 1d, 1w and 1M; intraday intervals read the interval candle tables and 1w/1M are aggregated from daily candles.","tags":["History"],"responses":{"200":{"description":"OHLC series, oldest first.","content":{"application/json":{"schema":{"type":"object","required":["success","data","symbol","range","startDate","endDate","count","source"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","required":["timestamp","price","open","high","low","close","volume"],"properties":{"timestamp":{"format":"date-time","type":"string"},"price":{"description":"Same as close. Kept for older consumers.","type":"number"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"},"volume":{"description":"0 where the source publishes no volume.","type":"number"}}}},"symbol":{"examples":["XAU"],"type":"string"},"range":{"examples":["1Y"],"type":"string"},"startDate":{"type":"string"},"endDate":{"type":"string"},"count":{"type":"number"},"source":{"type":"string"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}]},"_rid":{"description":"Request id, for support.","type":"string"}}}}}},"400":{"description":"Invalid range, interval or symbol.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}},"403":{"description":"Requested history exceeds the plan's limit.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["XAU"],"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1HistoryBySymbol"}},"/v1/metals/":{"get":{"description":"Reference list of supported metals with their names, categories, and units.","tags":["Prices"],"responses":{"200":{"description":"Every tracked metal with its latest price.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["symbol","name","price"],"properties":{"symbol":{"examples":["XAU"],"type":"string"},"name":{"type":"string"},"price":{"type":"number"},"category":{"anyOf":[{"examples":["precious"],"type":"string"},{"type":"null"}]},"unit":{"anyOf":[{"examples":["oz"],"type":"string"},{"type":"null"}]},"change24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"change7d":{"anyOf":[{"type":"number"},{"type":"null"}]},"high24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"low24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}},"sparklines":{"description":"Recent price points per symbol, for inline charts.","type":"object","patternProperties":{"^(.*)$":{"type":"array","items":{"type":"number"}}}}}}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Metals"}},"/v1/market-status/":{"get":{"description":"Current open or closed status and trading hours for supported exchanges.","tags":["Markets"],"responses":{"200":{"description":"Open/closed state per venue.","content":{"application/json":{"schema":{"type":"object","required":["success","exchanges","timestamp"],"properties":{"success":{"type":"boolean"},"exchanges":{"description":"Keyed by venue: COMEX, LME, LBMA, SHFE, SGE, TOCOM, MCX.","type":"object","patternProperties":{"^(.*)$":{"type":"object","required":["name","country","currency","isOpen","isHoliday","localTime","timezone","tradingHours","tradingDays"],"properties":{"name":{"examples":["COMEX (CME Group)"],"type":"string"},"country":{"type":"string"},"currency":{"examples":["USD"],"type":"string"},"isOpen":{"type":"boolean"},"isHoliday":{"type":"boolean"},"holidayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"localTime":{"description":"HH:mm in the venue's own timezone.","type":"string"},"timezone":{"examples":["America/New_York"],"type":"string"},"tradingHours":{"description":"Local session windows, comma separated where a venue breaks.","type":"string"},"tradingDays":{"examples":["Mon-Fri"],"type":"string"},"nextOpen":{"anyOf":[{"type":"object","required":["msUntilOpen","countdown","nextSessionStart"],"properties":{"msUntilOpen":{"type":"number"},"countdown":{"examples":["5h 54m"],"type":"string"},"nextSessionStart":{"examples":["00:00"],"type":"string"}}},{"type":"null"}]}}}}},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"exchange","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Market-status"}},"/v1/currency/":{"get":{"description":"Latest foreign exchange rates against a base currency (USD by default).","tags":["Analytics"],"responses":{"200":{"description":"Exchange rates keyed by ISO 4217 code.","content":{"application/json":{"schema":{"type":"object","required":["success","base","rates"],"properties":{"success":{"type":"boolean"},"base":{"examples":["USD"],"type":"string"},"date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}]},"rates":{"description":"Rate per unit of `base`, keyed by ISO 4217 code.","type":"object","patternProperties":{"^(.*)$":{"type":"number"}}},"timestamp":{"anyOf":[{"description":"Unix seconds.","type":"number"},{"type":"null"}]},"source":{"anyOf":[{"type":"string"},{"type":"null"}]},"currencies":{"type":"array","items":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"operationId":"getV1Currency"}},"/v1/health/":{"get":{"description":"Service health and database connectivity. Free on every plan and weight 0, so a monitor can poll it without consuming quota.","tags":["Markets"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}}}}}}},"operationId":"getV1Health"}},"/v1/shanghai/":{"get":{"description":"Latest Shanghai Gold Exchange spot prices and premium to Western pricing. `price` is USD per troy ounce, `priceCNY` is in the exchange's native unit (CNY/kg for silver, CNY/g for gold), and `exchangeRate` is USD/CNY. Shanghai silver prices (SGE and SHFE) include China's VAT and are returned as quoted; `priceExVat`, `priceCNYExVat` and `premiumPercentExVat` strip it at `vatRate`, and `vatInclusive` says whether a price carries VAT. Gold carries none, so its ex-VAT fields equal the raw ones.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"XAU":{"type":"object","properties":{"symbol":{"type":"string"},"exchange":{"type":"string"},"marketType":{"type":"string"},"price":{"type":"number"},"priceCNY":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"exchangeRate":{"type":"number"},"source":{"type":"string"},"vatInclusive":{"type":"boolean"},"vatRate":{"type":"number"},"priceExVat":{"type":"number"},"priceCNYExVat":{"type":"number"},"premiumPercent":{"type":"number"},"premiumPercentExVat":{"type":"number"}}},"XAG":{"type":"object","properties":{"symbol":{"type":"string"},"exchange":{"type":"string"},"marketType":{"type":"string"},"price":{"type":"number"},"priceCNY":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"exchangeRate":{"type":"number"},"source":{"type":"string"},"vatInclusive":{"type":"boolean"},"vatRate":{"type":"number"},"priceExVat":{"type":"number"},"priceCNYExVat":{"type":"number"},"premiumPercent":{"type":"number"},"premiumPercentExVat":{"type":"number"}}}}},"count":{"type":"number"},"source":{"type":"string"},"series":{"type":"string"},"cacheAge":{"type":"number"},"isStale":{"type":"boolean"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"series","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Shanghai"}},"/v1/shanghai/history":{"get":{"description":"Historical Shanghai silver premium series versus Western pricing. `shanghai` and `premiumPercent` use the SGE silver price as quoted, which includes China's VAT; `shanghaiExVat` and `premiumPercentExVat` strip it at the rate in force on each date (13% since 2019-04-01, 16% from 2018-05-01, 17% before). Requires the Pro plan or higher.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"premium":{"anyOf":[{"type":"number"},{"type":"null"}]},"premiumPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"premiumPercentExVat":{"anyOf":[{"type":"number"},{"type":"null"}]},"shanghai":{"type":"number"},"shanghaiExVat":{"type":"number"},"western":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"vatInclusive":{"type":"boolean"},"count":{"type":"number"},"source":{"type":"string"},"series":{"type":"string"},"range":{"type":"object","properties":{"minDate":{"format":"date","type":"string"},"maxDate":{"format":"date","type":"string"},"totalRecords":{"type":"number"}}},"requestedRange":{"type":"object","properties":{"start":{"format":"date","type":"string"},"end":{"format":"date","type":"string"}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"series","in":"query","required":false,"schema":{"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1ShanghaiHistory"}},"/v1/shanghai/gold/history":{"get":{"description":"Historical Shanghai gold price series. Gold carries no VAT, so `shanghaiExVat` and `premiumPercentExVat` equal the raw values. Requires the Pro plan or higher.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"premium":{"anyOf":[{"type":"number"},{"type":"null"}]},"premiumPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"premiumPercentExVat":{"anyOf":[{"type":"number"},{"type":"null"}]},"shanghai":{"type":"number"},"shanghaiExVat":{"type":"number"},"western":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"vatInclusive":{"type":"boolean"},"count":{"type":"number"},"source":{"type":"string"},"series":{"type":"string"},"range":{"type":"object","properties":{"minDate":{"format":"date","type":"string"},"maxDate":{"format":"date","type":"string"},"totalRecords":{"type":"number"}}},"requestedRange":{"type":"object","properties":{"start":{"format":"date","type":"string"},"end":{"format":"date","type":"string"}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"series","in":"query","required":false,"schema":{"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1ShanghaiGoldHistory"}},"/v1/india/":{"get":{"description":"Latest MCX India spot prices and premium to Western pricing.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"XAU":{"type":"object","properties":{"symbol":{"type":"string"},"indiaSymbol":{"type":"string"},"price":{"type":"number"},"priceRaw":{"type":"number"},"unit":{"type":"string"},"unitRaw":{"type":"string"},"premium":{"type":"number"},"premiumPercent":{"type":"number"},"source":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}}},"XAG":{"type":"object","properties":{"symbol":{"type":"string"},"indiaSymbol":{"type":"string"},"price":{"type":"number"},"priceRaw":{"type":"number"},"unit":{"type":"string"},"unitRaw":{"type":"string"},"premium":{"type":"number"},"premiumPercent":{"type":"number"},"source":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}}}}},"futures":{"type":"object","properties":{"symbol":{"type":"string"},"price":{"type":"number"},"priceINR":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"source":{"type":"string"}}},"futuresMap":{"type":"object","properties":{"XAU":{"type":"object","properties":{"symbol":{"type":"string"},"price":{"type":"number"},"priceINR":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"source":{"type":"string"}}},"XAG":{"type":"object","properties":{"symbol":{"type":"string"},"price":{"type":"number"},"priceINR":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"source":{"type":"string"}}}}},"count":{"type":"number"},"source":{"type":"string"},"cacheAge":{"type":"number"},"isStale":{"type":"boolean"},"lastUpdated":{"format":"date-time","type":"string"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string"}},{"name":"fresh","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1India"}},"/v1/india/history":{"get":{"description":"Historical MCX India premium series versus Western pricing. Requires the Pro plan or higher.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"india":{"anyOf":[{"type":"number"},{"type":"null"}]},"indiaINR":{"anyOf":[{"type":"number"},{"type":"null"}]},"premium":{"anyOf":[{"type":"number"},{"type":"null"}]},"premiumPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"western":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"count":{"type":"number"},"symbol":{"type":"string"},"range":{"type":"object","properties":{"minDate":{"format":"date","type":"string"},"maxDate":{"format":"date","type":"string"},"totalRecords":{"type":"number"}}},"requestedRange":{"type":"object","properties":{"start":{"anyOf":[{},{"type":"null"}]},"end":{"format":"date","type":"string"}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1IndiaHistory"}},"/v1/shfe/settlement":{"get":{"description":"Shanghai Futures Exchange settlement price history for a metal. Requires the Pro plan or higher. Every response carries asOf, ageDays and a stale flag, so you can tell a current series from one that has stopped updating without inspecting the array.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"total":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"description":"Required. cu, al, zn, pb, ni, sn, au or ag.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1ShfeSettlement"}},"/v1/shfe/inventory":{"get":{"description":"Shanghai Futures Exchange warehouse inventory history for a metal. Requires the Pro plan or higher. Every response carries asOf, ageDays and a stale flag, so you can tell a current series from one that has stopped updating without inspecting the array.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"total":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"description":"Required. cu, al, zn, pb, ni, sn, au or ag.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1ShfeInventory"}},"/v1/comex/inventory":{"get":{"description":"COMEX warehouse inventory history for a metal symbol. Requires the Pro plan or higher. Every response carries asOf, ageDays and a stale flag, so you can tell a current series from one that has stopped updating without inspecting the array.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"eligible":{"anyOf":[{"type":"number"},{"type":"null"}]},"registered":{"anyOf":[{"type":"number"},{"type":"null"}]},"total":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"description":"Required. Metal symbol: XAU, XAG, HG, XPT, XPD, ALI, ZN or PB (availability varies by endpoint).","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1ComexInventory"}},"/v1/comex/volume-oi":{"get":{"description":"COMEX volume and open interest for a metal symbol. Requires the Pro plan or higher. Every response carries asOf, ageDays and a stale flag, so you can tell a current series from one that has stopped updating without inspecting the array.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"data":{"type":"object","properties":{"date":{"format":"date","type":"string"},"openInterest":{"type":"number"},"volume":{"type":"number"}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"description":"Required. Metal symbol: XAU, XAG, HG, XPT, XPD, ALI, ZN or PB (availability varies by endpoint).","type":"string"}}],"operationId":"getV1ComexVolume-oi"}},"/v1/comex/delivery-notices":{"get":{"description":"COMEX delivery notice history for a metal symbol. Requires the Pro plan or higher. Every response carries asOf, ageDays and a stale flag, so you can tell a current series from one that has stopped updating without inspecting the array.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"dailyIssued":{"type":"number"},"dailyStopped":{"type":"number"},"date":{"format":"date","type":"string"},"exchange":{"type":"string"},"mtdCumulative":{"anyOf":[{"type":"number"},{"type":"null"}]},"settlementPrice":{"anyOf":[{},{"type":"null"}]},"symbol":{"type":"string"},"ytdCumulative":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbol","in":"query","required":true,"schema":{"description":"Required. Metal symbol: XAU, XAG, HG, XPT, XPD, ALI, ZN or PB (availability varies by endpoint).","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"year","in":"query","required":false,"schema":{"type":"string"}},{"name":"date","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1ComexDelivery-notices"}},"/v1/sge/trading":{"get":{"description":"Shanghai Gold Exchange contract trading history. Requires the Pro plan or higher.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"contract":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"total":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"contract","in":"query","required":true,"schema":{"description":"Required. Au99.99, Au99.95, Au(T+D), mAu(T+D), Ag(T+D) or Ag99.99.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1SgeTrading"}},"/v1/sge/benchmark":{"get":{"description":"Shanghai Gold Exchange benchmark price history for gold or silver. Requires the Pro plan or higher.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"metal":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"amPrice":{"type":"number"},"date":{"format":"date","type":"string"},"pmPrice":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"metal","in":"query","required":true,"schema":{"description":"Required. gold or silver.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1SgeBenchmark"}},"/v1/sge/inventory":{"get":{"description":"Shanghai Gold Exchange vault inventory history. Every response carries asOf, ageDays and a stale flag, so you can tell current inventory from an archived series without inspecting the array. Coverage is uneven and worth knowing before you build on it: silver vault stock updates normally, but the exchange feed has only ever produced ten gold vault-stock observations and the most recent is from January 2016, so metal=gold returns an archive rather than a current series. Requires the Pro plan or higher.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"metal":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"total":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"metal","in":"query","required":true,"schema":{"description":"Required. gold or silver.","examples":["silver"],"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"examples":["1Y"],"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"examples":["latest"],"type":"string"}}],"operationId":"getV1SgeInventory"}},"/v1/gfex/settlement":{"get":{"description":"GFEX settlement price history for platinum or palladium. Requires the Ultimate plan.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"total":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"description":"Required. pt or pd.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1GfexSettlement"}},"/v1/gfex/premium":{"get":{"description":"GFEX platinum and palladium premium history versus Western pricing. Requires the Ultimate plan.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"gfex":{"type":"number"},"premium":{"anyOf":[{"type":"number"},{"type":"null"}]},"premiumPercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"western":{"anyOf":[{"type":"number"},{"type":"null"}]}}}},"count":{"type":"number"},"symbol":{"type":"string"},"cnyRate":{"type":"number"},"requestedRange":{"type":"object","properties":{"start":{"format":"date","type":"string"},"end":{"format":"date","type":"string"}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}},"503":{"description":"No USD/CNY rate stored to convert GFEX prices with.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1GfexPremium"}},"/v1/gfex/receipts":{"get":{"description":"GFEX registered warehouse receipts, per warehouse and per day. Covers lithium carbonate (LC), industrial silicon (SI) and polysilicon (PS), which is Chinese battery and solar supply-chain inventory published only in Chinese, plus platinum (XPT) and palladium (XPD). The default response is the per-warehouse breakdown for the most recent date, or an explicit date. Pass type=totals for the exchange-wide daily series instead. Warehouse names are the exchange's own and are passed through unaltered, because they are identifiers you match against exchange notices. Requires the Ultimate plan.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"asOf":{"format":"date","type":"string"},"total":{"type":"number"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"cancelled":{"type":"number"},"change":{"type":"number"},"date":{"format":"date","type":"string"},"quantity":{"type":"number"},"registered":{"type":"number"},"warehouse":{"type":"string"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"query","required":true,"schema":{"description":"Required. LC, SI, PS, XPT or XPD.","examples":["LC"],"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"examples":["totals"],"type":"string"}},{"name":"date","in":"query","required":false,"schema":{"examples":["2026-09-17"],"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"examples":["2026-01-01"],"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"examples":["2026-09-17"],"type":"string"}}],"operationId":"getV1GfexReceipts"}},"/v1/gfex/receipts/coverage":{"get":{"description":"Which symbols the GFEX receipts dataset covers, how many warehouses each spans, and the date range held. Requires the Ultimate plan.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"from":{"format":"date","type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"to":{"format":"date","type":"string"},"warehouses":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"operationId":"getV1GfexReceiptsCoverage"}},"/v1/lbma/vault":{"get":{"description":"LBMA vault holdings history for gold or silver. Requires the Pro plan or higher. Every response carries asOf, ageDays and a stale flag, so you can tell a current series from one that has stopped updating without inspecting the array.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"metal":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"total":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"metal","in":"query","required":true,"schema":{"description":"Required. gold or silver.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1LbmaVault"}},"/v1/lbma/clearing":{"get":{"description":"LBMA clearing statistics for gold or silver. Requires the Pro plan or higher. Every response carries asOf, ageDays and a stale flag, so you can tell a current series from one that has stopped updating without inspecting the array.","tags":["Regional"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"metal":{"type":"string"},"range":{"type":"string"},"asOf":{"format":"date","type":"string"},"ageDays":{"type":"number"},"stale":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"format":"date","type":"string"},"transfers":{"type":"number"},"value":{"type":"number"},"volume":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"metal","in":"query","required":true,"schema":{"description":"Required. gold or silver.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1LbmaClearing"}},"/v1/news/":{"get":{"description":"Latest market news articles.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"articles":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"description":{"type":"string"},"entities":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"}},"orgs":{"type":"array","items":{"type":"string"}},"people":{"type":"array","items":{"type":"string"}}}},"id":{"type":"string"},"imageUrl":{"type":"string"},"keyTopics":{"type":"array","items":{"type":"string"}},"marketImpact":{"type":"string"},"publishedAt":{"format":"date-time","type":"string"},"relevanceScore":{"type":"number"},"sentiment":{"type":"string"},"sentimentScore":{"type":"number"},"source":{"type":"string"},"subcategory":{"type":"string"},"symbols":{"type":"array","items":{"type":"string"}},"tickers":{"type":"array","items":{"type":"string"}},"title":{"type":"string"},"url":{"type":"string"}}}},"count":{"type":"number"},"source":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"operationId":"getV1News"}},"/v1/news/feed":{"get":{"description":"Paginated market news feed.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"articles":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"description":{"type":"string"},"entities":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"}},"orgs":{"type":"array","items":{"type":"string"}},"people":{"type":"array","items":{"type":"string"}}}},"id":{"type":"string"},"imageUrl":{"type":"string"},"keyTopics":{"type":"array","items":{"type":"string"}},"marketImpact":{"type":"string"},"publishedAt":{"format":"date-time","type":"string"},"relevanceScore":{"type":"number"},"sentiment":{"type":"string"},"sentimentScore":{"type":"number"},"source":{"type":"string"},"subcategory":{"type":"string"},"symbols":{"type":"array","items":{"type":"string"}},"tickers":{"type":"array","items":{"type":"string"}},"title":{"type":"string"},"url":{"type":"string"}}}},"grouped":{"type":"object","properties":{"Today":{"type":"array","items":{"type":"string"}}}},"count":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbols","in":"query","required":false,"schema":{"type":"string"}},{"name":"sources","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"offset","in":"query","required":false,"schema":{"type":"string"}},{"name":"since","in":"query","required":false,"schema":{"type":"string"}},{"name":"timePeriod","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"impact","in":"query","required":false,"schema":{"type":"string"}},{"name":"sourceTypes","in":"query","required":false,"schema":{"type":"string"}},{"name":"excludeSourceTypes","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1NewsFeed"}},"/v1/news/search":{"get":{"description":"Search news articles by keyword. Costs 3 weight per request.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"article":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"source":{"type":"string"},"publishedAt":{"format":"date-time","type":"string"},"imageUrl":{"type":"string"},"sentiment":{"type":"string"},"symbols":{"type":"array","items":{}},"category":{"type":"string"},"sentimentScore":{"type":"number"},"relevanceScore":{"type":"number"},"marketImpact":{"type":"string"},"keyTopics":{"type":"array","items":{"type":"string"}},"subcategory":{"type":"string"},"entities":{"type":"object","properties":{"orgs":{"type":"array","items":{"type":"string"}},"people":{"type":"array","items":{}},"locations":{"type":"array","items":{}}}},"tickers":{"type":"array","items":{"type":"string"}}}},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1NewsSearch"}},"/v1/news/filters":{"get":{"description":"Every filter value available on the news endpoints, with a count per value: sources, categories and symbols. Call this to build a filter UI rather than hard-coding the options.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"filters":{"type":"object","properties":{"sources":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"label":{"type":"string"},"value":{"type":"string"}}}},"categories":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"label":{"type":"string"},"value":{"type":"string"}}}},"symbols":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"label":{"type":"string"},"value":{"type":"string"}}}},"sourceTypes":{"type":"array","items":{}}}},"totalArticles":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"operationId":"getV1NewsFilters"}},"/v1/news/categories":{"get":{"description":"The distinct news categories currently in use, for populating a category filter.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"categories":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"icon":{"type":"string"},"id":{"type":"string"},"label":{"type":"string"}}}},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"operationId":"getV1NewsCategories"}},"/v1/news/sentiment/candles/{symbol}":{"get":{"description":"News sentiment aggregated into OHLC-style candles, so sentiment can be charted alongside price. Requires the Ultimate plan.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"interval":{"type":"string"},"range":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"avgConfidence":{"type":"number"},"avgScore":{"type":"number"},"bearishCount":{"type":"number"},"bullishCount":{"type":"number"},"close":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"neutralCount":{"type":"number"},"open":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"volume":{"type":"number"}}}},"count":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["XAU"],"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1NewsSentimentCandlesBySymbol"}},"/v1/news/sentiment/{symbol}":{"get":{"description":"AI-scored news sentiment for one metal, aggregated across articles. Requires the Ultimate plan.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"sentiments":{"type":"array","items":{"type":"object","properties":{"articleId":{"type":"string"},"articleTitle":{"type":"string"},"assetClass":{"type":"string"},"confidence":{"type":"number"},"impact":{"type":"string"},"publishedAt":{"format":"date-time","type":"string"},"reasoning":{"type":"string"},"relationship":{"type":"string"},"score":{"type":"number"},"sentiment":{"type":"string"},"symbol":{"type":"string"}}}},"count":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["XAU"],"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1NewsSentimentBySymbol"}},"/v1/news/{symbol}":{"get":{"description":"Latest news articles filtered to a specific asset symbol.","tags":["News"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"articles":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"description":{"type":"string"},"entities":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string"}},"orgs":{"type":"array","items":{"type":"string"}},"people":{"type":"array","items":{"type":"string"}}}},"id":{"type":"string"},"imageUrl":{"type":"string"},"keyTopics":{"type":"array","items":{"type":"string"}},"marketImpact":{"type":"string"},"publishedAt":{"format":"date-time","type":"string"},"relevanceScore":{"type":"number"},"sentiment":{"type":"string"},"sentimentScore":{"type":"number"},"source":{"type":"string"},"subcategory":{"type":"string"},"symbols":{"type":"array","items":{"type":"string"}},"tickers":{"type":"array","items":{"type":"string"}},"title":{"type":"string"},"url":{"type":"string"}}}},"count":{"type":"number"},"source":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["XAU"],"type":"string"}},{"name":"includeTwitter","in":"query","required":false,"schema":{"type":"string"}},{"name":"sourceTypes","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1NewsBySymbol"}},"/v1/commodities/":{"get":{"description":"Latest prices for energy, agriculture, and industrial commodities. Symbols are contract codes such as CL1 (crude), CO1 (Brent), W_1 (wheat) and KC1 (coffee); call this endpoint to list them all. Requires the Basic plan or higher.","tags":["Commodities"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"change24h":{"type":"number"},"change7d":{"type":"number"},"high24h":{"type":"number"},"low24h":{"type":"number"},"name":{"type":"string"},"price":{"type":"number"},"symbol":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}},"sparklines":{"type":"object","patternProperties":{"^(.*)$":{"type":"array","items":{"type":"number"}}}}}},"cacheAge":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Commodities"}},"/v1/commodities/{symbol}/history":{"get":{"description":"Historical price series for a single commodity. Requires the Basic plan or higher.","tags":["Commodities"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}},"symbol":{"type":"string"},"range":{"type":"string"},"interval":{"type":"string"},"count":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["CL1"],"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1CommoditiesBySymbolHistory"}},"/v1/crypto/":{"get":{"description":"Latest cryptocurrency prices. Requires the Basic plan or higher.","tags":["Crypto"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"change24h":{"type":"number"},"change7d":{"anyOf":[{"type":"number"},{"type":"null"}]},"high24h":{"type":"number"},"low24h":{"type":"number"},"marketCap":{"type":"number"},"name":{"type":"string"},"price":{"type":"number"},"symbol":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"volume24h":{"type":"number"}}}},"sparklines":{"type":"object","patternProperties":{"^(.*)$":{"type":"array","items":{"type":"number"}}}}}},"cacheAge":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Crypto"}},"/v1/crypto/{symbol}/history":{"get":{"description":"Historical price series for a single cryptocurrency. Requires the Basic plan or higher.","tags":["Crypto"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}},"symbol":{"type":"string"},"range":{"type":"string"},"interval":{"type":"string"},"count":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["BTC"],"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1CryptoBySymbolHistory"}},"/v1/etfs/":{"get":{"description":"Latest prices for tracked ETFs such as GLD and SLV. Requires the Basic plan or higher.","tags":["ETFs"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"aum":{"type":"number"},"change24h":{"type":"number"},"change7d":{"type":"number"},"high24h":{"type":"number"},"low24h":{"type":"number"},"marketCap":{"anyOf":[{},{"type":"null"}]},"name":{"type":"string"},"price":{"type":"number"},"provider":{"type":"string"},"symbol":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"volume24h":{"type":"number"}}}},"sparklines":{"type":"object","properties":{"DBC":{"type":"array","items":{"type":"number"}},"GLD":{"type":"array","items":{"type":"number"}},"IAU":{"type":"array","items":{"type":"number"}},"PALL":{"type":"array","items":{"type":"number"}},"PDBC":{"type":"array","items":{"type":"number"}},"PPLT":{"type":"array","items":{"type":"number"}},"SLV":{"type":"array","items":{"type":"number"}}}}}},"cacheAge":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Etfs"}},"/v1/etfs/{symbol}/history":{"get":{"description":"Historical price series for a single ETF. Requires the Basic plan or higher.","tags":["ETFs"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}},"symbol":{"type":"string"},"range":{"type":"string"},"interval":{"type":"string"},"count":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["GLD"],"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1EtfsBySymbolHistory"}},"/v1/markets/":{"get":{"description":"Latest prices for 24/7 markets.","tags":["Markets"],"responses":{"200":{"description":"Every 24/7 market instrument with its latest price.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["symbol","name","price"],"properties":{"symbol":{"examples":["GOLD"],"type":"string"},"name":{"type":"string"},"price":{"type":"number"},"assetClass":{"anyOf":[{"examples":["commodity"],"type":"string"},{"type":"null"}]},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}]},"change24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"change7d":{"anyOf":[{"type":"number"},{"type":"null"}]},"high24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"low24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"volume24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}},"sparklines":{"type":"object","patternProperties":{"^(.*)$":{"type":"array","items":{"type":"number"}}}}}},"cacheAge":{"anyOf":[{"type":"number"},{"type":"null"}]},"timestamp":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Markets"}},"/v1/markets/{symbol}/history":{"get":{"description":"Historical series for a single 24/7 market. These symbols are plain names such as GOLD, SILVER, BTC and AAPL, unlike /v1/history which uses metal codes like XAU.","tags":["Markets"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}},"symbol":{"type":"string"},"range":{"type":"string"},"interval":{"type":"string"},"count":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["GOLD"],"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1MarketsBySymbolHistory"}},"/v1/indices/":{"get":{"description":"Latest values for market indices such as DXY, SPX, and DJI. Requires the Basic plan or higher.","tags":["Markets"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"DJI":{"type":"object","properties":{"symbol":{"type":"string"},"exchange":{"type":"string"},"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"source":{"type":"string"}}},"DXY":{"type":"object","properties":{"symbol":{"type":"string"},"exchange":{"type":"string"},"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"source":{"type":"string"}}},"SPX":{"type":"object","properties":{"symbol":{"type":"string"},"exchange":{"type":"string"},"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"},"source":{"type":"string"}}}}},"count":{"type":"number"},"source":{"type":"string"},"cacheAge":{"type":"number"},"isStale":{"type":"boolean"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbols","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Indices"}},"/v1/indices/history/{symbol}":{"get":{"description":"Historical series for a single market index. Requires the Basic plan or higher.","tags":["Markets"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"timestamp":{"format":"date-time","type":"string"}}}},"symbol":{"type":"string"},"interval":{"type":"string"},"range":{"anyOf":[{},{"type":"null"}]},"count":{"type":"number"},"source":{"type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["DXY"],"type":"string"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1IndicesHistoryBySymbol"}},"/v1/cot/":{"get":{"description":"COT (Commitments of Traders) positioning history for a metal. Requires the Pro plan or higher.","tags":["Analytics"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"metal":{"type":"string"},"range":{"type":"string"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"cftcContractCode":{"type":"string"},"marketName":{"type":"string"},"metal":{"type":"string"},"mmLong":{"type":"number"},"mmNet":{"type":"number"},"mmShort":{"type":"number"},"mmSpreading":{"type":"number"},"nrLong":{"type":"number"},"nrNet":{"type":"number"},"nrShort":{"type":"number"},"openInterest":{"type":"number"},"orLong":{"type":"number"},"orNet":{"type":"number"},"orShort":{"type":"number"},"orSpreading":{"type":"number"},"pmLong":{"type":"number"},"pmNet":{"type":"number"},"pmShort":{"type":"number"},"reportDate":{"format":"date","type":"string"},"sdLong":{"type":"number"},"sdNet":{"type":"number"},"sdShort":{"type":"number"},"sdSpreading":{"type":"number"}}}},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"metal","in":"query","required":true,"schema":{"description":"Required. XAU, XAG, HG, XPT or XPD.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Cot"}},"/v1/supply/":{"get":{"description":"Visible supply and inventory history for a metal. Requires the Ultimate plan.","tags":["Analytics"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"metal":{"type":"string"},"range":{"type":"string"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"comexEligible":{"anyOf":[{"type":"number"},{"type":"null"}]},"comexRegistered":{"anyOf":[{"type":"number"},{"type":"null"}]},"comexTotal":{"type":"number"},"date":{"format":"date","type":"string"},"lbmaTotal":{"type":"number"},"metal":{"type":"string"},"sgeTotal":{"anyOf":[{},{"type":"null"}]},"shfeTotal":{"anyOf":[{"type":"number"},{"type":"null"}]},"totalOz":{"type":"number"}}}},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"metal","in":"query","required":true,"schema":{"description":"Required. XAU or XAG.","type":"string"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Supply"}},"/v1/ath/{symbol}":{"get":{"description":"All time high price and the date it was recorded. Symbols are metal codes such as XAU, XAG, XPT, XPD and HG, not names like GOLD.","tags":["Analytics"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"symbol":{"type":"string"},"price":{"type":"number"},"recordedAt":{"format":"date-time","type":"string"}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["XAU"],"type":"string"}}],"operationId":"getV1AthBySymbol"}},"/v1/economic-calendar/":{"get":{"description":"Upcoming and recent macroeconomic calendar events. Requires the Pro plan or higher.","tags":["Analytics"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"actual":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"eventDate":{"format":"date-time","type":"string"},"eventName":{"type":"string"},"forecast":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"type":"string"},"impact":{"type":"string"},"previous":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}},"count":{"type":"number"},"source":{"type":"string"},"timestamp":{"format":"date-time","type":"string"}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"impact","in":"query","required":false,"schema":{"type":"string"}},{"name":"days","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"getV1Economic-calendar"}},"/v1/instruments/":{"get":{"description":"Every instrument the platform tracks, with the exchange and asset class it belongs to. Use this to discover the symbol a given endpoint expects: symbol spaces differ per route, so gold is XAU on /v1/history but GOLD on /v1/markets, and commodities are contract codes such as CL1. Filter with asset_class (commodity, crypto, equity, etf, fx, index, bond), exchange, or a case-insensitive search across symbol and name. Available on every plan including Free.","tags":["Markets"],"responses":{"200":{"description":"The instrument catalogue.","content":{"application/json":{"schema":{"type":"object","required":["success","count","data"],"properties":{"success":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","required":["symbol","name"],"properties":{"symbol":{"examples":["XAU"],"type":"string"},"name":{"type":"string"},"assetClass":{"anyOf":[{"description":"commodity, crypto, equity, etf, fx, index or bond.","type":"string"},{"type":"null"}]},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}]},"marketType":{"anyOf":[{"type":"string"},{"type":"null"}]},"currency":{"anyOf":[{"type":"string"},{"type":"null"}]},"unit":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"asset_class","in":"query","required":false,"schema":{"examples":["commodity"],"type":"string"}},{"name":"exchange","in":"query","required":false,"schema":{"examples":["COMEX"],"type":"string"}},{"name":"search","in":"query","required":false,"schema":{"examples":["gold"],"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"examples":["100"],"type":"string"}}],"operationId":"getV1Instruments"}},"/v1/instruments/summary":{"get":{"description":"Instrument counts per asset class, with the exchanges each covers. A cheap way to see the shape of the catalogue before paging through it. Available on every plan including Free.","tags":["Markets"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"total":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"assetClass":{"type":"string"},"count":{"type":"number"},"exchanges":{"type":"array","items":{"type":"string"}}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"operationId":"getV1InstrumentsSummary"}},"/v1/funding/":{"get":{"description":"Latest perpetual funding rate for every symbol, optionally scoped to one venue. Funding is the periodic payment between longs and shorts that holds a perpetual near spot: a positive rate means longs pay shorts, so the sign and size read directly as crowd positioning. Rates are per-interval decimals, so 0.0000125 is 0.00125%. Coverage includes GOLD and SILVER perps alongside crypto and tokenised equities. Requires the Pro plan or higher.","tags":["Analytics"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"exchange":{"type":"string"},"fundingRate":{"type":"number"},"premium":{"type":"number"},"symbol":{"type":"string"},"time":{"format":"date-time","type":"string"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"exchange","in":"query","required":false,"schema":{"examples":["HYPERLIQUID"],"type":"string"}}],"operationId":"getV1Funding"}},"/v1/funding/venues":{"get":{"description":"Venues currently publishing funding data, with how many symbols each covers and when it last printed. Requires the Pro plan or higher.","tags":["Analytics"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"exchange":{"type":"string"},"latest":{"format":"date-time","type":"string"},"symbols":{"type":"number"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"operationId":"getV1FundingVenues"}},"/v1/funding/{symbol}/history":{"get":{"description":"Funding rate history for one perpetual, oldest first. Symbols are the venue's own tickers such as BTC, ETH, GOLD, SILVER, NVDA; call /v1/funding for the full list. Set the window with range (1D, 1W, 1M, 3M, 6M, 1Y, ALL) or explicit start and end dates. Requires the Pro plan or higher.","tags":["Analytics"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"symbol":{"type":"string"},"range":{"type":"string"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"exchange":{"type":"string"},"fundingRate":{"type":"number"},"premium":{"type":"number"},"symbol":{"type":"string"},"time":{"format":"date-time","type":"string"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"examples":["BTC"],"type":"string"}},{"name":"exchange","in":"query","required":false,"schema":{"examples":["HYPERLIQUID"],"type":"string"}},{"name":"range","in":"query","required":false,"schema":{"examples":["1M"],"type":"string"}},{"name":"start","in":"query","required":false,"schema":{"examples":["2026-01-01"],"type":"string"}},{"name":"end","in":"query","required":false,"schema":{"examples":["2026-09-01"],"type":"string"}}],"operationId":"getV1FundingBySymbolHistory"}},"/v1/bullion/":{"get":{"description":"Retail bullion prices across competing dealers, with each quote's premium over spot. Every product is normalised to its fine-ounce content so premiums are comparable across coins, bars and junk silver. `best` is the cheapest in-stock quote at or above spot, falling back to the cheapest such quote; a below-spot quote stays in `quotes` but is never `best`, and `best` is null when every fresh quote is below spot. Premium is the figure recorded at scrape time and travels with its own scrapedAt, so price and premium always agree. Filter with metal: gold, silver, platinum or palladium, or the code each product carries in `metal` (XAU, XAG, XPT, XPD), in any case. Quotes older than 7 days are excluded by default and never chosen as `best`, because individual dealer scrapers fail silently and a stale row would otherwise be presented as today's cheapest price; widen or narrow that with max_age_days, and read `asOf`, `ageDays` and `staleQuotesExcluded` to judge freshness yourself. Requires the Pro plan or higher.","tags":["Markets"],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean"},"maxAgeDays":{"type":"number"},"count":{"type":"number"},"data":{"type":"array","items":{"type":"object","properties":{"asOf":{"format":"date-time","type":"string"},"best":{"type":"object","properties":{"dealer":{"type":"string"},"inStock":{"type":"boolean"},"premiumPct":{"type":"number"},"priceCash":{"type":"number"},"scrapedAt":{"format":"date-time","type":"string"}}},"fineOz":{"type":"number"},"form":{"type":"string"},"metal":{"type":"string"},"name":{"type":"string"},"productId":{"type":"string"},"purity":{"type":"number"},"quotes":{"type":"array","items":{"type":"object","properties":{"ageDays":{"type":"number"},"dealer":{"type":"string"},"dealerId":{"type":"string"},"inStock":{"type":"boolean"},"premiumPct":{"type":"number"},"priceCard":{"anyOf":[{},{"type":"null"}]},"priceCash":{"type":"number"},"scrapedAt":{"format":"date-time","type":"string"}}}},"series":{"type":"string"},"staleQuotesExcluded":{"type":"number"},"weightLabel":{"type":"string"}}}}}}}}},"400":{"description":"Invalid parameter.","content":{"application/json":{"schema":{"description":"Error response.","type":"object","required":["error"],"properties":{"success":{"const":false,"type":"boolean"},"error":{"description":"Human-readable reason.","type":"string"},"message":{"type":"string"},"upgrade_url":{"description":"Present on plan-limit errors.","type":"string"},"reference":{"description":"Support reference, present on 500s.","type":"string"}}}}}}},"parameters":[{"name":"metal","in":"query","required":false,"schema":{"description":"Optional. gold, silver, platinum or palladium, or the code XAU, XAG, XPT or XPD, in any case.","examples":["gold"],"type":"string"}},{"name":"max_age_days","in":"query","required":false,"schema":{"examples":["7"],"type":"string"}}],"operationId":"getV1Bullion"}},"/v1/bullion/{productId}":{"get":{"description":"Every dealer quote for one bullion product. Product ids are slugs such as 1-oz-american-gold-eagle; call /v1/bullion for the full list. Quotes older than 7 days are excluded by default; widen with max_age_days. Requires the Pro plan or higher.","tags":["Markets"],"parameters":[{"name":"productId","in":"path","required":true,"schema":{"examples":["1-oz-american-gold-eagle"],"type":"string"}},{"name":"max_age_days","in":"query","required":false,"schema":{"examples":["7"],"type":"string"}}],"operationId":"getV1BullionByProductId"}}}}