Authentification de l'API
Envoyez votre clé API MetalAPI en paramètre de requête ou dans un en-tête HTTP, limitez vos clés à vos propres domaines et gardez-les en sécurité.
Clés API
Chaque requête à l'API est authentifiée par une clé API liée à votre compte. Les clés ont la forme mk_live_ suivi de 32 caractères et se créent dans le tableau de bord, sous API keys.
Nous ne stockons qu'un hash SHA-256 de chaque clé : la clé complète n'est donc affichée qu'une seule fois, lors de sa création. Si vous perdez une clé, créez-en une nouvelle et révoquez l'ancienne. Selon votre plan, vous pouvez détenir plusieurs clés à la fois. En utiliser une par application ou par environnement est une bonne habitude.
Trois façons d'envoyer votre clé
Transmettez la clé de la manière qui convient le mieux à votre client HTTP. Les trois méthodes sont équivalentes :
# 1. Paramètre de requête
curl "https://metalapi.com/api/v1/latest?api_key=YOUR_API_KEY"
# 2. En-tête Authorization (jeton Bearer)
curl "https://metalapi.com/api/v1/latest" \
-H "Authorization: Bearer YOUR_API_KEY"
# 3. En-tête X-API-Key
curl "https://metalapi.com/api/v1/latest" \
-H "X-API-Key: YOUR_API_KEY"En production, privilégiez un en-tête. Nous retirons la clé de la chaîne de requête avant d'écrire notre journal des requêtes, mais vos propres logs, proxys et outils de suivi des erreurs peuvent conserver l'URL complète.
Une clé manquante renvoie l'erreur 101 et une clé inconnue ou révoquée renvoie 102, toutes deux avec le statut HTTP 401.
Clés restreintes par domaine
Appeler l'API depuis du JavaScript côté client expose votre clé à chaque visiteur. Si vous devez le faire, limitez d'abord la clé à vos propres domaines dans le tableau de bord.
Une clé restreinte ne répond qu'aux requêtes de navigateur dont l'en-tête Origin (ou Referer) correspond à l'un des domaines autorisés ou à l'un de leurs sous-domaines. Les requêtes provenant de tout autre site web sont rejetées avec l'erreur 107 (HTTP 403) et ne sont pas facturées.
Les requêtes sans en-tête Origin ni Referer, comme les appels de serveur à serveur depuis votre backend, vos tâches cron ou vos scripts, sont toujours autorisées. Une même clé restreinte peut donc servir à la fois votre site web et votre serveur. Avec example.com dans la liste des domaines autorisés :
# Autorisée : requête de navigateur depuis un sous-domaine d'un domaine autorisé
curl "https://metalapi.com/api/v1/latest?currencies=XAU" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Origin: https://shop.example.com"
# Rejetée avec 107 : l'origine ne figure pas dans la liste
curl "https://metalapi.com/api/v1/latest?currencies=XAU" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Origin: https://another-site.com"
# Autorisée : requête de serveur à serveur sans Origin ni Referer
curl "https://metalapi.com/api/v1/latest?currencies=XAU" \
-H "X-API-Key: YOUR_API_KEY"Protéger vos clés
- Conservez les clés côté serveur et chargez-les depuis des variables d'environnement ou un gestionnaire de secrets. Ne les commitez jamais dans Git.
- Utilisez une clé distincte par application et par environnement, afin de pouvoir en révoquer une sans toucher aux autres.
- Si une clé fuite, créez-en une de remplacement, déployez-la, puis révoquez l'ancienne dans le tableau de bord.
- Appelez toujours l'API via
https://. - Pour les pages web publiques, un widget intégrable affiche les prix en direct sans aucune clé dans la page.
// Côté serveur uniquement : la clé n'atteint jamais le navigateur
const res = await fetch("https://metalapi.com/api/v1/latest?currencies=XAU,XAG", {
headers: { "X-API-Key": process.env.METALAPI_KEY },
});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.