Skip to content

metalpriceapi/metalpriceapi-csharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MetalpriceAPI

MetalpriceAPI is the official .NET 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

NuGet

dotnet add package MetalpriceAPI

Or add to your .csproj:

<PackageReference Include="MetalpriceAPI" Version="1.3.0" />

Usage

using MetalpriceAPI;

string apiKey = "SET_YOUR_API_KEY_HERE";
using var client = new MetalpriceApiClient(apiKey);

// Or use EU server:
// using var client = new MetalpriceApiClient(apiKey, "eu");

Server Regions

MetalpriceAPI provides two regional endpoints. Choose the one closest to your servers for optimal performance.

Region Base URL
United States (default) https://api.metalpriceapi.com/v1
Europe https://api-eu.metalpriceapi.com/v1
using MetalpriceAPI;

// Default (US)
using var client = new MetalpriceApiClient("SET_YOUR_API_KEY_HERE");

// Europe
using var client = new MetalpriceApiClient("SET_YOUR_API_KEY_HERE", "eu");

Documentation

FetchSymbolsAsync()

await client.FetchSymbolsAsync();

Link


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.
client.SetServer("eu");

FetchLiveAsync(baseVal, currencies, unit, purity, math)

  • baseVal <string> Optional. Pass in a base currency, defaults to USD.
  • currencies <List<string>> Optional. Pass in a list 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 client.FetchLiveAsync("USD", new List<string> { "XAU", "XAG", "XPD", "XPT" }, "troy_oz");

Link


FetchHistoricalAsync(date, baseVal, currencies, unit)

  • date <string> Required. Pass in a string with format YYYY-MM-DD
  • baseVal <string> Optional. Pass in a base currency, defaults to USD.
  • currencies <List<string>> Optional. Pass in a list of currencies to return values for.
  • unit <string> Optional. Pass in a unit for metal prices (e.g. troy_oz, gram, kilogram).
await client.FetchHistoricalAsync("2024-02-05", "USD", new List<string> { "XAU", "XAG", "XPD", "XPT" }, "troy_oz");

Link


HourlyAsync(baseVal, currency, unit, startDate, endDate, math, dateType)

  • baseVal <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 client.HourlyAsync("USD", "XAU", "troy_oz", "2025-11-03", "2025-11-03");

Link


FetchOHLCAsync(baseVal, currency, date, unit, dateType)

  • baseVal <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 client.FetchOHLCAsync("USD", "XAU", "2024-02-05", "troy_oz");

Link


ConvertAsync(fromCurrency, toCurrency, amount, date, unit)

  • fromCurrency <string> Optional. Pass in a base currency, defaults to USD.
  • toCurrency <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 client.ConvertAsync("USD", "EUR", 100, "2024-02-05");

Link


TimeframeAsync(startDate, endDate, baseVal, 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.
  • baseVal <string> Optional. Pass in a base currency, defaults to USD.
  • currencies <List<string>> Optional. Pass in a list of currencies to return values for.
  • unit <string> Optional. Pass in a unit for metal prices (e.g. troy_oz, gram, kilogram).
await client.TimeframeAsync("2024-02-05", "2024-02-06", "USD", new List<string> { "XAU", "XAG", "XPD", "XPT" }, "troy_oz");

Link


ChangeAsync(startDate, endDate, baseVal, 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.
  • baseVal <string> Optional. Pass in a base currency, defaults to USD.
  • currencies <List<string>> Optional. Pass in a list of currencies to return values for.
  • dateType <string> Optional. Pass in a date type, overrides date parameters if passed in.
await client.ChangeAsync("2024-02-05", "2024-02-06", "USD", new List<string> { "XAU", "XAG", "XPD", "XPT" });

Link


CaratAsync(baseVal, currency, date)

  • baseVal <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 client.CaratAsync("USD", "XAU", "2024-02-05");

Link


UsageAsync()

await client.UsageAsync();

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 C# wrapper for MetalpriceAPI

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages