Tarkov Pilot
⬤
Tarkov Pilot v2 released — old versions don't work anymore, please download the new one. Easier setup, auto-update, all settings in the app window.
Preistracker, interaktive Karten und Fortschrittswerkzeuge

Tarkov Market API

Flohmarktpreise, Händlerpreise und Gegenstandsdaten für Escape from Tarkov. Basis-URL: https://api.tarkov-market.app/api/v1

Offizielle Clients ohne Abhängigkeiten: Node.js, Python und Go – github.com/ggdiam/tarkov-market-api

API-Schlüssel

Für die API benötigst du PRO-Status auf der Website. Die Beispiele unten verwenden den Platzhalter your_api_key.

Authentifizierung

Der API-Schlüssel erlaubt Apps auch, deinen Charakterfortschritt zu lesen und zu ändern. Teile ihn nur mit vertrauenswürdigen Apps. PRO ist erforderlich; ein neuer API-Schlüssel widerruft den alten. Fortschrittsanfragen akzeptieren x-api-key nur im Header.

Übermittle deinen Schlüssel in einem Header:

x-api-key: your_api_key

Oder als Abfrageparameter, wenn Header unpraktisch sind (Browser, Streaming-Bots, Tabellen):

?x-api-key=your_api_key

Fehlender, unbekannter oder deaktivierter Schlüssel → 401 { "error": "Access denied" }

Spielmodi

Jeder Gegenstandsendpunkt ist in drei Spielmodi verfügbar. Der Modus wird per Pfadpräfix oder über diesen Parameter festgelegt: mode – beide liefern dieselbe Antwort:

Modus
Pfadpräfix
Parameter
Preisquelle
PVP
/api/v1/…
Standard
Gegenstandssammlung
PVE
/api/v1/pve/…
mode=pve
PVE-Scan
Season
/api/v1/season/…
mode=season
Saisonscan

Saisoncharaktere

Die Saisonwirtschaft wird separat erfasst und ist noch jung. Ein Flohmarktpreis existiert erst, nachdem der Scanner den Gegenstand auf dem Saisonflohmarkt gesehen hat. avg24hPrice / diff24h füllen sich mit wachsendem Preisverlauf. Flohmarktunabhängige Felder wie basePrice und Händlerpreis greifen bis zum eigenen Spieldatendump der Saison auf PVP-Werte zurück.

Ohne bisherigen Saisonpreis sieht es so aus (gleicher Gegenstand, gleiche Anfrage, Saisonmodus):

{
    "uid": "a7f7568c-61fb-437e-9f71-06e58aae26ba",
    "name": "LEDX Skin Transilluminator",
    "price": 0,               // noch kein Saison-Flohmarktpreis
    "avg24hPrice": 0,
    "diff24h": 0,
    "updated": "",            // noch nie auf dem Saisonflohmarkt gesehen
    "haveMarketData": false,  // Preis für diesen Gegenstand nicht verwenden
    "basePrice": 970000,      // keine Flohmarktdaten – identisch mit PVP
    "traderName": "Therapist",
    "traderPrice": 494700
}

Endpunkte

GET/item?q=ledx
Gegenstand nach Name, uid oder bsgId suchen.
qGegenstandsname oder Kurzname in einer unterstützten Sprache. Bis zu 5 Treffer, exakter Treffer zuerst
uidTarkov-Market-Gegenstands-uid – liefert genau einen Gegenstand
bsgIdGegenstands-ID aus Spieldateien – liefert genau einen Gegenstand
langSprache der Namen und des Websitelinks. Eine von: en, ru, ch, cz, de, es, fr, hu, it, jp, kr, mx, pl, po, ro, sk, tr. Standard: en
URL
https://api.tarkov-market.app/api/v1/item?q=ledx&x-api-key=your_api_key
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/item?q=ledx"
Antwortbeispiel
[
    {
        "uid": "a7f7568c-61fb-437e-9f71-06e58aae26ba",
        "name": "LEDX Skin Transilluminator",
        "bannedOnFlea": false,
        "haveMarketData": true,
        "tags": ["Barter"],
        "shortName": "LEDX",
        "price": 550000,
        "basePrice": 970000,
        "avg24hPrice": 598993,
        "avg7daysPrice": 671670,
        "traderName": "Therapist",
        "traderPrice": 494700,
        "traderPriceCur": "₽",
        "traderPriceRub": 494700,
        "updated": "2026-08-05T17:34:28.319Z",
        "slots": 1,
        "diff24h": -8.18,
        "diff7days": -18.11,
        "icon": "https://cdn.tarkov-market.app/images/items/a7f7568c-61fb-437e-9f71-06e58aae26ba_sm.png",
        "link": "https://tarkov-market.com/item/ledx_skin_transilluminator",
        "wikiLink": "https://escapefromtarkov.fandom.com/wiki/LEDX_Skin_Transilluminator",
        "img": "https://cdn.tarkov-market.app/images/items/a7f7568c-61fb-437e-9f71-06e58aae26ba_sm.png",
        "imgBig": "https://cdn.tarkov-market.app/images/items/ledx_skin_transilluminator_lg.png",
        "bsgId": "5c0530ee86f774697952d952",
        "isFunctional": true,
        "reference": "https://www.patreon.com/tarkov_market"
    }
]
POST/item
Dieselbe Suche mit JSON-Body – für nichtlateinische Abfragen ohne URL-Codierung.
q / uid / bsgIdWie bei GET, im JSON-Body übergeben
langWie bei GET
curl
curl https://api.tarkov-market.app/api/v1/item \
  -H "x-api-key: your_api_key" \
  -H "Content-Type: application/json" \
  -X POST --data '{"q":"AI-2急救组合","lang":"ch"}'
Antwortbeispiel
[
    {
        "uid": "2335b619-c562-41da-962f-e7b5aba5d45c",
        "name": "AI-2急救组合",
        "shortName": "AI-2",
        "tags": ["Meds"],
        "price": 6900,
        "basePrice": 4160,
        "avg24hPrice": 6695,
        "avg7daysPrice": 5912,
        "traderName": "Therapist",
        "traderPrice": 2121,
        "traderPriceCur": "₽",
        "traderPriceRub": 2121,
        "diff24h": 3.06,
        "diff7days": 16.71,
        "updated": "2026-08-05T17:07:42.165Z",
        "link": "https://tarkov-market.com/ch/item/ai-2_medikit",
        "bsgId": "5755356824597772cb798962",
        "isFunctional": true
    }
]
GET/items/all5 Anfr./Min.
Alle Gegenstände in einem Array. Daten werden 5 Minuten gecacht; häufigere Abfragen bringen daher nichts.
tagsNur Gegenstände mit diesen kommagetrennten Tags: tags=Ammo,Magazines
sortNach Antwortfeld sortieren, z. B. sort=price
sort_directionasc (Standard) oder desc
langSprache der Namen und Websitelinks
URL
https://api.tarkov-market.app/api/v1/items/all?x-api-key=your_api_key
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/items/all"
Antwortbeispiel
[
    {
        "uid": "f0fa8457-6638-4ad2-b7e8-4708033d8f39",
        "name": "Secure Flash drive",
        "shortName": "Flash drive",
        "price": 37400,
        ...
    },
    {
        "uid": "33c15349-44e6-4553-9705-1b6417a1ad6a",
        "name": "SSD drive",
        ...
    },
    ...
]
GET/items/all/download5 Anfr./Min.
Dieselbe vollständige Liste als herunterladbare JSON-Datei.
langSprache der Namen und Websitelinks
URL
https://api.tarkov-market.app/api/v1/items/all/download?x-api-key=your_api_key
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/items/all/download"

Antwortfelder

Feld
Bedeutung
uid
Tarkov-Market-Gegenstands-ID – stabil, auf deiner Seite als Schlüssel verwenden
bsgId
Gegenstands-ID aus den Spieldateien
name / shortName
Gegenstandsname in der angefragten Sprache
tags
Gegenstandskategorien, identisch mit den Websitefiltern
price
Letzter bekannter Flohmarktpreis in ₽. 0 bedeutet: kein Preis für diesen Modus
avg24hPrice / avg7daysPrice
Durchschnittlicher Flohmarktpreis der letzten 24 Stunden / 7 Tage in ₽
diff24h / diff7days
Änderung des letzten Preises gegenüber diesen Durchschnitten, %
basePrice
Basispreis des Gegenstands (Handbuch) in ₽ – Berechnungsgrundlage des Händlerankaufs
traderName
Händler mit dem höchsten Ankaufspreis
traderPrice / traderPriceCur
Zahlung dieses Händlers in seiner Währung (₽, $ oder €)
traderPriceRub
Derselbe Händlerpreis zum Spielkurs in ₽ umgerechnet
bannedOnFlea
Gegenstand kann nicht auf dem Flohmarkt verkauft werden
haveMarketData
Gegenstand ist auf dem Flohmarkt handelbar und der Preis aktuell – bei false dem Preis nicht vertrauen
isFunctional
false bei aus dem Spiel entfernten oder nicht erhältlichen Gegenständen
updated
Wann der Scanner den Flohmarktpreis zuletzt gesehen hat. Leer bedeutet: noch nie
slots
Inventargröße des Gegenstands in Feldern
img / imgBig
Gegenstandssymbol und großes Bild auf meinem CDN
icon
Veralteter Alias für img – dieselbe URL
link / wikiLink
Gegenstandsseite auf tarkov-market.com und im Wiki

Charakterfortschritt

Basis-URL der Fortschritts-API: https://api.tarkov-market.app/api/v1

Hole charUid über /characters. Der Charakter bestimmt PVP, PVE oder SEASON; die Auswahl oben gilt für Preise. itemId und questId sind BSG-IDs, einschließlich Aliassen und Zielverweisen. upgradeKey bezeichnet eine Versteckstufe, etwa Workbench_2.

GET liefert revision und ETag. Ersetze die Platzhalter durch Charakter, BSG-ID und revision; sende bei jedem PATCH If-Match: "{revision}". Änderungen setzen absolute Werte. Nach 409 aktuellen Fortschritt lesen und die Änderung abgleichen. Ein bereits angewandter Wert gelingt ohne weitere Speicherung.

Fortschritt: 300 Anfragen/Minute je Schlüssel und Besitzer; 60 PATCH-Versuche/Minute je Besitzer. Getrennte Budgets von Preisanfragen. 429 enthält Retry-After: 60. Private Zustände werden nicht gecacht.

GET/characters
Charaktere des API-Schlüsselbesitzers auflisten.
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters"
Antwortbeispiel
{
    "characters": [
        {
            "charUid": "{charUid}",
            "name": "Main",
            "gameMode": "PVP"
        }
    ]
}
GET/characters/{charUid}/tracked-items
Namen und Symbole mit requiredQuantity (offene Pflichtanforderungen), spentQuantity (bereits berücksichtigt), availableQuantity (Vorrat), remainingQuantity = max(0, requiredQuantity − availableQuantity) und sources lesen. Startausrüstung und abgegebene Schritte reduzieren Anforderungen. Optionale Ziele fehlen; firInventorySeparate:false bedeutet keinen separaten FiR-Vorrat. PATCH setzt availableQuantity; eigene Ziele lassen sich nicht hinzufügen oder löschen. Preise: /api/v1/item?bsgId={itemId}&mode={mode}, /api/v1/items/all?mode={mode}. Verwende den Modus des Charakters (pvp/pve/season); berechne den Preis pro Slot als price / slots.
langSprache der Namen und des Websitelinks. Eine von: en, ru, kr, it, es, de, jp, ch, tr, fr, pl, po, cz, sk, hu, ro, mx. Standard: en
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters/{charUid}/tracked-items"
Antwortbeispiel
{
    "charUid": "{charUid}",
    "gameMode": "PVP",
    "revision": "{revision}",
    "firInventorySeparate": false,
    "items": [
        {
            "itemId": "5c0530ee86f774697952d952",
            "name": "LEDX Skin Transilluminator",
            "shortName": "LEDX",
            "slots": 1,
            "icon": "https://cdn.tarkov-market.app/images/items/a7f7568c-61fb-437e-9f71-06e58aae26ba_sm.png",
            "requiredQuantity": 10,
            "spentQuantity": 0,
            "availableQuantity": 5,
            "remainingQuantity": 5,
            "sources": [
                {
                    "type": "quest",
                    "questId": "{BSG quest ID}",
                    "amount": 10,
                    "remainingRequiredQuantity": 10,
                    "fir": true,
                    "completed": false,
                    "canceled": false
                }
            ]
        }
    ]
}
PATCH/characters/{charUid}/tracked-items/{itemId}
Den absoluten JSON-Wert setzen und die revision aus GET in If-Match senden.
availableQuantityEinziges zulässiges JSON-Feld, erforderlich: eine ganze Zahl von 0 bis 1.000.000.000. Setzt den verfügbaren Bestand absolut, statt ihn um diesen Wert zu ändern; 0 leert den Bestand. Andere Felder sind schreibgeschützt. Fehlende, ungültige oder zusätzliche Felder: 400 invalid_quantity.
curl
curl "https://api.tarkov-market.app/api/v1/characters/{charUid}/tracked-items/{itemId}" \
  -H "x-api-key: your_api_key" \
  -H 'If-Match: "{revision}"' \
  -H "Content-Type: application/json" \
  -X PATCH --data '{"availableQuantity":4}'
Antwortbeispiel
{
    "ok": true,
    "changed": true,
    "revision": "{newRevision}",
    "notificationDelivered": true
}
GET/characters/{charUid}/quests
Passende Quests lesen. status wird berechnet: completed, failed, unreachable, available oder locked; das bedeutet keine Annahme im Spiel. PATCH completed:true oder false. Zurücksetzen erhält Schrittmarkierungen und verknüpfte Questabschlüsse.
langSprache der Namen und des Websitelinks. Eine von: en, ru, kr, it, es, de, jp, ch, tr, fr, pl, po, cz, sk, hu, ro, mx. Standard: en
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters/{charUid}/quests"
Antwortbeispiel
{
    "charUid": "{charUid}",
    "gameMode": "PVP",
    "revision": "{revision}",
    "quests": [
        {
            "questId": "{BSG quest ID}",
            "questIdAliases": [],
            "name": "Quest name",
            "trader": "Therapist",
            "completed": false,
            "status": "available"
        }
    ]
}
PATCH/characters/{charUid}/quests/{questId}
Den absoluten JSON-Wert setzen und die revision aus GET in If-Match senden.
completedEinziges zulässiges JSON-Feld, erforderlich: ein boolescher Wert. true schließt die Quest ab; false setzt den Abschluss zurück und behält Schritthäkchen sowie abgeschlossene verknüpfte Quests bei. status, Schritte und andere Felder sind hier nicht änderbar. Fehlende, ungültige oder zusätzliche Felder: 400 invalid_completed.
curl
curl "https://api.tarkov-market.app/api/v1/characters/{charUid}/quests/{questId}" \
  -H "x-api-key: your_api_key" \
  -H 'If-Match: "{revision}"' \
  -H "Content-Type: application/json" \
  -X PATCH --data '{"completed":true}'
Antwortbeispiel
{
    "ok": true,
    "changed": true,
    "revision": "{newRevision}",
    "notificationDelivered": true
}
GET/characters/{charUid}/hideout
Jede Versteckstufe lesen: upgradeKey, moduleId (BSG-ID oder null), completed, prebuilt und canComplete. PATCH completed:true oder false. Voraussetzungen zuerst abschließen, abhängige Bauten zuerst zurücksetzen. Editionsbauten lassen sich nicht zurücksetzen. canComplete prüft Modulabhängigkeiten, nicht Geld oder Fähigkeiten im Spiel.
langSprache der Namen und des Websitelinks. Eine von: en, ru, kr, it, es, de, jp, ch, tr, fr, pl, po, cz, sk, hu, ro, mx. Standard: en
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters/{charUid}/hideout"
Antwortbeispiel
{
    "charUid": "{charUid}",
    "gameMode": "PVP",
    "revision": "{revision}",
    "modules": [
        {
            "upgradeKey": "Workbench_2",
            "moduleId": "{BSG module ID}",
            "name": "Workbench",
            "level": 2,
            "completed": false,
            "prebuilt": false,
            "canComplete": true
        }
    ]
}
PATCH/characters/{charUid}/hideout/{upgradeKey}
Den absoluten JSON-Wert setzen und die revision aus GET in If-Match senden.
completedEinziges zulässiges JSON-Feld, erforderlich: ein boolescher Wert. true markiert diesen Ausbau als gebaut; false setzt ihn zurück. Andere Felder sind schreibgeschützt. Fehlende, ungültige oder zusätzliche Felder: 400 invalid_completed; Einschränkungen durch Abhängigkeiten oder vorgebaute Ausbauten: 409.
curl
curl "https://api.tarkov-market.app/api/v1/characters/{charUid}/hideout/{upgradeKey}" \
  -H "x-api-key: your_api_key" \
  -H 'If-Match: "{revision}"' \
  -H "Content-Type: application/json" \
  -X PATCH --data '{"completed":true}'
Antwortbeispiel
{
    "ok": true,
    "changed": true,
    "revision": "{newRevision}",
    "notificationDelivered": true
}

Fehler: 400 ungültige Eingabe; 401 fehlender, deaktivierter, widerrufener oder besitzerloser Schlüssel bzw. gesperrter Besitzer; 403 PRO nötig oder Saison deaktiviert; 404 unzugänglicher Charakter/unbekannter Eintrag; 409 Fortschrittskonflikt, mehrdeutige BSG-ID oder Bauvorgaben; 413 zu großer Body; 428 If-Match fehlt; 429 Limit; 503 Dienst nicht verfügbar. Body: {"error":"code"}.

notificationDelivered:false bedeutet: gespeichert, aber die Website-Benachrichtigung wurde nicht bestätigt. Fortschritt aktualisieren; die Speicherung ist nicht fehlgeschlagen.

Limits und Fehler

Regel
Details
300 Anfr./Min.
Je Schlüssel über alle Preisendpunkte. Fortschritt hat getrennte Anfrage- und Schreiblimits.
5 Anfr./Min.
Vollständige Gegenstandsliste und Download in jedem Modus. Preise werden ohnehin 5 Minuten gecacht.
401
Schlüssel fehlt, ist unbekannt oder deaktiviert.
429
Anfragelimit erreicht – der Antwort-Body nennt das betroffene Limit.

Bedingungen

Die API ist für die persönliche Nutzung vorgesehen.

Bei öffentlichen Projekten verlinke bitte tarkov-market.com als Datenquelle.

Wenn dein öffentliches Projekt den Großteil der Funktionen von Tarkov Market kopiert, kann dein Zugang ohne Vorwarnung und Entschädigung beendet werden.

Beim Weiterverkauf der API wird dein Zugang ohne Vorwarnung und Entschädigung beendet.