Best Practices
Klug cachen, Symbole bündeln, streamen statt pollen und Schlüssel sowie Webhooks absichern: Best Practices für eine robuste MetalAPI-Integration.
Abfragefrequenz an den Tarif anpassen
Jeder Tarif liefert Preise in einem festen Aktualisierungsintervall: täglich im Free-Tarif, alle 30 Minuten in Lite, alle 10 Minuten in Standard, alle 60 Sekunden in Advanced und Pro, alle 15 Sekunden in Ultra und Business und alle 5 Sekunden in Enterprise. Fragen Sie /latest häufiger ab, erhalten Sie dieselben Preise und verbrauchen unnötig Kontingent.
Als Faustregel gilt: /latest für die Dauer des Aktualisierungsintervalls Ihres Tarifs cachen, Daten vergangener Tage dauerhaft.
Viele Symbole auf einmal abfragen
Eine Anfrage kann beliebig viele Symbole zurückgeben und kostet genauso viel wie eine Anfrage für ein einzelnes Symbol. Fragen Sie alles, was Sie brauchen, in einem Aufruf ab:
GET /api/v1/latest?api_key=YOUR_API_KEY¤cies=XAU,XAG,XPT,XPD,EUR,GBPEine Abfrage alle 10 Minuten verbraucht etwa 4.500 Anfragen im Monat, eine Abfrage pro Minute etwa 45.000. Wählen Sie Ihren Tarif entsprechend.
Auf Ihrer Seite cachen
Ein kleiner Cache vor der API hält Ihre App schnell und Ihre Nutzung planbar. Außerdem können Sie damit weiterhin die letzten gültigen Preise ausliefern, falls eine Anfrage fehlschlägt:
const TTL = 10 * 60 * 1000; // Standard-Tarif: Aktualisierung alle 10 Minuten
let cache = { at: 0, data: null };
export async function getPrices() {
if (cache.data && Date.now() - cache.at < TTL) return cache.data;
const res = await fetch("https://metalapi.com/api/v1/latest?currencies=XAU,XAG,XPT,XPD", {
headers: { "X-API-Key": process.env.METALAPI_KEY },
});
const data = await res.json();
if (!data.success) {
if (cache.data) return cache.data; // die letzten gültigen Preise ausliefern
throw new Error(`${data.error.code}: ${data.error.info}`);
}
cache = { at: Date.now(), data };
return data;
}Streamen statt pollen
Für Dashboards und Trading-Tools, die jede Aktualisierung benötigen, nutzen Sie ab dem Pro-Tarif /stream. Eine einzige dauerhafte Server-Sent-Events-Verbindung liefert neue Preise, sobald sie eintreffen – ganz ohne Polling-Schleife, die Sie abstimmen müssten.
Für Schwellenwert-Logik wie „Benachrichtigung, sobald Gold die Marke von 4.000 $ überschreitet“ nutzen Sie Preisalarme und Webhooks und verzichten ganz auf Polling.
Fehler souverän behandeln
- Prüfen Sie
successbei jeder Antwort und verzweigen Sie anhand vonerror.code. - Wiederholen Sie
104,500und503mit Backoff. Validierungsfehler wiederholen Sie nicht. - Ist die API nicht erreichbar, zeigen Sie weiterhin den letzten gültigen Preis zusammen mit seinem Zeitstempel an.
- Behalten Sie den Header
X-RateLimit-Remainingund die Seite Systemstatus im Blick.
Details und Code finden Sie unter Fehlerbehandlung.
Integration absichern
- Speichern Sie Schlüssel in Umgebungsvariablen oder einem Secrets-Manager, niemals in Git oder in clientseitigen Bundles.
- Verwenden Sie für alle Aufrufe aus dem Browser domainbeschränkte Schlüssel.
- Verwenden Sie einen Schlüssel pro Anwendung und Umgebung, und rotieren Sie Schlüssel, wenn jemand das Team verlässt oder ein Schlüssel kompromittiert sein könnte.
- Prüfen Sie den Header
X-MetalAPI-Signaturejedes Webhooks und lehnen Sie veraltete Zeitstempel ab.
Tipps zur Performance
- Verwenden Sie denselben HTTP-Client wieder, damit Verbindungen zwischen Anfragen offen bleiben.
- Akzeptieren Sie komprimierte Antworten (
gzipoderbr). Die meisten HTTP-Clients tun das standardmäßig. - Setzen Sie ein Timeout von etwa 10 Sekunden pro Anfrage, damit ein langsames Netzwerk Ihre App nie blockiert.
- Laden Sie
/symbolseinmal beim Start und prüfen Sie Benutzereingaben dagegen, statt Anfragen an ungültigen Symbolen scheitern zu lassen. - Rufen Sie
/usageaus Ihrem Monitoring auf, damit Sie gewarnt werden, bevor Ihr Kontingent aufgebraucht ist. Der Aufruf ist kostenlos.
Verwandte Anleitungen
Bereit zum Loslegen?
Erstellen Sie ein kostenloses Konto, um Ihren API-Schlüssel zu erhalten, oder entdecken Sie alle Endpunkte in der API-Referenz.