راهنمای استفاده از سرویسهای API
🔗 مشخصات HuggingFace Space
Space URL: https://really-amin-datasourceforcryptocurrency.hf.space
WebSocket URL: wss://really-amin-datasourceforcryptocurrency.hf.space/ws
API Base: https://really-amin-datasourceforcryptocurrency.hf.space/api
📋 1. سرویسهای جفت ارز (Trading Pairs)
1.1 دریافت نرخ یک جفت ارز
Endpoint: GET /api/service/rate
مثال JavaScript:
// دریافت نرخ BTC/USDT
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate?pair=BTC/USDT'
);
const data = await response.json();
console.log(data);
// خروجی:
// {
// "data": {
// "pair": "BTC/USDT",
// "price": 50234.12,
// "quote": "USDT",
// "ts": "2025-01-15T12:00:00Z"
// },
// "meta": {
// "source": "hf",
// "generated_at": "2025-01-15T12:00:00Z",
// "cache_ttl_seconds": 10
// }
// }
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate"
params = {"pair": "BTC/USDT"}
response = requests.get(url, params=params)
data = response.json()
print(f"قیمت BTC/USDT: ${data['data']['price']}")
مثال cURL:
curl "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate?pair=BTC/USDT"
1.2 دریافت نرخ چند جفت ارز (Batch)
Endpoint: GET /api/service/rate/batch
مثال JavaScript:
const pairs = "BTC/USDT,ETH/USDT,BNB/USDT";
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate/batch?pairs=${pairs}`
);
const data = await response.json();
console.log(data.data); // آرایهای از نرخها
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/rate/batch"
params = {"pairs": "BTC/USDT,ETH/USDT,BNB/USDT"}
response = requests.get(url, params=params)
data = response.json()
for rate in data['data']:
print(f"{rate['pair']}: ${rate['price']}")
1.3 دریافت اطلاعات کامل یک جفت ارز
Endpoint: GET /api/service/pair/{pair}
مثال JavaScript:
const pair = "BTC-USDT"; // یا BTC/USDT
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/service/pair/${pair}`
);
const data = await response.json();
console.log(data);
1.4 دریافت دادههای OHLC (کندل)
Endpoint: GET /api/market/ohlc
مثال JavaScript:
const symbol = "BTC";
const interval = "1h"; // 1m, 5m, 15m, 1h, 4h, 1d
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/market/ohlc?symbol=${symbol}&interval=${interval}`
);
const data = await response.json();
console.log(data.data); // آرایهای از کندلها
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/market/ohlc"
params = {
"symbol": "BTC",
"interval": "1h"
}
response = requests.get(url, params=params)
data = response.json()
for candle in data['data']:
print(f"Open: {candle['open']}, High: {candle['high']}, Low: {candle['low']}, Close: {candle['close']}")
1.5 دریافت لیست تیکرها
Endpoint: GET /api/market/tickers
مثال JavaScript:
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/market/tickers?limit=100&sort=market_cap'
);
const data = await response.json();
console.log(data.data); // لیست 100 ارز برتر
📰 2. سرویسهای اخبار (News)
2.1 دریافت آخرین اخبار
Endpoint: GET /api/news/latest
مثال JavaScript:
const symbol = "BTC";
const limit = 10;
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/news/latest?symbol=${symbol}&limit=${limit}`
);
const data = await response.json();
console.log(data.data); // آرایهای از اخبار
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/news/latest"
params = {
"symbol": "BTC",
"limit": 10
}
response = requests.get(url, params=params)
data = response.json()
for article in data['data']:
print(f"Title: {article['title']}")
print(f"Source: {article['source']}")
print(f"URL: {article['url']}\n")
2.2 خلاصهسازی اخبار با AI
Endpoint: POST /api/news/summarize
مثال JavaScript:
const articleText = "Bitcoin reached new all-time high..."; // متن خبر
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/news/summarize',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: articleText
})
}
);
const data = await response.json();
console.log(data.summary); // خلاصه تولید شده
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/news/summarize"
payload = {
"text": "Bitcoin reached new all-time high..."
}
response = requests.post(url, json=payload)
data = response.json()
print(f"خلاصه: {data['summary']}")
2.3 دریافت تیترهای مهم
Endpoint: GET /api/news/headlines
مثال JavaScript:
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/news/headlines?limit=10'
);
const data = await response.json();
console.log(data.data);
🐋 3. سرویسهای نهنگها (Whale Tracking)
3.1 دریافت تراکنشهای نهنگها
Endpoint: GET /api/service/whales
مثال JavaScript:
const chain = "ethereum";
const minAmount = 1000000; // حداقل 1 میلیون دلار
const limit = 50;
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/service/whales?chain=${chain}&min_amount_usd=${minAmount}&limit=${limit}`
);
const data = await response.json();
console.log(data.data); // لیست تراکنشهای نهنگ
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/service/whales"
params = {
"chain": "ethereum",
"min_amount_usd": 1000000,
"limit": 50
}
response = requests.get(url, params=params)
data = response.json()
for tx in data['data']:
print(f"از: {tx['from']}")
print(f"به: {tx['to']}")
print(f"مقدار: ${tx['amount_usd']:,.2f} USD")
print(f"زمان: {tx['ts']}\n")
3.2 دریافت آمار نهنگها
Endpoint: GET /api/whales/stats
مثال JavaScript:
const hours = 24; // آمار 24 ساعت گذشته
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/whales/stats?hours=${hours}`
);
const data = await response.json();
console.log(data);
// خروجی شامل: تعداد تراکنشها، حجم کل، میانگین و...
💭 4. سرویسهای تحلیل احساسات (Sentiment)
4.1 تحلیل احساسات برای یک ارز
Endpoint: GET /api/service/sentiment
مثال JavaScript:
const symbol = "BTC";
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/service/sentiment?symbol=${symbol}`
);
const data = await response.json();
console.log(data);
// خروجی: score (امتیاز), label (مثبت/منفی/خنثی)
4.2 تحلیل احساسات متن
Endpoint: POST /api/sentiment/analyze
مثال JavaScript:
const text = "Bitcoin is going to the moon! 🚀";
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/sentiment/analyze',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: text
})
}
);
const data = await response.json();
console.log(`احساسات: ${data.label}, امتیاز: ${data.score}`);
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/sentiment/analyze"
payload = {
"text": "Bitcoin is going to the moon! 🚀"
}
response = requests.post(url, json=payload)
data = response.json()
print(f"احساسات: {data['label']}")
print(f"امتیاز: {data['score']}")
4.3 شاخص ترس و طمع (Fear & Greed)
Endpoint: GET /api/v1/alternative/fng
مثال JavaScript:
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/v1/alternative/fng'
);
const data = await response.json();
console.log(`شاخص ترس و طمع: ${data.value} (${data.classification})`);
⛓️ 5. سرویسهای بلاکچین (Blockchain)
5.1 دریافت تراکنشهای یک آدرس
Endpoint: GET /api/service/onchain
مثال JavaScript:
const address = "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb";
const chain = "ethereum";
const limit = 50;
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/service/onchain?address=${address}&chain=${chain}&limit=${limit}`
);
const data = await response.json();
console.log(data.data); // لیست تراکنشها
5.2 دریافت قیمت گس
Endpoint: GET /api/blockchain/gas
مثال JavaScript:
const chain = "ethereum";
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/blockchain/gas?chain=${chain}`
);
const data = await response.json();
console.log(data);
// خروجی: slow, standard, fast (در gwei)
مثال Python:
import requests
url = "https://really-amin-datasourceforcryptocurrency.hf.space/api/blockchain/gas"
params = {"chain": "ethereum"}
response = requests.get(url, params=params)
data = response.json()
print(f"Slow: {data['slow']} gwei")
print(f"Standard: {data['standard']} gwei")
print(f"Fast: {data['fast']} gwei")
5.3 دریافت تراکنشهای ETH
Endpoint: GET /api/v1/blockchain/eth/transactions
مثال JavaScript:
const address = "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb";
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/v1/blockchain/eth/transactions?address=${address}`
);
const data = await response.json();
console.log(data.data);
5.4 دریافت موجودی ETH
Endpoint: GET /api/v1/blockchain/eth/balance
مثال JavaScript:
const address = "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb";
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/v1/blockchain/eth/balance?address=${address}`
);
const data = await response.json();
console.log(`موجودی: ${data.balance} ETH`);
🤖 6. سرویسهای AI و مدلها
6.1 پیشبینی با مدل AI
Endpoint: POST /api/models/{model_key}/predict
مثال JavaScript:
const modelKey = "cryptobert_elkulako";
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/models/${modelKey}/predict`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
input: "Bitcoin price analysis",
context: {}
})
}
);
const data = await response.json();
console.log(data.prediction);
6.2 دریافت لیست مدلهای موجود
Endpoint: GET /api/models/list
مثال JavaScript:
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/models/list'
);
const data = await response.json();
console.log(data.models); // لیست مدلهای موجود
📊 7. سرویسهای عمومی
7.1 وضعیت کلی بازار
Endpoint: GET /api/service/market-status
مثال JavaScript:
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/service/market-status'
);
const data = await response.json();
console.log(data);
// خروجی: حجم کل بازار، تعداد ارزها، تغییرات و...
7.2 10 ارز برتر
Endpoint: GET /api/service/top
مثال JavaScript:
const n = 10; // یا 50
const response = await fetch(
`https://really-amin-datasourceforcryptocurrency.hf.space/api/service/top?n=${n}`
);
const data = await response.json();
console.log(data.data); // لیست 10 ارز برتر
7.3 سلامت سیستم
Endpoint: GET /api/health
مثال JavaScript:
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/health'
);
const data = await response.json();
console.log(data.status); // "healthy" یا "degraded"
7.4 سرویس عمومی (Generic Query)
Endpoint: POST /api/service/query
مثال JavaScript:
const response = await fetch(
'https://really-amin-datasourceforcryptocurrency.hf.space/api/service/query',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: "rate", // یا: history, sentiment, econ, whales, onchain, pair
payload: {
pair: "BTC/USDT"
},
options: {
prefer_hf: true,
persist: true
}
})
}
);
const data = await response.json();
console.log(data);
🔌 8. WebSocket (دادههای Real-time)
8.1 اتصال WebSocket
مثال JavaScript:
const ws = new WebSocket('wss://really-amin-datasourceforcryptocurrency.hf.space/ws');
ws.onopen = () => {
console.log('متصل شد!');
// Subscribe به دادههای بازار
ws.send(JSON.stringify({
action: "subscribe",
service: "market_data",
symbols: ["BTC", "ETH", "BNB"]
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('داده جدید:', data);
// مثال خروجی:
// {
// "type": "update",
// "service": "market_data",
// "symbol": "BTC",
// "data": {
// "price": 50234.12,
// "volume": 1234567.89,
// "change_24h": 2.5
// },
// "timestamp": "2025-01-15T12:00:00Z"
// }
};
ws.onerror = (error) => {
console.error('خطا:', error);
};
ws.onclose = () => {
console.log('اتصال بسته شد');
};
8.2 Subscribe به اخبار
مثال JavaScript:
const ws = new WebSocket('wss://really-amin-datasourceforcryptocurrency.hf.space/ws');
ws.onopen = () => {
ws.send(JSON.stringify({
action: "subscribe",
service: "news",
filters: {
symbols: ["BTC", "ETH"]
}
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === "news") {
console.log('خبر جدید:', data.article);
}
};
8.3 Subscribe به نهنگها
مثال JavaScript:
const ws = new WebSocket('wss://really-amin-datasourceforcryptocurrency.hf.space/ws');
ws.onopen = () => {
ws.send(JSON.stringify({
action: "subscribe",
service: "whale_tracking",
filters: {
chain: "ethereum",
min_amount_usd: 1000000
}
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === "whale_transaction") {
console.log('تراکنش نهنگ:', data.transaction);
}
};
📝 نکات مهم
- Base URL: همیشه از
https://really-amin-datasourceforcryptocurrency.hf.spaceاستفاده کنید - WebSocket: از
wss://برای اتصال امن استفاده کنید - Rate Limiting: درخواستها محدود هستند (حدود 1200 در دقیقه)
- Cache: پاسخها cache میشوند (TTL در فیلد
meta.cache_ttl_seconds) - Error Handling: همیشه خطاها را handle کنید
🔍 مثال کامل (Full Example)
مثال JavaScript کامل:
class CryptoAPIClient {
constructor() {
this.baseURL = 'https://really-amin-datasourceforcryptocurrency.hf.space';
}
async getRate(pair) {
const response = await fetch(`${this.baseURL}/api/service/rate?pair=${pair}`);
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
return await response.json();
}
async getNews(symbol = 'BTC', limit = 10) {
const response = await fetch(
`${this.baseURL}/api/news/latest?symbol=${symbol}&limit=${limit}`
);
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
return await response.json();
}
async getWhales(chain = 'ethereum', minAmount = 1000000) {
const response = await fetch(
`${this.baseURL}/api/service/whales?chain=${chain}&min_amount_usd=${minAmount}`
);
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
return await response.json();
}
async analyzeSentiment(text) {
const response = await fetch(
`${this.baseURL}/api/sentiment/analyze`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text })
}
);
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
return await response.json();
}
}
// استفاده:
const client = new CryptoAPIClient();
// دریافت نرخ
const rate = await client.getRate('BTC/USDT');
console.log(`قیمت BTC: $${rate.data.price}`);
// دریافت اخبار
const news = await client.getNews('BTC', 5);
news.data.forEach(article => {
console.log(`- ${article.title}`);
});
// دریافت نهنگها
const whales = await client.getWhales('ethereum', 1000000);
console.log(`تعداد تراکنشهای نهنگ: ${whales.data.length}`);
🐍 مثال کامل Python
import requests
from typing import Optional, Dict, Any
class CryptoAPIClient:
def __init__(self):
self.base_url = "https://really-amin-datasourceforcryptocurrency.hf.space"
def get_rate(self, pair: str) -> Dict[str, Any]:
"""دریافت نرخ یک جفت ارز"""
url = f"{self.base_url}/api/service/rate"
params = {"pair": pair}
response = requests.get(url, params=params)
response.raise_for_status()
return response.json()
def get_news(self, symbol: str = "BTC", limit: int = 10) -> Dict[str, Any]:
"""دریافت اخبار"""
url = f"{self.base_url}/api/news/latest"
params = {"symbol": symbol, "limit": limit}
response = requests.get(url, params=params)
response.raise_for_status()
return response.json()
def get_whales(self, chain: str = "ethereum", min_amount: int = 1000000) -> Dict[str, Any]:
"""دریافت تراکنشهای نهنگها"""
url = f"{self.base_url}/api/service/whales"
params = {
"chain": chain,
"min_amount_usd": min_amount
}
response = requests.get(url, params=params)
response.raise_for_status()
return response.json()
def analyze_sentiment(self, text: str) -> Dict[str, Any]:
"""تحلیل احساسات"""
url = f"{self.base_url}/api/sentiment/analyze"
payload = {"text": text}
response = requests.post(url, json=payload)
response.raise_for_status()
return response.json()
# استفاده:
client = CryptoAPIClient()
# دریافت نرخ
rate = client.get_rate("BTC/USDT")
print(f"قیمت BTC: ${rate['data']['price']}")
# دریافت اخبار
news = client.get_news("BTC", 5)
for article in news['data']:
print(f"- {article['title']}")
# دریافت نهنگها
whales = client.get_whales("ethereum", 1000000)
print(f"تعداد تراکنشهای نهنگ: {len(whales['data'])}")
تمام این سرویسها از HuggingFace Space شما سرو میشوند و نیازی به اتصال مستقیم به APIهای خارجی نیست! 🚀