metalpriceapi
metalpriceapi is the official Python 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
Install the latest release with:
pip install metalpriceapi
Usage
from metalpriceapi.client import Client
api_key = 'SET_YOUR_API_KEY_HERE'
client = Client(api_key)
# Or use EU server:
# client = Client(api_key, server='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 |
from metalpriceapi.client import Client
# Default (US)
client = Client('SET_YOUR_API_KEY_HERE')
# Europe
client = Client('SET_YOUR_API_KEY_HERE', server='eu')
Documentation
fetchSymbols()
client.fetchSymbols()
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')
fetchLive(base, currencies, unit, purity, math)
base<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.
client.fetchLive(base='USD', currencies=['XAU', 'XAG', 'XPD', 'XPT'], unit='troy_oz')
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<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).
client.fetchHistorical(date='2024-02-05', base='USD', currencies=['XAU', 'XAG', 'XPD', 'XPT'], unit='troy_oz')
hourly(base, currency, unit, start_date, end_date, math, date_type)
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).start_date<string> Required. Specify the start date using the formatYYYY-MM-DD.end_date<string> Required. Specify the end date using the formatYYYY-MM-DD.math<string> Optional. Pass in a math expression to apply to the rates.date_type<string> Optional. Pass in a date type, overrides date parameters if passed in.
client.hourly(base='USD', currency='XAU', unit='troy_oz', start_date='2025-11-03', end_date='2025-11-03')
fetchOHLC(base, currency, date, unit, date_type)
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.date_type<string> Optional. Pass in a date type, overrides date parameter if passed in.
client.fetchOHLC(base='USD', currency='XAU', date='2024-02-05', unit='troy_oz')
convert(from_currency, to_currency, amount, date, unit)
from_currency<string> Optional. Pass in a base currency, defaults to USD.to_currency<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).
client.convert(from_currency='USD', to_currency='EUR', amount=100, date='2024-02-05')
timeframe(start_date, end_date, base, currencies, unit)
start_date<string> Required. Specify the start date of your timeframe using the formatYYYY-MM-DD.end_date<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<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).
client.timeframe(start_date='2024-02-05', end_date='2024-02-06', base='USD', currencies=['XAU', 'XAG', 'XPD', 'XPT'], unit='troy_oz')
change(start_date, end_date, base, currencies, date_type)
start_date<string> Required. Specify the start date of your timeframe using the formatYYYY-MM-DD.end_date<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<List<string>> Optional. Pass in a list of currencies to return values for.date_type<string> Optional. Pass in a date type, overrides date parameters if passed in.
client.change(start_date='2024-02-05', end_date='2024-02-06', base='USD', currencies=['XAU', 'XAG', 'XPD', 'XPT'])
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.
client.carat(base='USD', currency='XAU', date='2024-02-05')
usage()
client.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.
Metadata
Release files for metalpriceapi 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| metalpriceapi-1.3.0.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| metalpriceapi-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.1 kB
Release files / metalpriceapi-1.3.0.tar.gz
| Download URL | metalpriceapi-1.3.0.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
374d7735823c894e6be3a19a6c6f0e6d77e324adfbe899fe026466765372729b
|
|
BLAKE2b-256 checksum How to use checksums |
b2ccc4b51fd4c86772a03bcf077375d3f578ccbe2525a7e2488651c4b5dfaa37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / metalpriceapi-1.3.0-py3-none-any.whl
| Download URL | metalpriceapi-1.3.0-py3-none-any.whl |
|---|---|
| Size | 4.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b496e679aa12d6bb404d6b0bd01acec32be16e85b4c10c3a8b2074b3e8b0132
|
|
BLAKE2b-256 checksum How to use checksums |
75ff1e6aa1f14f432d9185aa276636b3a1ddb900adddedab1417154a8e5faa3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|