Steam-API-Dokumentation

57 Endpunkte für Steam-Marktpreise, Spieler-Inventare, CS2-Float-Werte, Profile und Trading — gruppiert nach ihrer Funktion. Jeder Eintrag listet seine Parameter, ein Beispiel-Request und die Response.

Basis-URL

www.steamwebapi.com

Auth-Header

X-Api-Key

Rate-Limits

Nach Tarif →

Account

Nutzung des SteamWebAPI-Kontos und Automatisierung der Steam-Login-Session.

2 Endpunkte
GET /account/me

📊 Konto- und Nutzungsstatistiken abrufen

Baseurl: https://www.steamwebapi.com/account/me 💬 **Details zu deinem Konto und deinen Nutzungsstatistiken abrufen.** - Dieser Endpunkt liefert umfassende Details zu deinem Konto, einschließlich Nutzungsstatistiken und Aktivitätsprotokollen. - **Nutzungsverfolgung:** Der Endpunkt protokolliert deine API-Nutzung und gibt Einblick in deine Aktivität. - **Rate Limiting:** Der Request erzeugt bei jedem Aufruf einen Nutzungsdatensatz. - **Echtzeitdaten:** Aktuelle Informationen zur API-Nutzung deines Kontos in verschiedenen Zeiträumen (Minute, Stunde, Tag, Woche, Monat). 🛠️ **Wichtige Details:** - **Nutzungsdetails**: Verfolge deine API-Nutzung über die letzte Minute, Stunde, den letzten Tag, die letzte Woche und den letzten Monat. - **Abo-Informationen**: Informationen zu Status und Laufzeit deines Abonnements. 🌐 **So verwendest du es:** - Gib deinen **API-Schlüssel** im Request an, um die Daten abzurufen. Die API antwortet mit einer Aufschlüsselung deiner Nutzung, deines Abo-Status und dem aktuellen Status der Steam Web API.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/account/me"

Responses

  • 200 Konto- und Nutzungsstatistiken erfolgreich abgerufen.
  • 400 Fehlerhafte Anfrage oder fehlender API-Schlüssel.
  • 401 Unautorisierter Zugriff durch ungültigen oder fehlenden API-Schlüssel.
POST /steam/api/steamloginsecure

📦 Steam-Login-Prozess automatisieren

Baseurl: https://www.steamwebapi.com/steam/api/steamloginsecure 💬 **Was dieser Endpunkt macht:** - Automatisiert deinen Steam-Login-Prozess, unter anderem für Trading, Market und andere Steam-Community-Funktionen. - Mit dem `steamLoginSecure`-Cookie kannst du unsere Trading-API nutzen und einfache Trading-Bots, Market-Tracker und mehr bauen. 🛠️ **So verwendest du es:** Es gibt **zwei Authentifizierungswege**: 1. **Login mit Benutzername + Passwort** - Sende einen POST-Request mit deinem Steam-`username` und `password` im Request Body. - Ist dein Konto durch Steam Guard geschützt, gib den `code`-Parameter aus deinem mobilen Authenticator an. 2. **Login mit Refresh Token** - Statt Benutzername/Passwort kannst du ein `steamrefreshtoken` (JWT) angeben. - Dieses Token wird nach dem ersten Login zurückgegeben und erlaubt dir, ein frisches `steamLoginSecure`-Cookie anzufordern, ohne die Zugangsdaten erneut einzugeben. 🚨 **Wichtiger Hinweis:** - Gib **nicht** gleichzeitig Login-Zugangsdaten und `steamrefreshtoken` an. - Genau eine der beiden Optionen muss vorhanden sein, nicht beide. 🌐 **Weitere Informationen:** - Der Login-Prozess wird sicher verarbeitet. Es wird serverseitig kein Passwort gespeichert. - Dieser Endpunkt eignet sich ideal für: - Trading-Bots - Market-Analyzer - Automatisierte Session-Checker 📦 **Response:** - Bei Erfolg erhältst du folgende Cookies: - `steamLoginSecure` – erforderlich für authentifizierte Steam-Community-Aktionen - `sessionid` – erforderlich für die meisten Web-Interaktionen - `browserid` – identifiziert Browser/Session - `steamrefreshtoken` – wiederverwendbares Token, um später neue `steamLoginSecure`-Cookies abzurufen 🕒 **Token-Gültigkeit** - Das `steamrefreshtoken` ist in der Regel **bis zu 6 Monate** gültig - Es kann wiederholt genutzt werden, um neue `steamLoginSecure`-Cookies abzurufen, ohne dich erneut anzumelden.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Request Body

JSON-Payload mit den erforderlichen Parametern für den Steam-Login. Es gibt zwei Authentifizierungswege: - Über `username` + `password` (bei aktivem Guard optional MFA-Datei, dann shared_secret als `code` - NICHT DER GUARD-CODE) - Oder ausschließlich über `steamrefreshtoken` ⚠️ Du musst entweder (username + password) oder steamrefreshtoken angeben – aber nicht beides.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/steamloginsecure"

Responses

  • 200 Erfolgreich bei Steam angemeldet. Cookies werden zurückgegeben.
  • 411 Ungültiger Benutzername oder ungültiges Passwort angegeben.
  • 412 Abruf gültiger Cookies von Steam fehlgeschlagen.
  • 413 SteamLoginSecure ist ungültig.
  • 421 Ungültiger Request Body oder fehlende Pflichtparameter.
  • 429 Rate-Limit überschritten. Versuche es später erneut.

Items

Steam-Item-Kataloge, CS2-Skin-Preise, Preisverlauf auf Item-Ebene und Orderaktivität. Empfohlen für Item-Suche, Preis-Feeds und Item-Detailseiten.

6 Endpunkte
GET /steam/api/items

🎯 Alle Items mit Preisen abrufen - Die vollständige Steam-Market-API

Baseurl: https://www.steamwebapi.com/steam/api/items?key=YOUR_API_KEY&game=cs2 💬 **Was dieser Endpunkt macht:** - Liefert umfassende Item-Daten für Steam-Spiele (CS2, Rust, Dota 2, TF2). - Liefert detaillierte Preisinformationen aus dem Steam Market und Drittanbieter-Märkten. - Liefert Metadaten wie Seltenheit, Wear, StatTrak-Status und mehr. - Unterstützt erweitertes Filtern, Sortieren und Paginierung. 🛠️ **Funktionen:** - **Preise aus mehreren Quellen**: Steam-Preise, echte Marktpreise, Kaufangebote und historische Daten. - **Erweiterte Filter**: Filter nach Preisbereich, Wear, Item-Typ, Gruppe und mehr. - **Flexible Sortierung**: Sortiere nach Preis, Beliebtheit, Win/Loss-Verhältnis oder zufällig. - **Feldauswahl**: Nutze den Parameter `select`, um nur bestimmte Felder zurückzugeben. - **Mehrere Formate**: Exportiere als JSON, CSV, XML oder Datenbank-Statements. - **Währungsumrechnung**: Preise in EUR, TRY, RUB und mehr umrechnen. 🌐 **So verwendest du es:** - Einfacher Aufruf: `GET /steam/api/items?key=YOUR_KEY&game=cs2` - Items suchen: `GET /steam/api/items?key=YOUR_KEY&search=AK-47` - Nach Preis filtern: `GET /steam/api/items?key=YOUR_KEY&price_min=10&price_max=100` - Nach Typ filtern: `GET /steam/api/items?key=YOUR_KEY&item_group=knife&wear=fn` - Nach Beliebtheit sortieren: `GET /steam/api/items?key=YOUR_KEY&sort_by=soldZa` - Felder auswählen: `GET /steam/api/items?key=YOUR_KEY&select=markethashname,pricelatest,image` - Als CSV exportieren: `GET /steam/api/items?key=YOUR_KEY&format=csv` 📊 **Response-Felder erklärt:** - `pricelatest`: Aktuell niedrigster Steam-Market-Angebotspreis. - `pricelatestsell`: Preis des letzten Steam-Verkaufs. - `pricereal`: Aktuell niedrigster Drittanbieter-Marktpreis. - `pricemix`: Niedrigster Preis über alle Quellen hinweg (Steam + Märkte). - `buyorderprice`: Höchster Steam-Kaufangebotspreis. - `sold24h/7d/30d/90d`: Anzahl verkaufter Items im jeweiligen Zeitraum. - `points`: Marktkapitalisierungs-Score (Preis × Volumen-Indikator). - `winloss`: Preisvergleich Steam vs. echte Märkte (positiv = Steam günstiger). - `releasedat`: Frühestes bekanntes Release-Datum der Basis-Skin-Kollektion als UTC-Objekt (date, timezone_type: 3, timezone: UTC), oder null. Mitternacht ist eine Darstellungskonvention, keine bekannte Release-Zeit. Wird durch einen täglichen Hintergrund-Befehl aktualisiert; nicht das erste Steam-Listing oder ein variantenspezifisches Release-Datum. - CS2 `only_new_items=1` oder `true`: Fehlende Items aus allen Skin-Kollektionen mit dem neuesten gemeinsamen Release-Datum. - CS2 `with_preview_items=1`: Normale Items plus dieselben fehlenden Items des neuesten Release. Preview-Zeilen verwenden normale IDs, Kollektion in `tag7`, und `preview=true`; optionales `description` behält den Quelltext bei. `steamlisting` wird aus einem Steam-Economy-Bild abgeleitet, ohne Live-Prüfung des Listings. ⚠️ **Performance-Tipps:** - Nutze den Parameter `max`, um Ergebnisse zu begrenzen (Standard: 50000). - Wende Filter an, um Ergebnisse einzugrenzen. - Nutze `select`, um nur benötigte Felder zurückzugeben. - Nutze `production=1` in Produktion, um Info-Felder zu entfernen.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Für alle Requests erforderlich. Hole deinen API-Schlüssel im Dashboard → oben rechts → Bereich API Key.
game string nein Spiel-Identifikator. Jedes Spiel hat unterschiedliche Item-Eigenschaften und Märkte. **Unterstützte Spiele:** - `cs2` (Standard): Counter-Strike 2 - Volle Unterstützung inklusive echter Marktpreise - `rust`: Rust - Grundlegende Steam-Marktdaten - `dota`: Dota 2 - Grundlegende Steam-Marktdaten - `tf2`: Team Fortress 2 - Grundlegende Steam-Marktdaten
page integer nein Seitenzahl für die Paginierung. In Verbindung mit dem Parameter `max` verwenden. - Seite 1 liefert Items 1-50000 (mit Standard-max) - Seite 2 liefert Items 50001-100000 usw.
max integer nein Maximale Anzahl an Items pro Seite. Niedrigere Werte verbessern die Antwortzeit. **Empfehlungen:** - Nutze 100-1000 für Webanwendungen - Nutze höhere Werte für Datenexporte - Maximum: 50000 Items pro Request z. B. 100
limit integer nein Alias für `max`, akzeptiert für Clients, die den gebräuchlicheren Namen verwenden. Wird nur angewendet, wenn `max` fehlt — ein explizites `max` gewinnt immer, und wenn keines von beiden gesendet wird, bleibt der Standardwert 50000 bestehen. z. B. 12
sort_by string nein Sortierreihenfolge der Ergebnisse. ⚠️ **Performance-Hinweis:** Sortierung kann Antworten bei großen Ergebnismengen deutlich verlangsamen. Nutze Filter (`price_min`, `item_group` usw.), um die Datenmenge vor dem Sortieren zu reduzieren, oder verwende für beste Performance den Standard `priceAz`. **Preisbasierte Sortierung:** - `priceAz` (Standard): Steam-Listungspreis aufsteigend (günstigste zuerst) - *Am schnellsten* - `priceZa`: Steam-Listungspreis absteigend (teuerste zuerst) - `priceRealAz`: Drittanbieter-Marktpreis aufsteigend - `priceRealZa`: Drittanbieter-Marktpreis absteigend **Win/Loss-Sortierung** (Preisvergleich Steam vs. Markt): - `winner`: Beste Deals zuerst (Steam günstiger als Märkte) - `loser`: Schlechteste Deals zuerst (Steam teurer) - `winLossAz`: Win/Loss aufsteigend - `winLossZa`: Win/Loss absteigend - `winnerRandom`: Gewinner zuerst, innerhalb der Gruppe zufällig - `loserRandom`: Verlierer zuerst, innerhalb der Gruppe zufällig **Volumenbasierte Sortierung:** - `soldAz`: Am wenigsten verkaufte Items zuerst - `soldZa`: Meistverkaufte Items zuerst (beliebte Items) - `pointsAz`: Niedrigste Marktkapitalisierung zuerst - `pointsZa`: Höchste Marktkapitalisierung zuerst **Weitere:** - `name`: Alphabetisch nach Market-Hash-Namen - `random`: Zufällige Reihenfolge (nützlich zum Entdecken) - *Am langsamsten*
search string nein Items nach Namen durchsuchen. Mindestens 3 Zeichen erforderlich. **Beispiele:** - `search=AK-47` - Findet alle AK-47-Skins - `search=Doppler` - Findet alle Doppler-Items (Messer, Handschuhe) - `search=Redline` - Findet Redline-Skins über alle Waffen hinweg Die Suche unterscheidet nicht zwischen Groß- und Kleinschreibung und findet auch Teilübereinstimmungen.
price_min number nein Minimaler Steam-Market-Listungspreis in USD. - Items unter diesem Preis werden ausgeschlossen - In Kombination mit `price_max` nutzen, um einen Preisbereich festzulegen - Preise sind in der Basiswährung (USD), sofern `currency` nicht angegeben ist
price_max number nein Maximaler Steam-Market-Listungspreis in USD. - Items über diesem Preis werden ausgeschlossen - Das Steam-Market-Maximum liegt bei ~3000 $ (variiert je nach Region) - In Kombination mit `price_min` nutzen, um einen Preisbereich festzulegen
price_real_min number nein Minimaler Drittanbieter-Marktpreis in USD. - Filtert nach dem niedrigsten verfügbaren Preis über alle Drittanbieter-Märkte hinweg - Nützlich, um Arbitrage-Möglichkeiten zu finden
price_real_max number nein Maximaler Drittanbieter-Marktpreis in USD. - Filtert nach dem niedrigsten verfügbaren Preis über alle Drittanbieter-Märkte hinweg - Hochpreisige Items können die Steam-Market-Grenze (3000 $) überschreiten
item_group string nein Filter nach Item-Kategorie/-Gruppe. **CS2-Gruppen:** - `knife` - Alle Messer (Karambit, Butterfly usw.) - `gloves` - Alle Handschuhe - `pistol` - Pistolen (Glock, USP-S, Desert Eagle usw.) - `rifle` - Gewehre (AK-47, M4A1-S usw.) - `sniper rifle` - Scharfschützengewehre (AWP, SSG 08 usw.) - `smg` - SMGs (MP9, MAC-10 usw.) - `shotgun` - Schrotflinten - `machinegun` - Maschinengewehre (M249, Negev) - `case` - Waffenkisten - `capsule` - Sticker-Kapseln - `collection` - Kollektionen Mehrere Gruppen: `knife,gloves` (kommagetrennt)
item_type string nein Filter nach spezifischem Waffentyp innerhalb einer Gruppe. **Beispiele:** - `ak-47` - Nur AK-47-Skins - `awp` - Nur AWP-Skins - `karambit` - Nur Karambit-Messer - `m4a1-s` - Nur M4A1-S-Skins Nutze `/steam/api/info/items?type=types`, um alle verfügbaren Typen zu erhalten.
item_name string nein Filter nach Skin-Name (ohne Waffentyp). **Beispiele:** - `redline` - Alle Redline-Skins (AK-47, AWP usw.) - `doppler` - Alle Doppler-Items - `asiimov` - Alle Asiimov-Skins - `fade` - Alle Fade-Items Nutze `/steam/api/info/items?type=items`, um alle verfügbaren Namen zu erhalten.
wear string nein Filter nach Zustand/Wear-Stufe des Items. **Wear-Stufen:** - `fn` - Factory New (0.00 - 0.07 Float) - `mw` - Minimal Wear (0.07 - 0.15 Float) - `ft` - Field-Tested (0.15 - 0.38 Float) - `ww` - Well-Worn (0.38 - 0.45 Float) - `bs` - Battle-Scarred (0.45 - 1.00 Float) Mehrere Wears: `fn,mw` (kommagetrennt)
select string nein Bestimmte Felder für die Ausgabe auswählen. Reduziert die Response-Größe deutlich. **Beispiel:** `select=markethashname,pricelatest,image` **Beliebte Feldauswahlen:** - Basis: `markethashname,pricelatest,image` - Trading: `markethashname,pricelatest,pricereal,winloss` - Vollständiger Preis: `markethashname,pricelatest,pricereal,buyorderprice,sold24h` Feldnamen müssen exakt den Response-Feldnamen entsprechen (Kleinschreibung).
currency string nein Preise in die angegebene Währung umrechnen. **Unterstützte Währungen:** - `USD` (Standard), `EUR`, `GBP`, `TRY`, `RUB`, `CNY`, `JPY`, `BRL`, `PLN`, `CAD`, `AUD` Wechselkurse werden stündlich von Steam aktualisiert.
production string nein Auf `1` setzen, wenn du in einer Produktivumgebung arbeitest. **Vorteile:** - Entfernt Info-/Hinweisfelder aus der Response - Sauberer, kleinerer Response-Payload - Wird in zukünftigen API-Versionen erforderlich sein **Hinweis:** Ist der Parameter nicht gesetzt, können Deprecation-Warnungen erscheinen.
format string nein Ausgabeformat der Response. **JSON-Formate:** - `json` (Standard): Standard-JSON - `gzip`: Gzip-komprimiertes JSON - `zip`: Zip-komprimiertes JSON - `ndjson`: Zeilengetrenntes JSON (Streaming) **Export-Formate:** - `csv`: Kommagetrennte Werte - `xml`: XML-Format - `html`: HTML-Tabelle **Datenbankformate:** - `mysql`: MySQL-INSERT-Statements - `mysql_with_table`: MySQL mit CREATE TABLE - `pgsql`: PostgreSQL-INSERT-Statements - `pgsql_with_table`: PostgreSQL mit CREATE TABLE - `mongo`: MongoDB-Insert-Dokumente
pretty string nein JSON-Ausgabe formatiert darstellen (eingerückt, menschenlesbar). - `0` (Standard): Minifiziertes JSON (kleinere Größe) - `1`: Formatiertes JSON (besser lesbar) Gilt nur für die Formate json, gzip und zip.
markets string nein Drittanbieter-Marktpreise auf bestimmte Märkte einschränken. **Verfügbare Märkte:** - `skinbaron` - Skinbaron.de - `skinport` - Skinport.com - `dmarket` - DMarket.com - `buff` - Buff163.com - `waxpeer` - Waxpeer.com - `csgotm` - CS.Money / CSGOTradeMoney - `haloskins` - HaloSkins - `tradeit` - Tradeit.gg - `skinbid` - Skinbid.com **Beispiel:** `markets=skinbaron,buff,skinport` Bei Angabe ist `pricereal` der niedrigste Preis ausschließlich unter den gewählten Märkten.
with_preview_items boolean nein Hängt neu entdeckte Items an, die noch nicht vollständig indexiert sind. - `0` oder `false` (Standard): Liefert nur vollständig indexierte Items - `1` oder `true`: Hängt in der Datenbank fehlende Items aus der neuesten Skin-Kollektions-Release-Welle am Ende an Preview-Items haben: - Das Flag `preview: true` - Eingeschränkte Daten (keine Preise, nur grundlegende Metadaten) - Ein 6 Stunden lang gecachtes Snapshot der Datenbankverfügbarkeit Nützlich, um den vollständigen aktuellen Katalog zurückzugeben, während neue Kollektions-Items noch nicht vollständig indexiert sind. Historisch in der Datenbank fehlende Items werden nicht angehängt. Der gemeinsame ByMykel-Katalog wird durch einen Fünf-Minuten-Hintergrundjob aktualisiert. Preview-IDs verwenden den normalen Item-ID-Algorithmus; tag7 enthält den Kollektionsnamen. steamlisting wird aus einem Quell-Steam-Economy-Bild abgeleitet, nicht live geprüft. Beide Preview-Optionen teilen sich dieselben Felder und dasselbe select-Verhalten; preview bleibt bei select immer erhalten.
only_new_items string nein Auf 1 oder true setzen, um CS2-Skins zu erhalten, die in der Datenbank in der neuesten Skin-Kollektions-Release-Welle fehlen. Jede Skin-Kollektion mit dem neuesten gemeinsamen Release-Datum wird einbezogen. Undatierte und zukünftige Kollektionen sind ausgeschlossen. Hat Vorrang vor with_preview_items. Unterstützt search, wear, item_type, item_group, item_name, collection_id, page, max und select. Verwendet dieselben Preview-Felder wie with_preview_items: normale Item-IDs, Kollektion in tag7 und steamlisting abgeleitet aus Quell-Steam-Economy-Bildern (keine Live-Seitenprüfung). preview=true bleibt auch bei select erhalten.
collection_id string nein Schränke only_new_items=1 oder true auf eine exakte ByMykel-Kollektions-ID innerhalb der neuesten Release-Welle ein.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/items?max=100&limit=12"

Responses

  • 200 Request war erfolgreich, Items werden zurückgegeben.
  • 400 Ungültige Request-Parameter
  • 404 Spiel nicht gefunden. Unterstützte Spiele: cs2, rust, dota, tf2.
  • 429 Rate-Limit überschritten. Bitte warte, bevor du weitere Requests sendest.
  • 500 Interner Serverfehler
  • 503 Preview-Verfügbarkeit ist vorübergehend nicht verfügbar, wenn `with_preview_items=1` gesetzt ist.
GET /steam/api/item

📦 Item-Details mit Preisen aller Märkte und Historie abrufen

Baseurl: https://www.steamwebapi.com/steam/api/item?key=YOUR_API_KEY&market_hash_name=AK-47%20%7C%20Redline%20(Field-Tested) 💬 **Was dieser Endpunkt macht:** - 🔍 Ruft Details eines bestimmten Items anhand seines `market_hash_name`, `slug` oder `hashId` ab. - 📊 Liefert angereicherte Details wie: - Preisinformationen. - Tags und Metadaten. - Eine kurze Preishistorie. - Ruft alle Varianten des Items als Gruppen ab, wenn `with_groups` auf `true` gesetzt ist. Zum Beispiel liefert `AK-47 | Redline (Field-Tested)` alle Varianten der AK-47 | Redline. 🚀 **Warum diesen Endpunkt nutzen?** - Fokussiert sich auf ein einzelnes Item mit detaillierten Daten für fortgeschrittene Anwendungsfälle. - Optimiert für Szenarien, in denen Präzision wichtig ist, etwa Marktanalysen oder Item-Tracking. ⚠️ **Hinweis:** Dieser Endpunkt ähnelt `/steam/api/items`, konzentriert sich jedoch auf ein einzelnes Item mit angereicherten Details.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
market_hash_name string ja Erforderlich. Der `market_hash_name` des Items. Beispiel: `AK-47 | Redline (Field-Tested)`. z. B. AK-47 | Redline (Field-Tested)
currency string nein Optional. Die gewünschte Währung für die Preisumrechnung (z. B. EUR, TRY, RUB, USD). Standard ist USD. Verfügbare Codes siehe Currency API. z. B. EUR
with_groups string nein Optional. Auf `true` setzen, um alle Varianten eines Items abzurufen - StatTrak, andere Wear-Stufen, Souvenirs (ein sehr nützliches Feature). Standard ist `false`. z. B.
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
markets string nein Preise auf bestimmte Märkte beschränken (kommagetrennt). `pricereal` wird als niedrigster Preis unter den angegebenen Märkten berechnet. Beispiel: `skinbaron,skinport,dmarket`. Verfügbare Märkte: skinbaron, skinport, dmarket, buff, waxpeer, csgotm, haloskins, tradeit, skinbid. Standard: alle Märkte.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/item?market_hash_name=AK-47 | Redline (Field-Tested)&currency=EUR&with_groups="

Responses

  • 200 Request war erfolgreich, Item-Details werden zurückgegeben.
  • 400 Parameter `market_hash_name` fehlt.
  • 404 Item nicht gefunden. Stelle sicher, dass der `market_hash_name` korrekt ist.
  • 429 Rate-Limit überschritten.
GET /steam/api/history

📈 Preishistorie eines Items mit täglichen Preisen von Steam oder echten Marktdaten

Baseurl: https://www.steamwebapi.com/steam/api/history?key=YOUR_API_KEY&market_hash_name=ITEM_NAME 💬 **Was dieser Endpunkt macht:** - Ruft die Preishistorie eines Items anhand der angegebenen Parameter ab. - 🗓️ Liefert tägliche Preise von Steam oder echte Marktpreise, wenn `markets` als origin-Parameter übergeben wird. 🛠️ **Parameter:** - **`key`**: Dein API-Schlüssel, zu finden im Dashboard (oben rechts). - **`market_hash_name`**: Der `market_hash_name` des Items (erforderlich). - **`origin`**: Gibt die Datenquelle an. Standard ist `steamwebapi`. Nutze `markets` für echte Marktpreis-Historie oder `direct` für direkten Steam-API-Zugriff. - **`interval`**: Intervall für den Datenabruf in Tagen. Standard: `10`. - **`start_date`**: Startdatum für den Datenabruf (Format: YYYY-MM-DD). - **`end_date`**: Enddatum für den Datenabruf (Format: YYYY-MM-DD). ⚡ **Wichtig:** - Nutze den Parameter `interval` für optimierte Datenabfragen. - Die Angabe von `markets` bei `origin` führt zu langsameren Antworten, liefert aber detaillierte echte Marktdaten. - Die Verwendung von `direct` als origin ermöglicht direkten Zugriff auf Steam-API-Daten.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
market_hash_name string ja Der `market_hash_name` des Items. Beispiel: "AK-47 | Redline (Field-Tested)".
origin string nein Gibt die Datenquelle an. Optionen: `steamwebapi` (Standard), `markets` für echte Marktpreis-Historie, oder `direct` für direkten Steam-API-Zugriff. z. B. steamwebapi
interval string nein Gibt das Intervall für den Datenabruf in Tagen an. Standard ist `10`. z. B. 10
start_date string nein Gibt das Startdatum für den Datenabruf an. Format: `YYYY-MM-DD`. z. B. 2024-01-01
end_date string nein Gibt das Enddatum für den Datenabruf an. Format: `YYYY-MM-DD`. z. B. 2024-12-31
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/history?origin=steamwebapi&interval=10&start_date=2024-01-01&end_date=2024-12-31"

Responses

  • 200 Request war erfolgreich, Preishistorie wird zurückgegeben.
  • 400 Ungültiges Start- oder Enddatum angegeben.
POST /steam/api/items/history

📈 Täglich aggregierte Preishistorie für mehrere Items abrufen

Baseurl: https://www.steamwebapi.com/steam/api/items/history?markets=steam,dmarket,skinport&game=cs2&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Aggregiert historische Preisdaten für beliebige Items über die Zeit. - Liefert täglich aggregierte Daten mit Gesamtwert und Item-Anzahl. - Verwendet den niedrigsten positiven Tagesschlusskurs genau aus den angeforderten Märkten. `steam` kann mit Drittanbieter-Markt-Identifikatoren kombiniert werden. - Jeder Request kostet 1 Credit, unabhängig von der Anzahl der Items. 🌐 **So verwendest du es:** - Sende `items` als Legacy-Market-Hash-Name-Strings oder Objekte mit `market_hash_name`, optionalem `phase`, optionalem `paint_index` und optionalem `count`. - Gib die gewählten Markt-Identifikatoren als kommagetrennten `markets`-Wert in der Query oder im Request Body an. Bei Angabe an beiden Stellen gewinnt der Query-Wert. Wird er weggelassen, gilt Steam als Standard. - Der Endpunkt liefert täglich aggregierten Wert, nachdem die gewählten Märkte für jedes Item und jeden Tag aufgelöst wurden. - Doppelte Items im Array werden separat gezählt (z. B. 2x "AK-47 | Redline" = 2x Preis). - Bei phasenbewussten Objekten müssen Drittanbieter-Preise exakt zur Phase passen; Steam bleibt ein gültiger generischer Kandidat. - Vor dem ersten exakten Phasen-Snapshot verwenden phasenbewusste Items die niedrigste generische Doppler-Historie aus den gewählten Märkten. Ab dem ersten exakten Snapshot müssen Drittanbieter-Kandidaten zur Phase passen; Steam bleibt generisch. 📊 **Anwendungsfälle:** - **Inventar-Tracking:** Verfolge den Wert deines Steam-Inventars über die Zeit, indem du alle deine Item-Namen sendest - **Portfolio-Analyse:** Überwache die Performance bestimmter Item-Sammlungen oder Investment-Portfolios - **Watchlist-Überwachung:** Verfolge Preistrends für Items, die du kaufen oder verkaufen möchtest - **Marktforschung:** Vergleiche die historische Performance zwischen verschiedenen Item-Kategorien oder Seltenheitsstufen - **Trading-Strategien:** Analysiere Preisbewegungen für Items in deinem Trading-Pool

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
markets string nein Optionale kommagetrennte Markt-Identifikatoren, zum Beispiel `steam,dmarket,skinport`. Der niedrigste positive Tagesschlusskurs genau aus diesen Märkten wird verwendet. Standard ist `steam`, wenn nicht angegeben. z. B. steam,dmarket,skinport
game string nein Optional. Spiel-Kurzname. Standard: cs2. Verfügbar: cs2, csgo, dota, rust z. B. cs2
from_date string nein Optional. Startdatum für die Filterung der Historie (Format Y-m-d, z. B. 2025-01-01). Wird nichts angegeben, wird die gesamte verfügbare Historie vom Anfang an zurückgegeben. z. B. 2025-01-01
to_date string nein Optional. Enddatum für die Filterung der Historie (Format Y-m-d, z. B. 2025-01-31). Wird nichts angegeben, wird bis zum aktuellen Datum zurückgegeben. z. B. 2025-01-31
strategy string nein Optional. Strategie zur Preisaggregation: - `PAST_PRICE`: Verwendet den letzten bekannten Preis vor oder am angegebenen Datum - `PAST_FUTURE_PRICE`: Verwendet den letzten bekannten Preis vor dem angegebenen Datum, oder den ersten bekannten Preis danach, falls vorher keiner existiert. Bevor eine exakte Phasen-Historie beginnt, verwenden phasenbewusste Items die generische Doppler-Historie der gewählten Märkte, statt eine zukünftige exakte Phase rückwärts zu projizieren. - `SAME_DATE`: Verwendet den Preis am angegebenen Datum oder den nächstverfügbaren Preis (vorheriger oder nächster Tag) - `STRICT`: Verwendet den Preis nur, wenn er exakt am angegebenen Datum existiert, andernfalls werden für diesen Tag keine Daten zurückgegeben - `NEAREST`: Verwendet den nächstverfügbaren Preis (vorheriger oder nächster) zum angegebenen Datum z. B. PAST_PRICE
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/items/history?markets=steam,dmarket,skinport&game=cs2&from_date=2025-01-01&to_date=2025-01-31&strategy=PAST_PRICE"

Responses

  • 200 Täglich aggregierte Historie erfolgreich zurückgegeben.
  • 400 Ungültige Items, Märkte, Daten oder Aggregationsstrategie.
  • 404 Spiel nicht gefunden.
GET /steam/api/items/preview

🔍 CS2-Items als Vorschau - Leichte Metadaten (keine Preise)

Baseurl: https://www.steamwebapi.com/steam/api/items/preview?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Liefert eine leichtgewichtige Vorschau von CS2-Items ohne Preisdaten. - Gedacht für schnellen Zugriff auf Item-Metadaten und neu verfügbare Items. - Für vollständige Item-Details inklusive Preisen bevorzuge `/steam/api/items`. 🛠️ **Funktionen:** - Items nach Namen durchsuchen mit dem Parameter `search` (Groß-/Kleinschreibung wird nicht beachtet). - Filter nach `paint_index` oder `def_index` für bestimmte Waffen/Skins. - Ergebnisse mit `groupBy` gruppieren, um eindeutige Werte zu erhalten (z. B. alle Item-Typen). - Phasenvarianten mit `grouped=true` (Standard) kombinieren; nicht verwandte Items mit demselben Anzeigenamen bleiben getrennt. - Liefert standardmäßig nur Skin-IDs; nutze `show_all=1`, um weitere Katalogkategorien einzubeziehen. - Markiert in der Datenbank fehlende Items mit `preview=true` und `new=true`. - Markiert außerdem Items ohne Live-Steam-Bild mit `new=true`; deren Bild wird über den SteamWebAPI-Bild-Proxy ausgeliefert. - Markiert Items, die erstmals innerhalb von 30 Tagen verkauft wurden, mit `recent=true`. - Filter nur nach Items mit Phasen über `only_phases=true`. - Unterstützt mehrere Ausgabeformate über den Parameter `format`. 🌐 **So verwendest du es:** - Einfacher Aufruf: `GET /steam/api/items/preview?key=YOUR_KEY` - Suche: `GET /steam/api/items/preview?search=AK-47&key=YOUR_KEY` - Nach Waffe filtern: `GET /steam/api/items/preview?def_index=7&key=YOUR_KEY` - Alle Item-Typen abrufen: `GET /steam/api/items/preview?groupBy=itemtype&key=YOUR_KEY` - Als CSV exportieren: `GET /steam/api/items/preview?format=csv&key=YOUR_KEY`

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
search string nein Optional. Items nach Namen durchsuchen (Groß-/Kleinschreibung wird nicht beachtet). Findet auch Teilübereinstimmungen. - Beispiel: `search=AK-47` liefert alle AK-47-Skins. - Beispiel: `search=Redline` liefert alle Redline-Skins über alle Waffen hinweg. z. B. AK-47
paint_index integer nein Optional. Filter nach Paint-Index (Skin-Muster-ID). - Jeder Skin hat einen eindeutigen paint_index. - Beispiel: `282` = Redline, `418` = Doppler Phase 1. z. B. 282
def_index integer nein Optional. Filter nach Definitionsindex (Waffen-ID). - Jeder Waffentyp hat einen eindeutigen def_index. - Häufige Werte: `7` = AK-47, `9` = AWP, `4` = Glock-18, `61` = USP-S. z. B. 7
grouped boolean nein Optional. Phasenvarianten kombinieren (Standard: true). - `true`: Liefert einen Eintrag pro Market-Hash-Name mit Phase, mit einem `variants`-Array. - Gleichnamige Items ohne Phasen bleiben getrennt, da sie unterschiedliche Stufen oder Editionen repräsentieren können. - `false`: Liefert alle Varianten als separate Einträge. z. B. 1
groupBy string nein Optional. Ergebnisse nach einem Feld gruppieren und nur eindeutige Werte zurückgeben. - Die Response wird ein flaches Array aus Strings/Zahlen. - Beispiel: `?groupBy=itemtype` liefert `["ak-47", "awp", "m4a1-s", ...]` - Beispiel: `?groupBy=rarity` liefert `["Covert", "Classified", "Restricted", ...]` z. B. itemtype
format string nein Optional. Ausgabeformat der Response. - `json` (Standard): Standard-JSON-Response. - `csv`, `xml`, `html`: Exportformate für Datenanalyse. - `gzip`, `zip`: Komprimiertes JSON für große Datensätze. - `mysql`, `pgsql`, `mongo`: Datenbank-Insert-Statements. z. B. json
pretty string nein Optional. JSON-Ausgabe formatiert darstellen (eingerückt, menschenlesbar). - `0` (Standard): Minifiziertes JSON. - `1`: Eingerücktes, formatiertes JSON. z. B. 0
show_all boolean nein Optional. Steuert, welche CS2-Katalogkategorien zurückgegeben werden. - `0` oder weggelassen: Liefert nur Items, deren Katalog-ID mit `skin-` beginnt. - `1`: Liefert alle unterstützten Katalogkategorien. Global ignorierte Präfixe bleiben ausgeschlossen. z. B.
preview boolean nein Optional. Filter nach Datenbankverfügbarkeit. - `0` oder weggelassen: Liefert den vollständigen Katalog mit `preview`- und `new`-Flags. - `1`: Liefert nur Items, die noch nicht in der Item-Datenbank für CS2 existieren. z. B.
only_phases boolean nein Optional. Liefert nur Items, die Phasen haben. - Nützlich zum Filtern von Doppler-, Gamma-Doppler- und Marble-Fade-Messern. - Liefert Items mit Phase 1, Phase 2, Phase 3, Phase 4, Ruby, Sapphire usw. z. B.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/items/preview?search=AK-47&paint_index=282&def_index=7&grouped=1&groupBy=itemtype&format=json&pretty=0&show_all=&preview=&only_phases="

Responses

  • 200 CS2-Items, die den Filtern entsprechen. Liefert Item-Metadaten ohne Preise. Bei `grouped=true` (Standard) enthalten Items mit mehreren Phasen ein `variants`-Array.
  • 400 Ungültige Request-Parameter.
  • 500 Interner Serverfehler oder Upstream-API nicht verfügbar.
  • 503 Der Redis-basierte Snapshot der Datenbankverfügbarkeit ist vorübergehend nicht verfügbar.
GET /steam/api/itemordersactivity

📦 Echtzeit-Orderaktivität für ein Steam-Item abrufen

Baseurl: https://www.steamwebapi.com/steam/api/itemordersactivity?key=YOUR_API_KEY&nameid=UNIQUE_NAMEID 💬 **Was dieser Endpunkt macht:** - Ruft Details zur Orderaktivität eines angegebenen Steam-Items ab. - Enthält Informationen wie: - 🌍 Regionale Daten basierend auf dem Ländercode. - 🗣️ Sprachspezifische Details. - 💲 Preisinformationen in der angegebenen Währung. 🛠️ **So verwendest du es:** - Gib den Parameter `market_hash_name` an, um das Item festzulegen. - Passe optional die Parameter `country`, `language` und `currency` für maßgeschneiderte Ergebnisse an.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
market_hash_name string ja Erforderlich. Der `market_hash_name` des Items. Beispiel: `AK-47 | Redline (Field-Tested)`. z. B. AK-47 | Redline (Field-Tested)
country string nein Ländercode für regionale Daten. Optional. Standard ist `EN`. z. B. US
language string nein Sprachcode für die Lokalisierung. Optional. Standard ist `english`. z. B. english
currency string nein Währungscode für Preise. Optional. Standard ist `1` (USD). z. B. 1
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/itemordersactivity?market_hash_name=AK-47 | Redline (Field-Tested)&country=US&language=english&currency=1"

Responses

  • 200 Request war erfolgreich
  • 400 Ungültige Parameter angegeben.
  • 404 Item nicht gefunden.
  • 502 Abruf der Daten von der Steam-API fehlgeschlagen.

Info

Item-Metadaten, SteamID-Konvertierung, Markt-Metadaten, CS2-Kollektionen und Währungsumrechnung.

9 Endpunkte
GET /steam/api/info/items

📋 Item-Metadaten abrufen - Gruppen, Typen und Namen

Baseurl: https://www.steamwebapi.com/steam/api/info/items?key=YOUR_API_KEY&game=cs2 💬 **Was dieser Endpunkt macht:** - Liefert strukturierte Item-Metadaten für ein bestimmtes Spiel. - Liefert alle verfügbaren Item-Gruppen, -Typen und -Namen. - Liefert hierarchische Daten zum Aufbau von Item-Selektoren und Filtern. 🛠️ **Funktionen:** - **Strukturierter Modus** (Standard): Hierarchische Struktur Gruppe → Typ → Name. - **Gruppen-Modus**: Liste aller Item-Kategorien (Messer, Gewehr, Pistole usw.). - **Typen-Modus**: Liste aller Waffentypen (ak-47, awp, karambit usw.). - **Items-Modus**: Liste aller Skin-Namen (doppler, fade, asiimov usw.). - 24-Stunden-Caching für optimale Performance. 🌐 **So verwendest du es:** - Strukturierte Daten abrufen: `GET /steam/api/info/items?key=YOUR_KEY` - Alle Gruppen abrufen: `GET /steam/api/info/items?key=YOUR_KEY&type=groups` - Alle Typen abrufen: `GET /steam/api/info/items?key=YOUR_KEY&type=types` - Alle Namen abrufen: `GET /steam/api/info/items?key=YOUR_KEY&type=items` - Aktualisierung erzwingen: `GET /steam/api/info/items?key=YOUR_KEY&no_cache=1` 📊 **Anwendungsfälle:** - Dynamische Item-Filter für deine Anwendung erstellen. - Autocomplete-Suchfunktionen erstellen. - Navigationsmenüs für Item-Kategorien generieren.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Für alle Requests erforderlich.
game string nein Spiel-Identifikator. **Unterstützte Spiele:** - `cs2` (Standard): Counter-Strike 2 - `rust`: Rust - `dota`: Dota 2 - `tf2`: Team Fortress 2 z. B. cs2
type string nein Art der zurückzugebenden Daten. **Optionen:** - `structed` (Standard): Hierarchische Struktur (Gruppe → Typ → Items) - `groups`: Flache Liste der Item-Gruppen (Messer, Gewehr usw.) - `types`: Flache Liste der Waffentypen (ak-47, awp usw.) - `items`: Flache Liste der Skin-Namen (doppler, fade usw.) z. B. structed
no_cache string nein Umgeht den 24-Stunden-Cache und ruft frische Daten ab. - Weglassen oder `0`: Gecachte Daten verwenden (empfohlen) - `1`: Frischen Datenabruf erzwingen **Hinweis:** Frischer Abruf ist langsamer, nur bei Bedarf nutzen. z. B. 0
format string nein Ausgabeformat. Siehe /steam/api/items für alle Formatoptionen.
pretty string nein JSON-Ausgabe formatiert darstellen.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/info/items?game=cs2&type=structed&no_cache=0"

Responses

  • 200 Item-Metadaten erfolgreich zurückgegeben. Struktur hängt vom Parameter `type` ab.
  • 404 Spiel nicht gefunden.
  • 429 Rate-Limit überschritten. Bitte warte, bevor du weitere Requests sendest.
GET /steam/api/info/steamid

🔄 SteamID in mehrere Formate konvertieren

Baseurl: https://www.steamwebapi.com/steam/api/info/steamid?key=YOUR_API_KEY&steam_id=STEAM_ID 💬 **Was dieser Endpunkt macht:** - Konvertiert eine SteamID in verschiedene Formate: - SteamID2. - SteamID3. - SteamID64. - Liefert das Ergebnis als JSON. 🛠️ **Funktionen:** - Unterstützt alle gängigen SteamID-Formate zur Konvertierung. - Einfache und effiziente Konvertierung für schnelle Integration. 🌐 **So verwendest du es:** - Gib eine gültige `steam_id` in einem beliebigen Format an (`SteamID2`, `SteamID3` oder `SteamID64`). - Nutze deinen API-Schlüssel zur Authentifizierung des Requests.

Parameter

Name Typ Pflicht Beschreibung
steam_id string ja Die zu konvertierende SteamID. Akzeptierte Formate: - `SteamID2`: z. B. `STEAM_0:0:553498XXX`. - `SteamID3`: z. B. `[U:1:1106997XXX]`. - `SteamID64`: z. B. `76561199067263XXX`.
key string nein Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/info/steamid"

Responses

  • 200 Request war erfolgreich, die konvertierten SteamID-Formate werden zurückgegeben.
  • 400 Fehlender oder ungültiger Parameter `steam_id`.
  • 404 Die angegebene `steam_id` ist ungültig.
GET /steam/api/cs/containers

🎯 Alle CS2/CS:GO-Container und -Kollektionen abrufen

Baseurl: https://www.steamwebapi.com/steam/api/cs/containers 💬 **What this endpoint does:** - Retrieves all containers and their collections from CS2/CS:GO. - Provides a comprehensive list of cases, stickers, and other containers. 🛠️ **Features:** - Supports filtering by container type (`all`, `sticker`, `case`, `package). - Enables searching for specific cases using the `search` parameter. - Results can be sorted by name, price, or release date. 🌐 **How to use:** - Use the `type` parameter to specify the group of containers to fetch. - Optionally, apply the `search` and `sortBy` parameters to refine your results.

Parameter

Name Typ Pflicht Beschreibung
type string ja Zeigt nur diese Container-Gruppe. Zulässige Werte: `all`, `sticker`, `case`.
key string nein Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
search string nein Nach einer bestimmten Kiste oder einem Container anhand des Namens suchen.
sortBy string nein Sortiert das Ergebnis nach einem bestimmten Kriterium. Optionen: - `nameAz`: Name aufsteigend. - `nameZa`: Name absteigend. - `priceSteamAz`: Steam-Preis aufsteigend. - `priceSteamZa`: Steam-Preis absteigend. - `priceRealAz`: Echter Marktpreis aufsteigend. - `priceRealZa`: Echter Marktpreis absteigend. - `releasedatAz`: Veröffentlichungsdatum aufsteigend. - `releasedatZa`: Veröffentlichungsdatum absteigend.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/cs/containers"

Responses

  • 200 Request war erfolgreich, alle Container werden zurückgegeben.
  • 400 Fehlende oder ungültige Parameter.
GET /steam/api/cs/collection/{slug}

🎯 Eine CS2/CS:GO-Kollektion oder -Kiste abrufen

Baseurl: https://www.steamwebapi.com/steam/api/cs/collection/{slug} 💬 **Was dieser Endpunkt macht:** - Liefert eine Liste aller Kollektionen und ihrer Items (Skins) aus CS2/CS:GO. - Liefert detaillierte Informationen zu einer bestimmten Kollektion oder Kiste. 🛠️ **Funktionen:** - Ruft alle Items (Skins) ab, die zu einer bestimmten Kollektion oder Kiste gehören. - Unterstützt sowohl CS2- als auch CS:GO-Kollektionen. 🌐 **So verwendest du es:** - Ersetze `{slug}` durch die eindeutige Kennung der Kollektion, um die gewünschten Daten abzurufen.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
slug string ja
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/cs/collection/{slug}"

Responses

  • 200 Request war erfolgreich, die Kollektionsdaten werden zurückgegeben.
  • 404 Die angegebene Kollektion oder Kiste wurde nicht gefunden.
GET /steam/api/cs/collections

🎯 Alle CS2-Kollektionen mit Items abrufen

Base URL: https://www.steamwebapi.com/steam/api/cs/collections 💬 **Was dieser Endpunkt macht:** - Liefert eine Liste aller CS2- und CS:GO-Kollektionen. - Jede Kollektion enthält detaillierte Informationen zu ihren Items (Skins) und Containern (Kisten/Kapseln). 🛠️ **Funktionen:** - Ruft alle Kollektionen zusammen mit den zugehörigen Skins ab. - Entfernt doppelte Items innerhalb einer Kollektion anhand von `groupid`. - Enthält Container-Informationen (z. B. Kisten, Souvenir-Pakete). - Unterstützt sowohl CS2- als auch CS:GO-Kollektionen. 🌐 **So verwendest du es:** - Es werden keine Body- oder Pfad-Parameter benötigt. - Rufe den Endpunkt einfach mit deinem `key` als Query-Parameter auf. **Beispiel-Request-URL:** `https://www.steamwebapi.com/steam/api/cs/collections?key=YOUR_API_KEY`

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
select string nein Bestimmte Felder für die Ausgabe auswählen. Reduziert Response-Größe und -Zeit. Beispiel: "name,logo". Optional.
limit string nein Begrenzt die Anzahl der zurückgegebenen Ergebnisse. Standard ist 10000.
offset string nein Offset für die Paginierung. Standard ist 0.
no_cache string nein Auf 1 setzen, um den Cache zu umgehen und frische Daten abzurufen. Standard ist 0.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/cs/collections"

Responses

  • 200 Request war erfolgreich, alle Kollektionen werden zurückgegeben.
  • 400 Fehlende oder ungültige Parameter.
GET /steam/api/info/markets

📈 Unterstützte Marktinformationen abrufen

Baseurl: https://www.steamwebapi.com/steam/api/info/markets 💬 **Was dieser Endpunkt macht:** - Liefert eine Liste aller unterstützten Märkte. - Liefert Informationen wie: - 🖼️ Markt-Logos. - 📛 Marktnamen. - 📊 Relevante Marktdaten. 🛠️ **Funktionen:** - Umfassende Daten zu unterstützten Märkten für Integration und Analyse. - Aktuelle Marktdetails mit strukturierten Responses. 🌐 **So verwendest du es:** - Nutze deinen API-Schlüssel, um den Request zu authentifizieren und auf die Daten zuzugreifen.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/info/markets"

Responses

  • 200 Request war erfolgreich, Marktinformationen werden zurückgegeben.
  • 429 Rate-Limit überschritten. Zu viele Requests in kurzer Zeit.
GET /steam/api/complete/items

🔍 Auto-Vervollständigung für Spiel-Items - z. B. für Eingabefelder (kostenlos)

Baseurl: https://www.steamwebapi.com/steam/api/complete/items?search=SEARCH_TERM&game=cs2 💬 **Was dieser Endpunkt macht:** - Liefert Echtzeit-Auto-Vervollständigung für Spiel-Items mit Suchvorschlägen basierend auf der Eingabe. - Liefert eine Liste von Items, die zum Suchbegriff passen — ideal für Eingabefeld-Auto-Vervollständigungen. - Liefert **Name und Bild-URL** jedes Items, um die Nutzererfahrung zu verbessern. 🛠️ **Funktionen:** - 🔍 Sofortige Suchvorschläge für Spiel-Items ab mindestens 3 Zeichen im Suchbegriff. - 🎮 Unterstützt Filterung nach Spiel für relevantere Ergebnisse. - 🖼️ Enthält die **Bild-URL** des Items für eine visuelle Vorschau. - 🔑 Aktuell ist kein API-Schlüssel erforderlich, in Produktion wird jedoch empfohlen, deinen Schlüssel für zukünftige Kompatibilität anzugeben. - 💰 Dieser Endpunkt ist derzeit kostenlos, wird aber zukünftig **1 Request-Credit pro 100 Anfragen** kosten — damit weiterhin äußerst günstig. ⚠️ **Hinweis:** Zukünftige Updates könnten eine Authentifizierung erfordern — sei auf kommende Änderungen vorbereitet (füge einfach deinen Schlüssel hinzu).

Parameter

Name Typ Pflicht Beschreibung
search string ja Der Suchbegriff für die Auto-Vervollständigung. Muss mindestens 3 Zeichen lang sein.
key string nein Dein API-Schlüssel zur Authentifizierung (optional, aber für den Produktiveinsatz empfohlen).
game string nein Optional. Kurzname des Spiels (z. B. "cs2", "dota2", "rust"). Standard ist "cs2".

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/complete/items"

Responses

  • 200 Auto-Vervollständigungsvorschläge erfolgreich abgerufen.
GET /currency/api/list

💱 Alle verfügbaren Währungen zur Umrechnung auflisten

Baseurl: https://www.steamwebapi.com/currency/api/list?key=YOUR_API_KEY&base=USD 💬 **Was dieser Endpunkt macht:** - Liefert eine Liste aller verfügbaren Währungen zur Umrechnung. - Die Standard-Basiswährung ist USD (US-Dollar). - Die Datenquelle ist standardmäßig Steam, kann aber angepasst werden. 🛠️ **Funktionen:** - Unterstützt die Angabe einer benutzerdefinierten Basiswährung über den Parameter `base`. - Ermöglicht das Ändern der Datenquelle über den Parameter `source`. 🌐 **So verwendest du es:** - Nutze den Parameter `base`, um den Währungscode für die Umrechnung festzulegen (z. B. `EUR`, `TRY`). - Setze optional den Parameter `source`, um die Datenquelle anzupassen.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
base string nein Der Basiswährungscode für die Umrechnung. Wird nichts angegeben, wird `USD` standardmäßig verwendet. z. B. EUR
source string nein Gibt die Quelle der Währungsdaten an. Standard ist `Steam`. z. B. Steam
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/currency/api/list?base=EUR&source=Steam"

Responses

  • 200 Request war erfolgreich, die Liste der Währungen wird zurückgegeben.
  • 400 Ungültige oder fehlende Parameter.
  • 429 Rate-Limit überschritten.
GET /currency/api/exchange

💱 Wechselkurse für Währungen abrufen

Baseurl: https://www.steamwebapi.com/currency/api/exchange?key=YOUR_API_KEY&change=EUR&base=USD 💬 **Was dieser Endpunkt macht:** - Liefert den Wechselkurs für eine angegebene Währung. - Ermöglicht die Angabe von: - Der Zielwährung über den Parameter `change`. - Der Basiswährung über den Parameter `base` (Standard: USD). 🛠️ **Funktionen:** - Ruft genaue Wechselkurse ab. - Unterstützt alle gängigen Währungscodes nach dem [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)-Standard. 🌐 **So verwendest du es:** - Nutze den Parameter `change`, um die Zielwährung anzugeben (z. B. `EUR`, `TRY`, `RUB`). - Nutze optional den Parameter `base`, um die Basiswährung anzugeben. Wird er weggelassen, ist der Standard `USD`. 📋 **Beispiel:** - `change=EUR&base=USD`: Rechnet USD in EUR um.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
change string ja Der Ziel-Währungscode für den Wechsel. Unterstützte Werte folgen dem [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)-Standard (z. B. `EUR`, `TRY`, `RUB`).
base string nein Die Basiswährung für den Wechsel. Standard ist `USD`. Unterstützte Werte folgen dem [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)-Standard.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/currency/api/exchange"

Responses

  • 200 Request war erfolgreich, der Wechselkurs wird zurückgegeben.
  • 400 Ungültige oder fehlende Parameter.
  • 429 Rate-Limit überschritten.

Assets

Massenabfrage von CS2-Assets nach Float/Paint-Seed-Identität sowie Besitzhistorie pro Item.

2 Endpunkte
GET /api/assets

CS-Assets mit Filtern und Paginierung abrufen

Baseurl: https://www.steamwebapi.com/api/assets?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Liefert über eine Million CS-Assets (Inventar- und marktbezogene Items) mit flexiblen Filteroptionen. - Unterstützt leistungsfähige Paginierung für große Ergebnismengen. 🛠️ **Funktionen:** - Filter nach Besitzer (SteamID64), Waffe (def_index), Skin (paint_index), Float-Bereich, StatTrak, Souvenir, Seltenheit, Qualität, Herkunft und paint_seed. - Filter nach exaktem Market-Hash-Namen (market_hash_name). - Nur Assets filtern, die zu Steam-Profilen gehören, oder nur solche aus Marktangeboten. - Assets filtern, die Sticker und/oder Keychains besitzen. - Paginierte Antworten über limit und offset. 🌐 **So verwendest du es:** - Alle Query-Parameter verwenden snake_case-Schreibweise. - Kombiniere bei Bedarf mehrere Filterparameter (zum Beispiel steam_id + def_index + min_float/max_float). - Verwende offset zur Paginierung (zum Beispiel offset=50 für Seite 2 bei limit=50). - Standardmäßig liefert der Endpunkt eine begrenzte Anzahl an Assets pro Request (konfigurierbar über den Parameter limit). - Ebenfalls erreichbar über den Legacy-Pfad `/steam/api/float/assets` — identisches Verhalten, aus Kompatibilitätsgründen beibehalten.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
steam_id string nein Filter nach SteamID64 des Besitzers, zum Beispiel 76561198042843401.
market_hash_name string nein Filter nach exaktem Market-Hash-Namen, zum Beispiel "AK-47 | Uncharted (Factory New)".
def_index integer nein Filter nach Waffen-Definitionsindex, zum Beispiel 7 für AK-47.
paint_index integer nein Filter nach Paint-Index / Skin-ID, zum Beispiel 836 für "AK-47 | Uncharted".
float string nein Exakter Float-(Wear-)Lookup, zum Beispiel 0.030868796632. Matched mit der von dir übergebenen Präzision: die Toleranz beträgt eine Einheit in der letzten von dir gesendeten Dezimalstelle, sodass ein gerundeter/angezeigter Float den gespeicherten Wert findet (0.030868796631694), statt kein Ergebnis zu liefern. Mehr Dezimalstellen schränken den Match ein, weniger erweitern ihn — 0.030868796632 sucht ±1e-12, während 0.03 ±0.01 sucht. Bevorzuge dies gegenüber min_float=X&max_float=X, das rohe Float64-Werte vergleicht und daher gerundete Eingaben übersieht.
min_float number nein Minimaler Float-Wert (Wear), inklusive, zum Beispiel 0.00 für den Anfang des Factory-New-Bereichs.
max_float number nein Maximaler Float-Wert (Wear), inklusive, zum Beispiel 0.07 für das obere Ende des Factory-New-Bereichs.
is_stattrak integer nein Filter nach StatTrak-Status (1 = StatTrak, 0 = kein StatTrak).
is_souvenir integer nein Filter nach Souvenir-Status (1 = Souvenir, 0 = kein Souvenir).
rarity integer nein Filter nach Seltenheitsstufe. Typische Werte liegen im Bereich 1-6 (zum Beispiel 6 = Covert).
quality integer nein Filter nach Item-Qualität, zum Beispiel 4 = normal, 9 = seltenheitsspezifisch.
origin string nein Filter nach Herkunft, zum Beispiel drop, market-purchase oder case-reward.
paint_seed integer nein Filter nach exaktem Paint Seed / Musternummer, zum Beispiel 915.
wear string nein Filter nach Wear-Kategorie-Code: fn (Factory New), mw (Minimal Wear), ft (Field-Tested), ww (Well-Worn), bs (Battle-Scarred). Groß-/Kleinschreibung wird nicht beachtet.
phase string nein Filter nach Doppler-/Gamma-Phase, zum Beispiel "p1", "p2", "p3", "p4", "ruby", "sapphire", "black-pearl", "emerald".
source string nein Filter nach Quelle der Datenerfassung. Beispiele: "inventory" (über den /inventory-Endpunkt erfasst), "csfloat", "youpin" (Scraper von Drittanbieter-Marktplätzen).
asset_id string nein Filter nach exakter Steam-Asset-ID (Inventar-ID) — nützlich für direkte Lookups.
date string nein Filter nach Kalenderdatum der Asset-Erstellung. Akzeptiert ISO-Daten (YYYY-MM-DD) oder lokales Format wie 31.12.2025.
sort string nein Sortierreihenfolge. Unterstützte Werte: newest, oldest, lowest_float, highest_float. Standard ist newest.
limit integer nein Anzahl der zurückgegebenen Ergebnisse. Standard ist 10, die Obergrenze hängt von deinem Tarif ab.
offset integer nein Offset für die Paginierung, zum Beispiel 50 für Seite 2 bei limit=50.
only_steam_id integer nein Bei Wert 1 werden nur Assets mit einem SteamID64-Besitzer zurückgegeben.
only_market_id integer nein Bei Wert 1 werden nur Assets ohne SteamID64-Besitzer zurückgegeben (Marktangebote).
with_stickers integer nein Bei Wert 1 werden nur Assets zurückgegeben, die mindestens einen Sticker besitzen.
with_keychains integer nein Bei Wert 1 werden nur Assets zurückgegeben, die mindestens eine Keychain besitzen.
with_items integer nein Bei Wert 1 wird jedes Asset um den passenden Item-Datensatz aus der Items-Datenbank angereichert (verknüpft über market_hash_name). Der Item-Payload liegt unter dem Schlüssel "item".
with_profiles integer nein Bei Wert 1 wird jedes Asset um das passende Steam-Profil angereichert (verknüpft über SteamID64). Der Profil-Payload liegt unter dem Schlüssel "profile".
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/assets"

Responses

  • 200 Anfrage war erfolgreich, die Assets werden zurückgegeben.
  • 400 Ungültiger Query-Parameter-Typ.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
POST /api/assets/find

Massenabfrage der CS2-Besitzhistorie von Assets nach Float- und/oder Paint-Seed-Identität

Baseurl: https://www.steamwebapi.com/api/assets/find?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Sucht CS2-Items anhand einer beliebigen Kombination aus Float, def_index und paint_seed und liefert die vollständige Besitzchronologie jedes passenden physischen Items — jeden vorherigen SteamID64-Besitzer und jedes Marktangebot dazwischen, älteste zuerst. 🛠️ **So funktioniert der Identitätsabgleich:** - Ein physisches CS2-Item behält für immer dieselbe (def_index, paint_seed, float)-Kombination, auch wenn sich asset_id und Besitzer bei jedem Trade ändern. Sende alle drei, um genau ein Item zu adressieren; sende weniger, um jedes passende Item zu erhalten. - Akzeptierte Kombinationen: `float` allein, `def_index` + `paint_seed`, oder eine beliebige Mischung aus allen dreien. `def_index` allein oder `paint_seed` allein wird abgelehnt — beides würde sechsstellige Zeilenmengen treffen, die Antwort wäre also nutzlos. - `float` wird mit der von dir gesendeten Präzision abgeglichen, sodass ein gerundeter/angezeigter Float trotzdem den gespeicherten Wert findet (12 Dezimalstellen ≈ ±1e-12; weniger Dezimalstellen erweitern den Match). Mindestens 6 Dezimalstellen sind erforderlich. - `paint_index` ist ein zusätzlicher Filter, niemals allein ein Suchschlüssel. - Feldnamen werden in beiden Schreibweisen akzeptiert: `def_index` / `paint_seed` / `paint_index` wie dokumentiert, sowie `defindex` / `paintseed` / `paintindex` wie sie in der Response erscheinen — eine Identität kann also direkt aus einem vorherigen Ergebnis übernommen werden. - Die Abdeckung ist systembedingt, kein Fehler: Ein Item hat nur dann eine Historie, wenn diese Plattform es zuvor unter einem früheren Besitzer erfasst hat. Items, deren erster Besitzer noch der aktuelle ist, liefern einen einzelnen Besitzer-Eintrag zurück. 🌐 **So verwendest du es:** - Sende per POST einen JSON-Body: `{"items": [{"float": "0.030868796632", "def_index": 7, "paint_seed": 915, "ref": "my-id"}, ...]}`. - Jeder Eintrag liefert `matched` (Anzahl passender physischer Items) und `items` (je eine Chronologie). Ein vollständiges Tripel liefert `matched: 1`; ein Teilschlüssel kann mehrere liefern. - Es werden maximal 25 Items pro Eintrag zurückgegeben. `truncated: true` bedeutet, dass es mehr gab — schränke den Schlüssel ein, um sie zu sehen. - `data` hat immer dieselbe Länge wie die gesendeten `items`, in derselben Reihenfolge. `ref` ist optional, wird zurückgegeben und ist die sicherere Methode zur Zuordnung. - Übergib `steam_id` (SteamID64), um anzugeben, welcher Besitzer in jeder Chronologie der aktuelle ist; wird es weggelassen, gilt das neueste Besitzer-Segment als aktuell. - Fehlerhafte Einträge lassen den gesamten Batch niemals scheitern — sie kommen einzeln mit `status: "invalid"` und einem Grund zurück. - Credits: 1 pro gesendetem Eintrag, unabhängig davon, wie viele Items er getroffen hat (found, not_found und invalid zählen alle).

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/assets/find"

Responses

  • 200 Anfrage war erfolgreich.
  • 400 items ergab nichts Verwertbares, zum Beispiel "items": null.
  • 402 Rate-Limit überschritten (täglich oder monatlich), oder Endpunkt nicht in deinem Paket enthalten.
  • 421 Request Body fehlt oder ist kein valides JSON.
  • 422 Body-Validierung fehlgeschlagen: items leer, kein Array oder über 5000 Einträge, oder steam_id ist keine SteamID64. Die Antwort listet jedes fehlerhafte Feld auf.
  • 429 Zu viele Requests pro Minute für diesen API-Schlüssel — siehe config/packages/rate_limiter.yaml (assets_find).

Float

Dekodierung von CS2-Skin-Float-Werten, Erzeugung von Inspect-Links und Screenshot-Rendering.

4 Endpunkte
GET /steam/api/float/assets

Legacy-Alias von GET /api/assets — CS-Assets mit Filtern und Paginierung abrufen

Legacy-Pfad für diese Operation. Nutze stattdessen `GET /api/assets` — gleiche Filter, gleiche Response, gleiche Credits. Bleibt für bestehende Integrationen dauerhaft funktionsfähig.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
steam_id string nein Filter nach SteamID64 des Besitzers, zum Beispiel 76561198042843401.
market_hash_name string nein Filter nach exaktem Market-Hash-Namen, zum Beispiel "AK-47 | Uncharted (Factory New)".
def_index integer nein Filter nach Waffen-Definitionsindex, zum Beispiel 7 für AK-47.
paint_index integer nein Filter nach Paint-Index / Skin-ID, zum Beispiel 836 für "AK-47 | Uncharted".
float string nein Exakter Float-(Wear-)Lookup, zum Beispiel 0.030868796632. Matched mit der von dir übergebenen Präzision: die Toleranz beträgt eine Einheit in der letzten von dir gesendeten Dezimalstelle, sodass ein gerundeter/angezeigter Float den gespeicherten Wert findet (0.030868796631694), statt kein Ergebnis zu liefern. Mehr Dezimalstellen schränken den Match ein, weniger erweitern ihn — 0.030868796632 sucht ±1e-12, während 0.03 ±0.01 sucht. Bevorzuge dies gegenüber min_float=X&max_float=X, das rohe Float64-Werte vergleicht und daher gerundete Eingaben übersieht.
min_float number nein Minimaler Float-Wert (Wear), inklusive, zum Beispiel 0.00 für den Anfang des Factory-New-Bereichs.
max_float number nein Maximaler Float-Wert (Wear), inklusive, zum Beispiel 0.07 für das obere Ende des Factory-New-Bereichs.
is_stattrak integer nein Filter nach StatTrak-Status (1 = StatTrak, 0 = kein StatTrak).
is_souvenir integer nein Filter nach Souvenir-Status (1 = Souvenir, 0 = kein Souvenir).
rarity integer nein Filter nach Seltenheitsstufe. Typische Werte liegen im Bereich 1-6 (zum Beispiel 6 = Covert).
quality integer nein Filter nach Item-Qualität, zum Beispiel 4 = normal, 9 = seltenheitsspezifisch.
origin string nein Filter nach Herkunft, zum Beispiel drop, market-purchase oder case-reward.
paint_seed integer nein Filter nach exaktem Paint Seed / Musternummer, zum Beispiel 915.
wear string nein Filter nach Wear-Kategorie-Code: fn (Factory New), mw (Minimal Wear), ft (Field-Tested), ww (Well-Worn), bs (Battle-Scarred). Groß-/Kleinschreibung wird nicht beachtet.
phase string nein Filter nach Doppler-/Gamma-Phase, zum Beispiel "p1", "p2", "p3", "p4", "ruby", "sapphire", "black-pearl", "emerald".
source string nein Filter nach Quelle der Datenerfassung. Beispiele: "inventory" (über den /inventory-Endpunkt erfasst), "csfloat", "youpin" (Scraper von Drittanbieter-Marktplätzen).
asset_id string nein Filter nach exakter Steam-Asset-ID (Inventar-ID) — nützlich für direkte Lookups.
date string nein Filter nach Kalenderdatum der Asset-Erstellung. Akzeptiert ISO-Daten (YYYY-MM-DD) oder lokales Format wie 31.12.2025.
sort string nein Sortierreihenfolge. Unterstützte Werte: newest, oldest, lowest_float, highest_float. Standard ist newest.
limit integer nein Anzahl der zurückgegebenen Ergebnisse. Standard ist 10, die Obergrenze hängt von deinem Tarif ab.
offset integer nein Offset für die Paginierung, zum Beispiel 50 für Seite 2 bei limit=50.
only_steam_id integer nein Bei Wert 1 werden nur Assets mit einem SteamID64-Besitzer zurückgegeben.
only_market_id integer nein Bei Wert 1 werden nur Assets ohne SteamID64-Besitzer zurückgegeben (Marktangebote).
with_stickers integer nein Bei Wert 1 werden nur Assets zurückgegeben, die mindestens einen Sticker besitzen.
with_keychains integer nein Bei Wert 1 werden nur Assets zurückgegeben, die mindestens eine Keychain besitzen.
with_items integer nein Bei Wert 1 wird jedes Asset um den passenden Item-Datensatz aus der Items-Datenbank angereichert (verknüpft über market_hash_name). Der Item-Payload liegt unter dem Schlüssel "item".
with_profiles integer nein Bei Wert 1 wird jedes Asset um das passende Steam-Profil angereichert (verknüpft über SteamID64). Der Profil-Payload liegt unter dem Schlüssel "profile".
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float/assets"

Responses

  • 200 Request war erfolgreich, die Assets werden zurückgegeben.
  • 400 Ungültiger Query-Parameter-Typ.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
GET /steam/api/float

🔍 Float-Informationen für ein Item abrufen

Baseurl: https://www.steamwebapi.com/steam/api/float?key=YOUR_API_KEY&url=INSPECT_LINK 💬 **Was dieser Endpunkt macht:** - Ruft Float-Informationen für ein bestimmtes CS:GO-/CS2-Item ab, indem das Inspect-Zertifikat in-process dekodiert wird. - Erfordert entweder den Parameter `url` (vollständiger Inspect-Link) oder den Parameter `certificate` (rohes Hex-Zertifikat). ⚠️ **Wichtig — Legacy-Format nicht mehr unterstützt:** Valve hat die alten Inspect-Link-Formate `S{steamid}A{assetid}D{value}` (persönliches Inventar) und `M{marketid}A{assetid}D{value}` (Marktangebot) eingestellt, als der öffentliche Game-Coordinator-Endpunkt abgeschaltet wurde. Diese Links trugen selbst keine Float-Daten — sie waren nur Referenz-IDs, und der Float-Abruf beruhte auf einem Steam-GC-Roundtrip, der nicht mehr existiert. **Jede URL im alten S/M-Muster liefert HTTP 406.** Nur das neue Zertifikat-Format funktioniert. 🆕 **Zertifikat-Format:** Das neue Format bettet den vollständigen Item-Status (Float, paintseed, paintindex, Sticker, Keychains, StatTrak-Kill-Zähler, Namensschild, …) als Hex-kodierten Protobuf-Payload direkt in den Inspect-Link ein. Kein externer Lookup, kein Bot, kein GC-Roundtrip — das Zertifikat IST die Daten. - Vollständige URL-Form: `steam://run/730//+csgo_econ_action_preview ` - Rohe Form (via `certificate=` übergeben): `` (z. B. `49598AF087A6F948...`) 🌐 **So verwendest du es:** - Übergib den Inspect-Link über `url=` oder das rohe Hex über `certificate=` — genau eines von beiden ist erforderlich. - Inspect-Links kannst du über unsere Inventory-API (`/steam/api/inventory`) erhalten — das Feld `inspectlink` dort liegt immer im unterstützten Zertifikat-Format vor. - Authentifiziere dich mit deinem API-Schlüssel.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
url string nein Inspect-Link **ausschließlich im Zertifikat-Format**. Beispiel: `steam://run/730//+csgo_econ_action_preview%203C2CD7CEF39C8E...`. Die alten Formate `S{steamid}A{assetid}D{value}` und `M{marketid}A{assetid}D{value}` wurden von Valve eingestellt und **liefern HTTP 406** — sie tragen keine abrufbaren Float-Daten mehr. Entweder `url` oder `certificate` ist erforderlich.
certificate string nein Rohes Hex-Zertifikat ohne das Präfix `steam://run/730//+csgo_econ_action_preview+`. Beispiel: `49598AF087A6F948...`. Dies ist der kodierte Protobuf-Payload, der den gesamten Item-Status trägt (Float, paintseed, Sticker, …). Entweder `url` oder `certificate` ist erforderlich.
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float"

Responses

  • 200 Request war erfolgreich, die Float-Daten des Items werden zurückgegeben.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 406 Inspect-Link fehlt oder verwendet ein veraltetes Format. Die alten S/M-Link-Formate (S{steamid}A{assetid}D{value}, M{marketid}A{assetid}D{value}) wurden von Valve eingestellt und werden nicht mehr unterstützt — nur das Zertifikat-(Hex-)Format wird akzeptiert.
  • 416 Dienst überlastet oder Float-Informationen konnten nicht abgerufen werden. Bitte versuche es später erneut.
  • 417 Zertifikat konnte nicht dekodiert werden — der Inspect-Link oder Hex-Wert ist vermutlich fehlerhaft oder beschädigt.
  • 503 Zertifikat dekodiert, lieferte aber keine verwertbaren Item-Daten (leerer Protobuf-Payload). Der Link ist vermutlich ungültig oder verweist auf ein nicht mehr existierendes Item.
GET /steam/api/float/screenshot

🖼️ Screenshot mit Float-Informationen erzeugen

Erzeugt ein Screenshot-Bild mit detaillierten Float-Informationen für ein bestimmtes CS:GO-/CS2-Item. Die Float-Daten werden aus dem Inspect-Zertifikat dekodiert und auf einen anpassbaren Hintergrund gerendert; die Response streamt das resultierende PNG direkt an den Client. ⚠️ **Gleiche Format-Regeln wie `/steam/api/float`:** Nur das Zertifikat-(Hex-)Inspect-Link-Format wird unterstützt. Die alten S/M-Link-Formate wurden von Valve eingestellt und liefern HTTP 406.

Parameter

Name Typ Pflicht Beschreibung
key string ja API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard.
url string ja Inspect-Link **ausschließlich im Zertifikat-Format**. Beispiel: `steam://run/730//+csgo_econ_action_preview%203C2CD7CEF39C8E...`. Die alten S/M-Link-Formate (von Valve eingestellt) liefern HTTP 406.
as_base64 string nein Auf 1 setzen, um das Bild als Base64-String zurückzugeben. Standard ist 0, Base64 ist manchmal hilfreich für eine einfachere Integration.
color string nein Farbschema für den Screenshot. Optionen: black, blue, green, orange, purple, red, white, yellow, gray. Standard: green.
background_url string nein URL eines benutzerdefinierten Hintergrundbilds (PNG-Format). Überschreibt den Standardhintergrund.
logo_url string nein URL eines benutzerdefinierten Logo-Bilds (PNG-Format). Überschreibt das Standardlogo.
logo_offset_start string nein Startposition des Logos. Optionen: top left, top right, bottom left, bottom right. Standard: top left.
logo_offset_x string nein Horizontaler Versatz für das Logo. Standard: 80.
logo_offset_y string nein Vertikaler Versatz für das Logo. Standard: 80.
logo_opacity string nein Deckkraft des Logos (0 bis 1). Standard: 1.0.
logo_width string nein Breite des Logos in Pixeln (Max: 500). Standard: 400.
format string nein Sende ein Format - screen (Standard) zur Anzeige, download zum Herunterladen des Bilds, base64 für ein Base64-Bild.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float/screenshot"

Responses

  • 200 Das Bild wurde erfolgreich erzeugt und an den Client gestreamt.
  • 402 Rate-Limit überschritten. Es wurden zu viele Requests innerhalb des erlaubten Zeitraums gestellt.
  • 404 Das angeforderte Item konnte nicht gefunden werden. Überprüfe den Inspect-Link oder die Datenbank.
  • 406 Ungültige Parameter oder Inspect-Link angegeben. Stelle sicher, dass der Inspect-Link korrekt ist.
  • 416 Dienst überlastet oder Float-Informationen konnten nicht abgerufen werden. Versuche es später erneut.
  • 417 Float-Informationen für das Item konnten nicht abgerufen werden. Überprüfe den Inspect-Link.
  • 424 Der Bild-Stream ist aufgrund eines internen Problems fehlgeschlagen. Kontaktiere den Support, falls das Problem weiterhin besteht.
POST /steam/api/float/create-inspectlink

🔗 Einen CS2-Inspect-Link aus rohen Item-Daten erzeugen

Baseurl: https://www.steamwebapi.com/steam/api/float/create-inspectlink?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Erzeugt einen vollständig eigenständigen CS2-Inspect-Link aus rohen Item-Daten — die Umkehrung des `GET /steam/api/float`-Decoders. - Die Ausgabe ist kompatibel mit unserem eigenen Decoder, dem Inspect-Tool von csfloat und jedem CS2-Client, der den Link im Spiel öffnet. - Kein Steam-Game-Coordinator-Roundtrip — das Zertifikat-Hex trägt den gesamten Item-Status. 🛠️ **Anwendungsfälle:** - Mock-Inspect-Links für UI-Entwicklung und Screenshots. - Rekonstruktion eines Inspect-Links, wenn nur die rohen Item-Daten bekannt sind (Backfill, Migration). - Generierung von Links für Items, die nie in einem echten Inventar existiert haben. 🌐 **So verwendest du es:** - Sende per POST einen JSON-Body mit mindestens `defindex`. Alle anderen Felder sind standardmäßig 0/leer. - `quality` wird automatisch aus den Flags `stattrak` / `souvenir` abgeleitet, falls du es nicht explizit setzt (4 / 9 / 12). - `stickers` (max. 5), `keychains` (max. 1) und `variations` (max. 5) akzeptieren Arrays von Objekten mit `sticker_id` (erforderlich) plus optional `slot`, `wear`, `scale`, `rotation`, `pattern`, `tint_id`, `offset_x`, `offset_y`, `offset_z`. - Die Response enthält den generierten `inspectlink`, das rohe `certificate`-Hex sowie ein `decoded`-Roundtrip — so kannst du überprüfen, was der Link bei erneuter Dekodierung liefern wird.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float/create-inspectlink"

Responses

  • 200 Inspect-Link erfolgreich generiert.
  • 421 JSON-Payload enthält unbekannte Felder.
  • 422 Validierungsfehler (Pflichtfeld fehlt, Wert außerhalb des gültigen Bereichs, fehlerhafter Sticker-Eintrag usw.).

Explore

Erkundung und Suche von Steam-Profilen.

1 Endpunkt
GET /explore/api/profile

🔍 Steam-Profile durchsuchen & erkunden

Baseurl: https://www.steamwebapi.com/explore/api/profile?key=YOUR_API_KEY&search=example 💬 **Was dieser Endpunkt macht:** - Durchsucht Steam-Profile anhand verschiedener Kriterien wie Name, Land, Inventarwert oder VAC-Status. - Standardmäßig werden 20 Ergebnisse pro Seite abgerufen, sortiert nach Inventarwert absteigend. - Dies ist der vereinheitlichte Explore-Endpunkt — ersetzt die alten Routen `/random`, `/last` und `/toplist`. 🛠️ **Funktionen:** - Volltextsuche über Persona-Name, Account-Name und Anzeigename. - Filter nach Ländercode, Mindestwert, VAC-Status, Fame-Status oder Profiltyp. - Paginierung mit den Parametern `limit` (max. 100) und `page` (1–10). - Flexible Sortierung mit `order_by`: personaname, timecreated, fame, worth, size, updatedat, inventoryupdatedat, totalplaytime, random (jeweils mit ASC/DESC-Suffix, sofern anwendbar). 💡 **Häufige Anwendungsfälle:** - **Zufällige Profile:** `order_by=random` - **Letztes Inventar-Update:** `order_by=inventoryupdatedatDESC` - **Zuletzt aktualisiert:** `order_by=updatedatDESC` - **Top nach Wert:** `order_by=worthDESC` (Standard) - **Suche nach Name:** `search=Shroud` 🌐 **So verwendest du es:** - Verwende den Parameter `search` für Namenssuchen (Teilübereinstimmung unterstützt). - Kombiniere bei Bedarf die Filter `country`, `worth`, `vac`, `fame` und `type`. - Passe `limit` (max. 100) und `page` (1–10) für paginierte Ergebnisse an. - Verwende `order_by` zur Steuerung der Sortierung (Standard: worth DESC). 📦 **Response-Felder:** steamid, accountname, personaname, displayname, profiletype, realname, loccountrycode, description, fame, vac, islimited, level, worth, worthsteam, size, peritem, totalplaytime, playtimerecent, timecreated, updatedat, inventoryupdatedat, avatar, avatarmedium, avatarfull

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
search string nein Suchbegriff, der Persona-Name, Account-Name oder Anzeigename abgleicht (Teilübereinstimmung, Groß-/Kleinschreibung wird nicht beachtet). z. B. Shroud
country string nein ISO-3166-1-alpha-2-Ländercode (z. B. DE, US, GB). z. B. DE
worth number nein Mindest-Inventarwert-Filter als numerischer Wert (z. B. 1000 für 1000 $). z. B. 1000
type string nein Filter nach Profiltyp.
limit integer nein Anzahl der Profile pro Seite. Standard: 20. Maximum: 100. z. B. 20
page integer nein Seitenzahl für die Paginierung (1–10). Standard: 1. z. B. 1
vac integer nein Filter nach VAC-Bann-Status. Auf 1 setzen, um nur VAC-gebannte Profile zu erhalten.
fame integer nein Filter nach Fame-Status. 1 = berühmte Profile, 0 = nicht berühmte Profile.
order_by string nein Sortierfeld und -richtung. Optionen: personaname, personanameASC, personanameDESC, timecreated, timecreatedASC, timecreatedDESC, fame, fameASC, fameDESC, worth (Standard), worthASC, worthDESC, size, sizeASC, sizeDESC, updatedat, updatedatASC, updatedatDESC, inventoryupdatedat, inventoryupdatedatASC, inventoryupdatedatDESC, totalplaytime, totalplaytimeASC, totalplaytimeDESC, random.
production string nein Auf 1 setzen, wenn du in Produktion läufst. Standard: 0.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON-Ausgabe formatiert darstellen (auf 1 setzen). Gilt nur für die Formate json, gzip und zip.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/explore/api/profile?search=Shroud&country=DE&worth=1000&limit=20&page=1"

Responses

  • 200 Array passender Profil-Objekte.
  • 400 Ungültige oder fehlende Parameter.
  • 429 Rate-Limit überschritten.

Profile

Steam-Profilinformationen, Freundeslisten, Trade-Eligibility-Prüfungen und Account-Risikobewertung (Smurf-/Zweitaccount-Erkennung).

6 Endpunkte
GET /steam/api/friendlist

👥 Freundesliste eines Steam-Nutzers abrufen

Baseurl: https://www.steamwebapi.com/steam/api/friendlist?id=76561198012345678&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Ruft die Freundesliste eines Steam-Nutzers ab. - Standardmäßig werden die Daten für bessere Lesbarkeit geparst (`parsed=1`). - Für Rohdaten direkt von Steam setze `parsed=0`. 🛠️ **Funktionen:** - Ruft detaillierte Informationen zu den Freunden eines Nutzers ab, etwa Online-Status, Spielaktivität und Profildetails. - Für bessere Antwortzeiten durch Caching optimiert. 🌐 **So verwendest du es:** - Gib die Steam-ID (64-Bit) oder Vanity-URL des Nutzers über den Parameter `id` an. - Nutze den Parameter `no_cache`, um das Caching zu umgehen, falls Echtzeitdaten benötigt werden.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel, zu finden in deinem Dashboard (oben rechts).
id string ja Steam-ID (64-Bit) oder Steam-Vanity-URL. Erforderlich zur Identifizierung des Nutzers. z. B. 76561198012345678
no_cache string nein Auf `1` setzen, um das Caching zu umgehen. Standard: 1 Tag lang gecacht für bessere Performance. Wenn du keine Echtzeit-Statusdaten des Nutzers benötigst, setze `no_cache=0` für schnellere Antwortzeiten. z. B. 1
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/friendlist?id=76561198012345678&no_cache=1"

Responses

  • 200 Request war erfolgreich, die Freundeslisten-Daten werden zurückgegeben.
  • 400 Ungültige Steam-ID oder Steam-Vanity-URL angegeben.
  • 404 Steam-ID oder Steam-Vanity-URL fehlt.
  • 406 Keine Freunde gefunden
  • 407 Unbekannter Netzwerkfehler
  • 408 Profil ist privat
GET /steam/api/profile

👤 Steam-Nutzerprofil mit flexiblen Optionen abrufen

Baseurl: https://www.steamwebapi.com/steam/api/profile?id=760000022222&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Ruft ein Steam-Nutzerprofil mit flexiblen Optionen ab. - Unterstützt vollständigen oder minimalen Datenabruf je nach Bedarf. 🛠️ **Funktionen:** - Nutze den Parameter `id`, um das Profil zu identifizieren. Unterstützt SteamID, Benutzername oder Profil-URL (SteamID für schnellere und genauere Ergebnisse empfohlen). - Rufe Echtzeitdaten ab, indem du `no_cache` auf `1` setzt (langsamere Antwort). - Passe die Datentiefe über den Parameter `state` an (`minimal` oder `full`). - Optimiere Antworten mit dem Parameter `force_from_db_if_exists`, um Profile aus der Datenbank abzurufen, falls verfügbar. 🌐 **So verwendest du es:** - Gib einen gültigen `id`-Parameter an (SteamID, Profil-URL oder Benutzername). - Nutze optionale Parameter, um den Datenabruf anzupassen (z. B. `state=full` für zusätzliche Profildetails).

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
id string ja Erforderlich. Kennung für das Profil. Akzeptiert: - SteamID (empfohlen für Geschwindigkeit und Genauigkeit). - Profil-URL. - Benutzername.
no_cache string nein Optional. Auf `1` setzen, um den Cache zu umgehen und Daten direkt von Steam abzurufen. - Standard: Gecachte Daten (schneller). z. B. 1
state string nein Optional. Legt den Detailgrad des Profils fest: - `minimal` (Standard): Grundlegende Profildaten. - `full`: Enthält zusätzliche Details wie Level, Trade-Ban-Informationen und Freundes-Status (langsamer). z. B. full
force_from_db_if_exists string nein Optional. Auf `1` setzen, um das Profil aus der Datenbank abzurufen, falls verfügbar. - Wird es nicht gefunden, werden frische Daten abgerufen und automatisch gecacht. - Nützlich für schnelle Antworten, ohne die Rate-Limits zu belasten. z. B. 1
with_groups string nein Optional. Auf `1` setzen, um die Steam-Gruppenmitgliedschaften des Profils in die Response einzuschließen. - Standard: `0` (Gruppen werden weggelassen, um Antworten klein zu halten). - Bei Aktivierung wird ein `groups`-Array zurückgegeben (Gruppen-ID, Name, URL, Primär-Flag, Avatare, Mitgliederzahlen). z. B. 1
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/profile?no_cache=1&state=full&force_from_db_if_exists=1&with_groups=1"

Responses

  • 200 Profil erfolgreich abgerufen.
  • 400 Erforderlicher Parameter "id" fehlt.
  • 404 Profil nicht gefunden. Die "id" ist gültig, aber es existiert kein solches Steam-Profil (Steam lieferte eine "could not be found"-Antwort).
  • 503 Steam-Upstream vorübergehend nicht verfügbar (Rate-Limit, Timeout, Captcha, Proxy-Problem). Das Profil existiert möglicherweise — versuche es nach dem Retry-After-Intervall erneut. Nicht gecacht.
GET /steam/api/profile/batch

👥 Mehrere Steam-Nutzerprofile in einem Request abrufen

Baseurl: https://www.steamwebapi.com/steam/api/profile/batch?id=steamid1,steamid2,steamid3&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Ruft mehrere Steam-Nutzerprofile in einem einzigen Request ab. - Jede Steam-ID kostet 1 Credit. - Maximal 20 Steam-IDs pro Request. 🌐 **So verwendest du es:** - Gib eine kommagetrennte Liste von Steam-IDs über den Parameter `id` an. - Beispiel: `id=76561198165178872,76561199759031383`

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
id string ja Erforderlich. Kommagetrennte Liste von Steam-IDs. Maximal 20 IDs.
state string nein Optional. Legt den Detailgrad des Profils fest: - `minimal` (Standard): Grundlegende Profildaten. - `full`: Enthält zusätzliche Details wie Level, Trade-Ban-Informationen und Freundes-Status (langsamer). z. B. minimal
with_groups string nein Optional. Auf `1` setzen, um die Steam-Gruppenmitgliedschaften jedes Profils einzuschließen (`groups`-Array). Standard `0` (weggelassen, um Antworten klein zu halten). z. B. 1
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/profile/batch?state=minimal&with_groups=1"

Responses

  • 200 Profile erfolgreich abgerufen.
  • 400 Erforderlicher Parameter "id" fehlt oder zu viele IDs angegeben.
GET /api/profile/risk

🚩 Steam-Konto auf Smurf-/Zweitaccount-Risiko bewerten

Baseurl: https://www.steamwebapi.com/api/profile/risk?steam_id=76561198042843401&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Bewertet, wie wahrscheinlich es ist, dass ein Steam-Konto ein Zweitkonto ("Smurf") ist, dessen Inventar von einem anderen Konto übertragen wurde, statt eigenständig aufgebaut worden zu sein. - Beantwortet die Frage, die Anti-Cheat-, Matchmaking- und Marktplatzbetreiber tatsächlich haben: Ist dieses frisch aussehende Konto wirklich ein frischer Spieler? 🛠️ **Was du erhältst:** - `risk.score` (0-100) und `risk.level` (low / medium / high) als Gesamtbewertung. - `risk.smurf.detected` — das boolesche Urteil, mit eigenem Score und Level. - `risk.smurf.confidence` (low / medium / high) — wie viel über dieses Konto bekannt ist. Ein `detected: false` bei `confidence: low` bedeutet "nicht feststellbar", NICHT "sauber". - Garantiert: `level: high` tritt nur zusammen mit `confidence: high` auf. Ein Konto mit dünner Beweislage ist auf `medium` begrenzt, sodass automatisches Handeln bei `level: high` nie auf einer bloßen Vermutung beruht. - `risk.smurf.signals` — stabile Signal-Codes, die ausgelöst wurden: `round_trip_partner` (etwas hat dieses Konto verlassen und ist zurückgekehrt — der stärkste Einzelindikator), `dominant_destination`, `bidirectional_partner`, `single_origin_dominant`, `bulk_acquisition_window`, `account_young_at_acquisition`, `origin_account_older`, `origin_account_inactive`, `limited_account_high_value` (ein Limited-Konto — eines, das nie Geld bei Steam ausgegeben hat — mit einem wertvollen Inventar; nur unterstützender Hinweis). - `risk.smurf.since` — das Datum, ab dem das Muster beginnt, sofern feststellbar. - `risk.smurf.summary` — eine allgemeinverständliche Zusammenfassung, die du deinem Team zeigen kannst. - `risk.smurf.linkedaccounts` — mit welchen Konten dieses verknüpft ist, stärkste Verbindung zuerst. Pro Eintrag: `steamid`, ein `profile`-Block mit Angaben dazu, wer das ist (`personaname`, `avatar`, `avatarfull`, `timecreated`, `timecreatedat`, `loccountrycode`, `vac`, `tradeban`, `inventoryworthpricesteam`; null, wenn uns das Konto unbekannt ist), `matchscore` (0-100) und `matchlevel`, `share`, `direction` (incoming / outgoing / both), `roundtrip`, eine `transfers`-Aufschlüsselung (received, sent, total, direct, viamarket), `firsttransfer` / `lasttransfer` / `windowdays`, sowie `reasons` — die allgemeinverständlichen Belege, aus denen sich jeder Score zusammensetzt, einschließlich dem, was dagegen sprach (ein Gegenkonto, das mit vielen verschiedenen Konten handelt oder weiterhin ein großes Inventar hält, wird in Richtung 0 gedämpft, da das eher wie ein Händler aussieht als wie ein Zweitkonto). Leer, wenn nichts dieses Konto mit jemandem verbindet. 🌐 **So verwendest du es:** - Übergib `steam_id` (SteamID64). Nichts weiteres ist erforderlich — die Bewertung erfolgt vollständig serverseitig. - Ergebnisse werden pro Konto für mehrere Stunden gecacht, sodass wiederholtes Abfragen desselben Kontos für dich günstig und für deine UI stabil ist. - Credits: 1 pro Aufruf, unabhängig davon, wie viel Historie das Konto hat oder wie viele Konten eingeflossen sind. Sie zählen gegen dasselbe Profile-Kontingent wie die anderen Profile-Endpunkte. ⚠️ **So liest du das Urteil:** - Dies ist ein starker probabilistischer Indikator, kein Identitätsnachweis, und darf nicht die alleinige Grundlage für eine Sperrung oder Ablehnung eines Nutzers sein. - `risk` ist ein Container: Weitere Risikotypen können später neben `smurf` hinzukommen — lies ihn daher nach Schlüssel, nicht nach Position.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
steam_id string ja Erforderlich. SteamID64 des zu bewertenden Kontos, zum Beispiel 76561198042843401. Wird auch als `id` akzeptiert.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/profile/risk"

Responses

  • 200 Request war erfolgreich.
  • 400 steam_id fehlt oder ist keine gültige SteamID64.
  • 402 Rate-Limit überschritten (täglich oder monatlich), oder Endpunkt nicht in deinem Paket enthalten.
  • 429 Zu viele Requests pro Minute für diesen API-Schlüssel — siehe config/packages/rate_limiter.yaml (profile_risk).
GET /api/profile/trades

🔄 Handelshistorie eines Steam-Kontos — mit wem getauscht wurde, welche Items, in welcher Richtung

Baseurl: https://www.steamwebapi.com/api/profile/trades?steam_id=76561198042843401&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Liefert die beobachtete Handelshistorie eines Steam-Kontos: jede Item-Übergabe, die wir gesehen haben, in beide Richtungen, mit dem Konto auf der anderen Seite. - Rekonstruiert aus Inventar-Sichtungen physischer CS2-Items, deckt also sowohl Trades zwischen Spielern als auch Items ab, die über einen Marktplatz gelaufen sind. 🛠️ **Was du erhältst:** - `data` — eine Zeile pro Übergabe, neueste zuerst. Pro Zeile: `direction` (`in` = das Konto hat das Item erhalten, `out` = es hat das Item abgegeben), `partner` (SteamID64 der Gegenseite), `seenat` und `senderlastseenat` (das Übergabefenster, siehe unten), `gapdays`, `direct`, `market`, `inferred`, `roundtrip`, `assetid` und ein `item`-Block (`markethashname`, `wear`, `float`, `defindex`, `paintseed`, `paintindex`). - `direct: true` bedeutet, das Item ging direkt von einem Inventar ins andere. Wurde es zwischenzeitlich auf einem Marktplatz gelistet, ist `direct` `false`, und `market` benennt die Etappe, die es durchlaufen hat: `name`, `price`, `seenat` und `link`, so wie sie der Marktplatz-Feed liefert (bei manchen Märkten ein Deep-Link, bei anderen eine Listing-ID). - `roundtrip: true` markiert eine Übergabe, die Teil eines Items ist, das das Konto verlassen hat und zurückgekehrt ist. Dieses Muster tritt beim gewöhnlichen Handel nicht auf. - `inferred: true` markiert eine Übergabe, die aus einem Legacy-Feld für den vorherigen Besitzer rekonstruiert wurde, statt aus zwei unabhängigen Sichtungen. - `partners` — dieselbe Historie, aufgerollt pro Gegenpartei, stärkste zuerst, mit Angaben dazu, wer dieses Konto ist: `steamid`, `trades`, `received`, `sent`, `direct`, `viamarket`, `roundtrips`, `firsttrade`, `lasttrade` und ein `profile`-Block (`personaname`, `avatar`, `avatarfull`, `timecreated`, `timecreatedat`, `loccountrycode`, `vac`, `tradeban`, `inventoryworthpricesteam`; null, wenn uns das Konto unbekannt ist). Immer die VOLLSTÄNDIGE Historie, unabhängig von den unten genannten Filtern, die nur auf `data` wirken. Begrenzt auf die stärksten 100 Gegenparteien, `partnerstotal` gibt die tatsächliche Zahl an. - `coverage` — `itemstracked` (von uns erfasste Items dieses Kontos), `itemswithtrades` (wie viele davon jemals den Besitzer gewechselt haben) und `truncated` (true, wenn das Konto mehr Historie hat, als eine Response abdeckt; blättere durch das, was du erhältst, und behandle es als aktuelles Zeitfenster, nicht als vollständigen Datensatz). 🌐 **So verwendest du es:** - Übergib `steam_id` (SteamID64). Alles andere ist optional. - Blättere mit `limit` (Standard 50, max. 200) und `offset`; `total` ist die Anzahl der Zeilen, die deinen Filtern entsprechen. Grenze mit `direction`, `partner`, `from` und `to` ein und kehre die Reihenfolge mit `sort` um. - Ergebnisse werden pro Konto für mehrere Stunden gecacht, sodass sowohl das Durchblättern einer Historie als auch wiederholtes Abfragen desselben Kontos günstig sind. - Credits: 1 pro begonnenem Block von 50 zurückgegebenen Zeilen — eine Standardseite kostet 1, eine volle 200-Zeilen-Seite kostet 4, eine leere Seite kostet 1. Sie zählen gegen dasselbe Profile-Kontingent wie die anderen Profile-Endpunkte. ⚠️ **So liest du die Daten:** - Dies sind Inventar-Sichtungen, keine Steam-Handelsprotokolle. Eine Übergabe fand irgendwann zwischen `senderlastseenat` (letzte Sichtung des Items beim Geber) und `seenat` (erste Sichtung beim Empfänger) statt — `gapdays` ist die Breite dieses Fensters, nicht das Alter des Trades. - Ein Item, das nie gescannt wurde, fehlt vollständig. Eine leere Response bedeutet, dass wir keine Übergabe gesehen haben, nicht dass keine stattgefunden hat.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
steam_id string ja Erforderlich. SteamID64 des Kontos, dessen Handelshistorie du möchtest, zum Beispiel 76561198042843401. Wird auch als `id` akzeptiert.
direction string nein Optional. `in` für erhaltene Items, `out` für abgegebene Items, `all` (Standard) für beides.
partner string nein Optional. Beschränkt auf Übergaben mit dieser Gegenpartei (SteamID64).
from string nein Optional. Nur Übergaben, die erstmals an oder nach diesem Datum gesehen wurden (YYYY-MM-DD).
to string nein Optional. Nur Übergaben, die erstmals an oder vor diesem Datum gesehen wurden, inklusive (YYYY-MM-DD).
sort string nein Optional. `newest` (Standard) oder `oldest`.
limit integer nein Optional. Zeilen pro Seite, 1-200. Standard 50.
offset integer nein Optional. Zu überspringende Zeilen. Standard 0.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/profile/trades"

Responses

  • 200 Request war erfolgreich.
  • 400 steam_id fehlt oder ist keine gültige SteamID64, oder direction / partner / from / to ist fehlerhaft.
  • 402 Rate-Limit überschritten (täglich oder monatlich), oder Endpunkt nicht in deinem Paket enthalten.
  • 429 Zu viele Requests pro Minute für diesen API-Schlüssel — siehe config/packages/rate_limiter.yaml (profile_trades).
GET /steam/api/profile/trade-eligibility

🔄 Steam-Handelsberechtigung und Escrow-Status prüfen

Baseurl: https://www.steamwebapi.com/steam/api/profile/trade-eligibility?trade_url=YOUR_TRADE_URL&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Prüft den Handelsberechtigungsstatus für eine angegebene Steam-Trade-URL. - Verifiziert, ob die Trade-URL gültig ist, und ermittelt, ob Escrow-Sperren bestehen. 🛠️ **Funktionen:** - Validiert die angegebene Trade-URL. - Liefert Informationen zu Escrow-Tagen (Handelssperren). - Zeigt an, ob Trades sofort oder verzögert erfolgen. 🌐 **So verwendest du es:** - Gib einen gültigen `trade_url`-Parameter an. - Prüfe die Response, um festzustellen, ob die Trade-URL gültig ist und ob Escrow-Sperren bestehen.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
trade_url string ja Erforderlich. Die zu prüfende Steam-Trade-URL. - Muss eine gültige Steam-Trade-URL sein. - Kann auch als `tradeurl` oder `tradeUrl` angegeben werden.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/profile/trade-eligibility"

Responses

  • 200 Handelsberechtigungsinformationen erfolgreich abgerufen.
  • 400 Parameter trade_url fehlt.
  • 500 Fehler im Dienst oder Abruf der Handelsberechtigungsinformationen fehlgeschlagen.

Inventory

Steam-Inventarabfrage mit Preis- und Metadaten-Anreicherung. Empfohlen, wenn Entwickler eine Inventarbewertung ohne direktes Steam-Rate-Limit-Handling benötigen.

2 Endpunkte
GET /steam/api/inventory

⚡ Steam-Inventar mit Preisen & Doppler-Phasenerkennung abrufen

Baseurl: https://www.steamwebapi.com/steam/api/inventory?steam_id=760000022222&game=cs2&key=YOUR_API_KEY **Ruft ein Steam-Inventar mit Live-Preisen, Float-Werten und Item-Metadaten ab — ohne Rate-Limit.** Liefert entweder die rohe Steam-Response oder eine angereicherte Version mit Preisen und Metadaten (gesteuert über `parse`). --- **Kernfunktionen:** - **Live-Preise** von Steam und über 10 Drittanbieter-Märkten. - **Float-Werte & Sticker** standardmäßig für CS2 enthalten. - **Doppler-Phasenerkennung** — erkennt automatisch die exakte Phase (Phase 1–4, Ruby, Sapphire, Black Pearl, Emerald) anhand des Item-Bilds. Das Feld `image` wird durch das phasenspezifische Varianten-Bild ersetzt. Nutze `with_phase_price=1`, um zusätzlich den exakten Phasenpreis in `pricereal` zu erhalten. - **Trade-URL-Unterstützung** (CS2) — Zugriff auf 7-10 Tage handelsgesperrte Items. Höhere Fehlerrate und langsamer als normale Requests — vermeide dies bei zeitkritischen Anwendungen. Wenn du keine gesperrten Items benötigst, nutze den normalen Endpunkt ohne Trade-URL. - **Eigenes Inventar** — nutze `steam_login_secure`, um dein eigenes Inventar ohne die 10-Tage-Sperre abzurufen. Kein `steam_id` erforderlich (wird ignoriert). Das Cookie findest du in den Entwicklertools deines Browsers. - **Fallback-Modus** — liefert gecachte Daten, wenn Inventare privat oder nicht verfügbar sind. - **Kompatibel mit Steam-Community-URLs** — funktioniert wie `https://steamcommunity.com/inventory/{steamid}/730/2`. Ersetze die Steam-URL durch unsere Baseurl. - **Paginierung** — nutze `limit`, `offset` und `start_assetid` für große Inventare, die sich über mehrere Steam-Responses erstrecken. - **Mehrere Formate** — JSON, CSV, XML, gzip und mehr.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel aus dem Dashboard (oben rechts). Für die Authentifizierung erforderlich.
steam_id string ja Die Steam-ID des Nutzers. Akzeptierte Formate: `steamid`, `steamid3`, `steamid64` oder Vanity-URL. Die Nutzung von Kontonamen kann den Request durch zusätzliche Steam-API-Aufrufe verlangsamen.
state string nein Gibt den Abrufmodus des Inventars an:\n- `active` (Standard): Live-Inventar von Steam abrufen.\n- `fallback`: Zuerst live versuchen, bei privat/nicht erreichbar auf gecachte Daten zurückfallen.\n- `takedb`: Immer aus unserer Datenbank abrufen (am schnellsten, ggf. veraltet).\n\nGecachte Daten enthalten einen Zeitstempel in den Response-Headern.
steam_login_secure string nein Dein Steam-Login-Cookie, um dein eigenes Inventar OHNE die 10-Tage-Handelssperre abzurufen. Bei Angabe wird `steam_id` ignoriert. Dieses Cookie findest du in den Entwicklertools deines Browsers unter "steamLoginSecure".
game string nein Kurzname des Spiels. Standard ist "cs2".
parse string nein Aktiviert das steamwebapi-Parsing für angereicherte Item-Daten mit Preisen und Metadaten. Auf `0` setzen, um die rohe Steam-Response zu erhalten. Standard: `1`
language string nein Bevorzugte Sprache für Item-Namen und -Beschreibungen. Standard: `english`
no_cache string nein Umgeht den standardmäßigen 3-Tage-Cache, um frische Daten direkt von Steam zu erhalten. Kostet +1 zusätzlichen Credit. Standard: `0`
group string nein Gruppiert identische Items nach Market-Hash-Namen und summiert ihre Anzahl. Nützlich für Inventare mit vielen doppelten Items (z. B. Kisten, Schlüssel). Standard: `0`
sort string nein Sortiert Items nach Kriterium:\n- **Steam-Preise**: `price_max`, `price_min`\n- **Echte/Marktpreise**: `price_real_max`, `price_real_min`\n- **Mix-Preise**: `price_mix_max`, `price_mix_min`\n- **Weitere**: `count`, `name`\n\nStandard: `price_max`
currency string nein Währung für Item-Preise. Funktioniert nur, wenn `parse=1`. Standard: `USD`
select string nein Kommagetrennte Liste von Feldern, die in die Response aufgenommen werden. Reduziert die Response-Größe für schnellere Übertragungen. Beispiel: `markethashname,pricelatest,assetid,float`
with_no_tradable string nein Bezieht nicht handelbare Items ein (handelsgesperrte Items, StatTrak-Swap-Tools usw.). Standard: `0`
trade_url string nein Steam-Trade-URL. Ruft das Partner-Inventar über den authentifizierten Trade-Pfad ab; für CS2 werden automatisch 7-10 Tage handelsgesperrte Items einbezogen. Kostet +1 Credit (wird ignoriert, wenn `steam_login_secure` gesetzt ist). Format: `https://steamcommunity.com/tradeoffer/new/?partner=123456&token=AbCdEf`
offset integer nein Überspringt die ersten N Items. In Verbindung mit `limit` für die Paginierung nutzen. Standard: `0`
limit integer nein Maximale Anzahl der von dieser API zurückgegebenen Items. Große Steam-Inventare erfordern möglicherweise Paginierung mit `start_assetid`. Standard: `10000`
try_first_seven_days_blocked_items string nein Nur CS2: Nutzt das Trading-Inventar, um auch handelsgesperrte Items zurückzugeben. `1` = zuerst Trading-Inventar versuchen und auf das normale Inventar zurückfallen, wenn es nichts liefert. `2` = nur Trading-Inventar — kein Fallback, der Request schlägt fehl, statt ein Inventar ohne die gesperrten Items zurückzugeben. Erhöht Antwortzeit und Fehlerrate. Kostet +1 Credit. Standard: `0`
markets string nein Kommagetrennte Liste von Märkten für die Preisberechnung. `pricereal` = niedrigster Preis unter den gewählten Märkten. Beispiel: `skinbaron,skinport,dmarket`
with_prices string nein Bezieht ein detailliertes Marktpreise-Array für jedes Item mit Preis, Marktname, Logo, Menge und Direktlink ein. Kann die Antwortzeit erhöhen. Standard: `0`
with_phase_price string nein Nur CS2-Doppler-Items. Ersetzt `pricereal` durch den niedrigsten Preis der gewählten Märkte für die erkannte Phase (z. B. Phase 2 statt des generischen Doppler-Preises) und `pricerealmedian` durch den Median der gewählten Märkte für diese Phase. Ohne `markets` werden alle verfügbaren Drittanbieter-Märkte genutzt. `pricereal24h`, `pricereal7d`, `pricereal30d` und `pricereal90d` werden auf `null` gesetzt, da diese Inventar-Horizont-Felder nicht phasenbezogen sind. Zukünftig fortlaufend exakte Phasenhistorie ist über `POST /steam/api/items/history` verfügbar; sie füllt die Legacy-Inventar-Horizont-Felder nicht. `winloss` und `winlossprice` werden auf `null` gesetzt, da Steam keinen phasenspezifischen Listungspreis zum Vergleich hat. Gilt nur, wenn eine Phase erkannt wurde UND die Phase einen bekannten Preis hat. Existiert kein Phasenpreis, bleiben alle Felder unverändert. Standard: `0`
search string nein Filtert Items nach Namen (Groß-/Kleinschreibung wird nicht beachtet). Findet auch Teilübereinstimmungen. Beispiel: `ak-47`
production string nein In Produktion auf 1 setzen, um Info-Felder zu entfernen und schnellere Antworten zu erhalten. Wird in zukünftigen API-Versionen erforderlich sein. Standard: `0`
trade_locked string nein Zeigt handelsgesperrte Items in deinem eigenen Inventar an. Erfordert den Parameter `steam_login_secure`. Standard: `0`
start_assetid string nein Paginierung für Inventare, die sich über mehrere Steam-Responses erstrecken. Prüfe den Response-Header `last_assetid` und nutze ihn hier für die nächste Seite. Wiederhole dies, solange der Header vorhanden ist.
format string nein Antwortformat. Nutze `gzip` oder `zip` für komprimierte Downloads. Standard: `json`
pretty string nein JSON-Ausgabe formatiert darstellen. Nur für json-/gzip-/zip-Formate. Standard: `0`

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/inventory"

Responses

  • 200 Inventar erfolgreich abgerufen. Liefert ein Array von Items mit Preisen und Metadaten.
  • 400 Erforderlicher Parameter fehlt.
  • 401 Ungültiges Steam-ID-Format.
  • 403 Inventar ist privat.
  • 404 Profil nicht gefunden.
  • 410 Keine Items für dieses Spiel.
  • 411 Keine handelbaren Items.
  • 451 Steam-Fehler oder Wartungsarbeiten.
GET /steam/api/inventory/batch

⚡ Mehrere Inventare mit Doppler-Phasenerkennung im Batch abrufen

Baseurl: https://www.steamwebapi.com/steam/api/inventory/batch?steam_ids=76561199146708568,76561198047543612&game=cs2&key=YOUR_API_KEY **Ruft Inventare für bis zu 20 Steam-IDs in einem einzigen Request ab.** Liefert ein Objekt, geschlüsselt nach Steam-ID, jeweils mit einem Array von Items inklusive Preisen und Metadaten. --- **Kernfunktionen:** - **Bis zu 20 Steam-IDs** pro Request (kommagetrennt). Jede ID = 1 Credit. - **Parallele Verarbeitung** für maximale Geschwindigkeit. - **Doppler-Phasenerkennung** — erkennt automatisch die exakte Phase und ersetzt das Item-Bild. Nutze `with_phase_price=1` für phasenspezifische Preise. - **Feldauswahl** — nutze `select`, um die Response-Größe zu reduzieren. - **11 Währungen** unterstützt. - Private Inventare liefern ein leeres Array oder gecachte Daten. **Beispiel:** ``` GET /steam/api/inventory/batch?steam_ids=76561198100000000,76561198200000000&key=YOUR_KEY ```

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel aus dem Dashboard. Für die Authentifizierung erforderlich.
steam_ids string ja Kommagetrennte Steam-IDs (max. 20). Akzeptiert die Formate steamid, steamid3 oder steamid64.
game string nein Spiel-Kurzname.
select string nein Kommagetrennte Felder, die einbezogen werden. Reduziert die Response-Größe.
currency string nein Währung für Preise.
language string nein Sprache für Item-Namen.
no_cache string nein Umgeht den 3-Tage-Cache. Kostet +1 Credit pro ID.
with_no_tradable string nein Bezieht nicht handelbare Items ein.
with_phase_price string nein Nur CS2-Doppler-Items. Ersetzt `pricereal` und `pricerealmedian` durch phasenspezifische Werte aus den gewählten Märkten, oder aus allen verfügbaren Drittanbieter-Märkten, wenn `markets` weggelassen wird. `pricereal24h/7d/30d/90d` bleiben `null`, da diese Inventar-Horizont-Felder nicht phasenbezogen sind. Zukünftig fortlaufend exakte Phasenhistorie ist über `POST /steam/api/items/history` verfügbar; sie füllt die Legacy-Inventar-Horizont-Felder nicht. `winloss`/`winlossprice` werden `null`, da Steam keinen phasenspezifischen Listungspreis hat. Gilt nur, wenn eine Phase erkannt wurde und einen bekannten Preis hat. Standard: `0`
sort string nein Sortiert Items nach Kriterium.
group string nein Gruppiert identische Items nach Market-Hash-Namen.
markets string nein Kommagetrennte Märkte für die pricereal-Berechnung.
production string nein In Produktion auf 1 setzen, um Info-Felder zu entfernen. Wird zukünftig erforderlich sein.
format string nein Antwortformat.
pretty string nein JSON-Ausgabe formatiert darstellen.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/inventory/batch"

Responses

  • 200 Batch-Inventare erfolgreich abgerufen. Liefert ein Objekt, geschlüsselt nach Steam-ID.
  • 400 Fehlende oder ungültige Parameter.
  • 404 Spiel nicht gefunden.
  • 500 Interner Serverfehler.

Market Index

CS2-Marktindex, Segmentvergleich, OHLC-Historie und Trendanalyse.

3 Endpunkte
GET /steam/api/market-index/cs2

📊 CS2-Marktindex - Echtzeit-Marktstatistiken

Baseurl: https://www.steamwebapi.com/steam/api/market-index/cs2?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Liefert Echtzeit-CS2-Marktstatistiken und Preisindizes. - Liefert eine globale Marktübersicht oder Details zu einem bestimmten Segment. - Enthält Preisindizes, Handelsvolumen, Marktstimmung und Trends. 🛠️ **Funktionen:** - **Globale Übersicht** (ohne Parameter): Liefert vollständige Marktdaten mit allen Segmenten und `available_segments`, das alle gültigen Schlüssel auflistet. - **Segment-Details** (mit Parametern): Liefert detaillierte Daten für ein bestimmtes Segment über `segment_type` und `segment_key`. - Unterstützt mehrere Ausgabeformate (JSON, CSV, XML usw.). 🌐 **So verwendest du es:** - Ohne Parameter aufrufen für die globale Marktübersicht. - Nutze `segment_type` und `segment_key`, um nach bestimmten Kategorien zu filtern. - Beispiel: `?segment_type=item_group&segment_key=knife` für Messer-Marktdaten. 📋 **Verfügbare Segment-Typen:** - `item_group`: knife, glove, rifle, pistol, smg, shotgun, agent, sticker, container... - `rarity`: Contraband, Covert, Classified, Restricted, Mil-Spec Grade... - `wear`: fn (Factory New), mw, ft, ww, bs, vanilla - `quality`: normal, souvenir, tournament, genuine... - `stattrak`: yes, no - `collection`: The 2018 Inferno Collection, The Dust 2 Collection...

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
segment_type string nein Segment-Typ zur Filterung. Wird er weggelassen, wird die globale Übersicht mit allen Segmenten geliefert. **Typen:** - `item_group`: Waffenkategorien (knife, rifle, pistol usw.) - `rarity`: Item-Seltenheit (Covert, Classified, Mil-Spec Grade usw.) - `wear`: Skin-Zustand (fn, mw, ft, ww, bs, vanilla) - `quality`: Item-Qualität (normal, souvenir, stattrak base usw.) - `stattrak`: StatTrak-Status (yes, no) - `collection`: Spielkollektionen
segment_key string nein Segment-Schlüssel (erforderlich, wenn segment_type gesetzt ist). Rufe die API ohne Parameter auf, um `available_segments` mit allen gültigen Schlüsseln zu erhalten. **Häufige Schlüssel nach Typ:** - `item_group`: knife, glove, rifle, pistol, smg, sticker, agent, container... - `rarity`: Covert, Classified, Restricted, Mil-Spec Grade, Consumer Grade... - `wear`: fn, mw, ft, ww, bs, vanilla - `quality`: normal, souvenir, tournament, genuine... - `stattrak`: yes, no
format string nein Antwortformat. Standard: `json`. Verfügbar: csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Standard: `0`

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/market-index/cs2"

Responses

  • 200 Marktdaten (globale Übersicht oder Segment-Details)
  • 400 Ungültige Parameter
  • 404 Keine Daten verfügbar
GET /steam/api/market-index/cs2/history

📈 CS2-Marktindex-Historie - Historische Preis- und Volumendaten

Baseurl: https://www.steamwebapi.com/steam/api/market-index/cs2/history?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Liefert historische Daten für jede Metrik mit flexibler Zeitaggregation. - Unterstützt das OHLC-Format (Open/High/Low/Close) für aggregierte Intervalle. - Perfekt für den Aufbau von Charts, Trendanalysen und Markt-Dashboards. 🛠️ **Funktionen:** - **Mehrere Metriken:** Verfolge Preisindex, Volumen, Umsatz, Listungen und mehr. - **Flexible Intervalle:** Von rohen 1-Minuten-Daten bis zu jährlichen Aggregaten. - **Multi-Metrik-Modus:** Fordere mehrere Metriken in einem API-Aufruf an. - **OHLC-Format:** Aggregierte Intervalle liefern chart-fertige Daten. - **Segment-Unterstützung:** Historie für jede Segment-Typ-/Schlüssel-Kombination abrufen. 📊 **Verfügbare Metriken:** - `priceindex` - Steam-Preisindex (Standard) - `buyorderpriceindex` - Kaufangebots-Preisindex - `sold24h`, `sold7d`, `sold30d` - Verkaufsvolumen - `turnover24h` - USD-Umsatz - `listings` - Anzahl aktiver Listungen - `buyorders` - Anzahl aktiver Kaufangebote - `avgspreadpct` - Durchschnittlicher Bid-Ask-Spread - `avglistingprice` - Durchschnittlicher Listungspreis - `sellthrough24hpct` - Verkaufsquote - `listingvalue` - Gesamtwert aller Listungen - `orderbookvalue` - Gesamtwert aller Kaufangebote - `buypressureratio` - Kauf-/Verkaufsdruck-Verhältnis - `gainerscount`, `loserscount`, `neutralcount` - Marktstimmung - `itemcount` - Anzahl handelbarer Items ⏱️ **Verfügbare Intervalle:** - `raw` - Jeder Datenpunkt (1-Minuten-Buckets) - `fivemin` - 5-Minuten-Aggregate - `tenmin` - 10-Minuten-Aggregate - `hourly` - Stündliche Aggregate - `sixhours` - 6-Stunden-Aggregate - `daily` - Tägliche Aggregate - `threedays` - 3-Tage-Aggregate - `weekly` - Wöchentliche Aggregate - `monthly` - Monatliche Aggregate - `threemonths` - Quartalsaggregate - `sixmonths` - Halbjahresaggregate - `yearly` - Jahresaggregate 🎯 **Beispiel-Requests:** - 24h Roh-Preisindex: `?metric=priceindex&from=-24hours` - Tägliches Volumen für 30 Tage: `?metric=sold24h&interval=daily&from=-30days` - Mehrere Metriken: `?metrics=priceindex,sold24h,turnover24h&interval=hourly` - Messer-Segment-Historie: `?segment_type=item_group&segment_key=knife&metric=priceindex`

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
metric string nein Einzelne abzurufende Metrik. Standard: `priceindex`. Wird ignoriert, wenn `metrics` gesetzt ist. **Verfügbar:** priceindex, buyorderpriceindex, sold24h, sold7d, sold30d, turnover24h, listings, buyorders, avgspreadpct, avglistingprice, sellthrough24hpct, listingvalue, orderbookvalue, buypressureratio, gainerscount, loserscount, neutralcount, itemcount
metrics string nein Kommagetrennte Liste von Metriken für den Multi-Metrik-Modus. Liefert alle Metriken in einer einzigen Response. **Beispiel:** `priceindex,sold24h,turnover24h`
interval string nein Zeitliches Aggregationsintervall. Standard: `raw` (1-Minuten-Buckets). **Verfügbar:** - `raw` - Jeder Datenpunkt (~1 Min.) - `fivemin` - 5-Minuten-Aggregate - `tenmin` - 10-Minuten-Aggregate - `hourly` - Stündliche Aggregate - `sixhours` - 6-Stunden-Aggregate - `daily` - Tägliche Aggregate - `threedays` - 3-Tage-Aggregate - `weekly` - Wöchentliche Aggregate - `monthly` - Monatliche Aggregate - `threemonths` - Quartalsaggregate - `sixmonths` - Halbjahresaggregate - `yearly` - Jahresaggregate **Hinweis:** Aggregierte Intervalle liefern das OHLC-Format (open/high/low/close).
segment_type string nein Segment-Typ, für den die Historie abgerufen werden soll. Standard: `global` **Verfügbare Typen:** global, item_group, rarity, wear, quality, stattrak, collection
segment_key string nein Segment-Schlüssel für den gewählten Typ. Nutze `GET /cs2`, um alle verfügbaren Schlüssel in `available_segments` zu sehen. Standard: `all` **Beispiele:** knife, Covert, fn, yes, normal
from string nein Startdatum. Unterstützt mehrere Formate: - ISO-Datum: `2026-01-01` oder `2026-01-01 10:00:00` - Unix-Timestamp: `1735689600` - Relativ: `-24hours`, `-7days`, `-30days`, `-1year` Standard: vor 24 Stunden.
to string nein Enddatum. Gleiche Formate wie `from`. Standard: jetzt.
limit integer nein Maximale Anzahl an Datenpunkten. Standard: `1000`, Max: `10000`
format string nein Antwortformat. Standard: `json`. Verfügbar: csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Standard: `0`

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/market-index/cs2/history"

Responses

  • 200 Historische Marktdaten (Einzel-Metrik-Modus)
  • 202 Historische Marktdaten (Multi-Metrik-Modus)
GET /steam/api/market-index/cs2/compare

⚖️ Marktsegmente vergleichen - Segmentanalyse

Baseurl: https://www.steamwebapi.com/steam/api/market-index/cs2/compare?type=rarity&key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Vergleicht Marktsegmente nach einer bestimmten Metrik. - Liefert eine sortierte Liste mit Werten und Prozentsätzen. - Ideal für Tortendiagramme, Ranglisten oder Marktanalysen. 🛠️ **Funktionen:** - Vergleich nach verschiedenen Metriken: price_index, turnover, sold24h, avg_price, listing_value, order_book_value. - Filtert bestimmte Segmente über den Parameter `keys` (kommagetrennt). - Ergebnisse absteigend nach Wert sortiert. 🌐 **So verwendest du es:** - Gib den Parameter `type` an (erforderlich): item_group, rarity, wear, quality, stattrak, collection. - Filtere optional mit `keys`: `?type=item_group&keys=knife,glove,rifle`. - Metrik ändern: `?type=wear&metric=turnover`. 📊 **Anwendungsfälle:** - Marktanteilsanalyse nach Seltenheit oder Item-Typ. - Vergleich der Handelsvolumen über verschiedene Wear-Stufen hinweg. - Identifikation der leistungsstärksten Marktsegmente.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
type string ja Zu vergleichender Segment-Typ. Alle Segmente dieses Typs werden verglichen. **Verfügbare Typen:** - `item_group`: Waffenkategorien vergleichen - `rarity`: Nach Seltenheitsstufe vergleichen - `wear`: Skin-Zustände vergleichen - `quality`: Item-Qualitäten vergleichen - `stattrak`: StatTrak vs. Nicht-StatTrak vergleichen - `collection`: Spielkollektionen vergleichen
keys string nein Kommagetrennte Segment-Schlüssel zur Filterung. Ist das Feld leer, werden alle Segmente des Typs verglichen. **Beispiele:** - `knife,glove,rifle` für item_group - `Covert,Classified,Restricted` für rarity - `fn,mw,ft` für wear
metric string nein Metrik, nach der Segmente verglichen werden. Standard: `price_index` **Verfügbare Metriken:** - `price_index`: Summe aller Item-Preise im Segment - `turnover`: 24h-Handelsvolumen (geschätzt) - `sold24h`: Anzahl der in 24h verkauften Items - `avg_price`: Durchschnittlicher Item-Preis - `listing_value`: Gesamtwert aller Listungen - `order_book_value`: Gesamtwert aller Kaufangebote
format string nein Antwortformat. Standard: `json`. Verfügbar: csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Standard: `0`

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/market-index/cs2/compare"

Responses

  • 200 Segmentvergleich
  • 400 Fehlender type-Parameter

Market Prices

Vereinheitlichte Drittanbieter-Marktpreise und -Historie über unterstützte CS2-Märkte wie Buff, Skinport, DMarket, Youpin und weitere.

4 Endpunkte
GET /market/{market}/prices

Aktuellste Preise für beliebige Märkte (generisch nach Ident)

Baseurl: https://www.steamwebapi.com/market/{market}/prices?key=YOUR_API_KEY **Dies ist ein Premium-Endpunkt.** - Erfordert Items-Zugriff in deinem Paket (gleiche Rate-Limits wie `/steam/api/items`). - Ersetze `{market}` durch den Markt-Identifikator (z. B. `buff`, `csfloat`, `youpin`, `skinport`). - Liefert die aktuellsten Preise aus dem letzten Scrape-Durchlauf für diesen Markt. - Preise werden standardmäßig in USD zurückgegeben; übergib `currency`, um umzurechnen. **Parameter:** - **`key`**: Dein API-Schlüssel (erforderlich). - **`market_hash_name`**: Auf ein einzelnes Item filtern (optional). - **`currency`**: Preise umrechnen (optional, Standard USD).

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung.
market string ja
market_hash_name string nein Filter nach Item-Namen.
currency string nein Preise in eine bestimmte Währung umrechnen. Standard: USD.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/market/{market}/prices"

Responses

  • 200 Aktuellste Marktpreise erfolgreich zurückgegeben.
  • 402 Rate-Limit überschritten oder unzureichender Zugriff.
  • 404 Markt unbekannt, keine Preise, oder Item nicht gefunden.
GET /markets/prices

Aktuellste Preise über ALLE Märkte hinweg (gruppiert pro Item)

Baseurl: https://www.steamwebapi.com/markets/prices?key=YOUR_API_KEY **Dies ist ein Premium-Endpunkt.** - Erfordert Items-Zugriff in deinem Paket (gleiche Rate-Limits wie `/steam/api/items`). - Liefert die aktuellsten Preise über **alle konfigurierten Märkte** in einem Payload. - Jedes Item erscheint einmal mit einem verschachtelten `prices`-Objekt, geschlüsselt nach Markt-Ident (`buff`, `csfloat`, `youpin`, ...). Items, die auf einem Markt fehlen, werden im Slot dieses Marktes weggelassen. **Parameter:** - **`key`**: Dein API-Schlüssel (erforderlich). - **`market_hash_name`**: Auf ein einzelnes Item beschränken — für niedrige Latenz dringend empfohlen. - **`markets`**: Kommagetrennte Ident-Whitelist (z. B. `buff,csfloat`). Standard: jeder aktive Markt. - **`currency`**: Preise umrechnen (optional, Standard USD).

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung.
market_hash_name string nein Auf ein einzelnes Item beschränken.
markets string nein Kommagetrennte Markt-Ident-Whitelist (z. B. "buff,csfloat,youpin").
currency string nein Preise umrechnen. Standard: USD.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/markets/prices"

Responses

  • 200 Marktübergreifende aktuellste Preise erfolgreich zurückgegeben.
  • 402 Rate-Limit überschritten oder unzureichender Zugriff.
  • 404 Item nicht gefunden oder keine Preise verfügbar.
GET /markets/history

Preishistorie über ALLE Märkte hinweg für ein Item

Baseurl: https://www.steamwebapi.com/markets/history?key=YOUR_API_KEY&market_hash_name=ITEM **Was dieser Endpunkt macht:** - Liefert tägliche Preishistorie für ein einzelnes Item über **alle konfigurierten Märkte** in einem Payload. - Die Response gruppiert Historien-Zeilen nach Markt-Ident. **Parameter:** - **`key`**: Dein API-Schlüssel (erforderlich). - **`market_hash_name`**: Das Item, für das die Historie abgerufen werden soll (erforderlich). - **`markets`**: Kommagetrennte Markt-Ident-Whitelist (optional). - **`start_date`** / **`end_date`**: Datumsbereich (YYYY-MM-DD, optional). - **`currency`**: Preise umrechnen (optional, Standard USD). **Wichtig:** - Historie wird täglich gespeichert (1 Eintrag pro Item pro Markt pro Tag). - Nutzt 2 Credits pro Request.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung.
market_hash_name string ja Der Item-Name.
markets string nein Kommagetrennte Markt-Ident-Whitelist.
start_date string nein Startdatum (YYYY-MM-DD).
end_date string nein Enddatum (YYYY-MM-DD).
currency string nein Preise umrechnen. Standard: USD.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/markets/history"

Responses

  • 200 Marktübergreifende Historie erfolgreich zurückgegeben.
  • 400 market_hash_name fehlt oder ungültiges Datumsformat.
  • 402 Rate-Limit überschritten.
  • 404 Item nicht gefunden oder keine Historie.
GET /market/{market}/history

Preishistorie für ein Item auf einem beliebigen Markt (generisch nach Ident)

Baseurl: https://www.steamwebapi.com/market/{market}/history?key=YOUR_API_KEY&market_hash_name=ITEM 💬 **Was dieser Endpunkt macht:** - Liefert die Preishistorie für ein bestimmtes CS2-Item auf dem gewählten Markt. - Ersetze `{market}` durch den Markt-Identifikator (z. B. `buff`, `csfloat`, `youpin`, `skinport`). 🛠️ **Parameter:** - **`key`**: Dein API-Schlüssel (erforderlich). - **`market_hash_name`**: Das Item, für das die Historie abgerufen werden soll (erforderlich). - **`start_date`** / **`end_date`**: Optionaler Datumsbereich (YYYY-MM-DD). - **`currency`**: Preise umrechnen (optional, Standard USD). ⚡ **Wichtig:** - Historie wird täglich gespeichert. - Nutzt 2 Credits pro Request.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung.
market_hash_name string ja Der Item-Name. Beispiel: "AK-47 | Redline (Field-Tested)".
market string ja
start_date string nein Startdatum (Format: YYYY-MM-DD).
end_date string nein Enddatum (Format: YYYY-MM-DD).
currency string nein Preise in eine bestimmte Währung umrechnen. Standard: USD.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/market/{market}/history"

Responses

  • 200 Preishistorie erfolgreich zurückgegeben.
  • 400 Ungültiges Datumsformat oder market_hash_name fehlt.
  • 402 Rate-Limit überschritten.
  • 404 Markt unbekannt, Item nicht gefunden, oder keine Historie.

Proxy

Freigegebene Proxy-Dienste für genehmigte Crawling-Workflows.

2 Endpunkte
GET /proxy/api

Proxy-API ohne Limits, ohne Blocking

Nutze unsere Proxy-API, um jede benötigte URL zu crawlen. Diese API ist für Nutzer gedacht, die rohe URLs crawlen möchten — wichtig zu wissen: du kannst nur Whitelisted URLs crawlen. Wenn du weitere URLs zur Whitelist hinzufügen möchtest, kontaktiere uns bitte über Discord. Die Liste der Whitelisted URLs erhältst du, indem du einen Request an den angegebenen Endpunkt sendest.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung, zu finden in deinem Dashboard (OBEN RECHTS)
url string ja Die URL der angefragten Seite. Du musst die URL URI-kodieren, da sie als Query-Parameter gesendet wird. Etwa so: steamwebapi.com/proxy/api/?url=https%3A%2F%2Fsteamcommunity.com%
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/proxy/api"

Responses

  • default
GET /proxy/api/premium

Premium-Proxy-API - Verbesserte Performance und höhere Limits

Nutze unsere Premium-Proxy-API für verbesserte Performance und höhere Limits. Dieser Premium-Dienst bietet schnellere Antwortzeiten, dedizierte Proxy-Server und höhere Rate-Limits. Premium-Zugang ist erforderlich - kontaktiere uns über Discord, falls du Premium-Zugang benötigst. Du kannst nur Whitelisted URLs crawlen.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung, zu finden in deinem Dashboard (OBEN RECHTS)
url string ja Die URL der angefragten Seite. Du musst die URL URI-kodieren, da sie als Query-Parameter gesendet wird. Etwa so: steamwebapi.com/proxy/api/premium/?url=https%3A%2F%2Fsteamcommunity.com%
format string nein Antwortformat: json (Standard), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Beispiel: ?format=csv
pretty string nein JSON formatiert darstellen (auf 1 setzen für json-/gzip-/zip-Formate). Beispiel: ?format=json&pretty=1

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/proxy/api/premium"

Responses

  • default

Steam Guard

Steam-Guard-Code-Generierung, mobile Bestätigungen und Authenticator-Lifecycle-Workflows.

7 Endpunkte
POST /steam/api/guard/code

🔐 Einen Steam-Guard-Login-Code generieren

Generiert den aktuellen 5-stelligen Steam-Guard-Login-Code (TOTP) aus einem sharedsecret — denselben Code, den die Steam-Mobile-App anzeigt. Zustandslos: Das Secret wird im Body übergeben und niemals gespeichert.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/code"

Responses

  • 200 Aktueller Steam-Guard-Code mit Ablaufinformationen.
  • 402 Erfordert Trade-API-Zugriff — teilt sich das "trade"-Rate-Limit.
  • 421 Fehlender oder ungültiger JSON-Body.
  • 422 Validierung fehlgeschlagen.
POST /steam/api/guard/confirmations/list

📋 Ausstehende mobile Bestätigungen auflisten

Listet ausstehende mobile Trade-/Market-Bestätigungen auf — dieselben Bestätigungen, die die Steam-Mobile-App unter "Bestätigungen" anzeigt. Erfordert identitysecret + eine gültige steamloginsecure-Session.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/list"

Responses

  • 200 Liste der ausstehenden Bestätigungen.
  • 401 steamloginsecure ungültig oder abgelaufen.
  • 402 Erfordert Trade-API-Zugriff — teilt sich das "trade"-Rate-Limit.
  • 422 Validierung fehlgeschlagen.
  • 502 Unerwartete Steam-Antwort.
  • 503 Steam nicht erreichbar.
POST /steam/api/guard/confirmations/confirm

✅ Bestätigungen annehmen oder ablehnen (eine oder mehrere)

Nimmt eine ODER mehrere mobile Bestätigungen an oder lehnt sie ab. Übergib entweder ein `confirmations`-Array aus {id, key}-Paaren, oder ein einzelnes `confid` + `confkey` (die `id` und `nonce` aus Steams getlist). op: allow/accept zum Bestätigen, cancel/deny zum Ablehnen. Berechnet einen Credit pro bearbeiteter Bestätigung.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/confirm"

Responses

  • 200 Ergebnisse pro Bestätigung (immer ein Array, auch bei nur einer Bestätigung).
  • 401 steamloginsecure ungültig oder abgelaufen.
  • 402 Erfordert Trade-API-Zugriff — teilt sich das "trade"-Rate-Limit.
  • 422 Validierung fehlgeschlagen, oder weder confirmations noch confid/confkey angegeben.
POST /steam/api/guard/confirmations/details

🔎 Bestätigungsdetails

Ruft die Detailansicht einer einzelnen Bestätigung ab (mobileconf/details), damit du prüfen kannst, was ein Trade enthält, bevor du bestätigst.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/details"

Responses

  • 200 Detail-Payload der Bestätigung.
  • 401 steamloginsecure ungültig oder abgelaufen.
  • 402 Erfordert Trade-API-Zugriff — teilt sich das "trade"-Rate-Limit.
POST /steam/api/guard/confirmations/confirm-all

⚡ Alle automatisch bestätigen (einmalig)

Einmalige Auto-Bestätigung: listet Bestätigungen auf, filtert nach Typ (trade/market/all) und bearbeitet alle passenden in einem einzigen Request. Berechnet einen Credit pro bearbeiteter Bestätigung.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/confirm-all"

Responses

  • 200 Anzahl der bearbeiteten Bestätigungen plus Ergebnisse pro Bestätigung.
  • 401 steamloginsecure ungültig oder abgelaufen.
  • 402 Erfordert Trade-API-Zugriff — teilt sich das "trade"-Rate-Limit.
  • 422 Validierung fehlgeschlagen.
POST /steam/api/guard/add

🆕 Authenticator hinzufügen/aktivieren (maFile, beide Schritte)

Generates a Steam mobile authenticator (maFile) — the full lifecycle in ONE endpoint. The step is auto-detected from the parameters (or force it with `step`: 1/2). STEP 1 (add) — send `username` + `password`. If the account uses email Steam Guard, the first call returns HTTP 200 `{ "state": "NEED_EMAIL_CODE", "loginsession": "...", "nextrequest": {...} }`; read the emailed code and call again with `emailcode` + `loginsession`. On success you get the maFile + accesstoken and Steam sends an SMS. STEP 2 (finalize) — send `sharedsecret` + `accesstoken` (both from step 1) + `activationcode` (the code Steam sent, by SMS or email). Alternatively send the whole `mafile` + `activationcode` (sharedsecret/accesstoken are then read from it). `smscode` and `emailcode` are accepted as aliases for `activationcode`. The presence of `sharedsecret`, a `mafile`, or an activation code selects this step. Works with or without a phone number: with a phone Steam sends the activation code by SMS, otherwise by email. Set `mafiledownload` to true (step 1) to receive the maFile as a downloadable `.maFile`. IMPORTANT: store the revocation_code — it cannot be recovered.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/add"

Responses

  • 200 Add (login): AWAITING_FINALIZATION — the maFile (with fully_enrolled already set to true so the saved file is final-ready), accesstoken, a mafiledownloadlink (a stateless data: URI that downloads the maFile) and mafilefilename (the <steamid>.maFile name to use with an <a download>) — or NEED_EMAIL_CODE (loginsession). Finalize: confirmation that the mobile authenticator is now active. With mafiledownload=true: the maFile as a file attachment.
  • 402 Erfordert Trade-API-Zugriff — teilt sich das "trade"-Rate-Limit.
  • 409 Das Konto hat bereits einen Authenticator.
  • 422 Validierung fehlgeschlagen, oder der E-Mail-/Aktivierungscode war erforderlich oder wurde abgelehnt.
  • 502 Steam hat den Request abgelehnt.
  • 503 Steam nicht erreichbar.
POST /steam/api/guard/remove

🗑️ Authenticator entfernen

Deaktiviert den Authenticator. Meldet sich mit dem aktuellen Guard-Code (aus sharedsecret) an, um ein Access-Token zu erhalten, und widerruft dann über den revocationcode. Dies schaltet das Konto zurück auf E-Mail-Steam-Guard.

Parameter

Keine weiteren Parameter außer deinem API-Schlüssel.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/remove"

Responses

  • 200 Authenticator entfernt.
  • 401 Login fehlgeschlagen.
  • 402 Erfordert Trade-API-Zugriff — teilt sich das "trade"-Rate-Limit.
  • 422 Validierung fehlgeschlagen.
  • 502 Steam hat die Entfernung abgelehnt.
  • 503 Steam nicht erreichbar.

Tradeoffer

Erstellung von Steam-Tradeoffers, Status, gesendete/ausstehende Angebote, Historie, Abbrechen, Annehmen und Ablehnen.

9 Endpunkte
POST /steam/api/trade/create

📦 Ein Tradeoffer auf Steam erstellen

Baseurl: https://www.steamwebapi.com/steam/api/trade/create?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Initiiert ein neues Tradeoffer für einen bestimmten Nutzer. - Erfordert ein gültiges `steamloginsecure`, abrufbar aus Steam-Cookies. 🛠️ **Funktionen:** - Unterstützt das Senden von Items (`myitemassetids`) und das Anfordern von Items (`partneritemassetids`). - Trade-Link und Partner-Steam-ID gewährleisten sichere Zieladressierung. - Bietet eine Option für eine benutzerdefinierte Nachricht zum Trade. 🌐 **So verwendest du es:** - Übergib die erforderlichen Parameter in einem JSON-Payload. - Nutze optionale Parameter wie `game` für spielspezifische Tradeoffers.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Initiieren eines neuen Tradeoffers: - **steamloginsecure**: Cookie-Wert zur Steam-Authentifizierung. - **partneritemassetids**/**myitemassetids**: Asset-IDs der zu handelnden Items. - **tradelink**: Trade-Link des Nutzers. - **partnersteamid**: Steam-ID des Handelspartners. - **message**: Optionale Nachricht für das Tradeoffer.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/create"

Responses

  • 200 Tradeoffer erfolgreich erstellt.
  • 401 Unautorisierter Zugriff oder ungültiges/abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Angegebenes Spiel nicht gefunden.
  • 406 Ungültige Asset-ID angegeben oder zu viele ausstehende Tradeoffers.
  • 409 Erstellung des Tradeoffers fehlgeschlagen - zu viele Stornierungen.
  • 410 Unautorisierter Zugriff durch ungültiges/abgelaufenes steamloginsecure.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 429 Rate-Limit überschritten.
PUT /steam/api/trade/accept

🔒 Ein Tradeoffer auf Steam annehmen

Baseurl: https://www.steamwebapi.com/steam/api/trade/accept?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Nimmt ein Tradeoffer auf Steam an. - Erfordert Steam-Zugangsdaten und Trade-Details. 🛠️ **Funktionen:** - Ermöglicht die programmatische Annahme von Tradeoffers. - Erfordert `2FA`, wenn Items am Trade beteiligt sind. 🌐 **So verwendest du es:** - Übergib die erforderlichen Parameter (`steamloginsecure`, `tradeofferid` und `partnersteamid`) im Request Body. - Authentifiziere dich mit deinem API-Schlüssel für den Zugriff.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Annehmen eines Tradeoffers: - **steamloginsecure**: Cookie-Wert von steamcommunity.com zur Authentifizierung. - **tradeofferid**: Die ID des anzunehmenden Tradeoffers. - **partnersteamid**: Die Steam-ID des Handelspartners.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/accept"

Responses

  • 200 Tradeoffer erfolgreich angenommen.
  • 401 Unautorisierter Zugriff. Ungültiges oder abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Angegebenes Spiel nicht gefunden.
  • 410 Unautorisierter Zugriff durch ungültiges oder abgelaufenes steamloginsecure.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 425 Ein Steam-Fehler ist aufgetreten.
POST /steam/api/trade/check

🔍 Status eines Tradeoffers prüfen (nur Empfänger)

Baseurl: https://www.steamwebapi.com/steam/api/trade/check?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Prüft, ob ein bestimmtes Tradeoffer noch aktiv oder nicht mehr gültig ist. - Liefert detaillierte Informationen zum Tradeoffer, einschließlich Items, Teilnehmer und Escrow-Status. - Erfordert ein gültiges `steamloginsecure` zur Authentifizierung. ⚠️ **Wichtig: Nur der Empfänger des Tradeoffers kann diesen Endpunkt nutzen.** - Steam erlaubt nur dem **Empfänger** (der Person, die das Tradeoffer erhalten hat), Trade-Details einzusehen. - Gehört das `steamloginsecure` dem **Absender** des Tradeoffers, liefert Steam einen Fehler, als würde das Tradeoffer nicht existieren. - Stelle sicher, dass das `steamloginsecure` dem Steam-Konto gehört, das das Tradeoffer **empfangen** hat. 🛠️ **Funktionen:** - Prüft, ob ein Tradeoffer noch aktiv oder abgelaufen/storniert/abgelehnt ist. - Liefert detaillierte Tradeoffer-Daten: von beiden Parteien angebotene Items, Partner-Infos, Trade-Nachricht. - Enthält Escrow-(Handelssperre-)Informationen. - Partner-Details umfassen Steam-Level, Mitglied-seit-Datum und Freundschaftsstatus. 🌐 **So verwendest du es:** - Übergib die erforderlichen Parameter (`steamloginsecure` und `tradeofferid`) im Request Body. - Das `steamloginsecure` **muss** dem Empfänger des Tradeoffers gehören. - Authentifiziere dich mit deinem API-Schlüssel für den Zugriff.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Prüfen eines Tradeoffers: - **steamloginsecure**: Cookie-Wert von steamcommunity.com zur Authentifizierung. - **tradeofferid**: Die ID des zu prüfenden Tradeoffers.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/check"

Responses

  • 200 Tradeoffer-Details erfolgreich abgerufen.
  • 401 Unautorisierter Zugriff. Ungültiges oder abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Tradeoffer ist nicht mehr gültig oder wurde nicht gefunden.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 425 Ein Steam-Fehler ist aufgetreten.
POST /steam/api/trade/history

🔎 Handelshistorie abrufen

Baseurl: https://www.steamwebapi.com/steam/api/trade/history?key=YOUR_API_KEY 💬 **Handelshistorie eines Nutzers abrufen.** - Dieser Endpunkt nutzt die offizielle Steam Web API (IEconService/GetTradeHistory) für genaue und zuverlässige Handelsdaten. - Perfekt, um Handelserfolge zu verifizieren und die Handelsaktivität des Nutzers zu verfolgen. - **Rate Limiting:** Es kann zu Verzögerungen kommen, wenn zu viele Requests in kurzer Zeit gestellt werden, da jedes `steamloginsecure`-Token einem Rate-Limit unterliegt. - **Echtzeitdaten:** Das `steamloginsecure`-Token gewährleistet den Echtzeit-Datenabruf von Steam. Du kannst unsere Extension für den automatischen Token-Abruf nutzen. - **Trade-Protection-System:** Mit Steams Trade-Protection-System können Trades innerhalb von 7 Tagen rückgängig gemacht werden. Die Felder `tradeprotected` und `tradeprotecteduntil` zeigen an, ob ein Trade noch im Schutzzeitraum ist. Das genaue Abrechnungsdatum kommt direkt von Steam. - **Neue Felder:** Jeder Trade enthält jetzt ein `tradeid`-Feld und `tradeprotecteduntiltimestamp`. Erhaltene Items enthalten `originalassetid` und `newassetid`. Gesendete Items enthalten `newassetid`. Items können `ownerdescriptions` enthalten, sofern von Steam verfügbar. 🛠️ **Wichtige Parameter:** - **steamloginsecure**: Erforderlich. Das rohe steamLoginSecure-Token aus dem `steamcommunity.com`-Cookie zur Authentifizierung. - **after_time**: Optional. Paginierungs-Cursor — übergib den Wert aus `nexthistoryaftertimestamp` der vorherigen Response. - **after_trade**: Optional. Paginierungs-Cursor — übergib den Wert aus `nexthistoryaftertrade` zusammen mit `after_time`. - **assetid**: Optional. Filtert Trades nach einer bestimmten Asset-ID, um ein bestimmtes Item zu verfolgen. 🌐 **So verwendest du es:** - Sende den `steamloginsecure`-Cookie-Wert (oder nutze unsere Extension für den automatischen Abruf), um die Handelshistorie des Nutzers abzurufen. - Nutze die Parameter `after_time` und `after_trade` gemeinsam für präzise Paginierung (beide Werte stammen aus `nexthistoryaftertimestamp` und `nexthistoryaftertrade` der vorherigen Response). - Nutze den Parameter `assetid`, um bestimmte Items zu verfolgen und zu prüfen, ob sie an rückgängig gemachten Trades beteiligt waren. Durchsucht `assetid`, `originalassetid` und `newassetid`. - Prüfe das Feld `status` in der Response, um festzustellen, ob ein Trade "traded" oder "reversed" ist. - Die Eigenschaft `tradereturned` liefert Details zu rückgängig gemachten Trades, sodass Dienste Guthaben nach Ablauf der 7-tägigen Handelssperre freigeben können. - **Hinweis:** `participantusername` enthält die SteamID64 des Handelspartners (der Benutzername ist über die Steam-API nicht verfügbar). Nutze `participantsteamid` für denselben Wert.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.
after_time string nein Filtert Trades, die nach dem angegebenen Unix-Timestamp stattfanden. Für die Paginierung genutzt — übergib den Wert aus `nexthistoryaftertimestamp` der vorherigen Response.
after_trade string nein Filtert Trades nach der angegebenen Trade-ID. Zusammen mit `after_time` für präzise Paginierung genutzt — übergib den Wert aus `nexthistoryaftertrade` der vorherigen Response.
assetid string nein Filtert Trades nach einer bestimmten Asset-ID, um ein bestimmtes Item zu verfolgen.

Request Body

JSON payload containing the required parameters for retrieving trade history: <table style="color: #ffffff;"> <tr> <th>Name</th><th>Required</th><th>Description</th> </tr> <tr> <td>steamloginsecure</td><td>Yes</td><td>Raw steamLoginSecure token from the cookie of steamcommunity.com. Use the raw steamLoginSecure from the cookie. Can also be retrieved automatically using our Extension.</td> </tr> </table>

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/history"

Responses

  • 200 Erfolg - Handelshistorie erfolgreich abgerufen.
  • 400 Fehlerhafte Anfrage oder fehlende Parameter.
  • 401 Unautorisierter Zugriff durch fehlendes oder ungültiges steamloginsecure-Token.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 405 Ungültiges steamloginsecure angegeben. Bitte überprüfe dein steamloginsecure und versuche es erneut.
  • 406 Dein steamloginsecure ist abgelaufen. Bitte überprüfe dein steamloginsecure und versuche es erneut.
  • 430 Du musst warten, bevor du mit diesem steamloginsecure einen weiteren Request stellst, um nicht von steamcommunity.com gesperrt zu werden.
  • 408 Ungültiges steamloginsecure angegeben. Bitte überprüfe dein steamloginsecure und versuche es erneut.
  • 421 Erforderliche Parameter fehlen oder Rate-Limit überschritten
  • 422 Ungültiges JSON-Format im Request.
  • 429 Rate-Limit für Requests überschritten.
POST /steam/api/trade/sent

📜 Gesendete Tradeoffers auflisten

Baseurl: https://www.steamwebapi.com/steam/api/trade/sent?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Listet alle von einem Nutzer gesendeten ausgehenden Tradeoffers auf. - Erfordert ein gültiges `steamloginsecure` zur Authentifizierung. - Steam-IDs werden automatisch aus der API-Response berechnet. 🛠️ **Funktionen:** - Ruft eine Liste gesendeter Tradeoffers ab. - Enthält detaillierten Tradeoffer-Status und Item-Informationen. - Steam-IDs der Teilnehmer werden automatisch aufgelöst. 🌐 **So verwendest du es:** - Übergib den erforderlichen Parameter (`steamloginsecure`).

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Auflisten gesendeter Tradeoffers: - **steamloginsecure**: Cookie-Wert von steamcommunity.com zur Authentifizierung.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/sent"

Responses

  • 200 Gesendete Tradeoffers erfolgreich abgerufen.
  • 401 Unautorisierter Zugriff durch ungültiges oder abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Keine Tradeoffers gefunden.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 425 Ein Steam-Fehler ist aufgetreten.
POST /steam/api/trade/pending

📜 Ausstehende Tradeoffers auflisten

Baseurl: https://www.steamwebapi.com/steam/api/trade/pending?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Listet alle von einem Nutzer empfangenen eingehenden Tradeoffers auf. - Erfordert ein gültiges `steamloginsecure` zur Authentifizierung. - Steam-IDs werden automatisch aus der API-Response berechnet. 🛠️ **Funktionen:** - Ruft eine Liste ausstehender Tradeoffers ab. - Enthält detaillierten Tradeoffer-Status und Item-Informationen. - Steam-IDs der Teilnehmer werden automatisch aufgelöst. 🌐 **So verwendest du es:** - Übergib den erforderlichen Parameter (`steamloginsecure`).

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Auflisten ausstehender Tradeoffers: - **steamloginsecure**: Cookie-Wert von steamcommunity.com zur Authentifizierung.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/pending"

Responses

  • 200 Ausstehende Tradeoffers erfolgreich abgerufen.
  • 401 Unautorisierter Zugriff durch ungültiges oder abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Keine Tradeoffers gefunden.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 425 Ein Steam-Fehler ist aufgetreten.
POST /steam/api/trade/sent/history

📜 Historie gesendeter Tradeoffers auflisten

Baseurl: https://www.steamwebapi.com/steam/api/trade/sent/history?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Listet alle historischen (abgeschlossenen, abgelaufenen, stornierten, abgelehnten) ausgehenden Tradeoffers eines Nutzers auf. - Erfordert ein gültiges `steamloginsecure` zur Authentifizierung. - Steam-IDs werden automatisch aus der API-Response berechnet. 🛠️ **Funktionen:** - Ruft eine Liste historischer gesendeter Tradeoffers ab (keine aktiven). - Enthält detaillierten Tradeoffer-Status und Item-Informationen. - Steam-IDs der Teilnehmer werden automatisch aufgelöst. ⚠️ **Wichtig:** - Dieser Endpunkt liefert nur **historische** Tradeoffers (angenommen, abgelehnt, storniert, abgelaufen usw.). - Für aktuell aktive gesendete Tradeoffers nutze stattdessen `/steam/api/trade/sent`. 🌐 **So verwendest du es:** - Übergib den erforderlichen Parameter (`steamloginsecure`).

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Auflisten der Historie gesendeter Tradeoffers: - **steamloginsecure**: Cookie-Wert von steamcommunity.com zur Authentifizierung.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/sent/history"

Responses

  • 200 Historie gesendeter Tradeoffers erfolgreich abgerufen.
  • 401 Unautorisierter Zugriff durch ungültiges oder abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Keine Tradeoffer-Historie gefunden.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 425 Ein Steam-Fehler ist aufgetreten.
PUT /steam/api/trade/cancel

❌ Ein Tradeoffer auf Steam stornieren

Baseurl: https://www.steamwebapi.com/steam/api/trade/cancel?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Storniert ein Tradeoffer auf Steam. - Erfordert Steam-Zugangsdaten und die Tradeoffer-ID. 🛠️ **Funktionen:** - Ermöglicht die programmatische Stornierung von Tradeoffers. - Bietet sichere Authentifizierung über `steamloginsecure`. 🌐 **So verwendest du es:** - Übergib die erforderlichen Parameter (`steamloginsecure` und `tradeofferid`) im Request Body. - Authentifiziere dich mit deinem API-Schlüssel, um auf den Endpunkt zuzugreifen.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Stornieren eines Tradeoffers: - **steamloginsecure**: Cookie-Wert von steamcommunity.com zur Authentifizierung. - **tradeofferid**: Die ID des zu stornierenden Tradeoffers.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/cancel"

Responses

  • 200 Tradeoffer erfolgreich storniert.
  • 401 Unautorisierter Zugriff. Ungültiges oder abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Angegebenes Spiel nicht gefunden.
  • 410 Unautorisierter Zugriff durch ungültiges oder abgelaufenes steamloginsecure.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 425 Ein Steam-Fehler ist aufgetreten.
PUT /steam/api/trade/decline

❌ Ein Tradeoffer auf Steam ablehnen

Baseurl: https://www.steamwebapi.com/steam/api/trade/decline?key=YOUR_API_KEY 💬 **Was dieser Endpunkt macht:** - Lehnt ein bestehendes Tradeoffer auf Steam ab. - Erfordert Steam-Zugangsdaten und die Tradeoffer-ID. 🛠️ **Funktionen:** - Lehnt Tradeoffers programmatisch ab. - Erfordert ein gültiges `steamloginsecure` zur Authentifizierung. 🌐 **So verwendest du es:** - Übergib die erforderlichen Parameter (`steamloginsecure` und `tradeofferid`) im Request Body. - Authentifiziere dich mit deinem API-Schlüssel für den Zugriff auf den Endpunkt.

Parameter

Name Typ Pflicht Beschreibung
key string ja Dein API-Schlüssel zur Authentifizierung. Zu finden in deinem Dashboard (oben rechts).
production string nein Wenn du in Produktion läufst, setze dies bitte auf 1. Standard ist 0. Dies wird zukünftig erforderlich sein — ist es nicht gesetzt, erhältst du eine Warnung.

Request Body

JSON-Payload mit den erforderlichen Parametern zum Ablehnen eines Tradeoffers: - **steamloginsecure**: Cookie-Wert von steamcommunity.com zur Authentifizierung. - **tradeofferid**: Die ID des abzulehnenden Tradeoffers.

Beispiel-Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/decline"

Responses

  • 200 Tradeoffer erfolgreich abgelehnt.
  • 401 Unautorisierter Zugriff. Ungültiges oder abgelaufenes steamloginsecure.
  • 402 Rate-Limit überschritten (täglich oder monatlich).
  • 404 Angegebenes Spiel nicht gefunden.
  • 410 Unautorisierter Zugriff durch ungültiges oder abgelaufenes steamloginsecure.
  • 421 Validierungsfehler im Request Body.
  • 422 Validierungsfehler bei den JSON-Eigenschaften.
  • 425 Ein Steam-Fehler ist aufgetreten.

Anleitungen

Erste Schritte

Willkommen bei SteamWebAPI — einem hochwertigen API-Dienst, der Entwicklern nahtlosen Zugriff auf Steam-Spieldaten, Nutzerprofile, Inventare, Item-Preise und mehr gibt. Keine direkte Abhängigkeit von der Steam-API, kein IP-Blocking-Risiko.

SteamWebAPI ist ein unabhängiger Dienst und nicht mit Valve, Steam oder deren Partnern verbunden. Alle Rechte liegen bei den jeweiligen Eigentümern.


So verwendest du die API

Der Einstieg besteht aus drei Schritten:

  1. Sende einen GET-Request an einen beliebigen API-Endpunkt.
  2. Durchsuche die Endpunkte in dieser Referenz — wähle einen aus der Seitenleiste.
  3. Sende deinen API-Schlüssel im empfohlenen X-Api-Key-HTTP-Header.

Authentifizierung

Jeder produktive API-Request erfordert einen API-Schlüssel. Nutze den Header für neue Integrationen:

Empfohlener HTTP-Header

X-Api-Key: YOUR_API_KEY

Veralteter Query-Parameter

https://www.steamwebapi.com/steam/api/inventory?key=YOUR_API_KEY

Der ?key=-Parameter bleibt aus Kompatibilitätsgründen unterstützt. Vermeide Zugangsdaten in der Query-String bei neuen Anwendungen.

So erhältst du einen API-Schlüssel

  1. Klicke auf "Mit Steam anmelden", um ein Konto zu erstellen.
  2. Gehe zu deinem Dashboard → API-Schlüssel.

Deine Steam-Daten werden von SteamWebAPI nicht gespeichert.

Ist es kostenlos?

Der kostenlose Tarif bietet eingeschränkten Zugriff für die erste Integrationsarbeit. Endpunktgruppen, Premium-Daten und Limits hängen vom gewählten Tarif ab; prüfe diese vor dem Produktiveinsatz auf der Preisseite.


Basis-URL

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/YOUR_ENDPOINT"

Antworten

Alle Antworten sind JSON. Fehler enthalten eine aussagekräftige error-Nachricht.


Unterstützte Spiele

Spiel Kurzname Status
CS2 cs2 Vollständig getestet
RUST rust Basis getestet
DOTA dota Basis getestet

Ausgabeformate

Wähle das Ausgabeformat mit dem Query-Parameter format. Standard ist JSON. Füge pretty=1 hinzu, um JSON formatiert darzustellen. Die Beispiele lassen den wiederholten X-Api-Key-Header aus Gründen der Lesbarkeit weg.

# JSON (Standard)
/steam/api/inventory

# Formatiertes JSON
/steam/api/inventory?pretty=1

# Gzip-komprimierter Download
/steam/api/items?format=gzip

# ZIP-Archiv
/steam/api/items?format=zip

# CSV
/steam/api/items?format=csv

# YAML
/steam/api/items?format=yaml

# Interaktive HTML-Tabelle
/steam/api/items?format=table

# MySQL-INSERTs
/steam/api/items?format=mysql_with_table

# MongoDB insertMany
/steam/api/items?format=mongo
format Beschreibung Content-Type
json JSON-Body (Standard) application/json
gzip Gzip-komprimiertes JSON application/gzip
zip ZIP-Archiv mit JSON application/zip
csv CSV-Export (UTF-8 BOM) text/csv
tsv Tabulator-getrennte Werte text/tab-separated-values
xml XML-Dokument application/xml
yaml / yml YAML-Dokument application/x-yaml
table / view Interaktive HTML-Tabelle text/html
ndjson Zeilengetrenntes JSON application/x-ndjson
jsonp JSON mit Callback application/javascript
mysql MySQL-INSERT-Statements text/plain
mysql_with_table MySQL CREATE + INSERTs text/plain
pgsql PostgreSQL-INSERT-Statements text/plain
pgsql_with_table PostgreSQL CREATE + INSERTs text/plain
mongo MongoDB-insertMany-Skript application/javascript

Unterstützte Sprachen (Inventory API)

Sprachen werden nur von der Inventory API unterstützt. Das Feld marketname enthält den Item-Namen in der gewählten Sprache, während markethashname immer auf Englisch ist — es dient als eindeutige Kennung und ändert sich nicht mit dem Sprachparameter.

Sprache API-Wert
العربية arabic
Български bulgarian
简体中文 schinese
繁體中文 tchinese
Čeština czech
Dansk danish
Nederlands dutch
English english
Suomi finnish
Français french
Deutsch german
Ελληνικά greek
Magyar hungarian
Bahasa Indonesia indonesian
Italiano italian
日本語 japanese
한국어 koreana
Norsk norwegian
Polski polish
Português portuguese
Português (Brasil) brazilian
Română romanian
Русский russian
Español spanish
Español (Latinoamérica) latam
Svenska swedish
ไทย thai
Türkçe turkish
Українська ukrainian
Tiếng Việt vietnamese

Drittanbieter-Marktplätze

SteamWebAPI erfasst Preisdaten von folgenden externen Marktplätzen für pricerealXXXX-Werte:

  • Skinport
  • DMarket
  • Buff
  • CSGO.com
  • Tradeit
  • Skinpull
  • Waxpeer
  • Skinbaron

Item- und Preisfelder

Schlüssel Beschreibung
pricelatest Steam – Aktuell niedrigstes Verkaufsangebot; null, wenn kein Angebot vorliegt
pricelatestsell Steam – Preis des letzten Verkaufs
pricelatestsell24h Steam – Letzter Verkauf innerhalb des 24h-Zeitfensters
pricelatestsell7d Steam – Letzter Verkauf innerhalb der letzten 7 Tage
pricelatestsell30d Steam – Letzter Verkauf innerhalb der letzten 30 Tage
pricelatestsell90d Steam – Letzter Verkauf innerhalb der letzten 90 Tage
lateststeamsellat Steam – Zeitstempel des letzten Verkaufs
latest10steamsales Steam – Letzte 10 Tagesverkäufe als [Datum, Preis, Volumen]
pricemedian Steam – Median der letzten 10 Tagesverkäufe
pricemedian24h Steam – Volumengewichteter Median der Verkäufe der letzten 24h
pricemedian7d Steam – Volumengewichteter Median der Verkäufe der letzten 7 Tage
pricemedian30d Steam – Volumengewichteter Median der Verkäufe der letzten 30 Tage
pricemedian90d Steam – Volumengewichteter Median der Verkäufe der letzten 90 Tage
priceavg Steam – Durchschnitt der letzten 10 Tagesverkäufe
priceavg24h Steam – Volumengewichteter Durchschnitt der Verkäufe der letzten 24h
priceavg7d Steam – Volumengewichteter Durchschnitt der Verkäufe der letzten 7 Tage
priceavg30d Steam – Volumengewichteter Durchschnitt der Verkäufe der letzten 30 Tage
priceavg90d Steam – Volumengewichteter Durchschnitt der Verkäufe der letzten 90 Tage
pricesafe Steam – Konservativer Listungs-Anker: Durchschnitt der 3 niedrigsten Perioden-Mediane (24h/7d/30d/90d/latest), Launch-Spike-Ausreißer (>5× der günstigste) herausgefiltert, × 0.95
pricemin Steam – Minimalpreis der letzten 90 Tage (Sub-Cent-Ausreißer gefiltert)
pricemax Steam – Maximalpreis der letzten 90 Tage
pricemix Steam – Niedrigster Preis aus Verkauf/Angebot/echtem Drittanbieter-Preis
pricereal Drittanbieter – Niedrigster Preis von externen Märkten
pricereal24h Drittanbieter – Niedrigster Preis vor 24h
pricereal7d Drittanbieter – Niedrigster Preis vor 7 Tagen
pricereal30d Drittanbieter – Niedrigster Preis vor 30 Tagen
pricerealmedian Drittanbieter – Median der 5 niedrigsten externen Preise
winloss Preisdifferenz Drittanbieter vs. Steam (%)
buyorderprice Steam – Aktuell höchster Kaufangebotspreis
buyordermedian Steam – Median der Top-5-Kaufangebotspreise
buyorderavg Steam – Durchschnitt der Top-5-Kaufangebotspreise
buyordervolume Steam – Summe der Menge über alle Kaufangebote
offervolume Steam – Summe der Menge über alle Verkaufsangebote
soldtoday Steam – Heute verkaufte Einheiten (aktueller Kalendertag)
sold24h Steam – Am vorherigen Kalendertag verkaufte Einheiten
sold7d Steam – In den letzten 7 Tagen verkaufte Einheiten
sold30d Steam – In den letzten 30 Tagen verkaufte Einheiten
sold90d Steam – In den letzten 90 Tagen verkaufte Einheiten
soldtotal Steam – Gesamtzahl verkaufter Einheiten über die von Steam bereitgestellte vollständige Verkaufshistorie (mehrjährige Gesamtsumme, kein rollierendes Zeitfenster)
hourstosold Steam – Geschätzte durchschnittliche Stunden bis zum Verkauf eines einzelnen Listings (abgeleitet aus sold24h & offervolume)
points Steam – Nachfrage-Punkte: Σ Menge × Preis über alle Kaufangebote
unstable 1 = instabiler Preis (Alltime-Volumen ≤ 10), 0 = stabil
unstablereason Grund für Instabilität (nullable)
priceupdatedat Letzter Zeitpunkt, zu dem der Scraper dieses Item geprüft hat; die Preisspalten selbst aktualisieren sich nur bei einem erfolgreichen USD-Scrape
markethashname Market-Hash-Name
marketname Markt-Anzeigename
slug URL-freundliche Kennung
isstattrack 1 = StatTrak™, 0 = nicht
isstar 1 = hat Stern (★), 0 = nein

Ressourcen

Produktiveinsatz

Nutze diese Parameter und Best Practices, um eine stabile, belastbare Integration auf Basis von SteamWebAPI in Produktionsumgebungen zu bauen.


production=1 — Stabile Versionierung

Der Parameter production=1 stellt sicher, dass deine Integration nicht durch unerwartete Änderungen in API-Updates gestört wird, und erlaubt SteamWebAPI, aktive Produktivnutzer zu überwachen.

Vorteile

  • Du erhältst exakt dieselbe Response-Struktur, die bereits in deiner Umgebung funktioniert.
  • Nach zwei Wochen wird dein Request automatisch auf die neue stabile Version aktualisiert — nutze diesen Zeitraum zum Testen.
  • Du hast genug Zeit, deine Integration anzupassen, bevor du auf die neue Version migrierst.

Nutze version=latest, um auch im Produktivmodus auf die neueste API-Response mit allen aktuellen Änderungen zuzugreifen.


critical=1 — Echtzeit-Sicherheitsschalter

Zusätzlich zu production=1 bietet der Parameter critical=1 einen automatischen Sicherheitsmechanismus für Echtzeit-Endpunkte wie /inventory oder /item.

Für den /items-Endpunkt wird critical=1 im Produktivmodus automatisch aktiviert. Für alle anderen Endpunkte ist der Standard 0, kann aber manuell aktiviert werden.

Was macht critical=1?

  • Die API prüft automatisch, ob ein kritisches Problem gemeldet wurde (unter normalen Umständen sehr selten).
  • Wird ein kritisches Problem erkannt, werden alle Requests mit critical=1 vorübergehend blockiert, um fehlerhafte Daten zu verhindern.
  • Du musst deinen Endpunkt nicht manuell deaktivieren — das System übernimmt dies automatisch.

Wann solltest du critical=1 nutzen?

Aktiviere es für jede Operation, die von Echtzeitdaten abhängt und finanzielle Auswirkungen hat:

  • Skin-Einzahlungsdienste (SkinPay, DMarket, BitSkins usw.)
  • Automatisierte Trades über Bots
  • Jeder Kauf- oder Trade-Ablauf, bei dem ein falscher Preis zu einem Verlust führt

Parameterübersicht

Parameter Beschreibung
production=1 Auf allen im Produktivbetrieb genutzten Endpunkten verwenden — garantiert stabile Response-Struktur.
version=latest Auch im Produktivmodus das neueste Response-Format nutzen.
critical=1 Aktiviert den Echtzeit-Sicherheitsschalter. Automatisch aktiv bei /items im Produktivmodus.

Best Practices

Allgemein

  • Übergib production=1 immer auf jedem im Produktivbetrieb genutzten Endpunkt.
  • Übergib critical=1 immer bei echtzeitkritischen finanziellen Operationen.
  • Rufe /items-Preise alle 30 Minuten bis 24 Stunden ab und cache sie lokal in deinem Backend.
  • Dieser Endpunkt ist kein Backend-Dienst — speichere die Daten selbst und umgib Aufrufe mit try-catch.

Validierung der Item-Response (kritische Operationen)

Bevor du einen Item-Preis in einem Trade, Kauf oder einer Bot-Entscheidung nutzt, prüfe immer zwei Felder:

// ✅ Sicher zu verwenden
if (item.unstable === false && item.checkedAt !== null) {
    // Preis ist validiert und ist nicht > 10 % gegenüber gestern gesprungen
    proceed();
}

// ⚠️ NICHT verwenden, wenn:
// item.unstable === true   → Preis ist als instabil markiert
// item.checkedAt === null  → Preis wurde noch nicht validiert

Ist checkedAt null, wurde der Preis vom System noch nicht validiert. Nutze solche Items nicht in kritischen Operationen.


Rate-Limits & Abonnements

  • Rate-Limits variieren je nach Tarif — aktuelle Limits im Dashboard prüfen.
  • Abonnements werden über Stripe abgewickelt — wähle beim Checkout zwischen einem automatisch verlängernden wiederkehrenden Tarif oder einem einmaligen, nicht verlängernden Tarif.
  • Neu veröffentlichte Spiel-Items werden in der Regel innerhalb von 1–3 Tagen hinzugefügt.
  • Alle Pro-Tarife enthalten priorisierten Support.

Tarife, Limits & Daten

Wähle einen Endpunkt passend zum Produkt, das du baust, und prüfe anschließend Zugriff und Limits dieser Endpunktgruppe vor dem Produktiveinsatz.

Nutze den "Was möchtest du bauen?"-Helfer in der Seitenleiste, wenn du unsicher bist, welcher Endpunkt zu deinem Projekt passt.

Welche Endpunktgruppe brauche ich?

Was du baust Starte mit Typische Tarif-Familie
Inventarbewertung oder Marktplatz-Einzahlungen /steam/api/inventory Inventory
Item-Katalog oder aktuelle Steam-Preise /steam/api/items Item oder Balanced
Marktplatzvergleich /price-api und Market-Endpunkte Item oder Enterprise
Spielerprofil oder Kontokontext /steam/api/profile Profile oder Balanced
CS2-Float-Inspektion /steam/api/float Float

Zugriffs- und Request-Limits

Limits werden nach Endpunktgruppe und Tarif zugewiesen. Die Preisseite ist die verbindliche kommerzielle Quelle; dein Dashboard zeigt die für dein Konto geltenden Limits. Gehe nicht davon aus, dass ein kostenloses oder allgemeines Limit auch für Inventar-, Profil-, Historien- oder Bulk-Item-Endpunkte gilt.

Aktuelle Tarife und Endpunkt-Limits vergleichen →

Datenaktualität

Die Aktualität variiert je nach Quelle und Produkt. Lies die Zeitstempel-Felder in der Response und die Coverage-Hinweise der Produktseite, statt von einem einheitlichen globalen Aktualisierungsintervall auszugehen. Der öffentliche Explorer zeigt aktuelle Quelle und Aktualisierungszeiten anhand einer begrenzten Stichprobe.

Live-Beispieldaten ansehen →

Häufige Fehlerfälle

Status Bedeutung Aktion
400 Ungültige oder fehlende Eingabe Erforderliche Parameter und akzeptierte Formate prüfen.
401 / 403 Authentifizierung oder Tarifzugriff fehlgeschlagen X-Api-Key senden und Endpunktzugriff prüfen.
404 Angeforderte Ressource nicht gefunden Kennung und unterstütztes Spiel prüfen.
429 Ein Rate-Limit wurde erreicht Retry-After beachten oder passenden Tarif wählen.
5xx Vorübergehender Service- oder Upstream-Fehler Idempotente Aufrufe mit begrenztem Backoff wiederholen.

Produktiveinsatz und Enterprise

Für höheres Volumen, benutzerdefinierte Marktplätze, benutzerdefinierte Datenstrukturen, geplante Zustellung oder vertraglich vereinbarten Support nutze den Enterprise-Weg. Betriebliche und geschäftliche Verifizierung ist im Trust Center verfügbar.

Enterprise → Trust Center →

Steam Trading API

Die Steam Trading API bietet eine robuste Lösung, um den Handel mit Spiel-Items zu ermöglichen, ohne einen klassischen Steam-Trading-Bot zu benötigen. Baue Plattformen wie Skinport, Skinbaron oder DMarket — oder erstelle deinen eigenen sofortigen Skin-Kauf-/Verkaufsdienst.

Du brauchst keinen Node.js-Trade-Bot — unsere Tradeoffer-API unterstützt deinen Marktplatz, deine Handelsplattform oder jedes andere innovative Konzept, das dir vorschwebt.


Funktionen der Trade-API

Funktion Beschreibung
Tradeoffer erstellen Trade-Angebote für jedes gewünschte Item generieren.
Tradeoffer annehmen Trade-Angebote für jedes gewählte Item annehmen.
Abbrechen / Ablehnen Trade-Angebote bei Bedarf abbrechen oder ablehnen.
Tradeoffer-Status Handelsstatus in Echtzeit bestätigen und überwachen.

Was kannst du bauen?

  • Marktplätze
  • Handelsplattformen
  • Glücksspielseiten
  • Skin-Upgrader
  • Einzahlungssysteme
  • Preisaggregatoren

B2C- vs. P2P-Handelsmodelle

B2C (Business-to-Customer)

In einem B2C-Modell interagiert dein Bot direkt mit Kunden — ähnlich wie Skinport, Skinbaron und DMarket arbeiten. Du besitzt ein Konto, über das Items sofort und ohne Verzögerung gesendet oder empfangen werden.

Herausforderung Schwierigkeit
Abruf des steamloginsecure-Cookies Niedrig
Mobile Bestätigung beim Senden von Skins Niedrig

P2P (Peer-to-Peer)

In einem P2P-Modell senden Kunden Items direkt an den Käufer. Plattformen wie Whitemarket, Waxpeer oder Buff nutzen diesen Ansatz — Items erreichen den Besitzer direkt und werden vom Verkäufer nach einer Verzögerung freigegeben.


SteamAuth — Der moderne Ansatz

steamauth.app ist eine Browser-Erweiterung, mit der deine Nutzer ihr Steam-Login-Cookie sicher mit deiner Plattform teilen können — kein Bot nötig.

Viele große Marktplätze nutzen bereits SteamAuth. Damit müssen deine Kunden nur die Erweiterung installieren — du kannst dann Inventar, Handelsstatus abrufen und Handelsaktionen ausführen, ohne zusätzliche Programmierung auf Nutzerseite.

P2P mit SteamAuth (Empfohlen)

  • Deine Nutzer installieren die SteamAuth-Browser-Erweiterung (Chrome, Opera, Firefox).
  • Du kannst dann ihr steamloginsecure-Cookie über die Erweiterung abrufen.
  • Nutze unsere Trade-API-Endpunkte, um in ihrem Namen Angebote zu erstellen, anzunehmen oder abzubrechen.
  • Kein klassischer Trade-Bot oder manuelles Cookie-Handling nötig.

P2P ohne SteamAuth (Fortgeschritten)

Alternativ kannst du deine eigene Erweiterung oder Lösung bauen und unsere API-Endpunkte mit einem steamloginsecure-Cookie nutzen, das du selbst beschaffst.


SteamAuth-Funktionen

Funktion Beschreibung
Inventardaten CS2-Inventar sicher mit vertrauenswürdigen Websites abrufen und teilen.
Handelshistorie Vollständige Handelshistorie einsehen und analysieren.
Trades erstellen Trades direkt über verbundene Websites initiieren.
Ausstehende Trades Alle ausgehenden Trade-Angebote an einem Ort überwachen.
Eingehende Trades Eingehende Trade-Angebote prüfen und beantworten.

Verfügbar für

  • Chrome
  • Opera
  • Firefox

Sicherheit & Authentifizierung

Alle Trade-Endpunkte erfordern einen JSON-Payload und ein gültiges steamloginsecure-Cookie, das entweder über SteamAuth oder manuell von steamcommunity.com beschafft wird.

Unsere API kann zwar verschiedene Handelsaktionen ausführen, doch Steam erfordert weiterhin eine mobile Bestätigung für bestimmte Aktionen. Wir arbeiten aktiv an Lösungen für automatisierte mobile Bestätigungen und planen, künftig eine Open-Source-Lösung bereitzustellen.


Schnellstart

  1. Hole dir deinen API-Schlüssel aus dem Dashboard.
  2. Lasse deine Nutzer SteamAuth installieren (für P2P).
  3. Nutze den POST /steam/api/trade/create-Endpunkt, um Trade-Angebote zu erstellen.
  4. Überwache den Status über den Trade-Status-Endpunkt.

Bei Fragen oder Unterstützungsbedarf kontaktiere uns gerne über das Dashboard oder Discord.

Häufig gestellte Fragen

Wie erhalte ich einen API-Schlüssel für SteamWebAPI?

Melde dich mit deinem Steam-Konto an. Dein API-Schlüssel ist im Dashboard verfügbar. Sende ihn über den empfohlenen X-Api-Key-Header; der veraltete ?key=-Parameter wird weiterhin unterstützt.

Auf welche Daten kann ich über die Steam-API zugreifen?

SteamWebAPI bietet Zugriff auf Steam-Market-Item-Preise und Preisverlauf, Spieler-Inventare für CS2, DOTA2 und andere Spiele, CS2-Skin-Float-Werte, Spielerprofile, Trade-Angebote und Markterkundungs-Tools. Alle Daten sind über einfache REST-API-Endpunkte verfügbar.

Gibt es einen kostenlosen Tarif?

Der kostenlose Tarif bietet eingeschränkten API-Zugriff für die erste Integration. Endpunktgruppen, Premium-Zugriff und Limits hängen vom gewählten Tarif ab. Vergleiche die genauen Limits auf unserer Preisseite.

Welches Antwortformat verwendet die API?

Alle API-Endpunkte liefern standardmäßig JSON-Antworten. Die API folgt REST-Konventionen mit standardisierten HTTP-Statuscodes. Erfolgreiche Requests liefern einen 200-Statuscode mit den Daten im Response-Body.