API
API belgeleri
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_floatCSFloatbuff_163Buff.163youpinYouPin898dmarketAlım emirleriDMarketskinportSkinportcs_moneycs.moneymarket_csgoAlım emirleriMarket.CSGObuff_marketBuff.MarketwaxpeerWaxpeerlis_skinsLis-skinsskin_baronSkinBaronhalo_skinsHaloSkinswhite_marketWhite.Marketshadow_payShadowPayskinsSKINSskin_swapSkinSwapcs_dealsCS.Dealsloot_farmLoot.farmcs_tradeCS.TRADEtradeitTradeit.ggsteamAlım emirleriSteamsihSIH MarketTeklifler
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
/v1/offersHer 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
/v1/offers/{market_hash_name}Her pazar yerinde tek ürünün en ucuz teklifi. Hiçbirinde yoksa 404.
Parametreler
market_hash_namepathstringURL 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
/v1/ordersOlan 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
/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_namepathstringURL 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
/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
/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_namepathstringURL 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
/v1/itemsHer 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
/v1/items/{market_hash_name}Tek ürünün ne olduğu. O adda ürün yoksa 404.
Parametreler
market_hash_namepathstringURL 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
/v1/robots/dmarketRobottaki 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
/v1/robots/dmarket/accounts/{account_id}/inventoryHesabı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_idpathstringGET /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
/v1/robots/dmarket/offersTü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
/v1/robots/dmarket/offersBir ü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_idbodystringHesabın envanterindeki ürünün DMarket kimliği
min_pricebodynumberUSD, en fazla iki ondalık
max_pricebodynumberUSD, 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
/v1/robots/dmarket/offersTeklifi unutur: robot onu artık hareket ettirmez ve ürün DMarket üzerinde son fiyatıyla satışta kalır.
Parametreler
asset_idquerystringHesabı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
/v1/robots/dmarket/ordersTü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
/v1/robots/dmarket/ordersBir 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_namebodystringÜrün adı
min_pricebodynumberUSD, en fazla iki ondalık
max_pricebodynumberUSD, 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
/v1/robots/dmarket/ordersEmri unutur: robot onu artık hareket ettirmez ve emir DMarket üzerinde son fiyatıyla kalır.
Parametreler
market_hash_namequerystringÜ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
/v1/robots/dmarket/monitorDMarket'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
/v1/robots/market-csgoRobottaki 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
/v1/robots/market-csgo/accounts/{account_id}/inventoryMarket.CSGO'nun hesaptan satabileceği Steam ürünleri ve her birini satmak için asset_id.
Parametreler
account_idpathstringGET /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
/v1/robots/market-csgo/offersTü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
/v1/robots/market-csgo/offersBir ü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_idbodystringHesabın envanterindeki ürünün Steam asset kimliği
min_pricebodynumberUSD, en fazla iki ondalık
max_pricebodynumberUSD, 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
/v1/robots/market-csgo/offersTeklifi unutur: robot onu artık hareket ettirmez ve ürün Market.CSGO üzerinde son fiyatıyla satışta kalır.
Parametreler
asset_idquerystringHesabı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
/v1/robots/market-csgo/ordersTü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
/v1/robots/market-csgo/ordersBir 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_namebodystringÜrün adı
min_pricebodynumberUSD, en fazla iki ondalık
max_pricebodynumberUSD, 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
/v1/robots/market-csgo/ordersEmri unutur: robot onu artık hareket ettirmez ve emir Market.CSGO üzerinde son fiyatıyla kalır.
Parametreler
market_hash_namequerystringÜ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 / dakika | Teklif ve emir isteği / 30 gün |
|---|---|---|
| Ücretsiz | 60 | 100 |
| Trader | 120 | 5,000 |
| Pro | 300 | 25,000 |
| Business | 300 | 100,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