533 lines
10 KiB
Markdown
533 lines
10 KiB
Markdown
# مستندات API قیمت ها
|
||
|
||
این API برای دریافت قیمت ها و داده های بازار به صورت JSON ساخته شده است.
|
||
تمام endpoint های اشتراکی با `/api/v1` شروع می شوند و فقط خواندنی هستند.
|
||
|
||
## 1. آدرس پایه
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir
|
||
```
|
||
|
||
## 2. احراز هویت
|
||
|
||
برای تمام درخواست ها باید هدر زیر ارسال شود:
|
||
|
||
```http
|
||
Authorization: Bearer YOUR_API_TOKEN
|
||
```
|
||
|
||
اگر این هدر ارسال نشود یا توکن اشتباه باشد، پاسخ `401` برمی گردد.
|
||
|
||
نمونه:
|
||
|
||
```js
|
||
const TOKEN = "YOUR_API_TOKEN";
|
||
|
||
const res = await fetch("https://statista.steelforesight.ir/api/v1/prices/latest", {
|
||
headers: {
|
||
Authorization: `Bearer ${TOKEN}`,
|
||
},
|
||
});
|
||
|
||
const data = await res.json();
|
||
```
|
||
|
||
## 3. دریافت همه داده ها در یک درخواست
|
||
|
||
```http
|
||
GET /api/v1/prices/latest
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/prices/latest
|
||
```
|
||
|
||
این endpoint همه دیتاست ها را در یک پاسخ JSON برمی گرداند.
|
||
|
||
نمونه ساختار پاسخ:
|
||
|
||
```json
|
||
{
|
||
"generated_at": "2026-07-04T10:50:00Z",
|
||
"datasets": {
|
||
"metals": [],
|
||
"live_commodities": [],
|
||
"currency": [],
|
||
"gold": [],
|
||
"coin": [],
|
||
"commodity": [],
|
||
"steel_stocks": [],
|
||
"crypto": {},
|
||
"world_economy": []
|
||
}
|
||
}
|
||
```
|
||
|
||
معنی هر کلید:
|
||
|
||
| کلید | منبع | توضیح |
|
||
|---|---|---|
|
||
| `metals` | دیتابیس داخلی | محصولات فلزی و فولادی |
|
||
| `currency` | TGJU | ارز |
|
||
| `gold` | TGJU | طلا و نقره |
|
||
| `coin` | TGJU | سکه |
|
||
| `commodity` | Yahoo Finance | کامودیتی های جهانی مثل نفت، طلا، مس و غیره |
|
||
| `steel_stocks` | CompaniesMarketCap | شرکت های فولادی جهان |
|
||
| `crypto` | CoinGecko | کریپتو، مارکت جهانی و ترندها |
|
||
| `world_economy` | Trading Economics | شاخص های اقتصاد کلان کشورها |
|
||
| `live_commodities` | داخلی/لایو | دیتاست کامودیتی زنده، اگر فعال باشد |
|
||
|
||
## 4. محصولات فلزی و فولادی
|
||
|
||
### 4.1 فهرست کامل گروه ها، دسته ها و محصولات
|
||
|
||
```http
|
||
GET /api/v1/metals/tree
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/metals/tree
|
||
```
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
{
|
||
"Minor Metals": {
|
||
"Lithium": [
|
||
"Lithium Carbonate 99.5%min China",
|
||
"Lithium Hydroxide 56.5%min China"
|
||
],
|
||
"Cobalt": [
|
||
"Cobalt Metal 99.8%min China"
|
||
]
|
||
},
|
||
"Carbon Steel": {
|
||
"Rebar": [
|
||
"Rebar HRB400 20mm China"
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
تعداد محصولات فلزی موجود در کاتالوگ داخلی:
|
||
|
||
```txt
|
||
674 نام محصول یکتا
|
||
686 رکورد در گروه/دسته، چون بعضی محصولات در بیش از یک دسته دیده می شوند
|
||
```
|
||
|
||
### 4.2 آخرین قیمت همه محصولات فلزی
|
||
|
||
```http
|
||
GET /api/v1/metals/latest
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/metals/latest
|
||
```
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"group": "Minor Metals",
|
||
"category": "Lithium",
|
||
"title": "Lithium Carbonate 99.5%min China",
|
||
"date": "2026-07-04",
|
||
"low": 72000,
|
||
"mid": 73500,
|
||
"high": 75000,
|
||
"prev_mid": 73000,
|
||
"pct": 0.68
|
||
}
|
||
]
|
||
```
|
||
|
||
توضیح فیلدها:
|
||
|
||
| فیلد | توضیح |
|
||
|---|---|
|
||
| `group` | گروه اصلی محصول |
|
||
| `category` | دسته محصول |
|
||
| `title` | نام محصول |
|
||
| `date` | تاریخ آخرین قیمت |
|
||
| `low` | کمترین قیمت |
|
||
| `mid` | قیمت میانی |
|
||
| `high` | بیشترین قیمت |
|
||
| `prev_mid` | قیمت میانی قبلی |
|
||
| `pct` | درصد تغییر نسبت به قیمت قبلی |
|
||
|
||
### 4.3 تاریخچه قیمت یک محصول
|
||
|
||
```http
|
||
GET /api/v1/metals/history?title=PRODUCT_TITLE&days=365
|
||
```
|
||
|
||
پارامترها:
|
||
|
||
| پارامتر | توضیح |
|
||
|---|---|
|
||
| `title` | نام دقیق محصول |
|
||
| `days` | تعداد روزهای تاریخچه. اگر `0` باشد، همه تاریخچه برمی گردد |
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"date": "2026-07-01",
|
||
"low": 71000,
|
||
"mid": 72500,
|
||
"high": 74000
|
||
}
|
||
]
|
||
```
|
||
|
||
### 4.4 جستجوی محصول
|
||
|
||
```http
|
||
GET /api/v1/metals/search?q=lithium
|
||
```
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"title": "Lithium Carbonate 99.5%min China",
|
||
"group": "Minor Metals",
|
||
"category": "Lithium"
|
||
}
|
||
]
|
||
```
|
||
|
||
## 5. TGJU: ارز، طلا و سکه
|
||
|
||
داده های TGJU در سه endpoint جدا ارائه می شوند.
|
||
|
||
### 5.1 ارز
|
||
|
||
```http
|
||
GET /api/v1/currency
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/currency
|
||
```
|
||
|
||
### 5.2 طلا
|
||
|
||
```http
|
||
GET /api/v1/gold
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/gold
|
||
```
|
||
|
||
### 5.3 سکه
|
||
|
||
```http
|
||
GET /api/v1/coin
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/coin
|
||
```
|
||
|
||
نمونه پاسخ TGJU:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"name": "دلار / نقدی",
|
||
"price": 610000,
|
||
"change_val": "(0%) 0",
|
||
"pct": 0,
|
||
"dir": "up",
|
||
"fetched_at": "2026-07-04T10:41:25Z"
|
||
}
|
||
]
|
||
```
|
||
|
||
توضیح فیلدها:
|
||
|
||
| فیلد | توضیح |
|
||
|---|---|
|
||
| `name` | نام آیتم |
|
||
| `price` | قیمت عددی |
|
||
| `change_val` | متن تغییر قیمت طبق منبع |
|
||
| `pct` | درصد تغییر |
|
||
| `dir` | جهت تغییر، مثل `up` یا `down` |
|
||
| `fetched_at` | زمان دریافت داده |
|
||
|
||
در endpoint کلی:
|
||
|
||
```js
|
||
data.datasets.currency
|
||
data.datasets.gold
|
||
data.datasets.coin
|
||
```
|
||
|
||
## 6. CoinGecko: کریپتو
|
||
|
||
```http
|
||
GET /api/v1/crypto
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/crypto
|
||
```
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
{
|
||
"coins": [
|
||
{
|
||
"id": "bitcoin",
|
||
"symbol": "BTC",
|
||
"name": "Bitcoin",
|
||
"rank": 1,
|
||
"price": 65000,
|
||
"pct_1h": 0.1,
|
||
"pct_24h": 1.2,
|
||
"pct_7d": -3.4,
|
||
"market_cap": 1280000000000,
|
||
"volume_24h": 32000000000,
|
||
"high_24h": 66000,
|
||
"low_24h": 64000,
|
||
"sparkline": [],
|
||
"dir": "up"
|
||
}
|
||
],
|
||
"global": {
|
||
"market_cap_usd": 2500000000000,
|
||
"volume_usd": 90000000000,
|
||
"btc_dominance": 51.2,
|
||
"eth_dominance": 17.4
|
||
},
|
||
"trending": [],
|
||
"fetched_at": "2026-07-04T10:41:25Z"
|
||
}
|
||
```
|
||
|
||
در endpoint کلی:
|
||
|
||
```js
|
||
data.datasets.crypto
|
||
```
|
||
|
||
## 7. CompaniesMarketCap: سهام شرکت های فولادی
|
||
|
||
```http
|
||
GET /api/v1/steel-stocks
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/steel-stocks
|
||
```
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"code": "NUE",
|
||
"rank": 1,
|
||
"name": "Nucor",
|
||
"market_cap": 38.5,
|
||
"price": 156.2,
|
||
"today_pct": 1.4,
|
||
"dir": "up",
|
||
"country": "United States",
|
||
"fetched_at": "2026-07-04T10:41:25Z"
|
||
}
|
||
]
|
||
```
|
||
|
||
در endpoint کلی:
|
||
|
||
```js
|
||
data.datasets.steel_stocks
|
||
```
|
||
|
||
## 8. Yahoo Finance: کامودیتی های جهانی
|
||
|
||
```http
|
||
GET /api/v1/commodity
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/commodity
|
||
```
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"symbol": "GC=F",
|
||
"name": "Gold",
|
||
"price": 2350.5,
|
||
"change": 8.2,
|
||
"pct": 0.35,
|
||
"currency": "USD",
|
||
"up": true
|
||
}
|
||
]
|
||
```
|
||
|
||
در endpoint کلی:
|
||
|
||
```js
|
||
data.datasets.commodity
|
||
```
|
||
|
||
## 9. Trading Economics: اقتصاد جهان
|
||
|
||
```http
|
||
GET /api/v1/world-economy
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/world-economy
|
||
```
|
||
|
||
نمونه پاسخ:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"country": "United States",
|
||
"gdp": 27360,
|
||
"gdp_growth": 1.4,
|
||
"interest_rate": 5.5,
|
||
"inflation_rate": 3.2,
|
||
"jobless_rate": 4.0,
|
||
"gov_budget": -6.3,
|
||
"debt_gdp": 122.3,
|
||
"current_account": -3.0,
|
||
"population": 335,
|
||
"fetched_at": "2026-07-04T10:41:25Z"
|
||
}
|
||
]
|
||
```
|
||
|
||
در endpoint کلی:
|
||
|
||
```js
|
||
data.datasets.world_economy
|
||
```
|
||
|
||
## 10. کشف endpoint های موجود
|
||
|
||
```http
|
||
GET /api/v1/datasets
|
||
```
|
||
|
||
آدرس کامل:
|
||
|
||
```txt
|
||
https://statista.steelforesight.ir/api/v1/datasets
|
||
```
|
||
|
||
این endpoint لیست مسیرهای API را برمی گرداند.
|
||
|
||
## 11. نمونه کامل JavaScript
|
||
|
||
```js
|
||
const API = "https://statista.steelforesight.ir";
|
||
const TOKEN = "YOUR_API_TOKEN";
|
||
|
||
async function getJson(path) {
|
||
const res = await fetch(`${API}${path}`, {
|
||
headers: {
|
||
Authorization: `Bearer ${TOKEN}`,
|
||
},
|
||
});
|
||
|
||
if (!res.ok) {
|
||
throw new Error(`API request failed: ${res.status}`);
|
||
}
|
||
|
||
return res.json();
|
||
}
|
||
|
||
const allPrices = await getJson("/api/v1/prices/latest");
|
||
|
||
console.log(allPrices.datasets.metals);
|
||
console.log(allPrices.datasets.currency);
|
||
console.log(allPrices.datasets.gold);
|
||
console.log(allPrices.datasets.coin);
|
||
console.log(allPrices.datasets.crypto);
|
||
console.log(allPrices.datasets.steel_stocks);
|
||
console.log(allPrices.datasets.commodity);
|
||
console.log(allPrices.datasets.world_economy);
|
||
```
|
||
|
||
## 12. نمونه تست با PowerShell
|
||
|
||
```powershell
|
||
$TOKEN = "YOUR_API_TOKEN"
|
||
|
||
$data = Invoke-RestMethod `
|
||
-Uri "https://statista.steelforesight.ir/api/v1/prices/latest" `
|
||
-Headers @{ Authorization = "Bearer $TOKEN" }
|
||
|
||
$data.datasets.currency | Select-Object -First 5
|
||
$data.datasets.gold | Select-Object -First 5
|
||
$data.datasets.coin | Select-Object -First 5
|
||
```
|
||
|
||
اگر متن فارسی در PowerShell خراب نمایش داده شد، مشکل از encoding ترمینال است. برای بهتر شدن نمایش:
|
||
|
||
```powershell
|
||
chcp 65001
|
||
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
||
```
|
||
|
||
## 13. وضعیت فعلی دیتاست های Live
|
||
|
||
طبق آخرین خروجی live API:
|
||
|
||
```txt
|
||
TGJU currency: 33
|
||
TGJU gold: 14
|
||
TGJU coin: 5
|
||
Yahoo Finance commodities: 19
|
||
CompaniesMarketCap steel stocks: 81
|
||
CoinGecko top crypto: 100
|
||
CoinGecko trending: 15
|
||
```
|
||
|
||
کاتالوگ داخلی فلزات:
|
||
|
||
```txt
|
||
674 نام محصول فلزی/فولادی یکتا
|
||
```
|
||
|