پرش به محتوای اصلی
REST API · JSON

API نمایندگی دامنهٔ ملی

ثبت، تمدید، انتقال و مدیریت دامنه‌های ir. را از سامانهٔ خودتان انجام دهید. کلید دسترسی را در پنل نمایندگی می‌سازید، آن را به IP سرورهایتان محدود می‌کنید و همهٔ متدها را با کالکشن آمادهٔ Postman امتحان می‌کنید.

  • احراز هویت با Bearer
  • محدودیت IP برای هر کلید
  • ۱۶ متد
اطلاعات اتصالآدرس پایهٔ API
احراز هویت
Bearer token
قالب داده
JSON
کلید
در پنل نمایندگی
محدودیت IP
اختیاری، هر کلید جدا
https://my.onlineserver.ir/modules/addons/IrnicReseller/api

از سفارش تا اولین درخواست

چهار قدم تا اینکه سامانهٔ شما خودش دامنه ثبت و تمدید کند.

  1. سفارش نمایندگی

    سرویس نمایندگی دامنهٔ ملی را رایگان سفارش دهید. پس از فعال شدن، پنل نمایندگی در ناحیهٔ کاربری‌تان باز می‌شود.

  2. ساخت کلید دسترسی

    در ناحیهٔ کاربری سرویس نمایندگی را باز کنید و در منوی «کلیدهای دسترسی» روی «ایجاد کلید جدید» بزنید. کلید فقط همان یک بار نمایش داده می‌شود؛ همان لحظه آن را جای امنی ذخیره کنید.

  3. محدود کردن به IP

    در فرم کلید، IP سرورهایی را که به API وصل می‌شوند بنویسید؛ هر خط یک IP. اگر این کادر خالی بماند، کلید از هر IP پذیرفته می‌شود.

  4. اتصال در Postman

    کالکشن را دانلود کنید، در Postman با Import باز کنید و متغیر bearerToken را برابر کلید بگذارید. همهٔ متدها با نمونهٔ درخواست آماده‌اند.

کلیدها را در ناحیهٔ کاربری › سرویس‌های من، داخل سرویس نمایندگی دامنهٔ ملی و منوی «کلیدهای دسترسی» می‌سازید.

احراز هویت و پاسخ خطا

هر درخواست باید کلید دسترسی را در هدر Authorization با پیشوند Bearer داشته باشد. بدنهٔ درخواست‌های POST و همهٔ پاسخ‌ها JSON است.

  • کلید فقط یک بار نمایش داده می‌شود. اگر گم شد، در صفحهٔ ویرایش کلید «تولید مجدد» را بزنید.
  • اگر برای کلید IP مجاز تعریف کنید، درخواست از هر IP دیگری رد می‌شود؛ حتی اگر کلید درست باشد.
  • کلید را فقط سمت سرور نگه دارید؛ هرگز در کد مرورگر، اپلیکیشن موبایل یا تیکت پشتیبانی ننویسید.
نمونهٔ درخواست
curl -X GET "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/account" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
پاسخ ۴۰۱ — کلید نادرست یا IP غیرمجاز
{
  "code": "unauthorized",
  "message": "not authenticated",
  "details": []
}

فهرست متدها

آدرس هر متد را به انتهای آدرس پایه اضافه کنید. نمونهٔ کامل هر درخواست در کالکشن Postman هم هست.

حساب

مشخصات نماینده‌ای که کلید به او تعلق دارد.

اطلاعات حساب

GET/account

مشخصات حسابی را که کلید به آن تعلق دارد برمی‌گرداند. ساده‌ترین درخواست برای آزمودن کلید است: اگر پاسخ ۴۰۱ گرفتید، مشکل از کلید یا IP است، نه از متد.

نمونهٔ درخواست و پاسخ
cURL
curl -X GET "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/account" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
پاسخ ۴۰۱
{
    "code": "unauthorized",
    "message": "not authenticated",
    "details": []
}

اعتبار

سابقهٔ کسر و افزایش اعتبار نمایندگی.

سابقهٔ اعتبار

GET/credits/history

تراکنش‌های اعتبار نمایندگی را صفحه‌به‌صفحه برمی‌گرداند: کسر هزینهٔ ثبت و تمدید و انتقال، بازگشت هزینهٔ عملیات ناموفق و افزایش اعتبار با پرداخت فاکتور.

پارامترهای سابقهٔ اعتبار
پارامترمحلتوضیح
pageکوئریشمارهٔ صفحه
domain_idکوئریفقط تراکنش‌های یک دامنه (شناسهٔ داخلی دامنه)
start_dateکوئریتاریخ شروع، میلادی و به شکل YYYY-MM-DD
end_dateکوئریتاریخ پایان، میلادی؛ اگر خالی بماند تا امروز حساب می‌شود
نمونهٔ درخواست
cURL
curl -X GET "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/credits/history?page=1" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

دامنه‌ها

بررسی، ثبت، تمدید، انتقال و مدیریت دامنه‌های ir.

فهرست دامنه‌ها

GET/domains

همهٔ دامنه‌های ثبت‌شده زیر نمایندگی شما را برمی‌گرداند. با پارامترها می‌توانید بر اساس نام یا وضعیت فیلتر کنید.

پارامترهای فهرست دامنه‌ها
پارامترمحلتوضیح
pageکوئریشمارهٔ صفحه
nameکوئریجست‌وجو در نام دامنه
statuses[]کوئریوضعیت دامنه؛ یکی از active، inactive، refunded، pending_registration یا pending_renew. برای چند وضعیت، پارامتر را تکرار کنید.
liveکوئریبا مقدار 1، در صورت امکان اطلاعات زنده از ایرنیک خوانده می‌شود
نمونهٔ درخواست
cURL
curl -X GET "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains?page=1&statuses[]=active&live=0" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

اطلاعات یک دامنه

GET/domains/:id

جزئیات یک دامنه را با شناسهٔ داخلی آن برمی‌گرداند. شناسه را از پاسخ «فهرست دامنه‌ها» بردارید.

پارامترهای اطلاعات یک دامنه
پارامترمحلتوضیح
idمسیرشناسهٔ داخلی دامنه در پنل نمایندگی
نمونهٔ درخواست
cURL
curl -X GET "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/3" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

بررسی آزاد بودن دامنه

POST/domains/check

آزاد بودن نام را بررسی می‌کند. اگر دامنه قابل ثبت نباشد، دلیلش هم در پاسخ می‌آید.

پارامترهای بررسی آزاد بودن دامنه
پارامترمحلتوضیح
nameبدنهنام کامل دامنه، مثل example.ir
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/check" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "name": "example.ir" }'
بدنهٔ JSON
{
    "name": "example.ir"
}

ثبت دامنه

POST/domains

دامنه را به نام شناسهٔ دارنده ثبت می‌کند و هزینه‌اش را از اعتبار نمایندگی کم می‌کند. پیش از ثبت، اعتبار کافی داشته باشید.

پارامترهای ثبت دامنه
پارامترمحلتوضیح
nameبدنهنام کامل دامنه
periodبدنهمدت ثبت به سال؛ ۱ یا ۵
contactsبدنهشناسه‌های ایرنیک برای چهار نقش holder (دارنده)، admin (مدیر)، tech (فنی) و bill (مالی)
nameserversبدنهفهرست نام‌سرورها؛ ips فقط وقتی لازم است که نام‌سرور زیرمجموعهٔ همان دامنه باشد، وگرنه آرایهٔ خالی بفرستید
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "name": "example.ir", "period": 1, "contacts": { "holder": "ab1234-irnic", "admin": "ab1234-irnic", "tech": "ab1234-irnic", "bill": "ab1234-irnic" }, "nameservers": [ {"ns": "ns1.example.ir", "ips": []}, {"ns": "ns2.example.ir", "ips": []}, {"ns": "ns3.example.ir", "ips": []}, {"ns": "ns4.example.ir", "ips": []} ] }'
بدنهٔ JSON
{
    "name": "example.ir",
    "period": 1,
    "contacts": {
        "holder": "ab1234-irnic",
        "admin": "ab1234-irnic",
        "tech": "ab1234-irnic",
        "bill": "ab1234-irnic"
    },
    "nameservers": [
        {"ns": "ns1.example.ir", "ips": []},
        {"ns": "ns2.example.ir", "ips": []},
        {"ns": "ns3.example.ir", "ips": []},
        {"ns": "ns4.example.ir", "ips": []}
    ]
}

پیش‌بررسی تمدید

POST/domains/renewalInfo

پیش از تمدید، شرایط دامنه را بررسی می‌کند و آنچه برای تمدید لازم است برمی‌گرداند؛ مثلاً اینکه دامنه قفل است یا نه. پیش از «تمدید دامنه» صدا بزنید تا خطای قابل پیش‌بینی نگیرید.

پارامترهای پیش‌بررسی تمدید
پارامترمحلتوضیح
nameبدنهنام کامل دامنه
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/renewalInfo" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "name": "example.ir" }'
بدنهٔ JSON
{
    "name": "example.ir"
}

تمدید دامنه

POST/domains/renew

دامنه را تمدید می‌کند و هزینه را از اعتبار کم می‌کند. دامنه لازم نیست در فهرست شما باشد؛ با نام هم تمدید می‌شود.

پارامترهای تمدید دامنه
پارامترمحلتوضیح
nameبدنهنام کامل دامنه
periodبدنهمدت تمدید به سال؛ ۱ یا ۵
unlockبدنهاگر دامنه به‌خاطر گذشتن مهلت تمدید قفل شده باشد، با true قفل باز و دامنه تمدید می‌شود. این حالت جریمه دارد.
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/renew" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "name": "example.ir", "period": 1, "unlock": false }'
بدنهٔ JSON
{
    "name": "example.ir",
    "period": 1,
    "unlock": false
}

درخواست کد انتقال

POST/domains/:id/pinCode

کد انتقال دامنه را برای ایمیل دارندهٔ فعلی می‌فرستد. بدنهٔ درخواست لازم نیست؛ دامنه با شناسه‌اش در مسیر مشخص می‌شود.

پارامترهای درخواست کد انتقال
پارامترمحلتوضیح
idمسیرشناسهٔ داخلی دامنه
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/3/pinCode" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

پیش‌بررسی انتقال

POST/domains/transferInfo

شرایط انتقال دامنه به شناسهٔ دارندهٔ جدید را بررسی می‌کند و اطلاعات لازم را برمی‌گرداند. هزینه‌ای کسر نمی‌شود.

پارامترهای پیش‌بررسی انتقال
پارامترمحلتوضیح
nameبدنهنام کامل دامنه
holderبدنهشناسهٔ ایرنیک دارندهٔ جدید
transfer_pin_codeبدنهکد انتقالی که برای دارندهٔ فعلی ایمیل شده است
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/transferInfo" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "name": "example.ir", "holder": "ab1234-irnic", "transfer_pin_code": "abcd88" }'
بدنهٔ JSON
{
    "name": "example.ir",
    "holder": "ab1234-irnic",
    "transfer_pin_code": "abcd88"
}

پرداخت و انتقال دامنه

POST/domains/transfer

هزینهٔ انتقال را از اعتبار کم می‌کند و دارندهٔ دامنه را به شناسهٔ جدید تغییر می‌دهد (تغییر مالکیت).

پارامترهای پرداخت و انتقال دامنه
پارامترمحلتوضیح
nameبدنهنام کامل دامنه
holderبدنهشناسهٔ ایرنیک دارندهٔ جدید
transfer_pin_codeبدنهکد انتقالی که برای دارندهٔ فعلی ایمیل شده است
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/transfer" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "name": "example.ir", "holder": "ab1234-irnic", "transfer_pin_code": "abcd88" }'
بدنهٔ JSON
{
    "name": "example.ir",
    "holder": "ab1234-irnic",
    "transfer_pin_code": "abcd88"
}

قفل انتقال دامنه

POST/domains/:id/lock

دامنه را برای انتقال قفل می‌کند تا کد انتقالی که پیش‌تر صادر شده دیگر کار نکند. بدنهٔ درخواست لازم نیست.

پارامترهای قفل انتقال دامنه
پارامترمحلتوضیح
idمسیرشناسهٔ داخلی دامنه
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/1/lock" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

تغییر شناسه‌های تماس

POST/domains/:id/contacts

شناسه‌های ایرنیک نقش‌های تماس دامنه را عوض می‌کند. در نمونه، نقش‌های فنی و مالی تغییر می‌کنند.

پارامترهای تغییر شناسه‌های تماس
پارامترمحلتوضیح
idمسیرشناسهٔ داخلی دامنه
techبدنهشناسهٔ ایرنیک تماس فنی
billبدنهشناسهٔ ایرنیک تماس مالی
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/1/contacts" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "tech": "ab1234-irnic", "bill": "ab1234-irnic" }'
بدنهٔ JSON
{
    "tech": "ab1234-irnic",
    "bill": "ab1234-irnic"
}

تغییر نام‌سرورها

POST/domains/:id/nameservers

نام‌سرورهای دامنه را با فهرست تازه جایگزین می‌کند.

پارامترهای تغییر نام‌سرورها
پارامترمحلتوضیح
idمسیرشناسهٔ داخلی دامنه
nameserversبدنهفهرست تازهٔ نام‌سرورها به همان شکل متد «ثبت دامنه»
نمونهٔ درخواست
cURL
curl -X POST "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/domains/3/nameservers" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{ "nameservers": [ {"ns": "ns1.example.com", "ips": []}, {"ns": "ns2.example.com", "ips": []}, {"ns": "ns3.example.com", "ips": []}, {"ns": "ns4.example.com", "ips": []} ] }'
بدنهٔ JSON
{
    "nameservers": [
        {"ns": "ns1.example.com", "ips": []},
        {"ns": "ns2.example.com", "ips": []},
        {"ns": "ns3.example.com", "ips": []},
        {"ns": "ns4.example.com", "ips": []}
    ]
}

شناسه‌های ایرنیک

اطلاعات شناسهٔ دارنده و نقش‌های تماس.

اطلاعات یک شناسه

GET/contacts/:contact_id

اطلاعات یک شناسهٔ ایرنیک را با خود شناسه (مثل ab1234-irnic) یا ایمیل آن برمی‌گرداند. اگر شناسه وجود نداشته باشد پاسخ ۴۰۴ است.

پارامترهای اطلاعات یک شناسه
پارامترمحلتوضیح
contact_idمسیرشناسهٔ ایرنیک یا ایمیل
نمونهٔ درخواست و پاسخ
cURL
curl -X GET "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/contacts/ab1234-irnic" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
پاسخ ۲۰۰
{
  "id": "<string>"
}
پاسخ ۴۰۱
{
  "isSuspended": "<boolean>",
  "suspensionReason": "<string>"
}
پاسخ ۴۰۴
(بدون بدنه)

قیمت‌ها

نرخ روز خدمات به واحد اعتبار.

نرخ خدمات

GET/pricing

تعداد واحد اعتبار هر کار و نرخ ریالی هر واحد را برمی‌گرداند. معنای هر فیلد را در بخش «اعتبار و واحد» همین صفحه ببینید.

نمونهٔ درخواست و پاسخ
cURL
curl -X GET "https://my.onlineserver.ir/modules/addons/IrnicReseller/api/pricing" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"
پاسخ ۲۰۰
{
    "registration": {
        "1": "2",
        "5": "6"
    },
    "renewal": {
        "1": "2",
        "5": "6"
    },
    "transferFee": "3",
    "pricePerUnit": "13350",
    "maxAllowedUnits": "500",
    "minUnits": "20",
    "currency": "IRR"
}

اعتبار و واحد

هزینهٔ ثبت، تمدید و انتقال به «واحد» از اعتبار نمایندگی کم می‌شود.

متد GET /pricing تعداد واحد هر کار و نرخ هر واحد را برمی‌گرداند. هزینهٔ هر کار برابر است با تعداد واحد ضرب در pricePerUnit. اعتبار را در پنل نمایندگی با پرداخت فاکتور افزایش می‌دهید و کسرها و بازگشت‌ها را با GET /credits/history می‌بینید.

فیلدهای پاسخ قیمت‌ها
فیلدمعنا
registrationواحد لازم برای ثبت؛ کلید، مدت به سال است (۱ و ۵)
renewalواحد لازم برای تمدید، به همان شکل
transferFeeکارمزد انتقال دامنه، به واحد
pricePerUnitنرخ هر واحد، به واحد پولی currency
minUnitsکمترین مقدار افزایش اعتبار در هر فاکتور
maxAllowedUnitsبیشترین موجودی مجاز حساب
currencyواحد پولی نرخ‌ها؛ IRR یعنی ریال
نمونهٔ پاسخ pricing
{
    "registration": {
        "1": "2",
        "5": "6"
    },
    "renewal": {
        "1": "2",
        "5": "6"
    },
    "transferFee": "3",
    "pricePerUnit": "13350",
    "maxAllowedUnits": "500",
    "minUnits": "20",
    "currency": "IRR"
}

اعداد این نمونه فقط شکل پاسخ را نشان می‌دهند؛ نرخ روز را از خود متد بخوانید.

WHMCS دارید؟ کد ننویسید

افزونهٔ WHMCS نمایندگی (سازگار با WHMCS نسخهٔ ۷ تا ۹ و PHP ۷ تا ۸٫۳) را از منوی «افزونه‌ها» در پنل نمایندگی دانلود کنید و کلید دسترسی را در تنظیمات آن بگذارید. ثبت و تمدید دامنه از داخل WHMCS خودتان و با همین API انجام می‌شود.

دربارهٔ نمایندگی دامنهٔ ملی

پرسش‌های متداول

کلید دسترسی را گم کرده‌ام؛ می‌توانم دوباره ببینمش؟
نه. کلید فقط یک بار، هنگام ساخت، نمایش داده می‌شود. مقدار SHA1 که در صفحهٔ ویرایش کلید می‌بینید فقط برای شناسایی کلید است و جای آن کار نمی‌کند. در همان صفحه «تولید مجدد» را بزنید و کلید تازه را در برنامه‌تان جایگزین کنید.
چرا پاسخ ۴۰۱ (not authenticated) می‌گیرم؟
سه چیز را بررسی کنید: کلید با پیشوند Bearer در هدر Authorization فرستاده شده باشد، کلید حذف یا دوباره‌سازی نشده باشد، و اگر برای کلید IP مجاز تعریف کرده‌اید، درخواست دقیقاً از یکی از همان IPها برسد. IP خروجی سرور را خودتان بررسی کنید؛ پشت NAT یا پروکسی ممکن است با IP خود سرور فرق داشته باشد.
می‌توانم چند کلید داشته باشم؟
بله. برای هر سرور یا هر برنامه کلید جدا با نام مشخص بسازید. در فهرست کلیدها، IPهای مجاز و زمان آخرین اتصال هر کلید دیده می‌شود و هر کلید را جداگانه ویرایش یا حذف می‌کنید؛ کلیدی که مدت‌ها وصل نشده را حذف کنید.
API لازم دارم یا افزونهٔ WHMCS؟
اگر فروش و صورت‌حساب شما روی WHMCS است، افزونهٔ آماده کافی است: آن را از منوی «افزونه‌ها» در پنل نمایندگی دانلود کنید و کلید را در تنظیماتش بگذارید. API برای وقتی است که سامانهٔ فروش خودتان را دارید یا می‌خواهید کارها را خودکار کنید.
هزینهٔ ثبت و تمدید از کجا کم می‌شود؟
از اعتبار نمایندگی. اعتبار به «واحد» حساب می‌شود و با پرداخت فاکتور افزایش اعتبار در پنل نمایندگی بالا می‌رود. متد pricing تعداد واحد هر کار و نرخ هر واحد را برمی‌گرداند و متد credits/history همهٔ کسرها و بازگشت‌ها را نشان می‌دهد.
تاریخ‌ها در API شمسی است یا میلادی؟
میلادی. پارامترهای start_date و end_date را به شکل YYYY-MM-DD بفرستید، مثل 2026-10-01.

سؤال فنی دربارهٔ API دارید؟

در بخش دامنه تیکت بزنید و متد، بدنهٔ درخواست و پاسخی را که گرفته‌اید بفرستید. کلید دسترسی را هرگز در تیکت ننویسید.

نظرات مشتریان

۹۹٫۹۹٪آپتایم۲۴/۷پشتیبانیآنیتحویل۱۶+سال سابقه۳۴٬۵۰۰+مشتری— اولین نفری باشید که تجربه‌اش را ثبت می‌کند.

محصولات و خدمات مرتبط