In today's dynamic financial landscape, tracking real-time precious metal prices is crucial for investors, developers, and enthusiasts alike. In this tutorial, you'll learn how to get gold and silver prices via the precious metals API.
Whether you're an expert or just starting, this guide provides the tools to access accurate and timely data. It offers a detailed overview of accessing spot pricing for precious metals data using TraderMade’s REST API with various programming languages.
Why Precious Metals Data Matter
For centuries, precious metals have been valued for their rarity and intrinsic worth. Accurate precious metals pricing data is crucial for investment, manufacturing, jewelry, and financial analysis. Understanding how to receive and interpret data from the Precious Metals Prices API is key to making informed decisions across these industries.
Methods to Receive Real-Time Financial Data
APIs
What is an API? An Application Programming Interface (API) allows you to access real-time financial data from different platforms programmatically.
- Sign Up: Register for an API key on the provider's website.
- Choose a Plan: Select a free or paid plan based on your data needs.
- Access Data: Use the API key to request data through your preferred programming language (e.g., Python, JavaScript).
Python Programming
This Python script utilizes the requests library to fetch live Gold price via API. It also fetches silver and platinum prices in the same request as shown below.
import requests
from pprint import PrettyPrinter
url = "https://marketdata.tradermade.com/api/v1/live"
currency = "XAUUSD,XAGUSD,XPTUSD,XPDUSD"
api_key = "API_KEY" # Replace with your actual API key
querystring = {"currency": currency, "api_key": api_key}
response = requests.get(url, params=querystring)
# Check if the request was successful
if response.status_code == 200:
pp = PrettyPrinter()
pp.pprint(response.json())
else:
print(f"Error {response.status_code}: {response.text}")
Java Programming
This Java program requests data from the API for Gold prices using an HTTP GET request. It can also be extended to obtain silver price data and other live precious metal prices. The "FetchMarketData" class defines the API URL and parameters, including a list of currency codes and an API key.
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import org.json.JSONArray;
import org.json.JSONObject;
public class RESTClient {
public static void main(String[] args) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
HttpGet request = new HttpGet("https://marketdata.tradermade.com/api/v1/live
currency=XAUUSD&api_key=YOUR_API_KEY");
CloseableHttpResponse response = httpClient.execute(request);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
// return it as a String
String result = EntityUtils.toString(entity);
System.out.println(result);
JSONObject obj = new JSONObject(result);
JSONArray quotes = obj.getJSONArray("quotes");
System.out.println(quotes.toString());
for (int i = 0; i < quotes.length(); i++) {
JSONObject quote = quotes.getJSONObject(i);
System.out.println(" Quote " + quote.getString("base_currency") +
quote.getString("quote_currency") + " " + quote.getFloat("bid") + " " + quote.getFloat("ask"));
}
}
} finally {
response.close();
}
} finally {
httpClient.close();
}
}
}
Node.js Programming
This Node.js script utilizes the Axios library to fetch real-time Gold Price data via the live API endpoint.
const axios = require('axios');
const util = require('util');
const url = "https://marketdata.tradermade.com/api/v1/live";
const currency = "XAUUSD";
const apiKey = "API_KEY"; // Replace with your actual API key
async function fetchMarketData() {
try {
const response = await axios.get(url, {
params: {
currency: currency,
api_key: apiKey
}
});
if (response.status === 200) {
console.log(util.inspect(response.data, { depth: null, colors: true }));
} else {
console.log("Error");
}
} catch (error) {
console.error("Error");
}
}
fetchMarketData();
C++ Programming
This C++ code snippet demonstrates how to fetch data from the live API endpoint to get Gold price using the libcurl library. The code initiates by including the necessary headers for libcurl functions and standard input/output operations.
#include <curl/curl.h>
#include <stdio.h>
int main(void)
{
CURL *curl;
CURLcode res;
// URL to be requested
const char *url = "https://marketdata.tradermade.com/api/v1/live?currency=XAUUSD&api_key=API_KEY";
// Initialize global curl environment
curl_global_init(CURL_GLOBAL_DEFAULT);
// Initialize curl session
curl = curl_easy_init();
if(curl) {
// Set URL
curl_easy_setopt(curl, CURLOPT_URL, url);
// Perform the request
res = curl_easy_perform(curl);
// Check for errors
if(res != CURLE_OK) {
fprintf(stderr, "Request failed: %s
", curl_easy_strerror(res));
} else {
printf("Request was successful!
");
}
// Cleanup curl session
curl_easy_cleanup(curl);
}
// Cleanup curl global environment
curl_global_cleanup();
return 0;
}
Conclusion
This tutorial provides an overview of accessing and utilizing precious metals data through JSON API using various programming languages. By leveraging these methods, you can effectively integrate live market data using our live API endpoint for Gold, Silver, Platinum, and Palladium prices, into your applications, enhancing your ability to incorporate them into your apps and workflow. Refer to our documentation page for examples in other programming languages and information on live and historical rates for world currencies.