Общая информация.

Все запросы к API должны вызываться через https.

Базовый URL для запросов — https://api.profit.best.

Открытые методы API

Информация

Получить информацию об API.

GET /

Пример ответа

HTTP 200 No Error
{
  "name": "Profit.Best API",
  "version": 1
}

Описание ответа

Ответ содержит объект, кратко описывающий API:

  • name — название API,
  • version — версия API.

Все валюты

Получить список валют.

GET /currencies

Пример ответа

HTTP 200 No Error
[
  {
    "name": "BTC",
    "commission": {
      "amount": "0.001 BTC",
      "included": true
    }
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, кратко описывающих валюты:

  • name — название валюты,
  • comission — информация о комиссии:
    • amount — комиссия, взимаемая при выводе средств (например, 0.001 BTC или 3%),
    • included — флаг, указывающий включена ли комиссия в сумму вывода.

Валюта

Получить подробную информацию о валюте.

GET /currencies/currency

Параметры запроса

  • currency — название валюты.

Пример ответа

HTTP 200 No Error
{
  "name": "BTC",
  "commission": {
    "amount": "0.001 BTC",
    "included": true
  },
  "pairs": [
    "BTC-RUR",
    "CAPP-BTC",
    "ETC-BTC",
    "ETH-BTC",
    "LTC-BTC",
    "SIB-BTC"
  ]
}

Описание ответа

Ответ содержит объект, подробно описывающий валюту currency:

  • name — название валюты,
  • comission — объект, содержащий информацию о комиссии:
    • amount — сумма, взимаемая при выводе средств (например, 0.001 BTC или 3%),
    • included — указывает включена ли комиссия в сумму вывода,
  • pairs — массив, содержащий названия торговых пар, в которых участвует валюта currency.

Все торговые пары

Получить список торговых пар.

GET /pairs

Пример ответа

HTTP 200 No Error
[
  {
    "name": "BTC-RUR",
    "lastPrice": "0",
    "delta": "0%"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, кратко описывающих торговые пары:

  • name — название торговой пары,
  • lastPrice — последняя цена сделки,
  • delta — рост/падение в %.

Торговая пара

Получить подробную информацию о торговой паре.

GET /pairs/pair

Параметры запроса

  • pair — название торговой пары.

Пример ответа

HTTP 200 No Error
{
  "name": "ETC-BTC",
  "lastPrice": "0.006",
  "delta": "0%",
  "minPrice24h": "0",
  "maxPrice24h": "0",
  "volume24h": "0"
}

Описание ответа

Ответ содержит объект, подробно описывающий торговую пару pair:

  • name — название торговой пары,
  • lastPrice — последняя цена сделки,
  • delta — рост/падение в %,
  • minPrice24h — минимальная цена за 24 часа,
  • maxPrice24h — максимальная цена за 24 часа,
  • volume24h — объем сделок за 24 часа.

Ордера

Получить список активных ордеров торговой пары.

GET /orders/pair

Параметры запроса

  • pair — название торговой пары.

Пример ответа

HTTP 200 No Error
[
  {
    "pair": "ETC-BTC",
    "type": "sell",
    "amount": "1",
    "price": "0.0001",
    "date": "2018-02-13T16:09:34.987Z"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, описывающих активные ордера торговой пары pair:

  • pair — название торговой пары,
  • type — тип ордера, может принимать значения:
    • buy — покупка,
    • sell — продажа;
  • amount — объем валюты,
  • price — цена,
  • date — дата и время создания ордера.

Сделки

Получить список сделок по всем торговым парам или по конкретной торговой паре за последние 24 часа или за период.

GET /trades[/pair][?period=period]

Параметры запроса

  • pair — название торговой пары,
  • period — период, за который необходимо получить сделки, может принимать значения:
    • day — последние 24 часа (по умолчанию),
    • week — последняя неделя,
    • month — последний месяц,
    • 3-months — последние 3 месяца.

Пример ответа

HTTP 200 No Error
[
  {
    "pair": "ETC-ETH",
    "type": "sell",
    "price": "1",
    "amount": "8",
    "date": "2018-02-07T06:54:15.332Z"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, описывающих сделки:

  • pair — название торговой пары,
  • type — тип сделки, может принимать значения:
    • buy — покупка,
    • sell — продажа;
  • price — цена,
  • amount — объем валюты,
  • date — дата и время проведения сделки.

Закрытые методы API

Для работы с закрытыми методами API биржи пользователю нужно сгенерировать API ключ. Это можно сделать выбрав пункт меню «Доступ к API» и нажав кнопку «Сгенерировать».

Полученный ключ должен передаваться во всех запросах к API в заголовке X-Api-Key.

При попытке обратиться к API без передачи ключа, в ответ сервер вернет сообщение об ошибке:

HTTP 403 Forbidden
{
  "error": "No API-Key provided"
}

Если передан недействительный ключ (например, был отозван пользователем), сервер ответит сообщением:

HTTP 401 Unauthorized
{
  "error": "Invalid API-Key"
}

Счет

Получить список счетов.

GET /my/balances

Пример ответа

HTTP 200 No Error
[
  {
    "currency": "BTC",
    "address": "msRR881iFkcE1msvedYEAxX6oESDGQSW4r",
    "balance": "0",
    "held": "0"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, описывающих счета пользователя:

  • currency — название валюты счета,
  • address — адрес кошелька,
  • balance — текущий баланс,
  • held — средства, замороженные для участия в торгах.

Баланс

Получить изменения баланса на счете за последние 24 часа или за период.

GET /my/balances/currency/changes[?period=period]

Параметры запроса

  • currency — название валюты,
  • period — период, за который необходимо получить изменения баланса, может принимать значения:
    • day — последние 24 часа (по умолчанию),
    • week — последняя неделя,
    • month — последний месяц,
    • 3-months — последние 3 месяца.

Пример ответа

HTTP 200 No Error
[
  {
    "currency": "BTC",
    "type": "trade",
    "change": "1",
    "balance": "120.98420099",
    "date": "2018-01-30T14:38:07.265Z"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, описывающих изменения баланса на счете currency:

  • currency — название валюты,
  • type — тип изменения баланса, может принимать значения:
    • withdrawal — вывод средств со счета,
    • deposit — пополнение счета,
    • trade — торги;
  • change — сумма, на которую изменился баланс,
  • balance — итоговый баланс счета,
  • date — дата и время изменения счета.

Сделки пользователя

Получить список сделок пользователя по всем торговым парам или по конкретной торговой паре за последние 24 часа или за период.

GET /my/trades[/pair][?period=period]

Параметры запроса

  • pair — название торговой пары,
  • period — период, за который необходимо получить сделки, может принимать значения:
    • day — последние 24 часа (по умолчанию),
    • week — последняя неделя,
    • month — последний месяц,
    • 3-months — последние 3 месяца.

Пример ответа

HTTP 200 No Error
[
  {
    "pair": "ETC-ETH",
    "type": "sell",
    "price": "1",
    "amount": "8",
    "date": "2018-02-07T06:54:15.332Z"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, описывающих сделки пользователя:

  • pair — название торговой пары,
  • type — тип сделки, может принимать значения:
    • buy — покупка,
    • sell — продажа;
  • price — цена,
  • amount — объем валюты,
  • date — дата и время проведения сделки.

Все ордера пользователя

Получить список ордеров пользователя по всем торговым парам или по конкретной торговой паре.

GET /my/orders[/?pair=pair&status=status]

Параметры запроса

  • pair — название торговой пары,
  • status — статус ордера, может принимать значения:
    • open — активный ордер (по умолчанию),
    • complete — завершенный ордер.

Пример ответа

HTTP 200 No Error
[
  {
    "id": 255,
    "status": "open",
    "pair": "ETC-BTC",
    "type": "sell",
    "amount": "1",
    "price": "0.0001",
    "date": "2018-02-13T16:09:34.987Z",
    "limitType": "limit",
    "stopPrice": "0"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов, описывающих ордера пользователя по всем торговым парам или по торговой паре pair:

  • id — идентификатор ордера,
  • status — статус ордера, может принимать значения:
    • open — активный ордер,
    • complete — завершенный ордер;
  • pair — название торговой пары,
  • type — тип ордера, может принимать значения:
    • buy — покупка,
    • sell — продажа;
  • amount — объем валюты,
  • price — цена,
  • date — дата и время создания ордера,
  • limitType — является ли ордер Stop-Limit ордером,
  • stopPrice — стоп-цена.

Ордер пользователя

Получить подробую информацию об ордере пользователя.

GET /my/orders/id

Параметры запроса

  • id — идентификатор ордера.

Пример ответа

HTTP 200 No Error
{
  "id": 255,
  "status": "open",
  "pair": "ETC-BTC",
  "type": "sell",
  "amount": "1",
  "price": "0.0001",
  "date": "2018-02-13T16:09:34.987Z",
  "limitType": "limit",
  "stopPrice": "0"
}

Описание ответа

Ответ содержит объект, описывающий ордер пользователя с идентификатором id:

  • id — идентификатор ордера,
  • status — статус ордера, может принимать значения:
    • open — активный ордер,
    • complete — завершенный ордер;
  • pair — название торговой пары,
  • type — тип ордера, может принимать значения:
    • buy — покупка,
    • sell — продажа;
  • amount — объем валюты,
  • price — цена,
  • date — дата и время создания ордера,
  • limitType — является ли ордер Stop-Limit ордером,
  • stopPrice — стоп-цена.

Создать ордер

Создать один или несколько новых ордеров.

POST /my/orders

Пример запроса при создании одного ордера

{
  "pair": "ETC-BTC",
  "type": "sell",
  "amount": "1",
  "price": "0.0001"
}

Пример запроса при создании нескольких ордеров

[
  {
    "pair": "ETC-BTC",
    "type": "sell",
    "amount": "1",
    "price": "0.0001"
  },
  {
    "pair": "ETC-ETH",
    "type": "buy",
    "amount": "4",
    "price": "0.0014"
  },
  ...
]

Описание запроса

Запрос должен содержать объект или массив объектов, описывающих ордер:

  • pair — название торговой пары,
  • type — тип ордера, может принимать значения:
    • buy — покупка,
    • sell — продажа;
  • amount — объем валюты,
  • price — цена,
  • limitType — является ли ордер Stop-Limit ордером, может принимать значения:
    • limit — Limit ордер,
    • stop_limit — Stop-Limit ордер,
  • stopPrice — стоп-цена.

Пример ответа при создании одного ордера

HTTP 200 No Error
{
  "id": 255,
  "status": "open",
  "pair": "ETC-BTC",
  "type": "sell",
  "amount": "1",
  "price": "0.0001",
  "date": "2018-02-13T16:09:34.987Z",
  "limitType": "stop_limit",
  "stopPrice": "0.0002"
}

Пример ответа при создании нескольких ордеров

HTTP 200 No Error
[
  {
    "id": 255,
    "status": "open",
    "pair": "ETC-BTC",
    "type": "sell",
    "amount": "1",
    "price": "0.0001",
    "date": "2018-02-13T16:09:34.987Z",
    "limitType": "stop_limit",
    "stopPrice": "0.0002"
  },
  {
    "id": 256,
    "status": "open",
    "pair": "ETC-ETH",
    "type": "buy",
    "amount": "4",
    "price": "0.0014",
    "date": "2018-02-13T16:09:34.987Z",
    "limitType": "limit",
    "stopPrice": "0"
  },
  ...
]

Описание ответа

Ответ содержит объект или массив объектов, описывающих новые ордера пользователя:

  • id — идентификатор ордера,
  • status — статус ордера, может принимать значения:
    • open — активный ордер,
    • complete — завершенный ордер;
  • pair — название торговой пары,
  • type — тип ордера, может принимать значения:
    • buy — покупка,
    • sell — продажа;
  • amount — объем валюты,
  • price — цена,
  • date — дата и время создания ордера,
  • limitType — является ли ордер Stop-Limit ордером,
  • stopPrice — стоп-цена.

Отменить ордер

Отменить ордер пользователя.

DELETE /my/orders/id

Параметры запроса

  • id — идентификатор ордера, который нужно отменить.

Пример ответа

HTTP 200 No Error
{
  "id": 47,
  "status": "canceled"
}

Описание ответа

Ответ содержит объект с информацией о проведенной отмене ордера:

  • id — идентификатор ордера,
  • statuscanceled при успешной отмене ордера.

Отменить несколько ордеров

Отменить несколько ордеров пользователя.

DELETE /my/orders

Пример запроса при отмене нескольких ордеров

[
  46,
  47
  ...
]

Описание запроса

Запрос должен содержать массив идентификаторов ордеров, которые необходимо отменить.

Пример ответа

HTTP 200 No Error
[
  {
    "id": 46,
    "status": "canceled"
  },
  {
    "id": 47,
    "status": "canceled"
  },
  ...
]

Описание ответа

Ответ содержит массив объектов с информацией о проведенной отмене ордеров:

  • id — идентификатор ордера,
  • statuscanceled при успешной отмене ордера.