البدء
تقدم واجهة برمجة التطبيقات Finexly أسعار صرف فورية وتاريخية لأكثر من 170 عملة. البدء سهل:
- سجل للحصول على حساب مجاني
- احصل على مفتاح الوصول لواجهة برمجة التطبيقات من لوحة التحكم
- قم بإجراء أول طلب API الخاص بك
عنوان URL الأساسي
https://api.finexly.com/v1/
المصادقة
تتطلب جميع طلبات API المصادقة عبر رمز Bearer. قم بتضمين مفتاح API الخاص بك في ترويسة Authorization:
رأس التفويض (مطلوب)
Authorization: Bearer YOUR_API_KEY
تحديد المعدل: تحقق من رؤوس الاستجابة لاستخدامك الحالي:
X-RateLimit-Limit,
X-RateLimit-Used,
X-RateLimit-Units
نقاط نهاية API
/v1/currencies
الحصول على قائمة بجميع رموز العملات المدعومة.
المعلمات
| الاسم | النوع | مطلوب | الوصف |
|---|
مثال
GET https://api.finexly.com/v1/currencies
// استجابة
[
"AED",
"ANG",
"AUD",
"EUR",
"GBP",
"USD"
]
/v1/rate
الحصول على سعر الصرف لزوج عملات محدد.
المعلمات
| الاسم | النوع | مطلوب | الوصف |
|---|---|---|---|
| from | string | نعم | رمز العملة الأساسية (أحرف كبيرة) |
| to | string | نعم | رمز عملة التسعير (أحرف كبيرة) |
مثال
GET https://api.finexly.com/v1/rate?from=USD&to=EUR
// استجابة
{
"pair": "USD_EUR",
"rate": 0.9215
}
/v1/convert
الحصول على أسعار الصرف لعدة أزواج عملات في طلب واحد.
المعلمات
| الاسم | النوع | مطلوب | الوصف |
|---|---|---|---|
| q | string | نعم | أزواج مفصولة بفواصل بتنسيق BASE_QUOTE |
مثال
GET https://api.finexly.com/v1/convert?q=USD_EUR,USD_GBP
// استجابة
{
"USD_EUR": {
"rate": 0.9215
},
"USD_GBP": {
"rate": 0.7892
}
}
/v1/convert-amount
تحويل مبلغ محدد من عملة إلى أخرى.
المعلمات
| الاسم | النوع | مطلوب | الوصف |
|---|---|---|---|
| from | string | نعم | رمز العملة المصدر (أحرف كبيرة) |
| to | string | نعم | رمز العملة الهدف (أحرف كبيرة) |
| amount | number | نعم | المبلغ المراد تحويله |
مثال
GET https://api.finexly.com/v1/convert-amount?from=USD&to=EUR&amount=100
// استجابة
{
"pair": "USD_EUR",
"rate": 0.9215,
"amount": 100,
"result": 92.15
}
أمثلة التعليمات البرمجية
# Get single rate
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.finexly.com/v1/rate?from=USD&to=EUR"
# Get multiple rates
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.finexly.com/v1/convert?q=USD_EUR,USD_GBP,BTC_USD"
# Convert amount
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.finexly.com/v1/convert-amount?from=USD&to=EUR&amount=100"
<?php
$apiKey = 'YOUR_API_KEY';
// Using cURL
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.finexly.com/v1/rate?from=USD&to=EUR',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
],
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo "USD/EUR Rate: " . $data['rate'];
const apiKey = 'YOUR_API_KEY';
// Get single rate
const response = await fetch('https://api.finexly.com/v1/rate?from=USD&to=EUR', {
headers: {
'Authorization': `Bearer ${apiKey}`
}
});
const data = await response.json();
console.log(`USD/EUR Rate: ${data.rate}`);
// Convert amount
const convertResponse = await fetch(
'https://api.finexly.com/v1/convert-amount?from=USD&to=EUR&amount=100',
{ headers: { 'Authorization': `Bearer ${apiKey}` } }
);
const result = await convertResponse.json();
console.log(`100 USD = ${result.result} EUR`);
import requests
api_key = 'YOUR_API_KEY'
headers = {'Authorization': f'Bearer {api_key}'}
# Get single rate
response = requests.get(
'https://api.finexly.com/v1/rate',
params={'from': 'USD', 'to': 'EUR'},
headers=headers
)
data = response.json()
print(f"USD/EUR Rate: {data['rate']}")
# Convert amount
response = requests.get(
'https://api.finexly.com/v1/convert-amount',
params={'from': 'USD', 'to': 'EUR', 'amount': 100},
headers=headers
)
result = response.json()
print(f"100 USD = {result['result']} EUR")
رموز الأخطاء
| رمز | النوع | الوصف |
|---|---|---|
| 400 | BAD_REQUEST | معلمات طلب غير صالحة أو حقول مطلوبة مفقودة. |
| 401 | UNAUTHORIZED | رمز API مفقود أو غير صالح. |
| 403 | FORBIDDEN | تم رفض الوصول. قد يكون حسابك غير نشط. |
| 413 | PAYLOAD_TOO_LARGE | حجم الطلب يتجاوز الحد الأقصى المسموح به. |
| 429 | RATE_LIMIT_EXCEEDED | لقد تجاوزت حد معدل الطلبات. تحقق من رؤوس X-RateLimit. |
| 500 | INTERNAL_ERROR | حدث خطأ داخلي في الخادم. يرجى المحاولة مرة أخرى. |