شروع به کار
baseURL:
https://api.nipoto.com/v1/
مسیر پایه برای فراخوانی تمامی مسیرها(اند پوینت) این مستند ، آدرس زیر می باشد.
https://api.nipoto.com/v1/
تعدای از مسیرها بدون احراز هویت و به شکل عمومی در دسترس هستند. سایر مسیر های خصوصی با توکن مختص به خود که از پنل کاربری قابل ایجاد هست در دسترس خواهند بود . دقت نمایید که در هنگام ایجاد توکن در پنل نیپوتو دسترسی لازم به بخش مربوطه را به آن توکن بدهید.
پینگ-پونگ
request:
const res = await axios.get('/v1/ping')
برای چک کردن اتصال سرویس api از مسیر زیر استفاده میشه.
GET /v1/ping
تعداد درخواست قابل قبول به این اندپوینت برابر است با :
60 req/min
response:
res.data = 'pong'
گرفتن kline
request:
const url = '/v1/market/kline'
const res = await axios.get(`${url}?market=BTC_USDT&timeFrame=1h`)
در حال حاضر فقط کندل های 1h, 4h, 1d رو برمیگردن. اگر تعداد تعریف نشه یک دونه رکورد برمیگرده که اخرین کندل همون تایم فریمه . در صورتی که تعداد بیشتر از ۱۰۰ تا باشه، ۱۰۰ تا رکورد برمیگرده.
تعداد درخواست قابل قبول به این اندپوینت برابر است با :
60 req/min
GET /v1/market/kline
response:
res.data = [{
openTimestamp: '2022-10-12T06:17:42.000Z',
closeTimestamp: '2022-10-12T06:17:43.000Z',
open: '0.00000000',
close: '0.00000000',
low: '0.00000000',
high: '0.00000000',
turnoverValue: '0.00000000',
volumeAmount: '0.00000000',
tradeCount: 0
}]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | USDT_IRT | اسم مارکت |
timeFrame | string | بله | 1h | مقادیر مجاز '1h', '4h', '1d' میباشد |
limit | number | خیر | 50 | مقدار پیش فرضش یکه. |
گرفتن اطلاعات مارکت ها
request:
const res = await axios.get('/v1/market/list')
برای گرفتن قیمت لحظه ای، بهترین قیمت خرید و بهترین قیمت فروش تمام مارکت های نیپوتو از این اندپوینت استفاده کنین. فرمت جوابی که برمیگرده به این شکله:
[[marketName, price, bestBid, bestAsk], …]
تعداد درخواست قابل قبول به این اندپوینت برابر است با :
60 req/min
GET /v1/market/list
response:
res.data = [['BTC/USDT', 12000, 13000, 14000], …]
گرفتن اردربوک
request:
const method = 'GET'
const url= '/v1/market/order_book'
const res = await axios({ url, method, params: { market: 'BTC_USDT' } })
برای گرفتن لیست اردربوک میشه از روت زیر استفاده کرد فرمت دیتایی که برمیگرده به این شکله:
[[[amount, stepPrice], ...], [[amount, stepPrice], …]]
تعداد درخواست قابل قبول به این اندپوینت برابر است با :
60 req/min
GET /v1/market/order_book
response:
res.data = [[[0.01, 1100], …], [[0.02, 1000], …]]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | USDT_IRT | اسم مارکت |
side | string | خیر | bid | مقادیر قابل قبول: bid, ask, null.در صورتی که ساید تعریف نشده باشه، هر دو ساید برمیگردن. |
limit | number | خیر | 5 | اگر لیمیت تعریف نشده باشه برای هر ساید ده تا رکورد برمیگرده. |
step | number | خیر | -2 | اگر step تعریف نشده باشه رکوردها بر اساس کوچکترین استپ برمیگرده. |
گرفتن معاملات اخیر مارکت
request:
const method = 'GET'
const url= '/v1/market/recent_trades'
const res = await axios({ url, method, params: { market: 'BTC_USDT' } })
برای گرفتن معاملات اخیر یک مارکت میتونین از اندپوینت زیر استفاده کنین. فرمت دیتایی که برمیگرده بدین شکله:
[[ amount, price, side, createdAt], …]
تعداد درخواست قابل قبول به این اندپوینت برابر است با :
60 req/min
GET /v1/market/recent_trades
response:
res.data = res.data=[[0.02,1000,'ask','2022-11-11T16:45:21.876Z'],[0.04,1001,'bid', '2022-11-11T16:45:20.876Z']]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | USDT_IRT | اسم مارکت |
limit | number | خیر | 5 | اگر لیمیت تعریف نشده باشه برای هر ساید ده تا رکورد برمیگرده. |
دریافت توکن ها
request:
const url = '/v1/user/login'
const method = 'POST'
const res = await axios({
url,
method,
data: { apiKey, secretKey }
})
این اندپوینت refreshToken و accessToken رو برمیگردونه.از refreshToken برای گرفتن accessToken و از accessToken برای دسترسی به اندپوینت های خصوصی استفاده میشه.
مدت زمان اعتبار refreshToken هفتاد و دو ساعت و accessToken بیست و چهار ساعته اما اگه توکن اصلیتون منقضی شه accessToken و refreshToken تون هم از کار میفته.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای گرفتن accessToken و refreshToken باید به اندپوینت زیر درخواست بفرستین
POST /v1/user/login
response:
res.data = {
accessToken: 'U2FsdGVkX19evXx2Q3/jbvkz89H***S33y938FtfBU',
refreshToken: 'U2FsdGVkX19+LC6Hv79iij***zwSGGqIIW2VNe2toY='
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
apiKey | string | بله | f298144015c6008af2c***01ed72bf10146ce02138 | apiKey که باید از پنل دریافت کنین |
secretKey | string | بله | 652c6c5ed240bc022a7***a965c7d6b1a7a5b3fec1 | secretKey که باید از پنل دریافت کنین |
دریافت accessToken
request:
const url = '/v1/user/accessToken'
const method = 'POST'
const res = await axios({
url,
method,
data: { refreshToken }
})
برای دسترسی به روت های پرایوت به accessToken احتیاج دارین.
مدت زمان اعتبار accessToken بیست و چهار ساعته و باید با استفاده از refreshToken اون رو به روزرسانی کنین.
اما اگه توکن اصلیتون منقضی شه accessToken تون هم از کار میفته.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای گرفتن accessToken باید به اندپوینتی زیر درخواست بفرستین
POST /v1/user/accessToken
response:
res.data = {
accessToken: 'U2FsdGVkX1+fPZ***qY151OFOIMVkHXDOsub7X'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
refreshToken | string | بله | U2FsdGVkX19evXx2Q3jbvkz89H***S33y938FtfBU | رفرش توکن که از روت getTokens گرفتین |
دریافت موجودی حساب
request:
const url = '/v1/accounting/balance'
const method = 'GET'
const res = await axios({
url,
method,
params: { currency: 'USDT' },
headers: { authorization: `Bearer ${accessToken}` }
})
یرای گرفتن موجودی حساب میتونید از این روت استفاده کنین. در صورتی که نام ارز رو مشخص کنین فقط موجودی اون ارز برمیگرده، در غیر این صورت لیست تمام دارایی هاتون برمیگرده.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
GET /v1/accounting/balance
response:
res.data = {
USDT: {
active: 1000,
inuse: 0,
pending: 0
}
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
currency | string | خیر | IRT | اسم ارز |
تولید آدرس رمزارز
request:
const url = '/v1/accounting/wallet'
const method = 'POST'
const res = await axios({
url,
method,
data: { currency: 'BTC', network: 'Bitcoin', paymentID: '1' },
headers: { authorization: `Bearer ${accessToken}` }
})
برای ایجاد کیف پول رمزارزی میتونین از این اندپوینت استفاده کنین. تعداد درخواست قابل قبول به این اندپوینت برابر است با :
60 req/min
POST /v1/accounting/wallet
response:
res.data = {
address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
currency: 'BTC',
network: 'Bitcoin',
p2address: null,
paymentID: '1',
walletID: '691c9b83-f8f4-44c3-851d-1db50dafc68e'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
currency | string | بله | َUSDT | اسم ارز |
network | string | بله | TRC20 | اسم شبکه |
paymentID | string | بله | 20220509001 | یک آی دی که میخواین جهت جلوگیری از دابل اسپندینگ به این کیف پول اختصاص بدین. |
دریافت اطلاعات کیف پول
request:
const url = '/v1/accounting/wallet/:id'
const method = 'GET'
const res = await axios({
url: url.replace(':id', '691c9b83-f8f4-44c3-851d-1db50dafc68e'),
method,
headers: { authorization: `Bearer ${accessToken}` }
})
برای دریافت اطلاعات کیف پول رمزارزی میتونین از این اندپوینت استفاده کنین. تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
GET /v1/accounting/wallet/:id
response:
res.data = {
address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
network: 'Bitcoin',
origin: 'nipoto-api',
p2address: null,
type: 'bech32',
id: '691c9b83-f8f4-44c3-851d-1db50dafc68e',
createdAt: '2022-09-16T10:51:12.290Z'
}
دریافت لیست کیف پول ها
request:
const url = '/v1/accounting/wallet'
const method = 'GET'
const res = await axios({
url,
method,
headers: { authorization: `Bearer ${accessToken}` }
})
برای دریافت اطلاعات کیف پول رمزارزی میتونین از این اندپوینت استفاده کنین. تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
GET /v1/accounting/wallet
response:
res.data = [{
address: '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa',
network: 'Bitcoin',
origin: 'nipoto-api',
p2address: null,
type: 'bech32',
id: '691c9b83-f8f4-44c3-851d-1db50dafc68e',
createdAt: '2022-09-16T10:51:12.290Z'
},{
address: 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz',
network: 'XRP',
origin: 'nipoto',
p2address: 125451185,
type: null,
id: 'bd3dff0c-c331-4ca0-89ee-9162e4a36827',
createdAt: '2022-09-14T09:22:18.450Z'
}]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
network | string | خیر | TRC20 | اسم شبکه |
origin | string | خیر | nipoto | مسیر ایجاد. مقادیر مجاز برابر است با: nipoto, nipoto-api |
pageNumber | number | خیر | 5 | برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است |
pageCount | number | خیر | 50 | تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست. |
startDate | date | خیر | 2022-10-11T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
endDate | date | خیر | 2022-10-12T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
اطلاع رسانی واریز جدید
request:
const url = 'https://yourwebsite.com/callback/newdeposit.php'
const method = 'POST'
data: { depositID }
هر واریز جدیدی که به کیف پول های شما در نیپوتو انجام میشه ما یک ریکوئست POST به مسیری که در هنگام ایجاد توکن تعریف می کنید می زنیم و پارامتر depositID رو که نوعش uuid هست رو واستون POST می کنیم. سپس شما جهت دریافت اطلاعات واریزی به مسیر «گرفتن اطلاعات واریز» Get بزنید.:
گزارش واریز رو به یک لینک در سایت شما POST می کنیم.
POST https://yourwebsite.com/callback/newdeposit.php
گرفتن اطلاعات واریز
request:
const url = '/v1/accounting/deposit/:id'
const method = 'GET'
const res = await axios({
url: url.replace(':id', '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'),
method,
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای دریافت اطلاعات یک واریز باید به اندپوینت زیر درخواست بزنین.
GET /v1/accounting/deposit/:id
response:
res.data = {
amount: 1000,
createdAt: '2022-10-09T06:17:42.000Z',
currency: 'USDT',
fee: 1,
hash: '52b19cf51b831adc39ae95ab****a3bb8b6d0583f4ef5fa316fae4921517e79d6a74',
humanID: '123456789',
id,
instrument: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
network: 'TRC20',
origin: 'nipoto',
status: 'done',
transactionID: '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'
}
گرفتن اطلاعات تمام واریزی ها
request:
const url = '/v1/accounting/deposit'
const method = 'GET'
const res = await axios({
url: url.replace(':id', '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'),
method,
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای دریافت اطلاعات تمام واریزی ها باید به اندپوینت زیر درخواست بزنین.
GET /v1/accounting/deposit
response:
res.data = {
amount: 1000,
createdAt: '2022-10-09T06:17:42.000Z',
currency: 'USDT',
fee: 1,
hash: '52b19cf51b831adc39ae95ab****a3bb8b6d0583f4ef5fa316fae4921517e79d6a74',
humanID: '123456789',
id,
instrument: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
network: 'TRC20',
origin: 'nipoto',
status: 'done',
transactionID: '9e0eb6c4-cf78-499b-90f2-9caac4e81c67'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
network | string | خیر | TRC20 | اسم شبکه |
currency | string | خیر | USDT | اسم ارز |
wallet | string | خیر | TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w | آدرس مبدا |
status | string | خیر | done | وضعیت دپوزیت. مقادیر مجاز برابر است با: processing و done |
origin | string | خیر | nipoto | مسیر واریز. مقادیر مجاز برابر است با: nipoto و nipoto-api |
pageNumber | number | خیر | 5 | برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است |
pageCount | number | خیر | 50 | تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست. |
startDate | date | خیر | 2022-10-11T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
endDate | date | خیر | 2022-10-12T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
دریافت کارمزد برداشت
request:
const url = '/v1/accounting/withdraw/fee'
const method = 'GET'
const res = await axios({
url,
method,
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
GET /v1/accounting/withdraw/fee
response:
res.data = {
ADA: [
{ fee: 0, min: 0, network: 'Cardano' },
{ fee: 0, min: 0, network: 'BEP20' }
],
BNB: [
{ fee: 0, min: 0, network: 'BEP2' },
{ fee: 0, min: 0, network: 'BEP20' }
],
BTC: [
{ fee: 0, min: 0, network: 'Bitcoin_Bulk' },
{ fee: 0, min: 0, network: 'Bitcoin' },
{ fee: 0, min: 0, network: 'BEP20' }
],... }
درخواست برداشت رمزارز
request:
const url = '/v1/accounting/withdraw/crypto'
const method = 'POST'
const res = await axios({
url,
method,
data: {
address: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
currency: 'USDT',
network: 'TRC20',
amount: 300,
paymentID: '1',
description: 'توضیحات'
},
headers: { authorization: `Bearer ${accessToken}` }
})
در برداشت رمزارز نکته ای ک باید در نظر داشته باشین اینه که اگه "برداشت دو مرحلهای" رو موقع جنریت توکن علامت زده باشین یک لینک به
ایمیل شما فرستاده میشه که باید روی لینک کلیک کنین و برداشت رو تایید کنین.
در این حالت وضعیتی که برمیگرده pendingه.
این لینک فقط به مدت ۳۰ دقیقه معتبره. پس از گذشت ۳۰ دقیقه در صورت تایید نشدن لینک، برداشت کنسل میشه.
در صورتی که تیک برداشت دومرحله ای رو نزدین وضعیتی که برمیگرده
auditing ه و تنها ۹۰ ثانیه فرصت دارین تا برداشت رو کنسل کنین.
بعد از اون برداشت فرستاده میشه.
کارمزد از مقداری که میخواهید برداشت کنید کسر میشود و در نهایت amount - fee به کیف پول شما واریز میشود.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای درخواست برداشت رمزارز باید به اندپوینت زیر درخواست بزنین.
POST /v1/accounting/withdraw/crypto
response:
res.data = {
address: 'TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w',
amount: 300,
currency: 'USDT',
description: 'توضیحات',
fee: 1,
network: 'TRC20',
paymentID: '1',
status: 'auditing',
tags: [],
withdrawID: '789bb874-8af0-4bf3-ab05-11366ea3fd30'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
amount | number | بله | 300 | مقدار برداشت(کارمزد برداشت از این مقدار کسر میشه) |
currency | string | بله | USDT | اسم ارز |
network | string | بله | TRC20 | اسم شبکه |
address | string | بله | TRKofFNxXpCcYmaT4uWT7JCG6UDMJhXS2w | آدرس مقصد |
p2address | string | خیر | 267129692 | memo(BEP2) یا tag(Ripple) |
paymentID | string | خیر | 20221009001 | یک آی دی که میخواین جهت جلوگیری از دابل اسپندینگ به این برداشت اختصاص بدین. |
tags | array | خیر | ['تست'] | اگر میخواین راحت تر برداشت هاتون رو دسته بندی کنین |
description | string | خیر | درخواست برداشت به آقای x فاکتور شماره y | توضیحاتی که میخواین راجع به این برداشت بنویسین. |
درخواست برداشت تومان
request:
const url = '/v1/accounting/withdraw/irt'
const method = 'POST'
const res = await axios({
url,
method,
data: {
address: '5022291061292486',
amount: 300,
paymentID: '1',
description: 'توضیحات'
},
headers: { authorization: `Bearer ${accessToken}` }
})
بردای برداشت تومان شماره شبا و شماره کارتی که میفرستین حتما باید از قبل توی پنل ثبت شده باشه و به نام صاحب اکانت باشه.
نکته ای ک باید در نظر داشته باشین اینه که اگه "برداشت دو مرحلهای" رو موقع جنریت توکن علامت زده باشین یک لینک به
ایمیل شما فرستاده میشه که باید روی لینک کلیک کنین و برداشت رو تایید کنین.
در این حالت وضعیتی که برمیگرده pendingه.
این لینک فقط به مدت ۳۰ دقیقه معتبره. پس از گذشت ۳۰ دقیقه در صورت تایید نشدن لینک، برداشت کنسل میشه.
در صورتی که تیک برداشت دومرحله ای رو نزدین وضعیتی که برمیگرده
auditing ه و تنها ۹۰ ثانیه فرصت دارین تا برداشت رو کنسل کنین.
بعد از اون برداشت فرستاده میشه.
کارمزد از مقداری که میخواهید برداشت کنید کسر میشود و در نهایت amount - fee به حساب شما واریز میشود.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای درخواست برداشت تومان باید به اندپوینت زیر درخواست بزنین.
POST /v1/accounting/withdraw/irt
response:
res.data = {
address: '5022291061292486',
amount: 100000,
currency: 'IRT',
description: 'توضیحات',
fee: 5000,
network: 'bankCard',
paymentID: '1',
status: 'auditing',
tags: [],
withdrawID: '789bb874-8af0-4bf3-ab05-11366ea3fd30'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
amount | number | بله | 1000000 | مقدار برداشت(کارمزد برداشت از این مقدار کسر میشه) |
address | string | بله | 1234567812345678 | آدرس مقصد |
p2address | string | خیر | 267129692 | memo(BEP2) یا tag(Ripple) |
paymentID | string | خیر | 20221009001 | یک آی دی که میخواین جهت جلوگیری از دابل اسپندینگ به این برداشت اختصاص بدین. |
tags | array | خیر | ['تست'] | اگر میخواین راحت تر برداشت هاتون رو دسته بندی کنین |
description | string | خیر | درخواست برداشت به آقای x فاکتور شماره y | توضیحاتی که میخواین راجع به این برداشت بنویسین. |
لفو برداشت
request:
const url = '/v1/accounting/withdraw/:id'
const method = 'DELETE'
const res = await axios({
url: url.replace(':id', '789bb874-8af0-4bf3-ab05-11366ea3fd30')
method,
headers: { authorization: `Bearer ${accessToken}` }
})
id که فرستاده میشه همون withdrawID هست که موقع گرفتن لیست برداشت ها یا موقع فرستادن یک درخواست برداشت به سمت شما برمیگرده.
پس از آنکه وضعیت برداشت به حسابرسی(auditing) تغییر کرد، تنها ۳۰ ثانیه فرصت دارید تا برداشت را کنسل کنید.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای لفو برداشت باید به اندپوینت زیر درخواست بزنین.
DELETE /v1/accounting/withdraw/:id
response:
res.data = {
status: 'canceled',
withdrawID: '789bb874-8af0-4bf3-ab05-11366ea3fd30'
}
لفو برداشت با paymentID
request:
const url = '/v1/accounting/withdraw'
const method = 'DELETE'
const res = await axios({
url,
method,
params: { paymentID: '1' },
headers: { authorization: `Bearer ${accessToken}` }
})
پس از آنکه وضعیت برداشت به حسابرسی(auditing) تغییر کرد، تنها ۳۰ ثانیه فرصت دارید تا برداشت را کنسل کنید.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای لفو برداشت باید به اندپوینت زیر درخواست بزنین.
DELETE /v1/accounting/withdraw
response:
res.data = {
status: 'canceled',
paymentID: '1'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
paymentID | string | بله | 20221009001 | PaymentID برداشتی که میخواین کنسل کنین. |
دریافت لیست برداشت ها
request:
const url = '/v1/accounting/withdraw'
const method = 'GET'
const res = await axios({
url,
method,
params: {
currency: 'USDT',
},
headers: { authorization: `Bearer ${accessToken}` }
})
برای گرفتن لیست برداشت ها (یا گرفتن یک برداشت با استفاده از paymentID ) میتونین از اندپوینت زیر استفاده کنین. در صورتی که هیچ پارامتری ارسال نشه ۲۰ تا برداشت اخیر کاربر بدون توجه به ارز و شبکه برمیگرده. اگر paymentID رو بفرستین سایر پارامترهای ارسالی نادیده گرفته میشن
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برایدریافت لیست برداشت ها باید به اندپوینت زیر درخواست بزنین.
GET /v1/accounting/withdraw
response:
res.data = [{
origin: 'nipoto',
tags: ['mainAccount'],
description: null,
id: '789bb874-8af0-4bf3-ab05-11366ea3fd30',
amount: 500,
currency: 'USDT',
address: 'address',
network: 'TRC20',
fee: 1,
p2address: null,
humanID: '1',
createdAt: '2022-10-09T06:17:42.000Z',
status: 'pending',
hash: null
},…]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
paymentID | string | خیر | 20221009001 | paymentID برداشتی که میخواین اطلاعاتش رو بگیرین. |
currency | string | خیر | USDT | اسم ارز |
network | string | خیر | TRC20 | اسم شبکه |
pageNumber | number | خیر | 5 | برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است |
pageCount | number | خیر | 50 | تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست. |
status | string | خیر | وضعیت برداشت. مقادیر قابل قبول عبارتند از pending, canceled,auditing,processing,done,rejected,expired | auditing |
startDate | date | خیر | 2022-10-11T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
endDate | date | خیر | 2022-10-12T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
گرفتن یک برداشت با استفاده از withdrawID
request:
const url = '/v1/accounting/withdraw/:id'
const method = 'GET'
const res = await axios({
url: url.replace(':id', '789bb874-8af0-4bf3-ab05-11366ea3fd30')
method,
headers: { authorization: `Bearer ${accessToken}` }
})
id که فرستاده میشه همون withdrawID هست که موقع گرفتن لیست برداشت ها یا موقع فرستادن یک درخواست برداشت به سمت شما برمیگرده.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای گرفتن اطلاعات برداشت باید به اندپوینت زیر درخواست بزنین.
GET /v1/accounting/withdraw/:id
response:
res.data = {
origin: 'nipoto',
tags: ['mainAccount'],
description: null,
id: '789bb874-8af0-4bf3-ab05-11366ea3fd30',
amount: 500,
currency: 'USDT',
address: 'address',
network: 'TRC20',
fee: 1,
p2address: null,
humanID: '1',
createdAt: '022-10-09T06:17:42.000Z',
status: 'auditing',
hash: null
}
اد سفارش لیمیت
request:
const url = '/v1/market/order/limit'
const method = 'POST'
const res = await axios({
url,
method,
data: { market: 'BTC_USDT', side: 'bid', amount: 0.01, price: 1000, paymentID: '1' }
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای ثبت کردن سفارش لیمیت باید از اندپوینت زیر استفاده کنین.
POST /v1/market/order/limit
response:
res.data= {
amount: 0.01,
market: 'BTC/USDT',
orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
paymentID: '1',
price: 1000,
side: 'bid',
type: 'limit'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | BTC_USDT | اسم مارکتی که میخواین توش سفارش ثبت کنین |
side | string | بله | bid | مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین |
amount | number | بله | 0.001 | بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین |
price | number | بله | 19000 | قیمتی که میخواین در اون ارزتون رو بفروشین/بخرین |
paymentID | string | بله | 1401_04_001 | یک آی دی که میخواین به این خرید/فروش اختصاص بدین. |
اد سفارش مارکت
request:
const url = '/v1/market/order/market'
const method = 'POST'
const res = await axios({
url,
method,
data: { market: 'BTC_USDT', side: 'bid', amount: 0.01, paymentID: '1' }
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای ثبت کردن سفارش مارکت باید از اندپوینت زیر استفاده کنین.
POST /v1/market/order/market
response:
res.data= {
amount: 0.01,
market: 'BTC/USDT',
orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
paymentID: '1',
side: 'bid',
type: 'market'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | BTC_USDT | اسم مارکتی که میخواین توش سفارش ثبت کنین |
side | string | بله | bid | مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین |
amount | number | بله | 0.001 | بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین |
paymentID | string | بله | 1401_04_001 | یک آی دی که میخواین به این خرید/فروش اختصاص بدین. |
اد سفارش oco
request:
const url = '/v1/market/order/oco'
const method = 'POST'
const res = await axios({
url,
method,
data: { market: 'BTC/USDT', side: 'bid', amount: 0.01, price: 1000, paymentID: '1', limit: 1000, stop: 1001 }
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای ثبت کردن سفارش لیمیت باید از اندپوینت زیر استفاده کنین.
POST /v1/market/order/oco
response:
res.data= {
amount: 0.01,
market: 'BTC/USDT',
orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
paymentID: '1',
price: 1000,
stop: 1001,
limit: 1000
side: 'bid',
type: 'oco'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | BTC_USDT | اسم مارکتی که میخواین توش سفارش ثبت کنین |
side | string | بله | bid | مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین |
amount | number | بله | 0.001 | بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین |
price | number | بله | ???? | ??? |
stop | number | بله | ???? | ??? |
limit | number | بله | ???? | ??? |
paymentID | string | بله | 1401_04_001 | یک آی دی که میخواین به این خرید/فروش اختصاص بدین. |
اد سفارش استاپ-لیمیت
request:
const url = '/v1/market/order/stopLimit'
const method = 'POST'
const res = await axios({
url,
method,
data: { market: 'BTC/USDT', side: 'bid', amount: 0.01, price: 1000, paymentID: '1', limit: 1000, stop: 1001 }
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای ثبت کردن سفارش استاپ-لیمیت باید از اندپوینت زیر استفاده کنین.
POST /v1/market/order/stopLimit
response:
res.data= {
amount: 0.01,
market: 'BTC/USDT',
orderID: 'acb16d06-9bfa-48b6-bcf5-298cba3ca967',
paymentID: '1',
stop: 1001,
limit: 1000
side: 'bid',
type: 'oco'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | BTC_USDT | اسم مارکتی که میخواین توش سفارش ثبتکنین |
side | string | بله | bid | مارکت BTC_USDT رو در نظر بگیرین. اگر میخواین بیت کوین بخرین سایدی که میفرستین باید bid باشه و اگر میخواین بیت کوین بفروشین باید ساید ask بفرستین |
amount | number | بله | 0.001 | بازم مارکت BTC_USDT ور در نظر بگیرین. Amount میشه مفدار بیت کوینی که میخواین بخرین یا بفروشین |
stop | number | بله | ???? | ??? |
limit | number | بله | ???? | ??? |
paymentID | string | بله | 1401_04_001 | یک آی دی که میخواین به این خرید/فروش اختصاص بدین. |
کنسل کردن سفارش
request:
const url = '/v1/market/order/:id'
const method = 'DELETE'
const res = await axios({
url: url.replace(':id', '289bb874-8af0-4bf3-ab05-11366ea3fd30')
method,
headers: { authorization: `Bearer ${accessToken}` }
})
id که فرستاده میشه همون orderID هست که موقع گرفتن لیست سفارشات یا موقع ثبت سفارش به سمت شما برمیگرده.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای لفو سفارش باید به اندپوینت زیر درخواست بزنین.
DELETE /v1/market/order/:id
response:
res.data = {
type: 'limit',
remainingAmount: 0.004,
market: 'BTC/USDT',
orderID: id,
price: 1000,
side: 'bid'
}
کنسل کردن سفارشها
request:
const url = '/v1/market/order'
const method = 'DELETE'
const res = await axios({
urlو
method,
headers: { authorization: `Bearer ${accessToken}` }
})
در صورتی که paymentID فرستاده شود فقط سفارش مربوطه کنسل خواهد شد(که در این صورت پاسخ بازگشتی مشابه با «کنسل کردن سفارش» میباشد) در غیر این صورت تمام سفارشهای فعال کاربر کنسل میشوند
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای لفو سفارش باید به اندپوینت زیر درخواست بزنین.
DELETE /v1/market/order
response:
res.data = {
code: 'SUCCESS',
message: 'all openOrders are canceled'
}
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
paymentID | string | بله | 20221009001 | PaymentID برداشتی که میخواین کنسل کنین. |
گرفتن سفارشات فعال
request:
const url = '/v1/market/order/open'
const method = 'GET'
const res = await axios({
url: `${url}?market=BTC_USDT`,
method
headers: { authorization: `Bearer ${accessToken}` },
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای دریافت سفارشات فعال باید به اندپوینت زیر درخواست بزنین.
GET /v1/market/order/open
response:
res.data = [
{
id: 'e959f995-8986-4cb2-8731-e6145c74047c',
type: 'stop-limit',
side: 'bid',
status: 'pending',
humanID: '210234297718',
isTriggered: true,
remainingAmount: 0.01,
amount: 0.01,
price: 0,
stop: 1000,
limit: 1001,
createdAt: '2022-10-23T08:16:49.431Z',
origin: 'nipoto',
market: 'BTC/USDT'
},...
]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | BTC_USDT | نام بازار |
pageNumber | number | خیر | 5 | برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است |
pageCount | number | خیر | 50 | تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست. |
type | string | خیر | limit | مقادیر مجاز برابر است با 'limit', 'market', 'oco', 'stop-limit' |
side | string | خیر | bid | مقادیر مجاز برابر است با bid و ask |
startDate | date | خیر | 2022-10-11T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
endDate | date | خیر | 2022-10-12T06:17:42.000Z | اگر میخواین بر اساس زمان لیست برداشت ها رو فیلتر کنین و بگیرین. |
گرفتن تاریخچه سفارشات
request:
const url = '/v1/market/order'
const method = 'GET'
const res = await axios({
url,
method,
params: { market: 'BTC/USDT' },
headers: { authorization: `Bearer ${accessToken}` }
})
در صورتی که paymentID فرستاده شود سایر پارامترها نادیده گرفته میشوند.
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای دریافت سفارشات فعال باید به اندپوینت زیر درخواست بزنین.
GET /v1/market/order
response:
res.data = [{
id: 'e959f995-8986-4cb2-8731-e6145c74047c',
market: 'BTC/USDT',
type: 'limit',
side: 'bid',
amount: 0.01,
average: 999,
price: 999,
stop: 0,
limit: 0,
humanID: '210230633784',
origin: 'nipoto',
executedAmount: 0.009,
executedTotal: 8.991,
status: 'partiallyCanceled'
},
{
amount: 0.01,
average: 1000,
executedAmount: 0.01,
executedTotal: 10,
humanID: '210230633784',
id: 'e959f995-8986-4cb2-8731-e6145c74047d',
limit: 0,
market: 'BTC/USDT',
origin: 'nipoto-api',
price: 1000,
side: 'bid',
status: 'done',
stop: 0,
type: 'limit'
}
]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | بله | BTC_USDT | نام بازار |
pageNumber | number | خیر | 5 | برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است |
pageCount | number | خیر | 50 | تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست. |
type | string | خیر | limit | مقادیر مجاز برابر است با 'limit', 'market', 'oco', 'stop-limit' |
side | string | خیر | bid | مقادیر مجاز برابر است با bid و ask |
status | string | خیر | canceled | مقادیر مجاز برابر است با canceled, done و partiallyCanceled |
startDate | date | خیر | 2022-10-11T06:17:42.000Z | اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین. |
endDate | date | خیر | 2022-10-12T06:17:42.000Z | اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین. |
paymentID | string | خیر | 20221205001 | paymentID مربوط به اون سفارش |
گرفتن اطلاعات یک سفارش
request:
const url = '/v1/market/order/:id'
const method = 'GET'
const res = await axios({
url: url.replace(':id', '9e0eb6c4-cf78-499a-90f2-9caac4e81c67'),
method,
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای دریافت اطلاعات یک سفارش باید به اندپوینت زیر درخواست بزنین.
GET /v1/market/order/:id
response:
res.data = {
id: '9e0eb6c4-cf78-499a-90f2-9caac4e81c67',
market: 'BTC/USDT',
type: 'limit',
side: 'bid',
amount: 0.01,
average: 999,
price: 999,
stop: 0,
limit: 0,
humanID: '210230633784',
origin: 'nipoto',
executedAmount: 0.009,
executedTotal: 8.991,
status: 'partiallyCanceled'
}
گرفتن معاملات یک سفارش
request:
const url = '/v1/market/order/:id/trades'
const method = 'GET'
const res = await axios({
url: url.replace(':id', '9e0eb6c4-cf78-499a-90f2-9caac4e81c67'),
method,
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای دریافت لیست معاملات یک سفارش باید به اندپوینت زیر درخواست بزنین.
GET /v1/market/order/:id/trades
response:
res.data = [
{
side: 'bid',
taker: 'maker',
humanID: '123456',
amount: 0.009,
price: 999,
fee: 0.008991,
createdAt: '2022-10-23T08:09:20.161Z',
market: 'BTC/USDT'
},
{
side: 'bid',
taker: 'taker',
amount: 0.009,
price: 999,
fee: 0.000009,
humanID: '123457',
createdAt: '2022-10-23T08:09:20.161Z',
market: 'BTC/USDT'
}
]
گرفتن لیست معاملات
request:
const url = '/v1/market/trade'
const method = 'GET'
const res = await axios({
url: `${url}?market=BTC_USDT`,
method,
headers: { authorization: `Bearer ${accessToken}` }
})
تعداد درخواست قابل قبول به این روت برابر است با :
60 req/min
برای دریافت لیست معاملات باید به اندپوینت زیر درخواست بزنین.
GET /v1/market/trade
response:
res.data = [
{
side: 'bid',
taker: 'maker',
humanID: '123456',
amount: 0.009,
price: 999,
fee: 0.008991,
createdAt: '2022-10-23T08:09:20.161Z',
market: 'BTC/USDT'
},
{
side: 'bid',
taker: 'taker',
amount: 0.009,
price: 999,
fee: 0.000009,
humanID: '123457',
createdAt: '2022-10-23T08:09:20.161Z',
market: 'BTC/USDT'
}
]
پارامترهای ورودی
پارامتر | نوع | الزامی | نمونه | توضیحات |
---|---|---|---|---|
market | string | خیر | BTC_USDT | نام بازار |
pageNumber | number | خیر | 5 | برای pagination استفاده میشه. به صورت پیش فرض مقدارش یک است |
pageCount | number | خیر | 50 | تعدادی که میخواین برگرده. به صورت پیش فرض ۲۰ تا برداشت اخیر برمیگرده. ماکزیمم مقداری که میتونین درخواست بدین ۱۰۰ تاست. |
side | string | خیر | bid | مقادیر مجاز برابر است با bid و ask |
taker | boolean | خیر | true | taker! |
startDate | date | خیر | 2022-10-11T06:17:42.000Z | اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین. |
endDate | date | خیر | 2022-10-12T06:17:42.000Z | اگر میخواین بر اساس زمان لیست سفارشات ها رو فیلتر کنین و بگیرین. |