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.
価格追跡、インタラクティブマップ、進行管理ツール

Tarkov Market API

Escape from Tarkovのフリーマーケット価格、トレーダー価格、アイテムデータ。 ベースURL: https://api.tarkov-market.app/api/v1

依存ライブラリ不要の公式クライアント:Node.js、Python、Go — github.com/ggdiam/tarkov-market-api

APIキー

APIの利用にはサイトの PROステータス が必要です。以下の例ではプレースホルダー your_api_keyを使用しています。

認証

APIキーを使うと、アプリがキャラクターの進行状況を読み取り、変更できます。信頼できるアプリにのみ共有してください。PROが必要です。新しいAPIキーを生成すると古いキーは無効になります。進行状況のリクエストはヘッダーのx-api-keyのみ受け付けます。

キーをヘッダーで送信してください:

x-api-key: your_api_key

ヘッダーを使いにくい場合(ブラウザー、配信ボット、スプレッドシート)は、クエリパラメーターでも指定できます:

?x-api-key=your_api_key

キーが未指定・不明・無効の場合 → 401 { "error": "Access denied" }

ゲームモード

すべてのアイテム用エンドポイントは3つのゲームモードに対応します。モードはパスの接頭辞、または mode パラメーターで指定でき、どちらも同じ結果になります:

モード
パス接頭辞
パラメーター
価格の取得元
PVP
/api/v1/…
既定
itemsコレクション
PVE
/api/v1/pve/…
mode=pve
PVEスキャン
Season
/api/v1/season/…
mode=season
シーズンスキャン

シーズンキャラクター

シーズン経済は独立してスキャンしており、まだデータの蓄積中です。シーズンのフリマでスキャナーが観測したアイテムにのみ価格が付き、avg24hPrice・diff24hは価格履歴がたまるにつれて埋まります。フリマに依存しないbasePriceとトレーダー価格は、シーズン用のゲームデータダンプが得られるまでPVPの値を使用します。

シーズン価格がまだない場合の例(同じアイテム・同じリクエスト、シーズンモード):

{
    "uid": "a7f7568c-61fb-437e-9f71-06e58aae26ba",
    "name": "LEDX Skin Transilluminator",
    "price": 0,               // シーズンのフリマ価格はまだありません
    "avg24hPrice": 0,
    "diff24h": 0,
    "updated": "",            // シーズンのフリマで未観測
    "haveMarketData": false,  // このアイテムのpriceを使用しないでください
    "basePrice": 970000,      // フリマデータではありません。PVPと同じ値です
    "traderName": "Therapist",
    "traderPrice": 494700
}

エンドポイント

GET/item?q=ledx
名前、uid、bsgIdでアイテムを検索します。
q対応言語のアイテム名または略称。最大5件を返し、完全一致を先に表示します
uidTarkov Marketのアイテムuid。必ず1件のアイテムを返します
bsgIdゲームファイルのアイテムID。必ず1件のアイテムを返します
lang名前とサイトリンクの言語。指定値:en, ru, ch, cz, de, es, fr, hu, it, jp, kr, mx, pl, po, ro, sk, tr。既定は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"
レスポンス例
[
    {
        "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
同じ検索をJSONボディで行います。ラテン文字以外の検索語をURLエンコードせずに送信できます。
q / uid / bsgIdGETと同じパラメーターをJSONボディで指定します
langGETと同じ
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"}'
レスポンス例
[
    {
        "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リクエスト/分
全アイテムを1つの配列で返します。データは5分間キャッシュされるため、それ以上頻繁に取得しても変わりません。
tags指定タグのアイテムのみ取得します。カンマ区切り:tags=Ammo,Magazines
sortレスポンスのフィールドで並び替えます。例:sort=price
sort_directionasc(既定)またはdesc
lang名前とサイトリンクの言語
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"
レスポンス例
[
    {
        "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リクエスト/分
同じ全アイテム一覧をダウンロード可能なJSONファイルで返します。
lang名前とサイトリンクの言語
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"

レスポンスのフィールド

フィールド
意味
uid
Tarkov MarketのアイテムID。安定しているため、連携先のキーとして使用できます
bsgId
ゲームファイルのアイテムID
name / shortName
指定言語のアイテム名
tags
サイトのフィルターと同じアイテムカテゴリー
price
最後に確認したフリマ価格(₽)。0はこのモードの価格がないことを示します
avg24hPrice / avg7daysPrice
過去24時間・7日間の平均フリマ価格(₽)
diff24h / diff7days
最新価格の各平均価格に対する変動率(%)
basePrice
アイテムの基本価格(ハンドブック価格、₽)。トレーダー買取額の計算基準です
traderName
このアイテムを最も高く買い取るトレーダー
traderPrice / traderPriceCur
そのトレーダーの通貨(₽・$・€)での買取額
traderPriceRub
同じトレーダー価格をゲーム内レートで₽に換算した値
bannedOnFlea
フリマで売却できないアイテム
haveMarketData
フリマ取引が可能で、価格が最新であることを示します。falseなら価格を信用しないでください
isFunctional
ゲームから削除された、または入手できないアイテムはfalse
updated
スキャナーがフリマ価格を最後に確認した日時。空欄なら未観測です
slots
インベントリ内のアイテムサイズ(マス数)
img / imgBig
サイトのCDNにあるアイテムアイコンと大きな画像
icon
imgの旧エイリアス。同じURLです
link / wikiLink
tarkov-market.comとWikiのアイテムページ

キャラクターの進行状況

進行状況APIのベースURL: https://api.tarkov-market.app/api/v1

/charactersからcharUidを取得します。PVP、PVE、SEASONはキャラクターで決まり、上の選択は価格に適用されます。itemIdとquestIdはエイリアスや目標の参照も含めBSG IDです。upgradeKeyはWorkbench_2などのハイドアウトレベルです。

GETはrevisionとETagを返します。例のプレースホルダーをキャラクター、BSG ID、revisionで置き換え、毎回PATCHにIf-Match: "{revision}"を送ります。絶対値を設定します。409の後は最新の進行状況を読み直して変更を調整してください。適用済みの値の再送は追加保存せず成功します。

進行状況: キーと所有者ごとに毎分300リクエスト、所有者ごとに毎分60回のPATCH試行です。価格とは別枠です。429にはRetry-After: 60が含まれます。個人の状態はキャッシュしません。

GET/characters
APIキー所有者のキャラクター一覧を取得します。
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters"
レスポンス例
{
    "characters": [
        {
            "charUid": "{charUid}",
            "name": "Main",
            "gameMode": "PVP"
        }
    ]
}
GET/characters/{charUid}/tracked-items
名前、アイコンとrequiredQuantity(残りの必須要求)、spentQuantity(計上済み)、availableQuantity(在庫)、remainingQuantity = max(0, requiredQuantity − availableQuantity)、sourcesを取得します。開始時の支給品と提出済みの段階で要求を減らします。任意目標は除外され、firInventorySeparate:falseは別のFiR在庫がないことを示します。PATCHはavailableQuantityを設定し、独自目標の追加や削除はできません。 価格: /api/v1/item?bsgId={itemId}&mode={mode}, /api/v1/items/all?mode={mode}. キャラクターのモード(pvp/pve/season)を使用し、スロット当たりの価格はprice / slotsで計算します。
lang名前とサイトリンクの言語。指定値:en, ru, kr, it, es, de, jp, ch, tr, fr, pl, po, cz, sk, hu, ro, mx。既定はen
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters/{charUid}/tracked-items"
レスポンス例
{
    "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}
JSONの絶対値を設定し、GETのrevisionをIf-Matchで送ります。
availableQuantity必須の唯一のJSONフィールドです。0から1,000,000,000までの整数を指定します。増減量ではなく使用可能な在庫数を直接設定し、0で在庫をゼロにします。他のアイテムフィールドは読み取り専用です。省略、不正な値、追加フィールドは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}'
レスポンス例
{
    "ok": true,
    "changed": true,
    "revision": "{newRevision}",
    "notificationDelivered": true
}
GET/characters/{charUid}/quests
キャラクターに対応するタスクを取得します。statusはcompleted、failed、unreachable、available、lockedから計算され、ゲーム内での受注を示しません。PATCHはcompleted:trueまたはfalseです。リセットしても段階のチェックと関連タスクの完了は維持されます。
lang名前とサイトリンクの言語。指定値:en, ru, kr, it, es, de, jp, ch, tr, fr, pl, po, cz, sk, hu, ro, mx。既定はen
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters/{charUid}/quests"
レスポンス例
{
    "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}
JSONの絶対値を設定し、GETのrevisionをIf-Matchで送ります。
completed必須の唯一のJSONフィールドです。真偽値を指定します。trueでクエストを完了し、falseでステップのチェックや関連クエストの完了を保持したまま完了状態をリセットします。status、ステップ、その他のフィールドは変更できません。省略、不正な値、追加フィールドは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}'
レスポンス例
{
    "ok": true,
    "changed": true,
    "revision": "{newRevision}",
    "notificationDelivered": true
}
GET/characters/{charUid}/hideout
ハイドアウトの各レベル: upgradeKey、moduleId(BSG IDまたはnull)、completed、prebuilt、canCompleteを取得します。PATCHはcompleted:trueまたはfalseです。前提施設から完了し、リセットは依存施設から行います。エディションの初期施設はリセットできません。canCompleteは施設の依存関係だけを確認し、ゲーム内のお金やスキルは確認しません。
lang名前とサイトリンクの言語。指定値:en, ru, kr, it, es, de, jp, ch, tr, fr, pl, po, cz, sk, hu, ro, mx。既定はen
curl
curl -H "x-api-key: your_api_key" "https://api.tarkov-market.app/api/v1/characters/{charUid}/hideout"
レスポンス例
{
    "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}
JSONの絶対値を設定し、GETのrevisionをIf-Matchで送ります。
completed必須の唯一のJSONフィールドです。真偽値を指定します。trueでこのアップグレードを建設済みとして記録し、falseでリセットします。他のフィールドは読み取り専用です。省略、不正な値、追加フィールドは400 invalid_completed、前提条件や初期設備の制限は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}'
レスポンス例
{
    "ok": true,
    "changed": true,
    "revision": "{newRevision}",
    "notificationDelivered": true
}

エラー: 400 不正な入力、401 未指定・無効・失効・所有者のないキーや禁止された所有者、403 PROが必要またはシーズン無効、404 アクセス不可のキャラクターや不明な対象、409 進行の競合・曖昧なBSG ID・施設の制約、413 本文が大きすぎる、428 If-Matchなし、429 制限、503 サービス利用不可。本文: {"error":"code"}。

notificationDelivered:falseは保存が成功してもサイト通知が確認できなかったことを示します。進行状況を更新してください。保存失敗ではありません。

制限・エラー

ルール
詳細
300リクエスト/分
キーごとの全価格エンドポイントの制限です。進行状況には別のリクエスト数と書き込み数の制限があります。
5リクエスト/分
各モードの全アイテム一覧とダウンロードに適用します。価格はいずれも5分間キャッシュされます。
401
キーが未指定、不明、または無効です。
429
リクエスト上限に達しました。どの上限かはレスポンスボディに記載されています。

利用条件

APIは個人利用を目的としています。

公開プロジェクトで利用する場合は、データ提供元としてtarkov-market.comへのリンクを掲載してください。

公開プロジェクトがTarkov Marketの大部分の機能を複製する場合、予告や補償なくアクセスを停止することがあります。

APIを再販売した場合、予告や補償なくアクセスを停止します。