NAV
shell plaintext

مستندات API نوبیتکس

NOBITEX

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

پیش از استفاده از API نوبیتکس اطمینان حاصل کنید که با قوانین نوبیتکس و همچنین قوانین و شرایط استفاده از API نوبیتکس آشنایی کامل دارید. همین طور با توجه به احتمال ایجاد تغییرات در بستر نوبیتکس یا ساختار و جزئیات APIها، همواره به اطلاعیه‌های کانال رسمی تلگرام نوبیتکس و کانال رسمی تلگرام API نوبیتکس دقت کنید. به علاوه به صورت مستمر صفحه سابقه تغییرات API نوبیتکس را رصد کنید تا از تمامی تغییرات API نوبیتکس مطلع باشید.

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

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

احراز هویت و توکن

Authorization: Token yourTOKENhereHEX0000000000

برای استفاده از APIهای غیر عمومی نیاز به ارسال توکن وجود دارد. این توکن باید به عنوان HTTP Header درخواست به صورت زیر ارسال شود:

Authorization: Token yourTOKENhereHEX0000000000

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

برای دریافت توکن می‌توانید با مراجعه به پنل کاربری خود در نوبیتکس، از بخش پروفایل وارد صفحه تنظیمات شده و توکن خود را دریافت نمایید. در صورتی که گزینه «مرا به خاطر بسپار» را در هنگام ورود به نوبیتکس انتخاب کرده باشید، این توکن تا ۳۰ روز یا زمان لاگ‌اوت شما از نوبیتکس معتبر خواهد ماند.

در صورت تمایل به دریافت دوره‌ای و خودکار توکن، می‌توانید از API ورود - دریافت توکن استفاده نمایید. ولی این کار ضروری نیست و روش پیشنهادی ما برای اغلب کاربران دریافت مستقیم توکن از پنل کاربری است. تنها در صورتی که با مخاطرات ذخیره گذرواژه خود در کد و روش‌های امن این کار آشنا هستید، در استفاده از API مهارت دارید، و از طرفی نیاز به دریافت کاملاً خودکار توکن دارید، از API دریافت توکن استفاده نمایید.

تنظیم User Agent

جهت شناسایی و تفکیک بهتر بات‌ها و پشتیبانی از آن‌ها، اکیداً توصیه می‌شود که در تمامی درخواست‌ها مقدار UserAgent را مطابق الگوی TraderBot/XXXXX ارسال نمایید، که بخش XXXXX هر نام یکتایی است که می‌توانید برای بات خود انتخاب کنید. با رعایت این نام‌گذاری پاسخگویی به درخواست‌های پشتیبانی و عیب‌یابی مشکلات بهتر صورت می‌گیرد.

محدودیت ها

توجه داشته باشید، برای استفاده از APIها محدودیت هایی وجود دارد که در قسمت توضیحات هر کدام از APIها این موارد ذکر شده است.

تغییرات و موارد قدیمی

با توجه به ماهیت نوین و تغییرات مستمر مورد نیاز در حوزه رمزارزها، در API نوبیتکس نیز ممکن است در طول زمان تغییراتی ایجاد شود. پشتیبانی طولانی‌مدت از نسخه‌های قدیمی API معمولاً فرآیندی پیچیده و سخت است و باعث کاهش سرعت ایجاد تغییرات جدید در بستر نوبیتکس می‌شود. به همین دلیل API نوبیتکس همواره در عین حفظ ساختار کلی و اجزای اصلی ثابت، در حال بهبود مستمر و به‌روزرسانی است. کاربران گرامی می‌توانند با پیگیری تغییرات API که در صفحه سابقه تغییرات API نوبیتکس اطلاع‌رسانی می‌شود، همواره از تغییرات احتمالی ضروری در کد خود مطلع شوند تا بتوانند به صورت بدون وقفه از جدیدترین امکانات و روش‌های دسترسی به API نوبیتکس بهره‌مند شوند.

مواردی که قبلاً در API موجود بودند ولی در حال حاضر پشتیبانی نمی‌شوند، جهت ثبت سابقه در صفحه API قدیمی موجود هستند. ممکن است APIهای دیگری علاوه بر موارد مستند شده در مستندات پیش‌رو وجود داشته باشند، که این موارد جز API رسمی نوبیتکس نبوده و تضمینی در قبال ادامه‌دار بودن پشتیبانی از آن‌ها وجود ندارد. همین طور در استفاده از APIهای فعلی لازم به توضیح است که ممکن است علاوه بر فیلدهایی که در ورودی یا خروجی مستند شده است، فیلدهای دیگری نیز وجود داشته باشند. این فیلدها تا زمانی که در مستندات اضافه نشده باشند باید به عنوان امکانات آزمایشی و موقت در نظر گرفته شوند و نباید مورد استفاده عموم کاربران قرار گیرد. تنها کافی است که کدهای توسعه داده شده در صورت مشاهده فیلدی غیر از فیلدهای مورد انتظار خود، دچار خطا نشوند و صرفاً وجود آن فیلد را نادیده بگیرند.

راهنمای حل مشکلات

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

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

در صورتی که بخشی از مستندات API مبهم است، یا پیشنهادی درباره APIهای موجود دارید، یا پس از بررسی کامل اطمینان دارید که مشکلی در API نوبیتکس وجود دارد، می‌توانید در مخزن گیت‌هاب مستندات نوبیتکس API مورد (issue) جدیدی را ایجاد نمایید و با ما در ارتباط باشید. دقت کنید که این کانال عمومی است و نباید در آن هیچ گونه اطلاعات حساس یا توکن یا سایر اطلاعات حساب خود را مطرح کنید.

راهنمای شروع به کار با API

اگر برای اولین بار از API نوبیتکس یا سایر بازارهای رمزارز استفاده می‌کنید، برای شروع کار پیشنهاد می‌شود گام‌های زیر را طی کنید:

همین طور می‌توانید بنا به نیاز خود این موارد را نیز در ادامه در نظر بگیرید:

احراز هویت

ورود - دریافت توکن

برای دریافت توکن، از این کد استفاده کنید:

curl 'https://api.nobitex.ir/auth/login/' \
  -X POST \
  -H "Content-Type: application/json" \
  --data $'{"username":"name@example.com","password":"secret-password-1234","captcha":"api"}'
http POST https://api.nobitex.ir/auth/login/ \
  username=name@example.com password=secret-password-1234 captcha=api

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "success",
    "key": "db2055f743c1ac8c30d23278a496283b1e2dd46f",
    "device": "AlRyansW"
}

دریافت توکن به صورت خودکار و با ارسال درخواست به /auth/login/ صورت می‌گیرد. این تنها APIی است که نیاز دارید به آن نام کاربری و رمز عبور خود را ارسال کنید. تمامی دیگر APIها از توکن به جای رمز عبور برای احراز هویت استفاده می‌کنند. توکن‌های صادر شده بعد از چهار ساعت منقضی می‌شوند و باید مجددا با ارسال درخواست لاگین، توکن جدیدی دریافت کنید. در صورتی که نیاز به ایجاد توکن‌های بلند مدت دارید، از پارامتر remember=yes استفاده کنید تا توکن ایجاد شده به مدت سی روز معتبر بماند. توجه داشته باشید، در صورتی که احراز هویت دو مرحله ای را فعال کرده باشید، می بایست رمز یکبارمصرف را نیز ارسال نمائید. توضیحات دقیق تر را از اینجا مطالعه فرمائید.

پارامتر نوع پیش‌فرض توضیحات نمونه
username string الزامی ایمیل کاربر name@example.com
password string الزامی رمز عبور کاربر secret-password-1234
remember string no آیا توکن بلند مدت صادر شود؟ yes یا no
captcha string الزامی کپچا api

خروج (سوزاندن توکن)

برای خروج یا سوزاندن توکن، از این کد استفاده کنید:

curl -X POST 'https://api.nobitex.ir/auth/logout/' \
--header 'Authorization: Token yourTOKENhereHEX0000000000'
POST /auth/logout/ HTTP/1.1
Host: api.nobitex.ir
Authorization: Token yourTOKENhereHEX0000000000

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "detail": "خروج با موفقیت انجام شد.",
    "message": "خروج با موفقیت انجام شد."
}

اطلاعات بازار (عمومی)

لیست سفارش‌ها: اردربوک

curl 'https://api.nobitex.ir/v2/orderbook/BTCIRT'
http GET https://api.nobitex.ir/v2/orderbook/BTCIRT

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "bids": [
        ["1476091000", "1.016"],
        ["1479700000", "0.2561"]
    ],
    "asks": [
        ["1470001120", "0.126571"],
        ["1470000000", "0.818994"]
    ]
}

برای دریافت لیست سفارش‌ها یا همان اردربوک بازارهای مختلف، از این درخواست استفاده نمایید:

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

پارامتر نوع پیش‌فرض توضیحات نمونه
SYMBOL string الزامی نماد بازار BTCIRT

نمونه پاسخ درخواست /v2/orderbook/all:

{
  "status": "ok",
  "bids": {
    "BTCIRT": [
      ["1476091000", "1.016"],
      ["1479700000", "0.2561"]
    ],
    "USDTIRT": [
      ["277990", "6688.3"],
      ["278000", "28185.03"]
    ]
  },
  "asks": {
    "BTCIRT": [
      ["1470001120", "0.126571"],
      ["1470000000", "0.818994"]
    ],
    "USDTIRT": [
      ["277960", "119.31"],
      ["277960", "1079.75"]
    ]
  }
}

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

خروجی شامل دو آرایه asks و bids بوده که در هر یک قیمت و مقدار سفارش‌های بازار وجود دارد. به دلایل تاریخی سفارش‌های فروش در bids و سفارش‌های خرید در asks بازگردانده می‌شوند. هر یک از این آرایه‌ها شامل دوتایی‌های «قیمت، مقدار» هستند.

روش پیشنهادی نگهداری اردربوک

در صورتی که در کد خود نیاز به نگهداری آخرین وضعیت اردربوک نوبیتکس هستید، در یک حلقه اقدام به دریافت اردربوک نوبیتکس نمایید. حتماً در میان هر دو بار اجرای حلقه حداقل یک تا ده ثانیه صبر نمایید و از فراخوانی پیاپی و بی‌مکث اردربوک خودداری کنید. به دلیل وجود لایه‌های کش، در صورت فراخوانی در بازه‌های زیر یک ثانیه، همان داده فراخوانی قبلی را دریافت خواهید نمود. اگر در اغلب بازارهای نوبیتکس فعال هستید، می‌توانید در هر فراخوانی کل اردربوک را دریافت نمایید تا نیازی به فراخوانی همزمان چند اردربوک نداشته باشید. اگر کد خود را در چند رشته (ترد) یا پردازه یا سرور اجرا می‌کنید، حتماً اردربوک را در یک مرجع واحد دریافت نمایید و آن را در میان نمونه‌های برنامه خود به اشتراک بگذارید.

لیست معاملات

curl 'https://api.nobitex.ir/v2/trades/BCHIRT'
http GET https://api.nobitex.ir/v2/trades/BCHIRT

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "trades": [
        {
            "time": 1588689375067,
            "price": "1470000110",
            "volume": "0",
            "type": "sell"
        },
        {
            "time": 1588689360464,
            "price": "1470000110",
            "volume": "0.002",
            "type": "buy"
        }
    ]
}

برای دریافت لیست معاملات از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
symbol string الزامی نماد BTCIRT

آمار بازار نوبیتکس

curl 'https://api.nobitex.ir/market/stats' \
  -X POST \
  -H "content-type: application/json" \
  --data '{"srcCurrency":"btc","dstCurrency":"rls"}'
http POST https://api.nobitex.ir/market/stats \
  srcCurrency=btc dstCurrency=rls

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "stats": {
        "btc-rls": {
            "bestSell": "749976360.0000000000",
            "isClosed": false,
            "dayOpen": "686021860.0000000000",
            "dayHigh": "750350000.0000000000",
            "bestBuy": "733059600.0000000000",
            "volumeSrc": "0.2929480000",
            "dayLow": "686021860.0000000000",
            "latest": "750350000.0000000000",
            "volumeDst": "212724856.0678640000",
            "dayChange": "9.38",
            "dayClose": "750350000.0000000000"
        }
    },
    "status": "ok"
}

برای دریافت آخرین آمار بازار نوبیتکس از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
srcCurrency string الزامی ارزها مبدا btc,usdt
dstCurrency string الزامی ارز مقصد rls

آمار OHLC بازار نوبیتکس

curl 'https://api.nobitex.ir/market/udf/history?symbol=BTCIRT&resolution=D&from=1560120967&to=1562230967'
http GET https://api.nobitex.ir/market/udf/history?symbol=BTCIRT&resolution=D&from=1560120967&to=1562230967

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
  "s": "ok",
  "t": [
    1562182200
  ],
  "c": [
    "157000000.0000000000"
  ],
  "o": [
    "150551000.0000000000"
  ],
  "h": [
    "161869500.0000000000"
  ],
  "l": [
    "150551000.0000000000"
  ],
  "v": [
    "9.8592626506"
  ]
}

برای توضیحات بیشتر در مورد OHLC به این لینک مراجعه کنید.

برای دریافت آمار OHLC نوبیتکس از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
symbol string الزامی جفت ارز BTCIR
resolution string الزامی بازه زمانی هر خروجی D
from int الزامی زمان ابتدای بازه 1562120967
to int الزامی زمان پایان بازه 1562230967
پارامتر توضیح
یک ساعت 60
سه ساعت 180
شش ساعت 360
دوازده ساعت 720
یک روز D
دو روز 2D
سه روز 3D
پارامتر توضیح نوع نمونه
s وضعیت پاسخ string ok
t زمان float 1562182200
c مقدار انتهای بازه string 157000000.0000000000
o مقدار ابندای بازه string 150551000.0000000000
h بالاترین مقدار بازه string 161869500.0000000000
l پایین ترین مقدار بازه string 150551000.0000000000
v حجم بازه array ["9.8592626506"]

پارامتر o (open) مقدار شروع بازه (در مثال ما بازه 1 روزه) را نشان می‌دهد. یعنی این بازه با مقدار 150551000.0000000000 شروع شده است.

پارامتر c (close) مقدار پایان بازه را نشان می‌دهد. یعنی این بازه با مقدار 157000000.0000000000 به پایان رسیده‌است.

پارامتر h(high) است. بالاترین مقدار بازه را نشان می‌دهد. یعنی بالاترین مقدار این بازه "150551000.0000000000"

پارامتر l (low) پایین‌ ترین مقدار بازه را نشان می‌دهد. پایین ترین مقدار این بازه 150551000.000000 می‌باشد.

پارامتر v (volume) حجم بازه بازه را نشان می‌دهد. حجم این بازه 9.8592626506 می‌باشد.

آمار بازار جهانی

curl 'https://api.nobitex.ir/market/global-stats' \
  -X POST

http POST https://api.nobitex.ir/market/global-stats

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "ltc": {
        "kraken": {
            "price": "41.69"
        }
    },
    "btc": {
        "kraken": {
            "price": "5517.2"
        }
    },
    ...

    "status": "ok"
}

برای دریافت آمار بازارهای جهانی از این نوع درخواست استفاده نمایید:

اطلاعات کاربر

پروفایل

curl 'https://api.nobitex.ir/users/profile' \
  -H "Authorization: Token yourTOKENhereHEX0000000000"
http POST https://api.nobitex.ir/users/profile \

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
  "status": "ok",
  "profile": {
    "firstName": "مهدی",
    "lastName": "رضایی",
    "nationalCode": "011122333",
    "email": "name@example.com",
    "username": "name@example.com",
    "phone": "02142719000-9012",
    "mobile": "09151111111",
    "city": "مشهد",
    "bankCards": [
      {
        "number": "6037-9900-0000-0000",
        "bank": "ملی",
        "owner": "مهدی رضایی",
        "confirmed": true,
        "status": "confirmed"
      }
    ],
    "bankAccounts": [
      {
        "id": 1999,
        "number": "0346666666666",
        "shaba": "IR460170000000346666666666",
        "bank": "ملی",
        "owner": "مهدی رضایی",
        "confirmed": true,
        "status": "confirmed"
      }
    ],
    "verifications": {
      "email": true,
      "phone": true,
      "mobile": true,
      "identity": true,
      "selfie": false,
      "bankAccount": true,
      "bankCard": true,
      "address": true,
      "city": true
    },
    "pendingVerifications": {
      "email": false,
      "phone": false,
      "mobile": false,
      "identity": false,
      "selfie": false,
      "bankAccount": false,
      "bankCard": false
    },
    "options": {
      "fee": "0.35",
      "feeUsdt": "0.2",
      "isManualFee": false,
      "tfa": false,
      "socialLoginEnabled": false
    },
    "withdrawEligible": true
  },
  "tradeStats": {
    "monthTradesTotal": "10867181.5365000000",
    "monthTradesCount": 3
  }
}

این api، اطلاعات پروفایل شما، کارت بانکی، حساب بانکی، موارد تایید شده(ایمیل، شماره تلفن، موبایل ...)، تنظمیات مربوط به پروفایل(فی تراکنش، فی مبادلات usdt و ...) و خلاصه آمار مبادلات شما را برمیگرداند.

برای دریافت پروفایل کاربر از این نوع درخواست استفاده نمایید:

سابقه ورود

curl 'https://api.nobitex.ir/users/login-attempts' \
  -H "Authorization: Token yourTOKENhereHEX0000000000"
http POST https://api.nobitex.ir/users/login-attempts \

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "attempts": [
        {
            "ip": "46.209.130.106",
            "username": "name@example.com",
            "status": "Successful",
            "createdAt": "2018-11-28T14:16:08.264308+00:00"
        },
        ...
    ]
}

برای دریافت سابقه ورود از این نوع درخواست استفاده نمایید:

افزودن کارت بانکی

curl 'https://api.nobitex.ir/users/cards-add' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"number":"5041721011111111","bank":"رسالت"}'
http POST https://api.nobitex.ir/users/cards-add \
  number=5041721011111111 bank=رسالت

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok"
}

برای افزودن کارت بانکی جدید از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
number string الزامی شماره کارت 5041721011111111
bank string الزامی نام بانک رسالت

افزودن حساب بانکی

curl 'https://api.nobitex.ir/users/accounts-add' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"number":"5041721011111111","shaba":"IR111111111111111111111111","bank":"رسالت"}'
http POST https://api.nobitex.ir/users/accounts-add \
  number=5041721011111111 shaba=IR111111111111111111111111 bank=رسالت

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok"
}

برای افزودن حساب بانکی جدید از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
number string الزامی شماره حساب 5041721011111111
shaba string الزامی شماره شبا IR111111111111111111111111
bank string الزامی نام بانک رسالت

محدودیت های کاربر

curl 'https://api.nobitex.ir/users/limitations' \
  -X GET \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
http GET https://api.nobitex.ir/users/limitations

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
  "status": "ok",
  "limitations": {
    "userLevel": "level2",
    "features": {
      "crypto_trade": false,
      "rial_trade": false,
      "coin_deposit": false,
      "rial_deposit": false,
      "coin_withdrawal": false,
      "rial_withdrawal": false
    },
    "limits": {
      "withdrawRialDaily": {
        "used": "0",
        "limit": "900000000"
      },
      "withdrawCoinDaily": {
        "used": "0",
        "limit": "2000000000"
      },
      "withdrawTotalDaily": {
        "used": "0",
        "limit": "2000000000"
      },
      "withdrawTotalMonthly": {
        "used": "0",
        "limit": "30000000000"
      }
    }
  }
}

توضیحات

شرح ورودی

شرح خروجی

features: شرایط حساب کاربری

limits: محدودیت های حساب کاربری

تمامی واحد ها به ریال هستند

برای اطلاع از جزئیات سطوح کاربری، میزان محدودیت ها، مدارک مورد نیاز هر سطح و توضیحات کامل هر سطح به سطوح حساب کاربری در نوبیتکس مراجعه کنید.

اطلاعات مالی کاربر

لیست کیف پول ها

curl 'https://api.nobitex.ir/users/wallets/list' \
  -X POST \
  --header "Authorization: Token yourTOKENhereHEX0000000000"
http POST https://api.nobitex.ir/users/wallets/list \
  Authorization=Token yourTOKENhereHEX0000000000

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "wallets": [
        {
            "activeBalance": "10.2649975000",
            "blockedBalance": "0",
            "user": "name@example.com",
            "currency": "ltc",
            "id": 4159,
            "balance": "10.2649975000",
            "rialBalance": 51322935,
            "rialBalanceSell": 52507310,
            "depositAddress": null
        },
        ...
    ]
}

برای دریافت لیست کیف پول های کاربر از این نوع درخواست استفاده نمایید:

لیست کیف پول ها (انتخابی)

curl 'https://api.nobitex.ir/v2/wallets' \
  -X POST \
  --header "Authorization: Token yourTOKENhereHEX0000000000"
  --data '{"currencies":"rls,btc"}'
http POST https://api.nobitex.ir/v2/wallets \
  Authorization=Token yourTOKENhereHEX0000000000
  currencies=rls,btc

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "wallets": {
        "RLS": {
            "id": 133777,
            "balance": "0E-10",
            "blocked": "0"
        },
        "BTC": {
            "id": 133778,
            "balance": "0E-10",
            "blocked": "0"
        }
    }
}

برای دریافت لیست کیف پول های کاربر از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
currencies string اختیاری نوع کیف پول(ارز)، به صورت رشته ای از ارزهای جداشده با کاما rls,btc

موجودی

curl 'https://api.nobitex.ir/users/wallets/balance' \
  -X POST \
  --header "Authorization: Token yourTOKENhereHEX0000000000" \
  --data '{"currency":"ltc"}'
http POST https://api.nobitex.ir/users/wallets/balance \
  currency=ltc

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "balance": "10.2649975000",
    "status": "ok"
}

برای دریافت موجودی کیف پول های خود در نوبیتکس (شامل کیف پول ریالی و کیف پول های رمز ارزی) از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
currency string الزامی نوع کیف پول(ارز) ltc

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

curl 'https://api.nobitex.ir/users/wallets/transactions/list' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"wallet":"4159"}'
http POST https://api.nobitex.ir/users/wallets/transactions/list \
  wallet=4159

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "transactions": [
        {
            "currency": "ltc",
            "created_at": "2018-10-17T09:41:08.519151+00:00",
            "calculatedFee": "0",
            "id": 99050,
            "amount": "4.3802000000",
            "description": "خرید 4.400 LTC به قیمت واحد ﷼7450000"
        },
        {
            "currency": "ltc",
            "created_at": "2018-10-04T13:05:01.384902+00:00",
            "calculatedFee": "0",
            "id": 96541,
            "amount": "-1.0000000000",
            "description": "Withdraw to \"Lgn1zc77mEjk72KvXPqyXq8K1mAfcDE6YR\""
        },
        ...
    ],
    "status": "ok"
}

برای دریافت آخرین آمار بازار نوبیتکس از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
wallet int الزامی شناسه کیف پول(id) 4159

لیست واریزها و برداشت‌ها

curl 'https://api.nobitex.ir/users/wallets/deposits/list' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"wallet":"4159"}'
http POST https://api.nobitex.ir/users/wallets/deposits/list \
  wallet=4159

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "deposits": [
        {
            "txHash": "c5d84268a0bf02307b5a0460a68b61987a9b3009d3a82a817e41558e619ec1d2",
            "address": "32KfyTNh162UoKithfDrWHZPYq5uePGmf7",
            "confirmed": true,
            "transaction": {
                "id": 10,
                "amount": "3.0000000000",
                "currency": "btc",
                "description": "Deposit - address:36n452uGq1x4mK7bfyZR8wgE47AnBb2pzi, tx:c5d84268a0bf02307b5a0460a68b61987a9b3009d3a82a817e41558e619ec1d2",
                "created_at": "2018-11-06T03:56:18+00:00",
                "calculatedFee": "0"
            },
            "currency": "Bitcoin",
            "blockchainUrl": "https://btc.com/c5d84268a0bf02307b5a0460a68b61987a9b3009d3a82a817e41558e619ec1d2",
            "confirmations": 2,
            "requiredConfirmations": 3,
            "amount": "3.0000000000"
        }
    ],
    "withdraws": [
      {
            "id": 2398,
            "blockchain_url": "https://live.blockcypher.com/ltc/tx/c1ed4229e598d4cf81e99e79fb06294a70af39443e2639e22c69bc30d6ecda67/",
            "is_cancelable": false,
            "status": "Done",
            "amount": "1.0000000000",
            "createdAt": "2018-10-04T12:59:38.196935+00:00",
            "wallet_id": 4159,
            "currency": "ltc",
            "address": "Lgn1zc77mEjk72KvXPqyXq8K1mAfcDE6YR"
        }
    ]
}

برای دریافت لیست واریزها و برداشت‌ها از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
wallet string all شناسه کیف پول(id) 4159

تولید آدرس بلاکچین

curl 'https://api.nobitex.ir/users/wallets/generate-address' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"wallet":"4159"}'
http POST https://api.nobitex.ir/users/wallets/generate-address \
  wallet=4159

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "address": "LRf3vuTMy4UwD5b72G84hmkfGBQYJeTwUs"
}

برای تولید آدرس بلاکچین از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
wallet string الزامی شناسه کیف پول(id) 4159

بازار

ثبت سفارش جدید

curl 'https://api.nobitex.ir/market/orders/add' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"type":"buy","srcCurrency":"btc","dstCurrency":"rls","amount":"0.6","price":520000000}'
http POST https://api.nobitex.ir/market/orders/add \
  type=buy srcCurrency=btc dstCurrency=rls amount=0.6 price=520000000

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "order": {
        "type": "sell",
        "srcCurrency": "Bitcoin",
        "dstCurrency": "ریال",
        "price": "520000000",
        "amount": "0.6",
        "totalPrice": "312000000.0",
        "matchedAmount": 0,
        "unmatchedAmount": "0.6",
        "id": 25,
        "status": "Active",
        "partial": false,
        "fee": 0,
        "user": "name@example.com",
        "created_at": "2018-11-28T11:36:13.592827+00:00"
    }
}

در صورت عدم پذیرش سفارش، پاسخ به این صورت خواهد بود:

{
  "status": "failed",
  "code": "ErrorCode",
  "message": "Human readable error message"
}

POST /market/orders/add

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

ثبت سفارش الزاماً به معنی انجام معامله نیست و بسته به نوع و قیمت سفارش و وضعیت لحظه‌ای بازار ممکن است معامله انجام شود یا نشود. با درخواست «وضعیت سفارش» می‌توانید از وضعیت سفارش خود مطلع شوید.

سفارش‌ها پس از ثبت، پیش از ورود به دفتر معاملاتی و انجام معامله، مجدداً از نظر اعتبار مورد بررسی قرار گرفته و در صورت نامعتبر بودن، به وضعیت «رد شده» برده خواهند شد. به همین علت در صورتی که سفارش‌های شما ثبت می‌شود ولی بلافاصله به وضعیت «رد شده» تغییر حالت پیدا می‌کنند، پارامترهای ارسالی خود به ویژه مقدار و قیمت سفارش و موجودی حساب خود را دقیق‌تر بررسی نمایید.

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

پارامتر نوع پیش‌فرض توضیحات نمونه
type string الزامی نوع سفارش buy یا sell
execution string الزامی نحوه‌ی اجرای سفارش ‍‍‍market یا limit
srcCurrency string الزامی رمزارز مبدا btc یا eth یا xrp یا ...
dstCurrency string الزامی رمزارز مقصد rls یا usdt
amount monetary الزامی مقدار رمزارز (حجم) 0.0623
price monetary الزامی قیمت واحد 1210000000

حالت‌های خطا

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

کد خطا توضیحات
InvalidOrderPrice قیمت سفارش (price) تعیین نشده یا اشتباه است
BadPrice قیمت تعیین شده برای سفارش نسبت به قیمت فعلی بازار تفاوت زیادی دارد. قیمت سفارش خود را در بازه‌ی ۳۰٪ قیمت کنونی بازار تعیین کنید.
InvalidExecutionType نوع:مارکت/لیمیت اجرای سفارش (execution) تعیین نشده یا اشتباه است.
InvalidOrderType نوع:خرید/فروش سفارش (type) تعیین نشده یا اشتباه است.
OverValueOrder مقدار سفارش فروش (amount) یا ارزش کل سفارش خرید (amount*price) از موجودی کیف پول نوبیتکس شما کمتر است.
SmallOrder حداقل ارزش معامله رعایت نشده است. حداقل ارزش معامله برای بازارهای ریالی، یک میلیون ریال و برای بازارهای تتری، ۱۱ تتر است و مبلغ کل سفارش (amount*price) باید بیشتر از این حداقل باشد.
DuplicateOrder سفارشی با همین مشخصات توسط کاربر شما در بازه زمانی ده ثانیه اخیر ارسال شده است.
InvalidMarketPair رمزارز مبدا (srcCurrency) یا رمزارز مقصد (dstCurrency) به درستی مقداردهی نشده است یا چنین بازاری در نوبیتکس وجود ندارد.
MarketClosed بازار مد نظر در حال حاضر به صورت موقت بسته است.
TradingUnavailable کاربر اجازه‌ی معامله ندارد، فرآیند احراز هویت خود را تکمیل نمایید.
TradeLimitation سقف معاملات کاربر به اتمام رسیده است، فرآیند احراز هویت خود را تکمیل نمایید.

نکات و ملاحظات

  1. محدودیت فراخوانی: ۱۰۰ درخواست در هر ۱۰ دقیقه
  2. واحدها: واحد قیمت در بازارهای ریالی به ریال (و نه تومان) می‌باشد. واحد قیمت در بازارهای تتری نیز تتر می‌باشد. واحد پارامتر مقدار (amount) بر حسب رمزارز مبدا (srcCurrency) است.
  3. سفارش مارکت: برای ثبت سفارش سریع (سفارش مارکت، سفارش به قیمت بازار)، مقدار پارامتر execution را برابر market ارسال نمایید. منظور از سفارش مارکت سفارشی است که کاربر درخواست دارد تا به بهترین قیمت موجود بازار مورد انجام قرار گیرد. ℹB - ℹI
  4. تعیین محدوده مورد انتظار قیمت: در سفارش‌های مارکت به شدت توصیه می‌شود که پارامتر price را نیز مشخص نمایید. این پارامتر در سفارش مارکت تخمین شما از قیمت بازار را نمایش می‌دهد و باعث می‌شود سفارش شما تنها تا جایی پر شود که قیمت معامله در بازه‌ی قیمتی مشخص شده باشد. برای نمونه اگر نوع سفارش خرید مارکت باشد و قیمت ۱۰۰ میلیون تومان تعیین شود، تنها تا جایی در بازار range کشیده می‌شود که قیمت زیر ۱۰۱ میلیون تومان باشد. برای پیش‌گیری از معاملات با قیمت ناخواسته به علت نوسانات دفعی بازار، پیشنهاد می‌شود که حتماً قیمت تقریبی مد نظر خود را در سفارش‌های مارکت نیز ارسال کنید. با این حال اگر اطمینان به کد خود و تبعات احتمالی این موضوع دارید، می‌توانید پارامتر price را اصلاً ارسال ننمایید که در این شرایط معامله با قیمت لحظه‌ای بازار جهانی، به هر میزان که باشد تا بازه نوسان ۱٪، انجام خواهد شد.
  5. سفارش تکراری: برای جلوگیری از ثبت سفارش تکراری ناشی از اختلالات شبکه و سرور، در صورتی که دو یا چند سفارش با پارامترهای ورودی کاملاً مشابه از جمله نوع و قیمت و مقدار، در بازه‌ی زمانی کمتر از ده ثانیه ارسال نمایید، تنها سفارش اول پذیرفته می‌شود و باقی درخواست‌های مشابه تا ده ثانیه پیام خطای DuplicateOrder دریافت می‌کنند. (غیرفعال در حالت Pro)
  6. دقت مقادیر پولی (monetary): نوع monetary که در پارامترهای amount و price به کار می‌رود، بسته به بازار هر رمزارز، تعداد رقم اعشار متغیری بین ۰ تا ۸ رقم دارد. در صورت ارسال مقادیر با ارقام اعشاری بیشتر، ارقام بی‌معنی حذف (به پایین گرد) خواهند شد.
    مشاهده جدول دقت‌ها

وضعیت سفارش

curl 'https://api.nobitex.ir/market/orders/status' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"id":5684}'
http POST https://api.nobitex.ir/market/orders/status \
  id=5684

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "order": {
        "unmatchedAmount": "3.0000000000",
        "fee": "0E-10",
        "matchedAmount": "0E-10",
        "partial": false,
        "price": "8500000.0000000000",
        "created_at": "2018-11-28T12:25:22.696029+00:00",
        "user": "name@example.com",
        "id": 5684,
        "srcCurrency": "Litecoin",
        "totalPrice": "25500000.00000000000000000000",
        "type": "sell",
        "dstCurrency": "\ufdfc",
        "isMyOrder": false,
        "status": "Active",
        "amount": "3.0000000000"
    }
}

برای دریافت وضعیت سفارش از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
id int الزامی شناسه سفارش ‍‍5684

نکات و ملاحظات

انواع مقادیر status:

فهرست سفارش‌های کاربر

curl 'https://api.nobitex.ir/market/orders/list' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"srcCurrency":"btc","dstCurrency":"usdt","details":2}'
http POST https://api.nobitex.ir/market/orders/list \
  srcCurrency=btc dstCurrency=usdt details=2

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
  "status": "ok",
  "orders": [
    {
      "id": 173546223,
      "type": "sell",
      "execution": "Limit",
      "status": "Active",
      "srcCurrency": "Bitcoin",
      "dstCurrency": "Tether",
      "price": "9750.01",
      "amount": "0.0123",
      "matchedAmount": "0E-10",
      "averagePrice": "0",
      "fee": "0E-10"
    }
  ]
}

POST /market/orders/list

برای دریافت فهرست سفارش‌های خود، از این درخواست استفاده نمایید.

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

پارامتر نوع پیش‌فرض توضیحات نمونه
status string open وضعیت سفارش all یا open یا done یا close
type string تمام انواع سفارش نوع سفارش‌های مد نظر، خرید یا فروش sell یا buy
srcCurrency string تمام رمزارزها رمزارز مبدا btc یا eth یا xrp یا ...
dstCurrency string تمام رمزارزها رمزارز مقصد rls یا usdt
details int 1 میزان جزئیات پاسخ، اعداد بزرگ‌تر تعداد فیلدهای بیشتری را از وضعیت هر سفارش بازمی‌گرداند 1 یا 2

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

پارامتر نوع توضیحات نمونه
orders list of Order فهرست سفارش‌های کاربر [{...Order...}, ...]

شی Order

فیلد نوع توضیحات نمونه
type string نو ع خرید یا فروش سفارش buy یا sell
execution string نوع اجرای سفارش Limit یا Market
srcCurrency string رمزارز مبدا سفارش Bitcoin یا Ethereum یا TRON یا ...
dstCurrency string رمزارز مقصد سفارش یا Tether
price monetary قیمت ثبت شده برای سفارش 2900000000 یا market
amount monetary مقدار ثبت شده برای سفارش 0.023324
matchedAmount monetary مقدار پر شده از سفارش 0.012001

همچنین در صورتی که پارامتر details=2 باشد این فیلدها نیز برای هر سفارش بازگردانده می‌شود:

فیلد نوع توضیحات نمونه
id int شناسه سفارش 180258791
status string وضعیت فعلی سفارش New یا Active یا Done یا Canceled
fee monetary کارمزد سفارش تاکنون 0.00001
created_at datetime تاریخ ایجاد سفارش 2020-07-15T11:32:38.326809+00:00
averagePrice monetary میانگین قیمت اجرا شده از سفارش 2899500000

نکات و ملاحظات

  1. محدودیت فراخوانی: ۳۰ درخواست در هر دقیقه
  2. در پاسخ حداکثر اطلاعات هزار سفارش بازگردانده می‌شود. با استفاده از پارامترهای ورودی می‌توانید تعداد محدودتری از سفارش‌های خود را دریافت کنید. همچنین پیشنهاد می‌شود که در صورتی که تعداد زیادی سفارش باز دارید، شناسه آن‌ها را در زمان ثبت سفارش دریافت و ذخیره نمایید و به صورت مستقل با استفاده از درخواست «وضعیت سفارش» اطلاعات هر یک را بنا به نیاز به‌روز کنید. همچنین برای اطلاع از معاملات انجام شده خود می‌توانید از درخواست «market/trades/list» استفاده نمایید.
  3. منظور از وضعیت Done سفارشی است که به صورت صد در صد اجرا شده باشد. ممکن است سفارش شما به تدریج اجرا شود، و در این حالت وضعیت آن کماکان Active می‌ماند. از فیلد matchedAmount برای تشخیص وضعیت اجرا و پر شدن سفارش استفاده کنید. همچنین ممکن است سفارش شما قبل از اجرای کامل، به دلیل درخواست «لغو سفارش» یا کمبود موجودی یا تغییر شدید قیمت بازار (در سفارش‌های مارکت) لغو شود که در این حالت وضعیت آن Canceled خواهد بود، به این معنی که به صورت صد در صد اجرا نشده است ولی می‌تواند مقدار matchedAmount آن بزرگ‌تر از صفر باشد.

به روز رسانی سفارش

curl 'https://api.nobitex.ir/market/orders/update-status' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"order":5684,"status":"canceled"}'
http POST https://api.nobitex.ir/market/orders/update-status \
  order=5684 status=canceled

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "updatedStatus": "Canceled"
}

برای سفارش گذاری از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
order int الزامی شناسه سفارش ‍5684‍‍
status string الزامی وضعیت جدید canceled

لغو سفارش

curl 'https://api.nobitex.ir/market/orders/cancel-old' \
  -X POST \
  -H "Authorization: Token yourTOKENhereHEX0000000000" \
  -H "content-type: application/json" \
  --data '{"execution":"limit","srcCurrency":"btc","dstCurrency":"rls","hours":2.4}'
http POST https://api.nobitex.ir/market/orders/cancel-old \
  execution=limit srcCurrency=btc dstCurrency=rls hours=2.4

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok"
}

برای لغو سفارشات از این نوع درخواست استفاده نمایید:

پارامتر نوع پیش‌فرض توضیحات نمونه
hours float اختیاری زمان سفارش 4.2
execution string market نحوه سفارش ‍‍‍market یا limit
srcCurrency string الزامی ارز مبدا btc
dstCurrency string الزامی ارز مقصد rls

در بعضی شرایط امکان دارد به شما خطا پاسخ داده شود. این خطاها در فیلد error برگردانده میشوند.

امنیت

فعالسازی لغو اضطراری

curl 'https://api.nobitex.ir/security/emergency-cancel/activate' \
  -X GET \
  -H "Authorization: Token e9282e56c83f93eb077043e5ad8b6cf5b3ff7568"
http GET https://api.nobitex.ir/security/emergency-cancel/activate \
  Authorization: Token 4928f7a7d00b3sc1efaa8dda2fc7a9tf905cc69

در صورت فراخوانی درست، پاسخ به این صورت خواهد بود:

{
    "status": "ok",
    "cancelCode": {
        "code": "seJlef35L3"
    }
}

جهت فعالسازی امکان لغو اضطراریِ درخواست های برداشت از این درخواست استفاده نمائید. پس از فعالسازی این امکان، پیامک و ایمیل ارسالی پس از ثبت درخواست برداشت، حاوی لینکی خواهد بود که شما میتوانید با استفاده از آن در صورتی که درخواست برداشت توسط شما ثبت نشده است، در کمترین زمان ممکن و بدون نیاز به لاگین، درخواست های برداشت خود را لغو نمایید.

طرح معرفی دوستان

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

معرفی دوستان با استفاده از ایجاد «کد دعوت» انجام می‌شود. هر کاربر نوبیتکس می‌تواند برای خود یک یا چند کد دعوت بسازد. کدهای دعوت معمولاً شامل شش رقم هستند ولی می‌توانند طول متفاوتی داشته باشند یا حتی رشته‌های دلخواه باشند. در زمان ساخت هر کد دعوت می‌توان سهم کاربر معرف و کاربر دعوت شده از کارمزد اهدایی را مشخص نمود.

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

فهرست کدهای دعوت

curl -X GET 'https://api.nobitex.ir/users/referral/links-list' \
  --header 'Authorization: Token yourTOKENhereHEX0000000000'
http --follow --timeout 3600 GET https://api.nobitex.ir/users/referral/links-list \
 Authorization:'Token yourTOKENhereHEX0000000000'

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

پارامتر نوع توضیحات نمونه
links list of ReferralLink فهرست کدهای دعوت این کاربر [{...ReferralLink...}, ...]
فیلد نوع توضیحات نمونه
id int شناسه یکتای لینک 1001
referralCode string کد دعوت 40404
createdAt datetime تاریخ ایجاد کد 2020-07-15T11:32:38.326809+00:00
userShare int سهم کاربر معرف از کارمزد معاملات کاربر دعوت شده 20
friendShare int سهم کاربر دعوت شده از کارمزد معاملات خود 10
description string توضیحات اختیاری کاربر برای این کد Shared on Instagram page X
statsRegisters int آمار: کاربران ثبت‌نام کرده با این کد 20
statsTrades int آمار: مجموع تعداد معاملات کاربران ثبت‌نام کرده با این کد 240
statsProfit monetary: IRR آمار: مجموع ریالی درآمد کاربر از این کد دعوت 3200000

ایجاد کد دعوت

curl -X GET 'https://api.nobitex.ir/users/get-referral-code' \
--header 'Authorization: Token yourTOKENhereHEX0000000000'
http --follow --timeout 3600 GET https://api.nobitex.ir/users/get-referral-code \
 Authorization:'Token yourTOKENhereHEX0000000000'

برای ایجاد یک کد دعوت جدید برای کاربر، از «ایجاد کد دعوت» استفاده نمایید.

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

پارامتر نوع پیش‌فرض توضیحات نمونه
friendShare int 0 سهم کارمزد اهدایی به دوست دعوت شده با این کد 10

حالت‌های خطا

کد خطا توضیحات
InvalidGivebackShare سهم کارمزد دوست قابل قبول نیست. پارامتر friendShare را بررسی کنید.
TooManyReferralLinks سهمیه ۳۰ تایی کدهای دعوت قابل ساخت برای هر کاربر به پایان رسیده است.
ReferralCodeUnavailable امکان ایجاد کد دعوت در حال حاضر وجود ندارد.
ReferralCodeExists خطایی در ثبت کد دعوت رخ داده است.

وضعیت دعوت کاربر

curl -X GET 'https://api.nobitex.ir/users/referral/referral-status' \
--header 'Authorization: Token yourTOKENhereHEX0000000000'
http --follow --timeout 3600 GET https://api.nobitex.ir/users/referral/referral-status \
 Authorization:'Token yourTOKENhereHEX0000000000'

برای اطلاع از این که کاربر فعلی توسط کاربر دیگری به نوبیتکس دعوت شده است یا خیر، از «وضعیت دعوت کاربر» استفاده نمایید.

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

پارامتر نوع توضیحات نمونه
hasReferrer boolean آیا کاربر توسط کاربر دیگری دعوت شده است؟ true

ثبت معرف کاربر

curl -X GET 'https://api.nobitex.ir/users/referral/set-referrer' \
  --header 'Authorization: Token yourTOKENhereHEX0000000000'
http --follow --timeout 3600 GET https://api.nobitex.ir/users/referral/set-referrer \
 Authorization:'Token yourTOKENhereHEX0000000000'

کد دعوت باید در زمان ثبت‌نام توسط کاربر وارد شده یا با استفاده از پیوند دعوت به صورت خودکار پر شود. با این حال تا ۲۴ ساعت پس از ثبت‌نام نیز امکان ثبت معرف توسط کاربر با استفاده از این API وجود دارد. منظور از کاربر معرف، کاربری است که کاربر فعلی را دعوت نموده است.

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

پارامتر نوع پیش‌فرض توضیحات نمونه
referrerCode string الزامی کد دعوت کاربر دعوت کننده 40404

حالت‌های خطا

کد خطا توضیحات
ReferrerChangeUnavailable بیش از ۲۴ ساعت از ثبت‌نام کاربر گذشته است و تعریف معرف دیگر ممکن نیست.

ملاحظات عمومی

راهنمای اشکال‌یابی

پاسخ‌های موفق

نمونه پاسخ موفق:

{
  "status": "ok",
  "otherFields": "..."
}

در تمامی API ها در صورتی که عملیات مد نظر به درستی انجام شده باشد، پاسخ به صورت یک شی در قالب JSON بازگردانده می‌شود و با وضعیت HTTP 200 است. این پاسخ در حالت موفق یک کلید status با مقدار ok دارد. بنا به API مورد استفاده ممکن است یک یا چند کلید دیگر نیز در این پاسخ بازگردانده شود.

پاسخ‌های ناموفق

نمونه پاسخ ناموفق:

{
  "status": "failed",
  "code": "ErrorCode",
  "message": "Human-readable error message"
}

در تمامی APIها در صورتی که به هر دلیل امکان پردازش و انجام آن درخواست وجود نداشته باشد، یک پاسخ ناموفق بازگردانده می‌شود. پاسخ‌های ناموفق به دو صورت هستند، یا با کد خطای HTTP مشخص می‌شوند که مطابق با معانی وضعیت در پروتکل HTTP قابل تفسیر هستند.

در صورتی که پارامترهای ورودی قابل تفسیر باشند، ولی عملیات مد نظر قابل انجام نباشد، پاسخ با وضعیت HTTP 200 بازگردانده می‌شود، و توضیحات تکمیلی به صورت یک شی در قالب JSON خواهد بود که مقدار کلید status آن برابر failed است. کلید code در این شرایط، خطای دقیق رخ داده شده را مشخص می‌کند که در بخش «حالت‌های خطا» در توضیحات هر API فهرستی از کدهای خطای ممکن و توضیحات آن ارائه شده است. معمولاً در یک کلید message توضیح بیشتری در مورد آن خطا نیز ارائه می‌شود که جهت رفع عیب یا نمایش مستقیم به کاربر نهایی می‌تواند مفید باشد.

برخی وضعیت‌های پرکاربرد

کد HTTP عنوان توضیحات
200 OK درخواست دریافت و پاسخ داده شده، وضعیت اصلی درخواست در فیلد status پاسخ مشخص می‌شود.
400 Bad Request پارامترهای درخواست نادرست یا ناکافی است به طوری که امکان بررسی بیشتر و پاسخ بهتر به آن وجود ندارد.
401 Unauthorized کاربر احراز هویت نشده است
403 Forbidden انجام این عملیات مجاز نمی‌باشد
404 Not Found آدرس یا شی مد نظر وجود ندارد 🐱
500 Internal Server Error مشکلی به صورت موقت در سرور نوبیتکس رخ داده است 🐱

صفحه‌بندی

پارامترهای زیر در API های دریافت لیست دارای صفحه‌بندی قابل استفاده است:

پارامتر نوع پیش‌فرض توضیحات نمونه
page int اختیاری شماره صفحه 2
pageSize int اختیاری اندازه صفحه 10

مقادیر پولی (monetary)

در موارد متعددی پارامترهای ورودی درخواست‌ها از نوع مقدار پولی یا monetary مشخص شده است. برای داشتن بالاترین دقت، پیشنهاد می‌شود که این مقادیر را به صورت رشته‌ای ارسال نمایید، چرا که استفاده از انواع داده‌ای مانند float در کاربردهای دقیق مالی توصیه نمی‌شود.

اعتبارسنجی دو عاملی

در صورتی که اعتبارسنجی دو عاملی (2 Factor Authentication) را برای حساب خود فعال کرده باشید، باید در هنگام استفاده از برخی APIها، به خصوص در هنگام دریافت توکن از API لاگین، علاوه بر سایر پارامترها، رمز یک‌بار مصرف خود را نیز در هدرهای درخواست به این صورت ارسال نمایید: X-TOTP: 123456.

محدودیت‌های فراخوانی API

برخی از APIهای نوبیتکس دارای محدودیت تعداد فراخوانی در هر بازه‌ی زمانی هستند. با این حال اگر شما به صورت معمولی و مشابه استفاده‌ی متداول کاربران از API استفاده کنید، با این محدودیت‌ها مواجه نخواهید شد. محدودیت‌ها به ازای هر API مستقلا محاسبه و اعمال می‌شوند. محدودیت‌ها معمولا بر اساس آدرس IP درخواست دهنده و در موارد هم بر اساس کاربر (توکن) درخواست دهنده می‌باشند. در حالتی که به حد مجاز تعداد فراخوانی یک API رسیده باشید، پاسخ آن API به شما یک پیام خطا با کد 403 و دارای توضیحات مشخص در خصوص آن محدودیت خواهد بود.

در صورتی که به صورت موردی یا در حین تست کد خود به محدودیتی برخورد کردید، می‌توانید با منتظر ماندن (بین یک ساعت تا یک روز) آن محدودیت را برطرف کنید و دوباره امکان استفاده از API مد نظرتان را داشته باشید. اگر به صورت مداوم به محدودیتی برای یک API برخورد می‌کنید و فکر می‌کنید که بهتر است تعداد فراخوانی مجاز آن API افزایش یابد، حتما با ایجاد یک مورد در گیت‌هاب (لینک ایجاد مورد) مسئله را با ما مطرح نمایید.

حالت متداول و Pro

در برخی از درخواست‌ها جهت حفاظت بهتر از کاربران، برخی محدودیت‌ها اعمال می‌شود. در چنین مواردی در بخش ملاحظات این محدودیت‌ها توضیح داده شده و در انتهای آن عبارت «غیرفعال در حالت Pro» ذکر شده است. با ارائه پارامتر pro به مقدار yes به عنوان ورودی، این محدودیت برای آن درخواست غیرفعال می‌شود. با این حال دقت کنید که محدودیت‌های حالت متداول برای جلوگیری از حالت‌های خاص و اشتباهات رایج تعبیه شده است و تنها در صورت نیاز و آگاهی از تبعات احتمالی آن، اقدام به فعال‌سازی حالت Pro نمایید.

سوالات متداول

آیا نوبیتکس توکن بلند مدت هم ارائه میدهد؟

بله، برای بدست آوردن توکن با انقضاء طولانی مدت میتوان به دو روش عمل کرد :

  1. دریافت توکن ۴ روزه از طریق پنل کاربری در سایت نوبیتکس
  2. دریافت توکن ۳۰ روزه با استفاده از api با ارسال پارامتری با نام remember و مقدار yes

من با استفاده از گوگل در نوبیتکس ثبت نام کرده ام. چگونه میتوانم با api کار کنم؟

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

در هنگام لاگین با خطای missing captcha روبرو شده ام. مشکل چیست؟

برای دریافت توکن به پنل کاربری خود در سایت، بخش «پروفایل: تنظیمات» مراجعه نمایید.

در هنگام لاگین با خطای missing otp روبرو شده ام. چگونه این مشکل حل میشود؟

در هنگامی که لاگین دو مرحله‌ای حساب شما فعال باشد، در هنگام استفاده از api نیز می بایست این حالت حفظ شده و رمز یکبار مصرف ارسال گردد. این کار از طریق ارسال این رمز با استفاده از پارامتر X-TOTP امکان‌پذیر خواهد بود.

آیا نوبیتکس محیط آزمایشی (Test) دارد؟

بله، شما میتوانید برای استفاده از کلیه امکانات بازار نوبیتکس و همچنین api ها از محیط آزمایشی نوبیتکس به آدرس‌های ذیل استفاده نمائید:

آدرس نوبیتکس آزمایشی : https://testnet.nobitex.ir

آدرس api آزمایشی : https://testnetapi.nobitex.ir

آیا برای استفاده از apiها محدودیتی وجود دارد؟

بله، برای مثال شما حتماً باید از IPهای ایران درخواست خود را ارسال نمائید، و یا محدودیت‌های مخصوص به هر api که در توضیحات هر کدام از endpointها آورده شده است.

آیا با استفاده از api میتوان درخواست برداشت ارسال کرد؟

خیر، اینکار به دلیل مسائل امنیتی امکان‌پذیر نمی باشد.

فرمت استفاده شده برای تاریخ چیست؟

ساعت یونیکس Unix Time یکی از مقیاس اندازه‌گیری زمان آنی است. این عدد که تعداد ثانیه‌ها از ساعت ۰۰:۰۰:۰۰ ساعت هماهنگ جهانی اول ژانویه ۱۹۷۰ است، شامل ثانیه‌های کبیسه نمی‌شود. برای زمان‌های قبل از اول ژانویه از اعداد منفی استفاده می‌شود.

به عنوان مثال [۰۱/۰۱/۱۹۷۰ ۰۰:۰۰:۰۰] برابر با صفر (۰) و [۰۱/۰۱/۱۹۷۰ ۰۰:۰۱:۰۰] برابر با شصت(۶۰) است.

فرمول اصلی آن به این صورت می‌باشد:

تعداد (روزهای گذشته از اول ژانویه ۱۹۷۰) × ۸۶۴۰۰(تعداد ثانیه‌های هر روز)

به منظور مطالعه بیشتر به آدرس زیر مراجعه نمائید https://en.wikipedia.org/wiki/Unix_time

آیا برای apiها کدهای نمونه تهیه شده است؟

بله، collection کلیه api ها برای استفاده در برنامه postman تهیه و از اینجا میتوانید به آن دسترسی داشته باشید. در این collection شما میتوانید نمونه فراخوانی هر کدام از این apiها را به زبان‌های مختلف برنامه نویسی نظیر پی اچ پی، پایتون، سی شارپ و … در این مجموعه مشاهده کرده و آن را در سیستم خود اجرا نمائید.