API Skins

API

API 文档

从你自己的代码获取 22 个交易平台上每件 CS2 饰品的价格并管理交易机器人。一个密钥,两者通用。

快速开始

每个请求都发送到 https://api.apiskins.com,并需要在 X-API-KEY 请求头中提供密钥。响应为 JSON;价格为 USD。

失败的请求会返回 HTTP 状态码和 JSON 错误信息。 限额和错误

整个 API 也提供 OpenAPI 文档,供代码生成器和 AI 智能体使用。

交易平台

用于 providers 参数以及响应中出现的平台名称。每个平台都有挂单;只有标记的平台才有求购单。

cs_floatCSFloat
buff_163Buff.163
youpinYouPin898
dmarket求购单DMarket
skinportSkinport
cs_moneycs.money
market_csgo求购单Market.CSGO
buff_marketBuff.Market
waxpeerWaxpeer
lis_skinsLis-skins
skin_baronSkinBaron
halo_skinsHaloSkins
white_marketWhite.Market
shadow_payShadowPay
skinsSKINS
skin_swapSkinSwap
cs_dealsCS.Deals
loot_farmLoot.farm
cs_tradeCS.TRADE
tradeitTradeit.gg
steam求购单Steam
sihSIH Market

挂单

我们跟踪的每个交易平台上每件物品的最低挂单价。对支持的客户端使用 gzip 压缩响应,因此所有平台的所有物品可在一次请求中返回。

我们跟踪武器饰品(普通和 StatTrak™)、刀具、手套、武器箱和胶囊、探员、音乐盒、布章、挂件、徽章和通行证。不跟踪纪念品、印花和涂鸦。

多件物品的挂单

GET/v1/offers

各交易平台上物品的最低挂单。用 market_hash_name 指定最多 100 件物品进行批量查询,或省略以在一个响应中获取所有挂售物品。没有任何平台挂售的物品不会出现在响应中。

参数

market_hash_namequery, 可选

string物品名称。重复以批量查询最多 100 件。省略时返回所有挂售物品

providersquery, 可选

string逗号分隔的交易平台(见交易平台)。省略时返回全部

请求

type ItemOffers = {
    market_hash_name: string;
    offers: { provider: string; price: number }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["market_hash_name", "AK-47 | Redline (Field-Tested)"],
    ["market_hash_name", "AWP | Asiimov (Field-Tested)"],
    ["providers", "cs_float,buff_163"],
]);

const response = await fetch(`https://api.apiskins.com/v1/offers?${params}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const offers: ItemOffers[] = await response.json();

响应 200

[
  {
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "offers": [
      {
        "provider": "buff_163",
        "price": 31.42
      },
      {
        "provider": "cs_float",
        "price": 33.1
      }
    ]
  }
]
  • 免费订阅只返回 Steam:不指定 providers 时,回答只包含 Steam;请求其他交易平台会返回 403。付费订阅可获取所有交易平台。
  • 未挂售某物品的平台不会出现在其挂单中。
  • 对支持的客户端使用 gzip 压缩响应(所有 HTTP 库都支持;curl 需添加 --compressed):所有平台的所有物品约 28 MB JSON,gzip 后不到 2 MB。

单件物品的挂单

GET/v1/offers/{market_hash_name}

单件物品在各平台的最低挂单。没有平台挂售时返回 404。

参数

market_hash_namepath

stringURL 编码的物品名称

providersquery, 可选

string逗号分隔的交易平台(见交易平台)。省略时返回全部

请求

type ItemOffers = {
    market_hash_name: string;
    offers: { provider: string; price: number }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;
const market_hash_name = "AK-47 | Redline (Field-Tested)";

const params = new URLSearchParams([
    ["providers", "cs_float,dmarket"],
]);

const response = await fetch(`https://api.apiskins.com/v1/offers/${encodeURIComponent(market_hash_name)}?${params}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const offers: ItemOffers = await response.json();

响应 200

{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "offers": [
    {
      "provider": "buff_163",
      "price": 31.42
    },
    {
      "provider": "cs_float",
      "price": 33.1
    }
  ]
}
  • 免费订阅只返回 Steam:不指定 providers 时,回答只包含 Steam;请求其他交易平台会返回 403。付费订阅可获取所有交易平台。

求购单

DMarket、Market.CSGO 和 Steam 上每件物品的最高求购单:你现在能卖出的价格。与挂单使用相同的密钥、相同的 30 天限额和相同的压缩响应。

多件物品的求购单

GET/v1/orders

各平台上物品的最高求购单:DMarket(每隔几秒刷新)、Market.CSGO(每 15 分钟)和 Steam(每小时)。用 market_hash_name 指定最多 100 件物品进行批量查询,或省略以在一个响应中获取所有有求购单的物品。没有求购单的物品不会出现。

参数

market_hash_namequery, 可选

string物品名称。重复以批量查询最多 100 件。省略时返回所有有求购单的物品

providersquery, 可选

string逗号分隔的交易平台:dmarket、market_csgo、steam。省略时返回全部

请求

type ItemOrders = {
    market_hash_name: string;
    orders: { provider: string; price: number }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["market_hash_name", "AK-47 | Redline (Field-Tested)"],
    ["market_hash_name", "AWP | Asiimov (Field-Tested)"],
    ["providers", "dmarket,market_csgo"],
]);

const response = await fetch(`https://api.apiskins.com/v1/orders?${params}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const orders: ItemOrders[] = await response.json();

响应 200

[
  {
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "orders": [
      {
        "provider": "dmarket",
        "price": 24.51
      },
      {
        "provider": "market_csgo",
        "price": 23.822
      }
    ]
  }
]
  • 免费订阅只返回 Steam:不指定 providers 时,回答只包含 Steam;请求其他交易平台会返回 403。付费订阅可获取所有交易平台。
  • 没有某物品求购单的平台不会出现在其求购单中。
  • 包括纪念品、印花和涂鸦。与挂单请求一样,每个得到响应的请求都计入30 天限额,响应也同样压缩。

单件物品的求购单

GET/v1/orders/{market_hash_name}

单件物品在各平台的最高求购单。没有平台有求购单时返回 404。

参数

market_hash_namepath

stringURL 编码的物品名称

providersquery, 可选

string逗号分隔的交易平台:dmarket、market_csgo、steam。省略时返回全部

请求

type ItemOrders = {
    market_hash_name: string;
    orders: { provider: string; price: number }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;
const market_hash_name = "AK-47 | Redline (Field-Tested)";

const response = await fetch(`https://api.apiskins.com/v1/orders/${encodeURIComponent(market_hash_name)}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const orders: ItemOrders = await response.json();

响应 200

{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "orders": [
    {
      "provider": "dmarket",
      "price": 24.51
    },
    {
      "provider": "market_csgo",
      "price": 23.822
    }
  ]
}
  • 免费订阅只返回 Steam:不指定 providers 时,回答只包含 Steam;请求其他交易平台会返回 403。付费订阅可获取所有交易平台。

销售历史

每件物品在 DMarket 和 Market.CSGO 上的销售摘要:售出数量、最近 7、15、30 和 90 天的中位价和平均价,以及典型 15 天的销量。与挂单相同的密钥、相同的 30 天限额和相同的 gzip 响应。

多件物品的销售摘要

GET/v1/sales/summary

物品在各平台上的销售摘要:DMarket(每隔几小时刷新)和 Market.CSGO(约每小时)。用 market_hash_name 指定最多 100 件物品进行批量查询,或省略以在一个响应中获取最近 90 天售出的所有物品。最近 90 天没有销售的物品不会出现。

参数

market_hash_namequery, 可选

string物品名称。重复以批量查询最多 100 件。省略时返回最近 90 天售出的所有物品

providersquery, 可选

string逗号分隔的交易平台:dmarket、market_csgo。省略时返回两者

请求

type SalesPeriod = { sales: number; median: number | null; avg: number | null };

type SalesSummary = {
    market_hash_name: string;
    sales: {
        provider: string;
        last_7d: SalesPeriod;
        last_15d: SalesPeriod;
        last_30d: SalesPeriod;
        last_90d: SalesPeriod;
        index_volume_units: number;
        index_volume_dollars: number;
        updated_at: string;
    }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["market_hash_name", "AK-47 | Redline (Field-Tested)"],
    ["market_hash_name", "AWP | Asiimov (Field-Tested)"],
    ["providers", "dmarket,market_csgo"],
]);

const response = await fetch(`https://api.apiskins.com/v1/sales/summary?${params}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const sales: SalesSummary[] = await response.json();

响应 200

[
  {
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "sales": [
      {
        "provider": "market_csgo",
        "last_7d": {
          "sales": 154,
          "median": 28.63,
          "avg": 28.76
        },
        "last_15d": {
          "sales": 310,
          "median": 28.7,
          "avg": 28.9
        },
        "last_30d": {
          "sales": 620,
          "median": 28.8,
          "avg": 29.12
        },
        "last_90d": {
          "sales": 1850,
          "median": 29.1,
          "avg": 29.4
        },
        "index_volume_units": 305.5,
        "index_volume_dollars": 8900.25,
        "updated_at": "2026-10-28T10:00:00.000Z"
      }
    ]
  }
]
  • 需要付费订阅:免费订阅的每个请求都返回 403。
  • 在每个时段中,sales 是售出的物品数量,median 和 avg 是它们以 USD 计的中位价和平均价。没有销售的时段 median 和 avg 为 null。
  • index_volume_units(数量成交指数)和 index_volume_dollars(美元成交指数)表示典型 15 天的销量:最近 90 天分成六个 15 天的时段,没有销售的时段计为 0。index_volume_units 是各时段售出数量的中位数,index_volume_dollars 是各时段 USD 总额的中位数,因此单个特别活跃或冷清的时段不会影响它们。
  • 摘要在每次遍历某平台的销售后计算;updated_at 表示计算时间。
  • Market.CSGO 最多向我们提供一件物品最近 6,000 笔销售,因此在我们记录满 90 天之前,销量最高的物品的 last_90d、index_volume_units 和 index_volume_dollars 可能偏低。
  • Doppler 和 Gamma Doppler 相位共用市场名称,所以一条记录涵盖所有相位。
  • 包括纪念品、印花和涂鸦。与挂单请求一样,每个得到响应的请求都计入30 天限额,响应也同样压缩。

单件物品的销售摘要

GET/v1/sales/summary/{market_hash_name}

单件物品在各平台上的销售摘要。最近 90 天没有平台售出时返回 404。

参数

market_hash_namepath

stringURL 编码的物品名称

providersquery, 可选

string逗号分隔的交易平台:dmarket、market_csgo。省略时返回两者

请求

type SalesPeriod = { sales: number; median: number | null; avg: number | null };

type SalesSummary = {
    market_hash_name: string;
    sales: {
        provider: string;
        last_7d: SalesPeriod;
        last_15d: SalesPeriod;
        last_30d: SalesPeriod;
        last_90d: SalesPeriod;
        index_volume_units: number;
        index_volume_dollars: number;
        updated_at: string;
    }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;
const market_hash_name = "AK-47 | Redline (Field-Tested)";

const response = await fetch(`https://api.apiskins.com/v1/sales/summary/${encodeURIComponent(market_hash_name)}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const sales: SalesSummary = await response.json();

响应 200

{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "sales": [
    {
      "provider": "market_csgo",
      "last_7d": {
        "sales": 154,
        "median": 28.63,
        "avg": 28.76
      },
      "last_15d": {
        "sales": 310,
        "median": 28.7,
        "avg": 28.9
      },
      "last_30d": {
        "sales": 620,
        "median": 28.8,
        "avg": 29.12
      },
      "last_90d": {
        "sales": 1850,
        "median": 29.1,
        "avg": 29.4
      },
      "index_volume_units": 305.5,
      "index_volume_dollars": 8900.25,
      "updated_at": "2026-10-28T10:00:00.000Z"
    }
  ]
}
  • 需要付费订阅:免费订阅的每个请求都返回 403。

物品

每件 CS2 物品的信息:类型、武器、磨损和 float 范围、品质、稀有度、收藏品和武器箱。用于在交易平台上筛选物品,market_hash_name 与挂单和求购单相同。包括所有饰品、印花、探员、挂件、武器箱等,也包括纪念品。与报价一样,每个得到应答的请求都计入 30 天限额。

多件物品

GET/v1/items

每件 CS2 物品的信息:类型、武器、磨损和 float 范围、品质、稀有度、收藏品和武器箱,每个 market_hash_name 一条记录,用于在交易平台上筛选物品。一次应答返回全部物品(gzip 后约 2 MB),也可用 limit 和 offset 分页,或用 market_hash_name 指定最多 100 件。筛选条件对两者都生效。

参数

market_hash_namequery, 可选

string物品名称。重复以批量查询最多 100 件。省略时返回所有物品

typequery, 可选

stringskin、sticker、agent、charm、patch、music_kit、graffiti、collectible、container。逗号分隔,匹配任一

weaponquery, 可选

string武器 id:awp、ak-47、karambit、sport-gloves....。逗号分隔,匹配任一

collectionquery, 可选

string收藏品 id:the-dust-2-collection....。逗号分隔,匹配任一

containerquery, 可选

string掉落该物品的武器箱和纪念包 id:dreams-nightmares-case....。逗号分隔,匹配任一

rarityquery, 可选

string稀有度 id:consumer、industrial、mil-spec、restricted、classified、covert、contraband,以及印花和探员的稀有度(high、remarkable、exotic、extraordinary、distinguished、exceptional、superior、master)。逗号分隔,匹配任一

qualityquery, 可选

stringNormal、StatTrak™、Souvenir、★ 或 ★ StatTrak™。逗号分隔,匹配任一

limitquery, 可选

number应答中最多的物品数,1 或以上。省略时返回全部物品,应答中的 limit 即为其包含的数量

offsetquery, 可选

number要跳过的物品数,用于下一页

请求

type ItemsPage = {
    total: number;
    limit: number;
    offset: number;
    items: Item[];
};

type Item = {
    market_hash_name: string;
    name: string;
    type: "skin" | "sticker" | "agent" | "charm" | "patch" | "music_kit" | "graffiti" | "collectible" | "container";
    category: string | null;
    weapon: { id: string; name: string } | null;
    pattern: string | null;
    wear: { id: "fn" | "mw" | "ft" | "ww" | "bs"; name: string } | null;
    min_float: number | null;
    max_float: number | null;
    quality: "Normal" | "StatTrak™" | "Souvenir" | "★" | "★ StatTrak™";
    stattrak: boolean;
    souvenir: boolean;
    rarity: { id: string; name: string; color: string } | null;
    label: string | null;
    team: "both" | "ct" | "t" | null;
    collections: { id: string; name: string }[];
    containers: { id: string; name: string }[];
    details: Record<string, string>;
    image: string | null;
    url: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["type", "skin"],
    ["weapon", "awp"],
    ["quality", "StatTrak™"],
    ["limit", "1"],
]);

const response = await fetch(`https://api.apiskins.com/v1/items?${params}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const page: ItemsPage = await response.json();

响应 200

{
  "total": 120,
  "limit": 1,
  "offset": 0,
  "items": [
    {
      "market_hash_name": "StatTrak™ AWP | Asiimov (Field-Tested)",
      "name": "AWP | Asiimov",
      "type": "skin",
      "category": "rifles",
      "weapon": {
        "id": "awp",
        "name": "AWP"
      },
      "pattern": "Asiimov",
      "wear": {
        "id": "ft",
        "name": "Field-Tested"
      },
      "min_float": 0.18,
      "max_float": 0.38,
      "quality": "StatTrak™",
      "stattrak": true,
      "souvenir": false,
      "rarity": {
        "id": "covert",
        "name": "Covert",
        "color": "#eb4b4b"
      },
      "label": null,
      "team": "both",
      "collections": [
        {
          "id": "the-phoenix-collection",
          "name": "The Phoenix Collection"
        }
      ],
      "containers": [
        {
          "id": "operation-phoenix-weapon-case",
          "name": "Operation Phoenix Weapon Case"
        }
      ],
      "details": {},
      "image": "https://community.akamai.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyLwiYbf_jdk7uW-V6V-Kf2cGFidxOp_pewnF3nhxEt0sGnSzN76dH3GOg9xC8FyEORftRe-x9PuYurq71bW3d8UnjK-0H0YSTpMGQ/512fx384f",
      "url": "https://apiskins.com/skins/awp/asiimov"
    }
  ]
}
  • 需要付费订阅:免费订阅的每个请求都返回 403。
  • 所有武器饰品、刀具和手套的 type 为 skin(由 category 区分:knives、gloves、rifles、pistols、smgs、heavy、equipment),武器箱、胶囊和纪念包的 type 为 container(category 为其种类:case、sticker_capsule、souvenir_package...)。
  • min_float 和 max_float 是物品可能的 float:饰品在该磨损内的范围。没有 float 的物品为 null。
  • details 包含其他已知信息:印花的 Tournament、Team、Player 和 Effect,探员的 Side,容器的 Released 日期。
  • Doppler 和 Gamma Doppler 相位共用市场名称,所以一条记录涵盖所有相位。
  • 与报价请求一样,每个得到应答的请求都计入 30 天限额,无论包含多少物品,应答同样经过 gzip 压缩。

单件物品

GET/v1/items/{market_hash_name}

单件物品的信息。没有该名称的物品时返回 404。

参数

market_hash_namepath

stringURL 编码的物品名称

请求

type Item = {
    market_hash_name: string;
    name: string;
    type: "skin" | "sticker" | "agent" | "charm" | "patch" | "music_kit" | "graffiti" | "collectible" | "container";
    category: string | null;
    weapon: { id: string; name: string } | null;
    pattern: string | null;
    wear: { id: "fn" | "mw" | "ft" | "ww" | "bs"; name: string } | null;
    min_float: number | null;
    max_float: number | null;
    quality: "Normal" | "StatTrak™" | "Souvenir" | "★" | "★ StatTrak™";
    stattrak: boolean;
    souvenir: boolean;
    rarity: { id: string; name: string; color: string } | null;
    label: string | null;
    team: "both" | "ct" | "t" | null;
    collections: { id: string; name: string }[];
    containers: { id: string; name: string }[];
    details: Record<string, string>;
    image: string | null;
    url: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;
const market_hash_name = "StatTrak™ AWP | Asiimov (Field-Tested)";

const response = await fetch(`https://api.apiskins.com/v1/items/${encodeURIComponent(market_hash_name)}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const item: Item = await response.json();

响应 200

{
  "market_hash_name": "StatTrak™ AWP | Asiimov (Field-Tested)",
  "name": "AWP | Asiimov",
  "type": "skin",
  "category": "rifles",
  "weapon": {
    "id": "awp",
    "name": "AWP"
  },
  "pattern": "Asiimov",
  "wear": {
    "id": "ft",
    "name": "Field-Tested"
  },
  "min_float": 0.18,
  "max_float": 0.38,
  "quality": "StatTrak™",
  "stattrak": true,
  "souvenir": false,
  "rarity": {
    "id": "covert",
    "name": "Covert",
    "color": "#eb4b4b"
  },
  "label": null,
  "team": "both",
  "collections": [
    {
      "id": "the-phoenix-collection",
      "name": "The Phoenix Collection"
    }
  ],
  "containers": [
    {
      "id": "operation-phoenix-weapon-case",
      "name": "Operation Phoenix Weapon Case"
    }
  ],
  "details": {},
  "image": "https://community.akamai.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyLwiYbf_jdk7uW-V6V-Kf2cGFidxOp_pewnF3nhxEt0sGnSzN76dH3GOg9xC8FyEORftRe-x9PuYurq71bW3d8UnjK-0H0YSTpMGQ/512fx384f",
  "url": "https://apiskins.com/skins/awp/asiimov"
}
  • 需要付费订阅:免费订阅的每个请求都返回 403。

DMarket 机器人

用同一密钥管理你的 DMarket 挂单和求购单。账户及其 DMarket API 密钥只能在机器人页面添加,绝不通过 API 添加。机器人路由需要付费订阅,只计入每分钟限额,绝不计入30 天限额。

  • 挂单:每账户不限量。求购单(DMarket “target”):每账户最多 100 个,为 DMarket 自身限制。
  • DMarket 无法修改求购单价格:机器人会用新价格的新求购单替换它。

账户和限额

GET/v1/robots/dmarket

机器人上的 DMarket 账户(在机器人页面用 DMarket API 密钥连接)以及你的订阅对它的限额。

请求

type Robot = {
    robot: string;
    name: string;
    marketplace: string;
    limits: { accounts: number; offers_per_account: number | null; orders_per_account: number | null };
    accounts: { id: string; name: string; paused: boolean; enabled: boolean; balance: number | null; note: string | null; error: string | null; checked_at: string | null }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/dmarket", {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const robot: Robot = await response.json();

响应 200

{
  "robot": "dmarket",
  "name": "Robot for DMarket",
  "marketplace": "DMarket",
  "limits": {
    "accounts": 5,
    "offers_per_account": null,
    "orders_per_account": 100
  },
  "accounts": [
    {
      "id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
      "name": "Main",
      "paused": false,
      "enabled": true,
      "balance": 123.45,
      "note": null,
      "error": null,
      "checked_at": "2026-10-15T08:40:00.000Z"
    }
  ]
}
  • 限额为 null 表示我们不设限。
  • paused:账户超出订阅的账户数;其挂单和求购单等待中。
  • enabled: false 表示已在机器人页面关闭:机器人不再调整它,它会以最后的价格留在交易平台上,并仍计入限额。

账户库存

GET/v1/robots/dmarket/accounts/{account_id}/inventory

账户 DMarket 库存中的物品,以及用于出售的 asset_id。DMarket 不允许上架的物品 sellable 为 false。

参数

account_idpath

string账户 id,来自 GET /v1/robots/dmarket

请求

type InventoryItem = {
    asset_id: string;
    market_hash_name: string;
    sellable: boolean;
    suggested_price: number | null;
};

const API_KEY = process.env.APISKINS_API_KEY!;
const account_id = "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11";

const response = await fetch(`https://api.apiskins.com/v1/robots/dmarket/accounts/${encodeURIComponent(account_id)}/inventory`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const inventory: InventoryItem[] = await response.json();

响应 200

[
  {
    "asset_id": "4c1d8e2f-0b6a-4a51-9f3e-2d7c8b1a6e05",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "sellable": true,
    "suggested_price": 33.1
  }
]

列出挂单

GET/v1/robots/dmarket/offers

你所有账户在 DMarket 上的挂单,最早的在前。

请求

type Offer = {
    id: string;
    account_id: string;
    asset_id: string;
    market_hash_name: string;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "sold" | "closed" | "gone";
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/dmarket/offers", {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const offers: Offer[] = await response.json();

响应 200

[
  {
    "id": "b3a90c55-7e1f-4c1b-8d2e-55a1c9e04f7a",
    "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
    "asset_id": "4c1d8e2f-0b6a-4a51-9f3e-2d7c8b1a6e05",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "min_price": 30,
    "max_price": 40,
    "enabled": true,
    "price": 31.99,
    "status": "active",
    "error": null,
    "updated_at": "2026-10-15T08:40:00.000Z",
    "created_at": "2026-10-14T12:00:00.000Z"
  }
]

上架或更新挂单

POST/v1/robots/dmarket/offers

上架物品,或覆盖按 asset_id 找到的现有挂单价格。机器人在 DMarket 上架物品并让它保持该名称的最低挂单,绝不低于 min_price。没有竞争时按 max_price 出售。新价格在几秒内或价格解锁后生效:机器人修改的价格保持 15 分钟。

参数

asset_idbody

string物品的 DMarket id,来自账户库存

min_pricebody

numberUSD,最多两位小数

max_pricebody

numberUSD,最多两位小数

account_idbody, 可选

string拥有该物品的账户。上架时必填

market_hash_namebody, 可选

string物品名称。上架时必填

请求

type Offer = {
    id: string;
    account_id: string;
    asset_id: string;
    market_hash_name: string;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "sold" | "closed" | "gone";
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/dmarket/offers", {
    method: "POST",
    headers: { "X-API-KEY": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({
        "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
        "asset_id": "4c1d8e2f-0b6a-4a51-9f3e-2d7c8b1a6e05",
        "market_hash_name": "AK-47 | Redline (Field-Tested)",
        "min_price": 30,
        "max_price": 40
    }),
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const offer: Offer = await response.json();

响应 200

{
  "id": "b3a90c55-7e1f-4c1b-8d2e-55a1c9e04f7a",
  "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
  "asset_id": "4c1d8e2f-0b6a-4a51-9f3e-2d7c8b1a6e05",
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "min_price": 30,
  "max_price": 40,
  "enabled": true,
  "price": 31.99,
  "status": "active",
  "error": null,
  "updated_at": "2026-10-15T08:40:00.000Z",
  "created_at": "2026-10-14T12:00:00.000Z"
}

移除挂单

DELETE/v1/robots/dmarket/offers

忘记该挂单:机器人不再调整它,物品会以最后的价格继续在 DMarket 上出售。

参数

asset_idquery

string物品的 DMarket id,来自账户库存

请求

type Removed = { removed: boolean };

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["asset_id", "4c1d8e2f-0b6a-4a51-9f3e-2d7c8b1a6e05"],
]);

const response = await fetch(`https://api.apiskins.com/v1/robots/dmarket/offers?${params}`, {
    method: "DELETE",
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const result: Removed = await response.json();

响应 200

{
  "removed": true
}
  • 机器人没有该挂单时 removed 为 false。

列出求购单

GET/v1/robots/dmarket/orders

你所有账户在 DMarket 上的求购单,最早的在前。

请求

type Order = {
    id: string;
    account_id: string;
    market_hash_name: string;
    amount: number;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "closed" | "gone";
    placed: boolean;
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/dmarket/orders", {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const orders: Order[] = await response.json();

响应 200

[
  {
    "id": "0d7e4b2c-91aa-4f63-b2e8-7c35e1d8a904",
    "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "amount": 2,
    "min_price": 25,
    "max_price": 30,
    "enabled": true,
    "price": 28.51,
    "status": "active",
    "placed": true,
    "error": null,
    "updated_at": "2026-10-15T08:40:00.000Z",
    "created_at": "2026-10-14T12:00:00.000Z"
  }
]

下达或更新求购单

POST/v1/robots/dmarket/orders

在账户上为物品下求购单,或覆盖现有求购单的价格。机器人下 DMarket 求购单(“target”)并让它保持最高,绝不高于 max_price。没有竞争时按 min_price 出价。DMarket 允许每个账户最多 100 个求购单。DMarket 无法修改求购单价格:每个新价格都是替换旧 target 的新 target。它每次购买 1 件,直到买满数量,且只有价格不超过账户余额时才会下求购单。

参数

market_hash_namebody

string物品名称

min_pricebody

numberUSD,最多两位小数

max_pricebody

numberUSD,最多两位小数

account_idbody, 可选

string用于买入的账户。只有一个账户时可省略

amountbody, 可选

number买入数量,1 到 100。下单时必填;只能在下单前更改

请求

type Order = {
    id: string;
    account_id: string;
    market_hash_name: string;
    amount: number;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "closed" | "gone";
    placed: boolean;
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/dmarket/orders", {
    method: "POST",
    headers: { "X-API-KEY": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({
        "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
        "market_hash_name": "AK-47 | Redline (Field-Tested)",
        "amount": 2,
        "min_price": 25,
        "max_price": 30
    }),
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const order: Order = await response.json();

响应 200

{
  "id": "0d7e4b2c-91aa-4f63-b2e8-7c35e1d8a904",
  "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "amount": 2,
  "min_price": 25,
  "max_price": 30,
  "enabled": true,
  "price": 28.51,
  "status": "active",
  "placed": true,
  "error": null,
  "updated_at": "2026-10-15T08:40:00.000Z",
  "created_at": "2026-10-14T12:00:00.000Z"
}
  • 已下求购单的数量只会随成交减少:要买更多,请移除后重新添加。

移除求购单

DELETE/v1/robots/dmarket/orders

忘记该求购单:机器人不再调整它,它会以最后的价格留在 DMarket 上。

参数

market_hash_namequery

string物品名称

account_idquery, 可选

string求购单所在账户。只有一个账户时可省略

请求

type Removed = { removed: boolean };

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["market_hash_name", "AK-47 | Redline (Field-Tested)"],
    ["account_id", "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11"],
]);

const response = await fetch(`https://api.apiskins.com/v1/robots/dmarket/orders?${params}`, {
    method: "DELETE",
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const result: Removed = await response.json();

响应 200

{
  "removed": true
}
  • 机器人没有该求购单时 removed 为 false。

监控

GET/v1/robots/dmarket/monitor

DMarket 上每件物品成为最佳求购单(buy_price,比最佳求购单高 1 美分)再成为最低挂单(sell_price,比最低挂单低 1 美分)后,扣除该物品 DMarket 手续费的利润。DMarket 的最佳求购单和挂单每隔几秒刷新,其他平台的价格按各自的更新频率刷新,从每 5 分钟到每小时不等。只应用你发送的筛选条件:没有时返回所有有求购单的物品,最赚钱的在前。DMarket 上没有挂单的物品也会显示,其 best_offer、sell_price、profit 和 margin_percent 为 null:利润、利润率和差价筛选会放行它。dollar_volume 和 units_volume 是物品在 DMarket 上 15 天的典型销量:过去 90 天分成六个 15 天段的中位数。

参数

qquery, 可选

string名称中必须全部包含的词

min_pricequery, 可选

number最低买入价,USD

max_pricequery, 可选

number最高买入价,USD

min_profitquery, 可选

number扣除手续费后的最低利润,USD

min_marginquery, 可选

number最低利润率,占买入价的百分比

min_gapquery, 可选

number最佳求购单与最低挂单之间的最小差价,USD

min_liquidityquery, 可选

number最低流动性,0 到 100

max_feequery, 可选

number最高手续费,百分比

min_units_volumequery, 可选

numberDMarket 上典型 15 天内的最少销售件数(units_volume)

min_dollar_volumequery, 可选

numberDMarket 上典型 15 天内的最少销售额 USD(dollar_volume)

hidequery, 可选

string逗号分隔:stickers、graffiti、souvenir、stattrak

comparequery, 可选

string其他平台及其最低挂单价必须高出买入价的百分比:buff_163:5,cs_float:3。未挂售该物品的平台会被跳过。价格在 compare 中返回

compare_ordersquery, 可选

string同样适用于其他平台的最高求购单:market_csgo:5(Market.CSGO 或 Steam)。求购单在 compare_orders 中返回

sortquery, 可选

stringprofit(省略时)、margin、liquidity、price 或 volume(dollar_volume)

limitquery, 可选

number响应中的物品数,1 到 100(省略时为 100)

offsetquery, 可选

number要跳过的物品数,用于下一页

请求

type Monitor = {
    total: number;
    limit: number;
    offset: number;
    items: {
        market_hash_name: string;
        buy_price: number;
        sell_price: number | null;
        best_order: number;
        best_offer: number | null;
        fee_percent: number;
        profit: number | null;
        margin_percent: number | null;
        liquidity: number | null;
        dollar_volume: number | null;
        units_volume: number | null;
        compare: Record<string, { price: number; percent_over_buy: number }>;
        compare_orders: Record<string, { price: number; percent_over_buy: number }>;
    }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["min_margin", "5"],
    ["min_liquidity", "50"],
    ["hide", "stickers,souvenir"],
    ["compare", "buff_163:5"],
    ["limit", "1"],
]);

const response = await fetch(`https://api.apiskins.com/v1/robots/dmarket/monitor?${params}`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const monitor: Monitor = await response.json();

响应 200

{
  "total": 412,
  "limit": 1,
  "offset": 0,
  "items": [
    {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "buy_price": 24.6,
      "sell_price": 27.49,
      "best_order": 24.59,
      "best_offer": 27.5,
      "fee_percent": 5,
      "profit": 1.52,
      "margin_percent": 6.16,
      "liquidity": 87,
      "dollar_volume": 1830.4,
      "units_volume": 74.5,
      "compare": {
        "buff_163": {
          "price": 26.1,
          "percent_over_buy": 6.1
        }
      },
      "compare_orders": {}
    }
  ]
}
  • 与所有机器人路由一样需要付费订阅。不同的是,每个得到应答的请求也会像报价请求一样计入 30 天限额,并带有相同的 X-Usage-Limit 和 X-Usage-Remaining 头。

挂单和求购单状态

pending
尚未上架或下单
active
在交易平台上,在你的限额内保持第一。机器人修改的价格保持 15 分钟;之后每秒监控市场
paused
超出订阅的挂单、求购单或账户数:等待你升级或移除其他项
sold
挂单:已售出
closed
挂单:已下架或物品已离开库存。求购单:已全部买入或已移除。如有原因,error 会说明

market.csgo.com 机器人

用同一密钥管理你的 Market.CSGO 挂单和求购单。账户及其 Market.CSGO API 密钥只能在机器人页面添加,绝不通过 API 添加。机器人路由需要付费订阅,只计入每分钟限额,绝不计入30 天限额。

  • 挂单:每账户不限量。求购单:每账户最多 100 个,每件物品一个,可直接修改。
  • Market.CSGO 上的账户货币必须是 USD。只有你在 Market.CSGO 应用或浏览器扩展中在线时,挂单才会显示。

账户和限额

GET/v1/robots/market-csgo

机器人上的 Market.CSGO 账户(在机器人页面用 Market.CSGO API 密钥连接)以及你的订阅对它的限额。账户的 note 说明妨碍出售的原因,例如离线。

请求

type Robot = {
    robot: string;
    name: string;
    marketplace: string;
    limits: { accounts: number; offers_per_account: number | null; orders_per_account: number | null };
    accounts: { id: string; name: string; paused: boolean; enabled: boolean; balance: number | null; note: string | null; error: string | null; checked_at: string | null }[];
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/market-csgo", {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const robot: Robot = await response.json();

响应 200

{
  "robot": "market-csgo",
  "name": "Robot for market.csgo.com",
  "marketplace": "Market.CSGO",
  "limits": {
    "accounts": 5,
    "offers_per_account": null,
    "orders_per_account": 100
  },
  "accounts": [
    {
      "id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
      "name": "Main",
      "paused": false,
      "enabled": true,
      "balance": 123.45,
      "note": null,
      "error": null,
      "checked_at": "2026-10-15T08:40:00.000Z"
    }
  ]
}
  • 限额为 null 表示我们不设限。
  • paused:账户超出订阅的账户数;其挂单和求购单等待中。
  • enabled: false 表示已在机器人页面关闭:机器人不再调整它,它会以最后的价格留在交易平台上,并仍计入限额。

账户库存

GET/v1/robots/market-csgo/accounts/{account_id}/inventory

Market.CSGO 可从账户出售的 Steam 物品,以及用于出售的 asset_id。

参数

account_idpath

string账户 id,来自 GET /v1/robots/market-csgo

请求

type InventoryItem = {
    asset_id: string;
    market_hash_name: string;
    sellable: boolean;
    suggested_price: number | null;
};

const API_KEY = process.env.APISKINS_API_KEY!;
const account_id = "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11";

const response = await fetch(`https://api.apiskins.com/v1/robots/market-csgo/accounts/${encodeURIComponent(account_id)}/inventory`, {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const inventory: InventoryItem[] = await response.json();

响应 200

[
  {
    "asset_id": "38215462179",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "sellable": true,
    "suggested_price": 33.1
  }
]

列出挂单

GET/v1/robots/market-csgo/offers

你所有账户在 Market.CSGO 上的挂单,最早的在前。

请求

type Offer = {
    id: string;
    account_id: string;
    asset_id: string;
    market_hash_name: string;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "sold" | "closed" | "gone";
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/market-csgo/offers", {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const offers: Offer[] = await response.json();

响应 200

[
  {
    "id": "b3a90c55-7e1f-4c1b-8d2e-55a1c9e04f7a",
    "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
    "asset_id": "38215462179",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "min_price": 30,
    "max_price": 40,
    "enabled": true,
    "price": 31.99,
    "status": "active",
    "error": null,
    "updated_at": "2026-10-15T08:40:00.000Z",
    "created_at": "2026-10-14T12:00:00.000Z"
  }
]

上架或更新挂单

POST/v1/robots/market-csgo/offers

上架物品,或覆盖按 asset_id 找到的现有挂单价格。机器人在 Market.CSGO 上架物品并让它保持该名称的最低挂单,绝不低于 min_price。没有竞争时按 max_price 出售。只有账户在 Market.CSGO 应用或浏览器扩展中在线时挂单才会显示。新价格在几秒内或价格解锁后生效:机器人修改的价格保持 15 分钟。

参数

asset_idbody

string物品的 Steam asset id,来自账户库存

min_pricebody

numberUSD,最多两位小数

max_pricebody

numberUSD,最多两位小数

account_idbody, 可选

string拥有该物品的账户。上架时必填

market_hash_namebody, 可选

string物品名称。上架时必填

请求

type Offer = {
    id: string;
    account_id: string;
    asset_id: string;
    market_hash_name: string;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "sold" | "closed" | "gone";
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/market-csgo/offers", {
    method: "POST",
    headers: { "X-API-KEY": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({
        "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
        "asset_id": "38215462179",
        "market_hash_name": "AK-47 | Redline (Field-Tested)",
        "min_price": 30,
        "max_price": 40
    }),
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const offer: Offer = await response.json();

响应 200

{
  "id": "b3a90c55-7e1f-4c1b-8d2e-55a1c9e04f7a",
  "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
  "asset_id": "38215462179",
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "min_price": 30,
  "max_price": 40,
  "enabled": true,
  "price": 31.99,
  "status": "active",
  "error": null,
  "updated_at": "2026-10-15T08:40:00.000Z",
  "created_at": "2026-10-14T12:00:00.000Z"
}

移除挂单

DELETE/v1/robots/market-csgo/offers

忘记该挂单:机器人不再调整它,物品会以最后的价格继续在 Market.CSGO 上出售。

参数

asset_idquery

string物品的 Steam asset id,来自账户库存

请求

type Removed = { removed: boolean };

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["asset_id", "38215462179"],
]);

const response = await fetch(`https://api.apiskins.com/v1/robots/market-csgo/offers?${params}`, {
    method: "DELETE",
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const result: Removed = await response.json();

响应 200

{
  "removed": true
}
  • 机器人没有该挂单时 removed 为 false。

列出求购单

GET/v1/robots/market-csgo/orders

你所有账户在 Market.CSGO 上的求购单,最早的在前。

请求

type Order = {
    id: string;
    account_id: string;
    market_hash_name: string;
    amount: number;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "closed" | "gone";
    placed: boolean;
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/market-csgo/orders", {
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const orders: Order[] = await response.json();

响应 200

[
  {
    "id": "0d7e4b2c-91aa-4f63-b2e8-7c35e1d8a904",
    "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "amount": 2,
    "min_price": 25,
    "max_price": 30,
    "enabled": true,
    "price": 28.51,
    "status": "active",
    "placed": true,
    "error": null,
    "updated_at": "2026-10-15T08:40:00.000Z",
    "created_at": "2026-10-14T12:00:00.000Z"
  }
]

下达或更新求购单

POST/v1/robots/market-csgo/orders

在账户上为物品下求购单,或覆盖现有求购单的价格。机器人下 Market.CSGO 求购单并让它保持最高,绝不高于 max_price。没有竞争时按 min_price 出价。Market.CSGO 允许每件物品一个求购单、每账户最多 100 个,并可直接修改价格。

参数

market_hash_namebody

string物品名称

min_pricebody

numberUSD,最多两位小数

max_pricebody

numberUSD,最多两位小数

account_idbody, 可选

string用于买入的账户。只有一个账户时可省略

amountbody, 可选

number买入数量,1 到 100。下单时必填;只能在下单前更改

请求

type Order = {
    id: string;
    account_id: string;
    market_hash_name: string;
    amount: number;
    min_price: number;
    max_price: number;
    enabled: boolean;
    price: number | null;
    status: "pending" | "active" | "paused" | "closed" | "gone";
    placed: boolean;
    error: string | null;
    updated_at: string | null;
    created_at: string;
};

const API_KEY = process.env.APISKINS_API_KEY!;

const response = await fetch("https://api.apiskins.com/v1/robots/market-csgo/orders", {
    method: "POST",
    headers: { "X-API-KEY": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({
        "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
        "market_hash_name": "AK-47 | Redline (Field-Tested)",
        "amount": 2,
        "min_price": 25,
        "max_price": 30
    }),
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const order: Order = await response.json();

响应 200

{
  "id": "0d7e4b2c-91aa-4f63-b2e8-7c35e1d8a904",
  "account_id": "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11",
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "amount": 2,
  "min_price": 25,
  "max_price": 30,
  "enabled": true,
  "price": 28.51,
  "status": "active",
  "placed": true,
  "error": null,
  "updated_at": "2026-10-15T08:40:00.000Z",
  "created_at": "2026-10-14T12:00:00.000Z"
}
  • 已下求购单的数量只会随成交减少:要买更多,请移除后重新添加。

移除求购单

DELETE/v1/robots/market-csgo/orders

忘记该求购单:机器人不再调整它,它会以最后的价格留在 Market.CSGO 上。

参数

market_hash_namequery

string物品名称

account_idquery, 可选

string求购单所在账户。只有一个账户时可省略

请求

type Removed = { removed: boolean };

const API_KEY = process.env.APISKINS_API_KEY!;

const params = new URLSearchParams([
    ["market_hash_name", "AK-47 | Redline (Field-Tested)"],
    ["account_id", "6f1c2e0a-41d2-4a8e-9a8c-1f5b2d7e9c11"],
]);

const response = await fetch(`https://api.apiskins.com/v1/robots/market-csgo/orders?${params}`, {
    method: "DELETE",
    headers: { "X-API-KEY": API_KEY },
});

if (!response.ok) {
    throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}

const result: Removed = await response.json();

响应 200

{
  "removed": true
}
  • 机器人没有该求购单时 removed 为 false。

挂单和求购单状态

pending
尚未上架或下单
active
在交易平台上,在你的限额内保持第一。机器人修改的价格保持 15 分钟;之后每秒监控市场
paused
超出订阅的挂单、求购单或账户数:等待你升级或移除其他项
sold
挂单:已售出
closed
挂单:已下架或物品已离开库存。求购单:已全部买入或已移除。如有原因,error 会说明

限额和错误

两种限额,均按订阅计算。每个请求都计入每分钟限额;超出的请求会收到 429 和以秒为单位的 Retry-After 头。每个得到应答的报价、求购订单、销售、物品或监控请求也计入 30 天限额,无论包含多少物品;计数从订阅开始起每 30 天重新开始,X-Usage-Limit 和 X-Usage-Remaining 头会告诉你当前用量。

订阅请求 / 分钟挂单和求购单请求 / 30 天
免费60100
Trader1205,000
Pro30025,000
Business300100,000
400
请求有误:未知的平台或物品类型、请求体错误、超过 100 件物品、限额超出范围
401
密钥缺失或错误
403
需要付费订阅:Steam 以外的所有交易平台、成交摘要和物品路由,以及机器人和监控路由
404
没有此物品、机器人或账户
409
当前无法操作:超出订阅的挂单、求购单或账户数,或正在修改已下求购单的数量
429
已达到每分钟限额(请等待 Retry-After 秒)或 30 天限额
502
交易平台未响应机器人;请重试