metalpriceapi
v1.3.0
Published
Official Node.js Library for MetalpriceAPI
Maintainers
Readme
metalpriceapi
metalpriceapi is the official Node.js wrapper for MetalpriceAPI.com. This allows you to quickly integrate our metal price API and foreign exchange rate API into your application. Check https://metalpriceapi.com documentation for more information.
Installation
NPM
$ npm i metalpriceapiUsage
const api = require('metalpriceapi');
api.setAPIKey('SET_YOUR_API_KEY_HERE');
await api.fetchLive('USD', ['XAU', 'XAG', 'XPD', 'XPT']);Documentation
setAPIKey(apiKey)
apiKey<string> API Key
In order to use this library, you must first call this function with an API key.
api.setAPIKey('SET_YOUR_API_KEY_HERE');setServer(server)
server<string> Pass'eu'to use the EU server (api-eu.metalpriceapi.com), or'us'for the US server. Defaults to US if not specified.
api.setServer('eu');fetchSymbols()
await api.fetchSymbols();fetchLive(base, currencies, unit, purity, math)
base<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.unit<string> Optional. Pass in a unit for metal prices (e.g.troy_oz,gram,kilogram).purity<string> Optional. Pass in a purity level for metal prices.math<string> Optional. Pass in a math expression to apply to the rates.
await api.fetchLive('USD', ['XAU', 'XAG', 'XPD', 'XPT'], 'troy_oz', null, null);fetchHistorical(date, base, currencies, unit)
date<string> Required. Pass in a string with formatYYYY-MM-DDbase<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.unit<string> Optional. Pass in a unit for metal prices (e.g.troy_oz,gram,kilogram).
await api.fetchHistorical('2024-02-05', 'USD', ['XAU', 'XAG', 'XPD', 'XPT'], 'troy_oz');hourly(base, currency, unit, startDate, endDate, math, dateType)
base<string> Optional. Pass in a base currency, defaults to USD.currency<string> Required. Specify currency you would like to get hourly rates for.unit<string> Optional. Pass in a unit for metal prices (e.g.troy_oz,gram,kilogram).startDate<string> Required. Specify the start date using the formatYYYY-MM-DD.endDate<string> Required. Specify the end date using the formatYYYY-MM-DD.math<string> Optional. Pass in a math expression to apply to the rates.dateType<string> Optional. Pass in a date type, overrides date parameters if passed in.
await api.hourly('USD', 'XAU', 'troy_oz', '2025-11-03', '2025-11-03', null, null);ohlc(base, currency, date, unit, dateType)
base<string> Optional. Pass in a base currency, defaults to USD.currency<string> Required. Specify currency you would like to get OHLC for.date<string> Required. Specify date to get OHLC for specific date using formatYYYY-MM-DD.unit<string> Optional. Pass in a unit, defaults to troy_oz.dateType<string> Optional. Pass in a date type, overrides date parameter if passed in.
await api.ohlc('USD', 'XAU', '2024-02-06', 'troy_oz', null);convert(from, to, amount, date, unit)
from<string> Optional. Pass in a base currency, defaults to USD.to<string> Required. Specify currency you would like to convert to.amount<number> Required. The amount to convert.date<string> Optional. Specify date to use historical midpoint value for conversion with formatYYYY-MM-DD. Otherwise, it will use live exchange rate date if value not passed in.unit<string> Optional. Pass in a unit for metal prices (e.g.troy_oz,gram,kilogram).
await api.convert('USD', 'EUR', 100, '2024-02-05', null);timeframe(startDate, endDate, base, currencies, unit)
startDate<string> Required. Specify the start date of your timeframe using the formatYYYY-MM-DD.endDate<string> Required. Specify the end date of your timeframe using the formatYYYY-MM-DD.base<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.unit<string> Optional. Pass in a unit for metal prices (e.g.troy_oz,gram,kilogram).
await api.timeframe('2024-02-05', '2024-02-06', 'USD', ['XAU', 'XAG', 'XPD', 'XPT'], 'troy_oz');change(startDate, endDate, base, currencies, dateType)
startDate<string> Required. Specify the start date of your timeframe using the formatYYYY-MM-DD.endDate<string> Required. Specify the end date of your timeframe using the formatYYYY-MM-DD.base<string> Optional. Pass in a base currency, defaults to USD.currencies<Array<string>> Optional. Pass in an array of currencies to return values for.dateType<string> Optional. Pass in a date type, overrides date parameters if passed in.
await api.change('2024-02-05', '2024-02-06', 'USD', ['XAU', 'XAG', 'XPD', 'XPT'], null);carat(base, currency, date)
base<string> Optional. Pass in a base currency, defaults to USD.currency<string> Optional. Pass in a metal code to get carat prices for (defaults to XAU).date<string> Optional. Specify date to get Carat for specific date using formatYYYY-MM-DD. If not specified, uses live rates.
await api.carat('USD', 'XAU', '2024-02-06');usage()
await api.usage();FAQ
How do I get an API Key?
Free API Keys are available here.
I want more information
Checkout our FAQs here.
Support
For support, get in touch using this form.
