API Skins

API

API belgeleri

22 pazar yerindeki her CS2 skininin fiyatları ve alım satım robotlarınız, kendi kodunuzdan. İkisi için tek anahtar.

Başlarken

Her istek https://api.apiskins.com adresine gider ve X-API-KEY başlığında anahtarınızı gerektirir. Yanıtlar JSON; fiyatlar USD'dir.

Başarısız bir istek HTTP durumu ve JSON hata mesajıyla yanıt verir. Limitler ve hatalar

API'nin tamamı kod üreticileri ve yapay zekâ ajanları için bir OpenAPI belgesi olarak da sunulur.

Pazar yerleri

providers içine yazılacak ve yanıtlarda görülecek sağlayıcı adları. Her pazar yerinde teklif vardır; yalnızca işaretlilerde alım emri de vardır.

cs_floatCSFloat
buff_163Buff.163
youpinYouPin898
dmarketAlım emirleriDMarket
skinportSkinport
cs_moneycs.money
market_csgoAlım emirleriMarket.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
steamAlım emirleriSteam
sihSIH Market

Teklifler

Takip ettiğimiz her pazar yerinde her ürünün en ucuz teklifi (en düşük fiyat). Yanıtlar, kabul eden istemciler için gzip ile sıkıştırılır; böylece her pazar yerindeki her ürün tek istekte gelir.

Silah skinlerini (normal ve StatTrak™), bıçakları, eldivenleri, kasa ve kapsülleri, ajanları, müzik kitlerini, yamaları, süsleri, rozetleri ve pasoları takip ederiz. Hatıra ürünler, çıkartmalar ve grafitiler takip edilmez.

Çok ürünün teklifleri

GET/v1/offers

Her pazar yerinde ürünlerin en ucuz teklifi (en düşük fiyat). Paket için market_hash_name ile 100 ürüne kadar belirtin veya listelenen tüm ürünleri tek yanıtta almak için çıkarın. Hiçbir pazar yerinde olmayan ürün yanıtta yer almaz.

Parametreler

market_hash_namequery, isteğe bağlı

stringÜrün adı. 100'e kadar paket için tekrarlayın. Çıkarılırsa listelenen tüm ürünler

providersquery, isteğe bağlı

stringVirgülle ayrılmış pazar yerleri (bkz. Pazar yerleri). Çıkarılırsa tümü

İstek

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();

Yanıt 200

[
  {
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "offers": [
      {
        "provider": "buff_163",
        "price": 31.42
      },
      {
        "provider": "cs_float",
        "price": 33.1
      }
    ]
  }
]
  • Ücretsiz abonelikte yalnızca Steam yanıtlanır: providers verilmezse yanıt yalnızca Steam'i içerir, başka bir pazar yeri istemek 403 döndürür. Ücretli abonelikler tüm pazar yerlerini alır.
  • Ürünü listelemeyen pazar yeri o ürünün tekliflerinde yer almaz.
  • Yanıtlar, kabul eden istemciler için gzip ile sıkıştırılır (her HTTP kitaplığı kabul eder; curl'de --compressed ekleyin): her pazar yerindeki her ürün yaklaşık 28 MB JSON, gzip ile 2 MB'ın altındadır.

Tek ürünün teklifleri

GET/v1/offers/{market_hash_name}

Her pazar yerinde tek ürünün en ucuz teklifi. Hiçbirinde yoksa 404.

Parametreler

market_hash_namepath

stringURL kodlu ürün adı

providersquery, isteğe bağlı

stringVirgülle ayrılmış pazar yerleri (bkz. Pazar yerleri). Çıkarılırsa tümü

İstek

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();

Yanıt 200

{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "offers": [
    {
      "provider": "buff_163",
      "price": 31.42
    },
    {
      "provider": "cs_float",
      "price": 33.1
    }
  ]
}
  • Ücretsiz abonelikte yalnızca Steam yanıtlanır: providers verilmezse yanıt yalnızca Steam'i içerir, başka bir pazar yeri istemek 403 döndürür. Ücretli abonelikler tüm pazar yerlerini alır.

Alım emirleri

DMarket, Market.CSGO ve Steam'de her ürünün en yüksek alım emri: bir ürünü şu anda kaça satabileceğiniz. Tekliflerle aynı anahtar, aynı 30 günlük limit ve aynı sıkıştırılmış yanıtlar.

Çok ürünün alım emirleri

GET/v1/orders

Olan her pazar yerinde ürünlerin en yüksek alım emri: DMarket (birkaç saniyede bir yenilenir), Market.CSGO (15 dakikada bir) ve Steam (saatte bir). Paket için market_hash_name ile 100 ürüne kadar belirtin veya alım emri olan tüm ürünleri tek yanıtta almak için çıkarın. Hiçbir yerde emri olmayan ürün yer almaz.

Parametreler

market_hash_namequery, isteğe bağlı

stringÜrün adı. 100'e kadar paket için tekrarlayın. Çıkarılırsa alım emri olan tüm ürünler

providersquery, isteğe bağlı

stringVirgülle ayrılmış pazar yerleri: dmarket, market_csgo, steam. Çıkarılırsa hepsi

İstek

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();

Yanıt 200

[
  {
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "orders": [
      {
        "provider": "dmarket",
        "price": 24.51
      },
      {
        "provider": "market_csgo",
        "price": 23.822
      }
    ]
  }
]
  • Ücretsiz abonelikte yalnızca Steam yanıtlanır: providers verilmezse yanıt yalnızca Steam'i içerir, başka bir pazar yeri istemek 403 döndürür. Ücretli abonelikler tüm pazar yerlerini alır.
  • Ürün için emri olmayan pazar yeri o ürünün emirlerinde yer almaz.
  • Hatıra ürünler, çıkartmalar ve grafitiler dahildir. Teklif isteklerinde olduğu gibi yanıtlanan her istek 30 günlük limite sayılır ve yanıtlar aynı şekilde sıkıştırılır.

Tek ürünün alım emirleri

GET/v1/orders/{market_hash_name}

Her pazar yerinde tek ürünün en yüksek alım emri. Hiçbirinde yoksa 404.

Parametreler

market_hash_namepath

stringURL kodlu ürün adı

providersquery, isteğe bağlı

stringVirgülle ayrılmış pazar yerleri: dmarket, market_csgo, steam. Çıkarılırsa hepsi

İstek

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();

Yanıt 200

{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "orders": [
    {
      "provider": "dmarket",
      "price": 24.51
    },
    {
      "provider": "market_csgo",
      "price": 23.822
    }
  ]
}
  • Ücretsiz abonelikte yalnızca Steam yanıtlanır: providers verilmezse yanıt yalnızca Steam'i içerir, başka bir pazar yeri istemek 403 döndürür. Ücretli abonelikler tüm pazar yerlerini alır.

Satış geçmişi

Her ürünün DMarket ve Market.CSGO'daki satışlarının özeti: kaç adet satıldığı, son 7, 15, 30 ve 90 gündeki medyan ve ortalama fiyat ve tipik bir 15 günde ne kadar satıldığı. Tekliflerle aynı anahtar, aynı 30 günlük limit ve aynı gzip yanıtlar.

Birden çok ürünün satış özeti

GET/v1/sales/summary

Ürünlerin her pazar yerindeki satışlarının özeti: DMarket (birkaç saatte bir yenilenir) ve Market.CSGO (yaklaşık saatte bir). Toplu sorgu için market_hash_name ile en fazla 100 ürün belirtin veya son 90 günde satılan tüm ürünleri tek yanıtta almak için boş bırakın. Son 90 günde satışı olmayan ürün yanıtta yer almaz.

Parametreler

market_hash_namequery, isteğe bağlı

stringBir ürünün adı. En fazla 100'lük toplu sorgu için tekrarlayın. Boş bırakılırsa son 90 günde satılan tüm ürünler

providersquery, isteğe bağlı

stringVirgülle ayrılmış pazar yerleri: dmarket, market_csgo. Çıkarılırsa ikisi de

İstek

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();

Yanıt 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"
      }
    ]
  }
]
  • Ücretli abonelik gerekir: ücretsiz abonelikte her istek 403 döndürür.
  • Her dönemde sales satılan ürün sayısını, median ve avg ise USD cinsinden medyan ve ortalama fiyatı gösterir. Satış olmayan dönemde median ve avg null olur.
  • index_volume_units (adet cinsinden hacim endeksi) ve index_volume_dollars (dolar cinsinden hacim endeksi) tipik bir 15 günde ne kadar satıldığını gösterir: son 90 gün 15 günlük altı döneme bölünür ve satış olmayan dönem 0 sayılır. index_volume_units dönemlerdeki satılan ürün sayılarının medyanı, index_volume_dollars ise USD toplamlarının medyanıdır; bu yüzden tek bir çok hareketli veya ölü dönem onları değiştirmez.
  • Özet, bir pazar yerinin satışları üzerindeki her geçişten sonra hesaplanır; ne zaman olduğunu updated_at gösterir.
  • Market.CSGO bize bir ürünün en fazla son 6,000 satışını gösterir, bu yüzden en çok satılan ürünlerde tam 90 gün kaydedene kadar last_90d, index_volume_units ve index_volume_dollars düşük görünebilir.
  • Doppler ve Gamma Doppler fazları pazar adlarını paylaşır, bu yüzden tek kayıt her fazı kapsar.
  • Hatıra ürünler, çıkartmalar ve grafitiler dahildir. Teklif isteklerinde olduğu gibi yanıtlanan her istek 30 günlük limite sayılır ve yanıtlar aynı şekilde sıkıştırılır.

Tek ürünün satış özeti

GET/v1/sales/summary/{market_hash_name}

Tek bir ürünün her pazar yerindeki satışlarının özeti. Son 90 günde hiçbirinde satılmadıysa 404.

Parametreler

market_hash_namepath

stringURL kodlu ürün adı

providersquery, isteğe bağlı

stringVirgülle ayrılmış pazar yerleri: dmarket, market_csgo. Çıkarılırsa ikisi de

İstek

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();

Yanıt 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"
    }
  ]
}
  • Ücretli abonelik gerekir: ücretsiz abonelikte her istek 403 döndürür.

Ürünler

Her CS2 ürününün ne olduğu: türü, silahı, aşınması ve float aralığı, kalitesi, nadirliği, koleksiyonları ve kasaları. Bir pazar yerinde ürün filtrelemek için, teklif ve emirlerle aynı market_hash_name ile. Her skin, çıkartma, ajan, süs, kasa ve diğerleri, hatıralar dahil. Teklifler gibi, yanıtlanan her istek 30 günlük sınıra sayılır.

Çok ürün

GET/v1/items

Her CS2 ürününün ne olduğu: türü, silahı, aşınması ve float aralığı, kalitesi, nadirliği, koleksiyonları ve kasaları; market_hash_name başına bir kayıt, pazar yerinde ürün filtrelemek için. Tüm ürünler tek yanıtta (gzip ile yaklaşık 2 MB), limit ve offset ile bir sayfası ya da market_hash_name ile en fazla 100 tanesi. Filtreler ikisini de daraltır.

Parametreler

market_hash_namequery, isteğe bağlı

stringÜrün adı. 100'e kadar paket için tekrarlayın. Çıkarılırsa tüm ürünler

typequery, isteğe bağlı

stringskin, sticker, agent, charm, patch, music_kit, graffiti, collectible, container. Virgülle ayrılmış, herhangi biri

weaponquery, isteğe bağlı

stringSilah kimlikleri: awp, ak-47, karambit, sport-gloves.... Virgülle ayrılmış, herhangi biri

collectionquery, isteğe bağlı

stringKoleksiyon kimlikleri: the-dust-2-collection.... Virgülle ayrılmış, herhangi biri

containerquery, isteğe bağlı

stringÇıktığı kasa ve paketlerin kimlikleri: dreams-nightmares-case.... Virgülle ayrılmış, herhangi biri

rarityquery, isteğe bağlı

stringNadirlik kimlikleri: consumer, industrial, mil-spec, restricted, classified, covert, contraband ve çıkartma ile ajanlara ait olanlar (high, remarkable, exotic, extraordinary, distinguished, exceptional, superior, master). Virgülle ayrılmış, herhangi biri

qualityquery, isteğe bağlı

stringNormal, StatTrak™, Souvenir, ★ veya ★ StatTrak™. Virgülle ayrılmış, herhangi biri

limitquery, isteğe bağlı

numberYanıttaki en fazla eşya sayısı, 1 veya daha fazla. Verilmezse tüm eşyalar gelir ve yanıttaki limit içerdiği eşya sayısı olur

offsetquery, isteğe bağlı

numberSonraki sayfa için atlanacak ürün sayısı

İstek

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();

Yanıt 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"
    }
  ]
}
  • Ücretli abonelik gerekir: ücretsiz abonelikte her istek 403 döndürür.
  • type her silah skini, bıçak ve eldiven için skin'dir (category ayırt eder: knives, gloves, rifles, pistols, smgs, heavy, equipment); kasalar, kapsüller ve paketler için container'dır (category türüdür: case, sticker_capsule, souvenir_package...).
  • min_float ve max_float ürünün alabileceği float değerleridir: skinin aşınması içindeki kendi aralığı. Float'u olmayan ürünlerde null.
  • details bilinen diğer bilgileri tutar: çıkartmanın Tournament, Team, Player ve Effect değerleri, ajanın Side değeri, konteynerin Released tarihi.
  • Doppler ve Gamma Doppler fazları pazar adlarını paylaşır, bu yüzden tek kayıt her fazı kapsar.
  • Teklif istekleri gibi, yanıtlanan her istek kaç eşya içerirse içersin 30 günlük sınıra sayılır ve yanıtlar aynı şekilde gzip ile sıkıştırılır.

Tek ürün

GET/v1/items/{market_hash_name}

Tek ürünün ne olduğu. O adda ürün yoksa 404.

Parametreler

market_hash_namepath

stringURL kodlu ürün adı

İstek

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();

Yanıt 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"
}
  • Ücretli abonelik gerekir: ücretsiz abonelikte her istek 403 döndürür.

DMarket robotu

DMarket teklif ve emirlerinizi aynı anahtarla yönetin. Hesaplar ve DMarket API anahtarları yalnızca robot sayfasından eklenir, asla API üzerinden değil. Robot rotaları ücretli abonelik gerektirir ve yalnızca dakikalık limite sayılır, 30 günlük limite asla.

  • Teklifler: hesap başına sınırsız. Emirler (DMarket "target"ları): hesap başına 100'e kadar, DMarket'in kendi limiti.
  • DMarket bir emrin fiyatının değiştirilmesine izin vermez: robot emri yeni fiyatlı yeni bir emirle değiştirir.

Hesaplar ve limitler

GET/v1/robots/dmarket

Robottaki DMarket hesaplarınız (robot sayfasında DMarket API anahtarlarıyla bağlanır) ve aboneliğinizin bu robot için limitleri.

İstek

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();

Yanıt 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 limit, bizim tarafımızdan sınır olmadığı anlamına gelir.
  • paused: hesap aboneliğinizin hesap sınırının üstünde; teklif ve emirleri bekler.
  • enabled: false, robot sayfasından kapatıldığı anlamına gelir: robot onu artık hareket ettirmez, pazar yerinde son fiyatıyla kalır ve limitlere sayılmaya devam eder.

Hesabın envanteri

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

Hesabın DMarket envanterindeki ürünler ve her birini satmak için asset_id. DMarket'in listelemeye izin vermediği ürünlerde sellable false'tur.

Parametreler

account_idpath

stringGET /v1/robots/dmarket yanıtındaki hesap kimliği

İstek

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();

Yanıt 200

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

Teklifleri listele

GET/v1/robots/dmarket/offers

Tüm hesaplarınızdaki DMarket teklifleriniz, en eskisi önce.

İstek

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();

Yanıt 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"
  }
]

Teklif listele veya güncelle

POST/v1/robots/dmarket/offers

Bir ürünü listeler veya asset_id ile bulunan mevcut teklifin fiyatlarının üzerine yazar. Robot ürünü DMarket'te listeler ve adının en ucuz teklifi olarak tutar, min_price altına inmez. Rakip yoksa max_price'tan satar. Yeni fiyatlar saniyeler içinde veya fiyat kilidi açılınca uygulanır: robotun değiştirdiği fiyat 15 dakika kalır.

Parametreler

asset_idbody

stringHesabın envanterindeki ürünün DMarket kimliği

min_pricebody

numberUSD, en fazla iki ondalık

max_pricebody

numberUSD, en fazla iki ondalık

account_idbody, isteğe bağlı

stringÜrünün sahibi olan hesap. Listelemek için gerekli

market_hash_namebody, isteğe bağlı

stringÜrün adı. Listelemek için gerekli

İstek

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();

Yanıt 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"
}

Teklifi kaldır

DELETE/v1/robots/dmarket/offers

Teklifi unutur: robot onu artık hareket ettirmez ve ürün DMarket üzerinde son fiyatıyla satışta kalır.

Parametreler

asset_idquery

stringHesabın envanterindeki ürünün DMarket kimliği

İstek

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();

Yanıt 200

{
  "removed": true
}
  • Robotta böyle bir teklif yoksa removed false'tur.

Emirleri listele

GET/v1/robots/dmarket/orders

Tüm hesaplarınızdaki DMarket alım emirleriniz, en eskisi önce.

İstek

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();

Yanıt 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"
  }
]

Emir ver veya güncelle

POST/v1/robots/dmarket/orders

Bir hesapta ürün için emrinizi verir veya mevcut emrin fiyatlarının üzerine yazar. Robot bir DMarket alım emri ("target") verir ve en yüksek tutar, max_price üstüne çıkmaz. Rakip yoksa min_price verir. DMarket hesap başına 100'e kadar emre izin verir. DMarket emrin fiyatını değiştiremez: her yeni fiyat, eskisinin yerine yeni bir target'tır. Miktar tamamlanana kadar her seferinde 1 ürün alır ve bir emir yalnızca fiyatı hesabın bakiyesini aşmıyorsa verilir.

Parametreler

market_hash_namebody

stringÜrün adı

min_pricebody

numberUSD, en fazla iki ondalık

max_pricebody

numberUSD, en fazla iki ondalık

account_idbody, isteğe bağlı

stringAlım yapacak hesap. Tek hesabınız varsa çıkarılabilir

amountbody, isteğe bağlı

numberKaç adet alınacağı, 1 ile 100 arası. Emir vermek için gerekli; yalnızca verilmeden önce değişir

İstek

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();

Yanıt 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"
}
  • Verilmiş emrin adedi yalnızca karşılandıkça azalır: daha fazla almak için kaldırıp yeniden ekleyin.

Emri kaldır

DELETE/v1/robots/dmarket/orders

Emri unutur: robot onu artık hareket ettirmez ve emir DMarket üzerinde son fiyatıyla kalır.

Parametreler

market_hash_namequery

stringÜrün adı

account_idquery, isteğe bağlı

stringEmrin bulunduğu hesap. Tek hesabınız varsa çıkarılabilir

İstek

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();

Yanıt 200

{
  "removed": true
}
  • Robotta böyle bir emir yoksa removed false'tur.

Monitör

GET/v1/robots/dmarket/monitor

DMarket'teki her ürün ve en iyi alım emri (buy_price, en iyi emrin 1 sent üstü), ardından en ucuz teklif (sell_price, en ucuzun 1 sent altı) olmanın o ürünün DMarket komisyonu sonrası kârı. DMarket'in en iyi emirleri ve teklifleri birkaç saniyede bir, diğer pazar yerlerinin fiyatları ise her birinin güncellendiği sıklıkta, 5 dakikada bir ile saatte bir arasında yenilenir. Yalnızca gönderdiğiniz filtreler uygulanır: hiç yoksa alım emri olan her ürün, en kârlısı önce. DMarket'te teklifi olmayan ürün de best_offer, sell_price, profit ve margin_percent null olarak görünür: kâr, marj ve fark filtreleri onu geçirir. dollar_volume ve units_volume ürünün DMarket'te 15 günde tipik satışıdır: son 90 günün altı 15 günlük diliminin medyanı.

Parametreler

qquery, isteğe bağlı

stringAdda hepsinin bulunması gereken kelimeler

min_pricequery, isteğe bağlı

numberEn düşük alış fiyatı, USD

max_pricequery, isteğe bağlı

numberEn yüksek alış fiyatı, USD

min_profitquery, isteğe bağlı

numberKomisyon sonrası en düşük kâr, USD

min_marginquery, isteğe bağlı

numberEn düşük marj, alış fiyatının yüzdesi

min_gapquery, isteğe bağlı

numberEn iyi emir ile en ucuz teklif arasındaki en düşük fark, USD

min_liquidityquery, isteğe bağlı

numberEn düşük likidite, 0 ile 100 arası

max_feequery, isteğe bağlı

numberEn yüksek komisyon, yüzde

min_units_volumequery, isteğe bağlı

numberDMarket'te tipik 15 günde satılan en az ürün (units_volume)

min_dollar_volumequery, isteğe bağlı

numberDMarket'te tipik 15 günde satılan en az USD (dollar_volume)

hidequery, isteğe bağlı

stringVirgülle ayrılmış: stickers, graffiti, souvenir, stattrak

comparequery, isteğe bağlı

stringDiğer pazar yerleri ve en düşük fiyatlarının alış fiyatının yüzde kaç üstünde olması gerektiği: buff_163:5,cs_float:3. Ürünü listelemeyen pazar yeri atlanır. Fiyatları compare içinde döner

compare_ordersquery, isteğe bağlı

stringAynısı diğer pazar yerlerinin en yüksek alım emirleriyle: market_csgo:5 (Market.CSGO veya Steam). Emirleri compare_orders içinde döner

sortquery, isteğe bağlı

stringprofit (çıkarılırsa), margin, liquidity, price veya volume (dollar_volume)

limitquery, isteğe bağlı

numberYanıttaki ürün sayısı, 1 ile 100 arası (çıkarılırsa 100)

offsetquery, isteğe bağlı

numberSonraki sayfa için atlanacak ürün sayısı

İstek

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();

Yanıt 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": {}
    }
  ]
}
  • Her robot rotası gibi ücretli abonelik gerektirir. Onlardan farklı olarak, yanıtlanan her istek teklif istekleri gibi 30 günlük sınıra da sayılır ve aynı X-Usage-Limit ve X-Usage-Remaining başlıklarını taşır.

Teklif ve emir durumları

pending
Henüz listelenmedi veya verilmedi
active
Pazar yerinde, limitleriniz içinde önde tutulur. Robotun değiştirdiği fiyat 15 dakika kalır; sonra piyasayı her saniye izler
paused
Aboneliğinizin teklif, emir veya hesap sınırının üstünde: yükseltene veya diğerlerini kaldırana kadar bekler
sold
Teklifler: satıldı
closed
Teklifler: satıştan kaldırıldı veya ürün envanterden çıktı. Emirler: tamamen alındı veya kaldırıldı. Bir neden varsa error onu söyler

market.csgo.com robotu

Market.CSGO teklif ve emirlerinizi aynı anahtarla yönetin. Hesaplar ve Market.CSGO API anahtarları yalnızca robot sayfasından eklenir, asla API üzerinden değil. Robot rotaları ücretli abonelik gerektirir ve yalnızca dakikalık limite sayılır, 30 günlük limite asla.

  • Teklifler: hesap başına sınırsız. Emirler: hesap başına 100'e kadar, ürün başına bir tane, yerinde değiştirilir.
  • Market.CSGO'da hesabın para birimi USD olmalıdır. Teklifler yalnızca Market.CSGO uygulaması veya tarayıcı eklentisinde çevrimiçiyken görünür.

Hesaplar ve limitler

GET/v1/robots/market-csgo

Robottaki Market.CSGO hesaplarınız (robot sayfasında Market.CSGO API anahtarlarıyla bağlanır) ve aboneliğinizin bu robot için limitleri. Hesabın note alanı satışı neyin engellediğini söyler, örneğin çevrimdışı olmak.

İstek

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();

Yanıt 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 limit, bizim tarafımızdan sınır olmadığı anlamına gelir.
  • paused: hesap aboneliğinizin hesap sınırının üstünde; teklif ve emirleri bekler.
  • enabled: false, robot sayfasından kapatıldığı anlamına gelir: robot onu artık hareket ettirmez, pazar yerinde son fiyatıyla kalır ve limitlere sayılmaya devam eder.

Hesabın envanteri

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

Market.CSGO'nun hesaptan satabileceği Steam ürünleri ve her birini satmak için asset_id.

Parametreler

account_idpath

stringGET /v1/robots/market-csgo yanıtındaki hesap kimliği

İstek

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();

Yanıt 200

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

Teklifleri listele

GET/v1/robots/market-csgo/offers

Tüm hesaplarınızdaki Market.CSGO teklifleriniz, en eskisi önce.

İstek

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();

Yanıt 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"
  }
]

Teklif listele veya güncelle

POST/v1/robots/market-csgo/offers

Bir ürünü listeler veya asset_id ile bulunan mevcut teklifin fiyatlarının üzerine yazar. Robot ürünü Market.CSGO'da satışa koyar ve adının en ucuz teklifi olarak tutar, min_price altına inmez. Rakip yoksa max_price'tan satar. Teklifler yalnızca hesap Market.CSGO uygulaması veya eklentisinde çevrimiçiyken görünür. Yeni fiyatlar saniyeler içinde veya fiyat kilidi açılınca uygulanır: robotun değiştirdiği fiyat 15 dakika kalır.

Parametreler

asset_idbody

stringHesabın envanterindeki ürünün Steam asset kimliği

min_pricebody

numberUSD, en fazla iki ondalık

max_pricebody

numberUSD, en fazla iki ondalık

account_idbody, isteğe bağlı

stringÜrünün sahibi olan hesap. Listelemek için gerekli

market_hash_namebody, isteğe bağlı

stringÜrün adı. Listelemek için gerekli

İstek

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();

Yanıt 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"
}

Teklifi kaldır

DELETE/v1/robots/market-csgo/offers

Teklifi unutur: robot onu artık hareket ettirmez ve ürün Market.CSGO üzerinde son fiyatıyla satışta kalır.

Parametreler

asset_idquery

stringHesabın envanterindeki ürünün Steam asset kimliği

İstek

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();

Yanıt 200

{
  "removed": true
}
  • Robotta böyle bir teklif yoksa removed false'tur.

Emirleri listele

GET/v1/robots/market-csgo/orders

Tüm hesaplarınızdaki Market.CSGO alım emirleriniz, en eskisi önce.

İstek

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();

Yanıt 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"
  }
]

Emir ver veya güncelle

POST/v1/robots/market-csgo/orders

Bir hesapta ürün için emrinizi verir veya mevcut emrin fiyatlarının üzerine yazar. Robot bir Market.CSGO alım emri verir ve en yüksek tutar, max_price üstüne çıkmaz. Rakip yoksa min_price verir. Market.CSGO ürün başına bir emre ve hesap başına 100'e kadar emre izin verir, fiyatı yerinde değiştirir.

Parametreler

market_hash_namebody

stringÜrün adı

min_pricebody

numberUSD, en fazla iki ondalık

max_pricebody

numberUSD, en fazla iki ondalık

account_idbody, isteğe bağlı

stringAlım yapacak hesap. Tek hesabınız varsa çıkarılabilir

amountbody, isteğe bağlı

numberKaç adet alınacağı, 1 ile 100 arası. Emir vermek için gerekli; yalnızca verilmeden önce değişir

İstek

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();

Yanıt 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"
}
  • Verilmiş emrin adedi yalnızca karşılandıkça azalır: daha fazla almak için kaldırıp yeniden ekleyin.

Emri kaldır

DELETE/v1/robots/market-csgo/orders

Emri unutur: robot onu artık hareket ettirmez ve emir Market.CSGO üzerinde son fiyatıyla kalır.

Parametreler

market_hash_namequery

stringÜrün adı

account_idquery, isteğe bağlı

stringEmrin bulunduğu hesap. Tek hesabınız varsa çıkarılabilir

İstek

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();

Yanıt 200

{
  "removed": true
}
  • Robotta böyle bir emir yoksa removed false'tur.

Teklif ve emir durumları

pending
Henüz listelenmedi veya verilmedi
active
Pazar yerinde, limitleriniz içinde önde tutulur. Robotun değiştirdiği fiyat 15 dakika kalır; sonra piyasayı her saniye izler
paused
Aboneliğinizin teklif, emir veya hesap sınırının üstünde: yükseltene veya diğerlerini kaldırana kadar bekler
sold
Teklifler: satıldı
closed
Teklifler: satıştan kaldırıldı veya ürün envanterden çıktı. Emirler: tamamen alındı veya kaldırıldı. Bir neden varsa error onu söyler

Limitler ve hatalar

İki sınır, ikisi de abonelik başına. Her istek dakikalık sınıra sayılır; sınırı aşan istek, saniye cinsinden Retry-After başlığıyla 429 alır. Yanıtlanan her teklif, alış emri, satış, eşya ya da monitör isteği, kaç eşya içerirse içersin 30 günlük sınıra da sayılır; sayaç aboneliğinin başlangıcından itibaren her 30 günde bir sıfırlanır ve X-Usage-Limit ile X-Usage-Remaining başlıkları nerede olduğunu gösterir.

Abonelikİstek / dakikaTeklif ve emir isteği / 30 gün
Ücretsiz60100
Trader1205,000
Pro30025,000
Business300100,000
400
İstekte bir sorun var: bilinmeyen sağlayıcı veya ürün türü, hatalı gövde, 100 üründen fazlası, aralık dışı limit
401
Anahtar eksik veya yanlış
403
Ücretli abonelik gerekir: Steam dışındaki her pazar yeri, satış özeti ve eşya rotaları ile robot ve monitör rotaları için
404
Böyle bir ürün, robot veya hesap yok
409
Şu anda mümkün değil: aboneliğin teklif, emir veya hesap sınırının üstünde ya da verilmiş bir emrin adedi değiştiriliyor
429
Dakikalık sınıra (Retry-After saniye bekleyin) ya da 30 günlük sınıra ulaşıldı
502
Pazar yeri robota yanıt vermedi; tekrar deneyin