Vue d'ensemble de la documentation de l'API
Tour d'horizon en une page de l'API REST MetalAPI : URL de base, authentification, paramètres, format de réponse, erreurs, limites et exemples de code.
URL de base
Toutes les requêtes sont envoyées à https://metalapi.com/api/v1/ via HTTPS et utilisent GET. Les réponses sont au format JSON, avec un indicateur success.
Cette page est un tour d'horizon rapide. La référence complète, avec chaque paramètre, se trouve dans la documentation de l'API.
Authentification
Envoyez votre clé API en paramètre de requête, sous forme de jeton Bearer ou dans un en-tête X-API-Key. Les clés ont la forme mk_live_ suivi de 32 caractères. Gardez-les secrètes ; voir Authentification.
# Paramètre de requête
GET https://metalapi.com/api/v1/latest?api_key=YOUR_API_KEY
# En-tête Authorization
GET https://metalapi.com/api/v1/latest
Authorization: Bearer YOUR_API_KEY
# En-tête X-API-Key
GET https://metalapi.com/api/v1/latest
X-API-Key: YOUR_API_KEYEndpoints
/latest: prix actuels/{YYYY-MM-DD},/yesterdayou/historical?date=: prix de clôture d'un jour passé/convert?from=&to=&amount=: convertir n'importe quel montant, éventuellement à unedatepassée/timeframe?start_date=&end_date=(alias/timeseries) : prix quotidiens sur une plage de dates/change?start_date=&end_date=: variation entre deux jours/ohlc?date=: ouverture, plus haut, plus bas et clôture d'un jour/carat?carat=24oucarat=all: prix de l'or par carat (plans payants)/symbols: symboles pris en charge (gratuit, hors quota)/usage: votre quota (gratuit, hors quota)/stream: Server-Sent Events en temps réel (à partir du plan Pro)
Les paramètres et des exemples pour chacun figurent dans Endpoints disponibles.
Paramètres de requête
api_key: votre clé, sauf si vous l'envoyez dans un en-têtebase: la devise des prix renvoyés,USDpar défautcurrenciesousymbols: symboles à renvoyer, séparés par des virgules. Tous les symboles par défaut.unit: unité de masse pour les métaux. L'une des valeurstroy_oz(par défaut),gram,kilogram,ounce,pound,metric_tonoushort_ton.
GET /api/v1/latest?api_key=YOUR_API_KEY&base=EUR¤cies=XAU,XAG,USD,GBP&unit=gramFormat de réponse
Les réponses réussies incluent success: true, les données et un bloc rate_limit. Chaque symbole apparaît deux fois : XAU (onces troy pour une unité de la devise de base) et USDXAU (le prix d'une once troy dans la devise de base). Voir Formats de données et unités.
{
"success": true,
"timestamp": 1792765800,
"date": "2026-10-23",
"base": "USD",
"rates": {
"EUR": 0.8589589418,
"USDEUR": 1.1642,
"XAG": 0.01853911754,
"USDXAG": 53.94,
"XAU": 0.0002501319446,
"USDXAU": 3997.89
},
"rate_limit": {
"limit": 10000,
"remaining": 9876,
"reset": 1793491200,
"used": 124,
"plan": "Standard",
"reset_date": "2026-11-01T00:00:00.000Z"
}
}Erreurs
Les erreurs renvoient un statut HTTP d'erreur et un corps success: false avec un code numérique, un type et un message. La liste complète figure dans Gestion des erreurs.
{
"success": false,
"error": {
"code": 102,
"type": "invalid_api_key",
"info": "User did not supply an access key or supplied an invalid access key"
}
}Limites de débit
Chaque plan dispose d'un quota mensuel, réinitialisé le 1er à 00:00 UTC, et d'une limite par minute. Chaque réponse authentifiée inclut :
X-RateLimit-Limit,X-RateLimit-RemainingetX-RateLimit-Usedpour le quota mensuelX-RateLimit-ResetetX-RateLimit-Reset-Datepour la date de réinitialisation du quotaX-RateLimit-Planavec le nom de votre planX-RateLimit-Minute-LimitetX-RateLimit-Minute-Remainingpour la limite par minute
Les mêmes valeurs figurent dans le bloc JSON rate_limit. Voir Limites de débit et plans.
Symboles pris en charge
- Métaux précieux :
XAU,XAG,XPT,XPD - Métaux industriels :
XCU,ALU,ZNC,HRC - Énergie :
WTI,BRENT,NATURALGAS,GASOLINE,HEATINGOIL - Devises : environ 55, dont
USD,EUR,GBP,JPY,CHF,CAD,AUDetCNY - Cryptos : 13 cryptomonnaies, dont
BTC,ETH,SOL,USDTetUSDC
Parcourez-les tous sur la page des symboles.
Exemple Node.js
Avec le fetch intégré (Node.js 18+) :
const API_KEY = process.env.METALAPI_KEY;
const BASE_URL = "https://metalapi.com/api/v1";
async function getLatestRates(currencies = "XAU,XAG,EUR") {
const res = await fetch(`${BASE_URL}/latest?currencies=${currencies}`, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const data = await res.json();
if (!data.success) throw new Error(`${data.error.code}: ${data.error.info}`);
return data.rates;
}
const rates = await getLatestRates();
console.log("Gold (USD/oz):", rates.USDXAU);
console.log("Silver (USD/oz):", rates.USDXAG);Exemple PHP
Avec PHP et cURL :
<?php
$apiKey = getenv('METALAPI_KEY');
$curl = curl_init('https://metalapi.com/api/v1/latest?currencies=XAU,XAG');
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ["X-API-Key: {$apiKey}"],
]);
$response = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
exit("cURL error: {$error}\n");
}
$data = json_decode($response, true);
if (!$data['success']) {
exit("API error {$data['error']['code']}: {$data['error']['info']}\n");
}
echo "Gold (USD/oz): " . $data['rates']['USDXAU'] . "\n";
echo "Silver (USD/oz): " . $data['rates']['USDXAG'] . "\n";Exemple Python
Avec la bibliothèque requests :
import os
import requests
API_KEY = os.environ["METALAPI_KEY"]
BASE_URL = "https://metalapi.com/api/v1"
def get_metal_rates(currencies="XAU,XAG,XPT"):
"""Récupère les derniers prix des métaux depuis MetalAPI."""
response = requests.get(
f"{BASE_URL}/latest",
params={"currencies": currencies},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=10,
)
data = response.json()
if not data["success"]:
raise RuntimeError(f"{data['error']['code']}: {data['error']['info']}")
return data["rates"]
rates = get_metal_rates()
print(f"Gold: {rates['USDXAU']} USD/oz")
print(f"Silver: {rates['USDXAG']} USD/oz")
print(f"Platinum: {rates['USDXPT']} USD/oz")Exemple de requête
Conversion de 1 000 dollars américains en onces troy d'or :
curl "https://metalapi.com/api/v1/convert?api_key=YOUR_API_KEY&from=USD&to=XAU&amount=1000"Exemple de réponse
result est le montant converti et info.rate le taux appliqué :
{
"success": true,
"query": { "from": "USD", "to": "XAU", "amount": 1000 },
"info": { "timestamp": 1792765800, "rate": 0.0002501319446, "quote": 0.0002501319446 },
"date": "2026-10-23",
"result": 0.2501319446,
"rate_limit": {
"limit": 10000,
"remaining": 9876,
"reset": 1793491200,
"used": 124,
"plan": "Standard",
"reset_date": "2026-11-01T00:00:00.000Z"
}
}Guides associés
Prêt à commencer ?
Créez un compte gratuit pour obtenir votre clé API, ou explorez tous les endpoints dans la référence de l'API.