مثال‌های API مستندات

مثال‌های عملی API

همه قیمت‌ها از یک مسیر /prices برمی‌گردد. در برنامه خود با فیلد source تفکیک کنید — نیازی به endpoint جداگانه برای هر منبع نیست.

Base URL https://price.aryagostaran.com/api/v1

مراحل استفاده

  1. توکن API را از پنل ادمین بگیرید و در هدر Authorization: Bearer … بفرستید.
  2. با GET /prices?page=1&per_page=100 شروع کنید و تا has_next=false صفحه بعدی را بگیرید.
  3. آرایه data همه صفحات را در یک لیست ادغام کنید (در حال حاضر حدود ۳۱۰۰ آیتم).
  4. با item.source فقط منبع موردنظر را نگه دارید: gateio، bonbast، arya یا abantether.
gateio
2072 رمز ارز
abantether
994 رمز ارز (به تومان)
bonbast
37 قیمت فیات و طلا
arya
16 فیات، طلا، نقره و سکه
GET

/health

بدون توکن

بررسی اینکه API در دسترس است یا نه.

درخواست
curl -X GET \
  "https://price.aryagostaran.com/api/v1/health"
خروجی
{
  "success": true,
  "status": "ok"
}
GET

/prices

نیاز به توکن

دریافت همه قیمت‌ها. با per_page=100 حدود ۳۲ درخواست لازم است. خروجی واقعی شامل فیلدهای متفاوت برای هر منبع است.

درخواست
curl -X GET \
  "https://price.aryagostaran.com/api/v1/prices?page=1&per_page=100" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

# صفحات بعدی: page=2, page=3, ...
# تا pagination.has_next برابر false شود
خروجی (نمونه واقعی)
{
  "success": true,
  "data": [
    {
      "source": "gateio",
      "source_label": "Gate.io",
      "symbol": "BTC",
      "name": "BTC/USDT",
      "display_name": "Bitcoin (Gate.io)",
      "icon": "https://price.aryagostaran.com/media/price-images/gateio_btc.png",
      "updated_at": "2026-07-15 14:55:52",
      "price_usdt": "64679.3",
      "price_toman": 11538787120,
      "change_24h": "2.81"
    },
    {
      "source": "bonbast",
      "source_label": "بن‌بست",
      "symbol": "USD",
      "display_name": "دلار آمریکا (بن‌بست)",
      "icon": "https://price.aryagostaran.com/media/price-images/bonbast_usd.svg",
      "updated_at": "2026-07-15 14:55:35",
      "price_toman": 187700
    },
    {
      "source": "arya",
      "source_label": "آریا",
      "symbol": "G18",
      "display_name": "طلای ۱۸ عیار (آریا)",
      "icon": "https://price.aryagostaran.com/media/price-images/arya_g18.svg",
      "updated_at": "2026-07-15 14:55:36",
      "price_toman": 18431000
    },
    {
      "source": "abantether",
      "source_label": "آبان تتر",
      "symbol": "BTC",
      "display_name": "Bitcoin (آبان تتر)",
      "icon": "https://price.aryagostaran.com/media/price-images/gateio_btc.png",
      "updated_at": "2026-07-15 14:55:39",
      "price_toman": 12188683776
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 100,
    "total": 3119,
    "total_pages": 32,
    "has_next": true,
    "has_prev": false
  }
}
GET

تفکیک Gate.io

نیاز به توکن

بعد از گرفتن همه صفحات، فقط رمزارزهای Gate.io را فیلتر کنید:

کد نمونه (JavaScript)
const headers = {
  Authorization: 'Bearer YOUR_API_TOKEN',
};

let all = [];
let page = 1;

while (true) {
  const url = `https://price.aryagostaran.com/api/v1/prices?page=${page}&per_page=100`;
  const res = await fetch(url, { headers }).then(r => r.json());

  all.push(...res.data);
  if (!res.pagination.has_next) break;
  page++;
}

const gateio = all.filter(item => item.source === 'gateio');
const btc = gateio.find(item => item.symbol === 'BTC');
نتیجه BTC (خروجی واقعی)
{
  "source": "gateio",
  "source_label": "Gate.io",
  "symbol": "BTC",
  "name": "BTC/USDT",
  "display_name": "Bitcoin (Gate.io)",
  "icon": "https://price.aryagostaran.com/media/price-images/gateio_btc.png",
  "updated_at": "2026-07-15 14:55:52",
  "price_usdt": "64679.3",
  "price_toman": 11538787120,
  "change_24h": "2.81",
  "high_24h_usdt": "65267.3",
  "low_24h_usdt": "62788.8",
  "high_24h_toman": 11643686320,
  "low_24h_toman": 11201521920
}
GET

تفکیک بن‌بست / آریا / آبان‌تتر

نیاز به توکن

هر سه منبع فقط price_toman دارند (بدون price_usdt/change_24h) — همان الگو، فقط source را عوض کنید:

کد نمونه (JavaScript)
// فرض: all = ادغام data همه صفحات /prices

const bonbast = all.filter(item => item.source === 'bonbast');
const arya = all.filter(item => item.source === 'arya');
const abantether = all.filter(item => item.source === 'abantether');

const usd = bonbast.find(item => item.symbol === 'USD');
const gold = arya.find(item => item.symbol === 'G18');
const btcToman = abantether.find(item => item.symbol === 'BTC');
نتیجه (خروجی واقعی)
// bonbast — USD
{
  "source": "bonbast",
  "symbol": "USD",
  "display_name": "دلار آمریکا (بن‌بست)",
  "icon": "https://price.aryagostaran.com/media/price-images/bonbast_usd.svg",
  "updated_at": "2026-07-15 14:55:35",
  "price_toman": 187700
}

// arya — طلای ۱۸ عیار
{
  "source": "arya",
  "symbol": "G18",
  "display_name": "طلای ۱۸ عیار (آریا)",
  "icon": "https://price.aryagostaran.com/media/price-images/arya_g18.svg",
  "updated_at": "2026-07-15 14:55:36",
  "price_toman": 18431000
}

// abantether — Bitcoin (به تومان، نه USDT)
{
  "source": "abantether",
  "symbol": "BTC",
  "display_name": "Bitcoin (آبان تتر)",
  "icon": "https://price.aryagostaran.com/media/price-images/gateio_btc.png",
  "updated_at": "2026-07-15 14:55:39",
  "price_toman": 12188683776
}
GET

/usdt-rate

نیاز به توکن

نرخ تبدیل USDT به تومان — اختیاری و جدا از لیست قیمت‌ها.

درخواست
curl -X GET \
  "https://price.aryagostaran.com/api/v1/usdt-rate" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
خروجی (نمونه واقعی)
{
  "success": true,
  "data": {
    "source": "gateio",
    "rate_toman": 178400,
    "rate_rial": 1784000,
    "fetched_at": "2026-07-15 14:55:52"
  }
}
GET

خطا — بدون توکن

نیاز به توکن

اگر توکن ارسال نشود، پاسخ 401 برمی‌گردد.

درخواست
curl -X GET \
  "https://price.aryagostaran.com/api/v1/prices"
خروجی — HTTP 401
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Valid API token required. Send header: Authorization: Bearer {token}"
  }
}