مستندات API قیمت آهن

مستندات فنی API قیمت آهن

با استفاده از این سرویس، می‌توانید به صورت لحظه‌ای و برنامه‌نویسی‌شده، آخرین قیمت انواع سایزها و مشخصات مختلف مقاطع فولادی، لوله، ورق و سایر آهن‌آلات را دریافت کنید.

💡 نکته مهم: با هر بار فراخوانی این API برای یک دسته‌بندی خاص، شما لیست کامل تمامی سایزهای موجود در آن دسته را به همراه جزئیات قیمت هر سایز به صورت یکجا دریافت خواهید کرد و نیازی به درخواست جداگانه برای هر سایز نیست.

آدرس درخواست (Endpoint)

GET https://irankalanews.ir/ahan/?id=PRODUCT_ID&auth=YOUR_API_KEY
⚠️ نکته امنیتی: ارسال هدر User-Agent معتبر در درخواست‌های شما الزامی است. درخواست‌های فاقد User-Agent به صورت خودکار مسدود می‌شوند.

پارامترهای درخواست

نام پارامتر نوع الزامی توضیحات
id string بله شناسه دسته‌بندی محصول (مثال: looleh-steel). لیست کامل در پایین صفحه موجود است.
auth string خیر* کلید API اختصاصی شما.
رایگان برای دسته‌های رایگان الزامی نیست، اما برای داده‌های پریمیوم الزامی است.

ساختار پاسخ (Response)

در صورت موفقیت‌آمیز بودن درخواست، سرور یک شیء JSON باز می‌گرداند که آرایه data آن شامل لیست تمام سایزهای محصول به همراه اطلاعات زیر است:

فیلد (داخل آرایه data) نوع توضیحات دقیق
id string شناسه منحصر‌به‌فرد هر سایز (مثال: looleh-steel_3734413042). برای شناسایی دقیق همان سایز در سیستم خود از این مقدار استفاده کنید.
نام string نام دقیق محصول به همراه سایز، رده و مشخصات فنی (مثال: لوله استنلس استیل صنعتی 316 2 اینچ رده 40)
قیمت string آخرین قیمت ثبت شده برای آن سایز خاص (به تومان)
تاریخ آخرین قیمت string تاریخ شمسی دقیق بروزرسانی قیمت (مثال: 1403-05-10)
24h string میزان تغییر قیمت در ۲۴ ساعت گذشته (نشان‌دهنده نوسان اخیر بازار برای آن سایز خاص)
💡 نکته کلیدی درباره شناسه (ID) سایزها: همان‌طور که در نمونه JSON زیر مشاهده می‌کنید، هر ردیف (سایز خاص) دارای یک فیلد id منحصر‌به‌فرد است. شما می‌توانید در کد نویسی خود، آرایه دریافتی را پیمایش کرده و با چک کردن این id، قیمت و مشخصات دقیق همان سایز خاص را استخراج و در دیتابیس یا سیستم خود مدیریت کنید.

نمونه پاسخ JSON:

{
  "data": [
    {
      "id": "looleh-steel_3734413042",
      "نام": "لوله استنلس استیل صنعتی 316 2 1/2 اینچ رده 40",
      "قیمت": "15454545",
      "تاریخ آخرین قیمت": "1403-05-10",
      "24h": "0"
    },
    {
      "id": "looleh-steel_1922934812",
      "نام": "لوله استنلس استیل صنعتی 316 8 اینچ رده 10",
      "قیمت": "15909090",
      "تاریخ آخرین قیمت": "1403-05-10",
      "24h": "+150000"
    }
  ],
  "account": "paid",
  "status": "ok"
}

نمونه کد درخواست

در این مثال‌ها، نحوه دریافت لیست سایزها و استخراج اطلاعات یک سایز خاص با استفاده از id منحصر‌به‌فرد آن نشان داده شده است.

<?php
$productId = 'looleh-steel';
$apiKey    = 'YOUR_API_KEY_HERE';

$url = "https://irankalanews.ir/ahan/?id={$productId}&auth={$apiKey}";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'MyApp/1.0');

$response = curl_exec($ch);

if (curl_errno($ch)) {
    die('cURL Error: ' . curl_error($ch));
}

curl_close($ch);

$data = json_decode($response, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    die('Invalid JSON: ' . json_last_error_msg());
}

if (!isset($data['status']) || $data['status'] !== 'ok') {
    die('API Error: ' . ($data['message'] ?? 'Unknown error'));
}

$targetId = 'looleh-steel_3734413042';
$foundItem = null;

foreach ($data['data'] as $item) {
    if (($item['id'] ?? '') === $targetId) {
        $foundItem = $item;
        break;
    }
}

if ($foundItem === null) {
    die('سایز مورد نظر یافت نشد.');
}

echo "سایز: " . ($foundItem['نام'] ?? '-') . PHP_EOL;
echo "قیمت: " . ($foundItem['قیمت'] ?? '-') . " تومان" . PHP_EOL;
echo "تغییر ۲۴ ساعته: " . ($foundItem['24h'] ?? '-') . PHP_EOL;
echo "تاریخ بروزرسانی: " . ($foundItem['تاریخ اخرین قیمت'] ?? '-') . PHP_EOL;
?>
const productId = 'looleh-steel';
const apiKey = 'YOUR_API_KEY_HERE';

const url = `https://irankalanews.ir/ahan/?id=${productId}&auth=${apiKey}`;

async function main() {
    try {
        const response = await fetch(url, {
            headers: {
                'User-Agent': 'MyApp/1.0'
            }
        });

        const data = await response.json();

        if (data.status !== 'ok') {
            throw new Error(data.message || 'Unknown error');
        }

        const targetId = 'looleh-steel_3734413042';
        const item = data.data.find(x => x.id === targetId);

        if (!item) {
            console.log('سایز مورد نظر یافت نشد.');
            return;
        }

        console.log('سایز:', item['نام']);
        console.log('قیمت:', item['قیمت'], 'تومان');
        console.log('تغییر ۲۴ ساعته:', item['24h']);
        console.log('تاریخ بروزرسانی:', item['تاریخ اخرین قیمت']);

    } catch (err) {
        console.error(err.message);
    }
}

main();
curl -L \
  -A "MyApp/1.0" \
  "https://irankalanews.ir/ahan/?id=looleh-steel&auth=YOUR_API_KEY_HERE"
import requests
import json
import sys

product_id = 'looleh-steel'
api_key = 'YOUR_API_KEY_HERE'

url = f"https://irankalanews.ir/ahan/?id={product_id}&auth={api_key}"

headers = {
    'User-Agent': 'MyApp/1.0'
}

try:
    response = requests.get(url, headers=headers, timeout=10)
    response.raise_for_status()
    
    data = response.json()
    
except requests.exceptions.RequestException as e:
    print(f"Request Error: {e}")
    sys.exit(1)
except json.JSONDecodeError as e:
    print(f"Invalid JSON: {e}")
    sys.exit(1)

if not data.get('status') or data['status'] != 'ok':
    error_msg = data.get('message', 'Unknown error')
    print(f"API Error: {error_msg}")
    sys.exit(1)

target_id = 'looleh-steel_3734413042'
found_item = None

for item in data.get('data', []):
    if item.get('id') == target_id:
        found_item = item
        break

if found_item is None:
    print('سایز مورد نظر یافت نشد.')
    sys.exit(1)

print(f"سایز: {found_item.get('نام', '-')}")
print(f"قیمت: {found_item.get('قیمت', '-')} تومان")
print(f"تغییر ۲۴ ساعته: {found_item.get('24h', '-')}")
print(f"تاریخ بروزرسانی: {found_item.get('تاریخ اخرین قیمت', '-')}")

لیست شناسه‌های محصولات (Product IDs)

برای دریافت داده‌های هر دسته، مقدار ستون شناسه را در پارامتر id قرار دهید. دسته‌هایی که برچسب رایگان دارند، بدون نیاز به پارامتر auth قابل دسترسی هستند.

نام دسته‌بندی شناسه (Product Code)
بست داربست رایگانbast-darbast
فلنج گلودار رایگانfelenj-geludar
کپ رایگانgap
گل میخ عرشه فولادی رایگانgol-mikh-arsheh-fooladi
گریتینگ رایگانgriting
لوله گوشتدار رایگانlooleh-gooshtdar
لوله استیل صنایع غذایی رایگانlooleh-steel-sanaye-ghazayi
لوله استیل رایگانlooleh-steel
مش رایگانmesh
میلگرد بستر رایگانmilgerd-bastar
میلگرد حرارتی رایگانmilgerd-hararati
نبشی رایگانnabshi
پروفیل کنگره رایگانprofil-kongereh
پروفیل استیل رایگانprofil-steel
پروفیل زد رایگانprofil-z
ریل آسانسوری رایگانrail-asansor
ریل جرثقیلی رایگانrail-jaresaghil
ریل معدنی رایگانrail-madani
صفحه سنگ رایگانsafhe-sang
ساندویچ پانل رایگانsandwich-patel
سردنده رایگانsardandeh
سپری آهن رایگانsepari-ahan
سه راه رایگانserah
شمش قلع رایگانshemsh-ghal
سیم آرماتوربندی رایگانsim-armatorbandi
سیم خاردار سوزنی رایگانsim-khardar-soozani
سیم خاردار تبری رایگانsim-khardar-tabari
سیم خاردار رایگانsim-khardar
سیم مفتول رایگانsim-maftool
سیم جوش رایگانsimjoosh
تبدیل رایگانtabdil
تیرآهن لانه زنبوری رایگانtirahan-laneh-zanboori
توری مرغی 120 رایگانtoori-morghi-pressi
ورق آلوزینک رایگانvaragh-aluzink
ورق گالوالوم رایگانvaragh-galvalum
ورق کرکره رنگی رایگانvaragh-kerkereh-rangi
ورق کرکره رایگانvaragh-kerkereh
ورق سربی رایگانvaragh-sorbi
ورق استیل رایگانvaragh-steel
وال پست رایگانwal-post
عرشه فولادیarsheh-fooladi
بوشنbooshen
چهار پهلو آهنیchahar-pahloo-ahani
الکترودelectrod
فنسfence
لرزه گیرlarzeh-gir
لوله APIlooleh-api
لوله داربستlooleh-darbast
لوله درزدارlooleh-darzdar
لوله گالوانیزه گلخانهlooleh-galvazizeh-golkhaneh
لوله گالوانیزهlooleh-garvanizeh
لوله گازlooleh-gaz
لوله جدار چاهlooleh-jedar-chah
لوله مانیسمانlooleh-manisman
لوله مسیlooleh-mesi
لوله صنعتیlooleh-sanati
لوله اسپیرالlooleh-spiral
لوله استیل دکوراتیوlooleh-steel-decorative
لوله استیل صنعتیlooleh-steel-sanati
لوله تست آبlooleh-test-ab
میلگرد آجدارmilgerd-ajdar
میلگرد سادهmilgerd-sadeh
میلگرد st37milgerd-st37
میلگرد استیلmilgerd-steel
ناودانیnavdooni
پروفیل آلومینیومprofil-alminiyom
پروفیل گالوانیزهprofil-galvanizeh
پروفیل سبکprofil-sabok
پروفیل ساختمانیprofil-sakhtemani
پروفیل صنعتیprofil-sanati
رابیتسrabits
ریل قطارrail-ghatar
شفت آهنیshafte-ahani
تخته روسیtakhteh-roosi
تسمه آهنیtasmeh-ahani
تسمه مسیtasmeh-mesi
تیرآهن هاشtirahan-hush
تیرآهنtirahan
توری حصاریtoori-hesari
توری پرسیtoori-pressi
ورق آلومینیوم آجدارvaragh-alminiyom-ajdar
ورق آلومینیومvaragh-alminiyom
ورق گالوانیزهvaragh-galvanizeh
ورق قلع اندودvaragh-ghalandood
ورق مسیvaragh-mesi
ورق رنگی الکترواستاتیکvaragh-rang-electrostatic
ورق رنگیvaragh-rangi
ورق روغنیvaragh-roghani
ورق استیل دکوراتیوvaragh-steel-decorative
ورق استیل صنعتیvaragh-steel-sanati
زانوzanoo
ورق اسید شوئیasidshooyi
ورق سیاهvaragh-siyah

کدهای خطا و وضعیت‌ها

وضعیت (status) حساب (account) توضیحات
ok paid / free درخواست موفقیت‌آمیز بود و داده‌ها (شامل لیست سایزها و قیمت‌ها) در آرایه data قرار دارند.
failed unauthorized کلید API نامعتبر است یا ارسال نشده، در حالی که محصول درخواستی پولی است.
failed expired اشتراک شما منقضی شده است و دسترسی به داده‌های پولی قطع شده است.
failed blocked آدرس IP شما به دلیل نقض قوانین یا درخواست‌های مشکوک مسدود شده است.
failed — شناسه محصول (id) اشتباه است یا فایل داده‌ای برای آن یافت نشد.