Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

metalpriceapi-ts

metalpriceapi-ts is the official Node.js TypeScript 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 metalpriceapi-ts

Usage

import MetalpriceAPI from 'metalpriceapi-ts';
const api = new MetalpriceAPI('SET_YOUR_API_KEY_HERE');

// Or use EU server:
// const api = new MetalpriceAPI('SET_YOUR_API_KEY_HERE', 'eu');

await api.fetchLive('USD', ['XAU', 'XAG', 'XPD', 'XPT']);

Documentation

setAPIKey(apiKey)

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 <'us' | 'eu'> 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();

Link


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);

Link


fetchHistorical(date, base, currencies, unit)

  • date <string> Required. Pass in a string with format YYYY-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.fetchHistorical('2024-02-05', 'USD', ['XAU', 'XAG', 'XPD', 'XPT'], 'troy_oz');

Link


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 format YYYY-MM-DD.
  • endDate <string> Required. Specify the end date using the format YYYY-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);

Link


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 format YYYY-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);

Link


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 format YYYY-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);

Link


timeframe(startDate, endDate, base, currencies, unit)

  • startDate <string> Required. Specify the start date of your timeframe using the format YYYY-MM-DD.
  • endDate <string> Required. Specify the end date of your timeframe using the format YYYY-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');

Link


change(startDate, endDate, base, currencies, dateType)

  • startDate <string> Required. Specify the start date of your timeframe using the format YYYY-MM-DD.
  • endDate <string> Required. Specify the end date of your timeframe using the format YYYY-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);

Link


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 format YYYY-MM-DD. If not specified, uses live rates.
await api.carat('USD', 'XAU', '2024-02-06');

Link


usage()

await api.usage();

Link


Official documentation


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.

About

Official Node.js TypeScript wrapper for MetalpriceAPI

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages