TronBid · Developer API

API MarketPlace — энергия и Bandwidth TRON

Покупайте ресурсы у участников Marketplace, создавайте заявки и управляйте предложениями продавца через отдельный API TronBid.

  • Energy и Bandwidth
  • 3 способа покупки
  • Seller Offers и подпись
Версия
v2 · REST / JSON
Обновлено
06.10.2026
Base URL
https://tronbid.com/api/v2/marketplace
На этой странице

Подключение

От ключа до TXID

  1. 1

    Запросите отдельный ключ Marketplace у поддержки. Проверьте GET /account и GET /capabilities.

  2. 2

    Выберите режим покупки, получите POST /quotes и создайте POST /orders. Для оплаты из общего баланса достаточно payment_mode: balance.

  3. 3

    Читайте GET /orders/{id} или события webhook. Успех делегации: delivery_complete=true; хеши находятся в txids_delegate. Создание заказа само по себе не подтверждает получение ресурса.

Пример интеграции
javascript
const base = "https://tronbid.com/api/v2/marketplace";
const headers = { Authorization: "Bearer " + process.env.TRONBID_MARKETPLACE_KEY };
async function write(path, body, key = crypto.randomUUID()) {
  const response = await fetch(base + path, {
    method: "POST",
    headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": key },
    body: JSON.stringify(body)
  });
  const result = await response.json();
  if (!response.ok) throw new Error(JSON.stringify(result.error));
  return result.data;
}
const quote = await write("/quotes", {
  mode: "best", resource_type: "energy", resource_amount: 131000,
  duration: { type: "minutes", value: 15 },
  recipient_address: "YOUR_TRON_RECEIVER_ADDRESS",
  max_price_sun: 50, max_total_trx: "6.550000",
  allow_partial: true, wait_seconds: 900
});
const order = await write("/orders", {
  quote_id: quote.quote_id, payment_mode: "balance",
  external_id: "invoice-2026-0001"
});
const response = await fetch(base + "/orders/" + order.id, { headers });
const { data: state } = await response.json();
console.log(state.status, state.delivery_complete, state.txids_delegate);

Доступ и отдельные ключи

Получите ключ у @tronbid в Telegram или support@tronbid.com. Сначала войдите на сайт с кошельком аккаунта. Администратор выдаёт отдельный ключ tbm_ и права read, buy, sell, offers, wallets, webhooks. Ключи Quick Rent и Seller Delegate API не подходят.

Базовый адрес: https://tronbid.com/api/v2/marketplace. Передавайте Authorization: Bearer tbm_… по HTTPS. Баланс аккаунта общий с сайтом и Quick Rent, история операций API Marketplace отдельная. Лимитов расходов нет. Ограничение запросов и список разрешённых IP задаёт администратор.

Получить отдельный ключ · @tronbid

Ответы и безопасные повторы

Успех: {data: …, request_id: UUID}. Ошибка: {error: {code, details?}, request_id: UUID}. Суммы TRX в котировках, заказах и статистике возвращаются строками; поля ручных сделок сохраняют числовой формат. Точный тип каждого поля указан в OpenAPI. Расчёты ведутся в SUN, 1 TRX = 1 000 000 SUN.

Каждый POST, PATCH, PUT и DELETE требует Idempotency-Key длиной 8–128 символов: буквы, цифры, . _ : -. При повторе того же запроса с тем же ключом сохраняется первоначальный результат. Для другой операции используйте новый ключ. ID ключа API определяет область идемпотентности.

После таймаута повторяйте исходный запрос с тем же Idempotency-Key. 409 REQUEST_IN_PROGRESS — запрос ещё выполняется; 409 IDEMPOTENCY_CONFLICT — изменилось тело или адрес. При 429 RATE_LIMITED соблюдайте Retry-After. Ответы нельзя трактовать как подтверждение делегации до delivery_complete=true.

Для покупателя

Рынок, объёмы и цена

GET /capabilities возвращает действующие минимумы и сроки. Доступны energy и bandwidth, 15 минут, 1 час и 1–30 дней. GET /market?side=offers показывает предложения продавцов; side=bids — заявки покупателей. resource_type, limit (1–100) и offset управляют выборкой.

price_sun — цена за единицу ресурса: за весь период для minutes/hours, за один день для days. Полная цена: объём × price_sun × число дней (для 15 минут и часа множитель равен 1). Комиссия удерживается из дохода продавца по правилам Marketplace; отдельной комиссии покупателя нет.

Доступность берётся из последних проверенных снимков ресурсов продавцов. resources_checked_at показывает их возраст. Котировка не резервирует ресурс. API не вызывает опрос блокчейна при каждом чтении рынка. Заказы исполняют только участники Marketplace, без подмены собственными пулами или китайским поставщиком.

Доступность, цена и расчёт перевода

GET /resources суммирует свободные ресурсы продавцов, не считая один кошелёк несколько раз. Фильтруйте ресурс, срок и цену. Это снимок доступности, а не резервирование.

GET /price показывает цену и доступный объём без создания котировки. Для покупки используйте POST /quotes или POST /orders/instant с ограничением бюджета. Каждый платёж части округляется по правилам Marketplace; окончательная сумма указана в котировке.

GET /estimate-energy симулирует transfer(address,uint256) указанного токена для конкретных from_address и to_address. amount передаётся в минимальных единицах токена. fee_trx — стоимость сжигания TRX по сети, а не цена аренды. Результат кешируется 15 секунд отдельно для каждой комбинации параметров. При неудачной симуляции возвращается 422, а не выдуманная оценка.

Три способа покупки

Сначала POST /quotes: mode, resource_type, resource_amount, duration:{type,value}, recipient_address. bid создаёт заявку с вашей price_sun; offer покупает конкретный offer_id; best выбирает самые дешёвые подходящие предложения в пределах max_price_sun и/или max_total_trx. Для offer можно ограничить максимальную цену.

Котировка действует 60 секунд. POST /orders принимает quote_id, payment_mode (balance или onchain), необязательный external_id. Котировку можно использовать для одного заказа; external_id уникален в аккаунте. Максимальный бюджет фиксируется в заказе и не увеличивается автоматически.

allow_partial=true разрешает частичное исполнение несколькими продавцами. При false покупка offer/best начинается только после резервирования всего объёма в одной операции; заявка bid принимается одним продавцом целиком. wait_seconds задаёт ожидание от 30 секунд до 30 дней, по умолчанию 900 секунд. Уже принятые части исполняются на прежних условиях.

Оплата, отмена и пакетные заявки

balance резервирует бюджет из общего баланса атомарно с созданием заказа. Дополнительного списания при распределении по продавцам нет. onchain создаёт ожидающий оплаты заказ: запросите POST /orders/{id}/payment и отправьте указанное количество TRX с указанного payer_address. Счёт действует 15 минут. Излишек платежа зачисляется на баланс.

POST /orders/{id}/cancel прекращает поиск исполнителей и возвращает нераспределённый остаток на общий баланс. Уже принятые или подписанные делегации сначала проходят проверку результата. Истечение срока ожидания действует так же. Возвраты за неисполненные оплаченные части идут по правилам Marketplace.

POST /orders/batch принимает {orders:[{quote_id,payment_mode,external_id},…]} — до 20 заказов. Создание атомарно: ошибка любого элемента отменяет создание всей партии. У партии один Idempotency-Key.

Для продавца

Кошельки и автоматические предложения

Добавляйте несколько кошельков. POST /wallet-challenges с address возвращает message и challenge_id. Подпишите message методом TronWeb.trx.signMessageV2 и отправьте POST /wallets с challenge_id, signatures и automatic. Подтверждение действует 5 минут; для multisig нужен порог подписей владельцев. Приватные ключи на сервер не отправляются.

Для автоматической продажи сначала зарегистрируйте кошелёк с automatic=false, затем вызовите POST /wallets/{id}/prepare-permission. Подпишите и отправьте полученную транзакцию из своего кошелька. После подтверждения получите новое сообщение для подписи и повторите POST /wallets с automatic=true: API проверит разрешение в блокчейне. Подготовка не отправляет транзакцию; сетевую комиссию оплачивает владелец кошелька. GET /wallets возвращает permission_id, статус и снимки ресурсов. PATCH /wallets/{id} с enabled:false отключает новые операции с кошелька.

POST /offers: wallet_id, resource_type, resource_amount, duration, price_sun, auto_repeat, paused. Цена всегда задаётся продавцом. PATCH /offers/{id} изменяет price_sun, free_amount, duration, paused, auto_repeat или принимает cancel:true. Если условия уже использовались, создаётся замена с новым ID; ответ содержит replaces_offer_id, прежнее предложение — replaced_by. Существующие резервирования сохраняют условия. Для автоповтора отслеживайте repeat_source_offer_id.

Пример интеграции
javascript
// write() uses the same authenticated POST helper as the buyer example.
// tronWeb is connected to the seller's wallet; keys stay on the client.
async function register(automatic) {
  const challenge = await write("/wallet-challenges", {
    address: tronWeb.defaultAddress.base58
  });
  const signature = await tronWeb.trx.signMessageV2(challenge.message);
  return write("/wallets", {
    challenge_id: challenge.challenge_id,
    signatures: [signature], automatic
  });
}
const wallet = await register(false);
const permission = await write(
  "/wallets/" + wallet.id + "/prepare-permission", {}
);
const signed = await tronWeb.trx.sign(permission.transaction);
const sent = await tronWeb.trx.sendRawTransaction(signed);
if (!sent.result) throw new Error("Permission transaction rejected");
// Wait for a confirmed successful transaction before enabling automatic mode.
let confirmed = false;
for (let attempt = 0; attempt < 40; attempt++) {
  await new Promise(resolve => setTimeout(resolve, 3000));
  const receipt = await tronWeb.trx.getTransactionInfo(sent.txid);
  const confirmedTransaction = await tronWeb.trx.getTransaction(sent.txid);
  if (receipt.id && confirmedTransaction.ret?.[0]?.contractRet === "SUCCESS") {
    confirmed = true;
    break;
  }
}
if (!confirmed) throw new Error("Check permission transaction before proceeding");
const ready = await register(true);
const offer = await write("/offers", {
  wallet_id: ready.id, resource_type: "energy", resource_amount: 1000000,
  duration: { type: "minutes", value: 15 },
  price_sun: 20, auto_repeat: true, paused: false
});
console.log(offer.id, offer.wallet_id, offer.status);

Исполнение заявок с собственной подписью

Найдите заявку через GET /market?side=bids. POST /trades принимает order_id, wallet_id, resource_amount и резервирует её на 3 минуты. Ответ содержит источник, получателя, delegate_balance_sun и lock_period_blocks.

Сформируйте DelegateResourceContract с этими параметрами, подпишите на своей стороне и отправьте POST /trades/{id}/delegate: {signed_transaction:{…}}. Подписанная транзакция сохраняется до отправки и восстанавливается после сбоев. POST /trades/{id}/cancel отменяет только ещё не отправленную заявку. Истечение срока неподписанной заявки освобождает её.

GET /trades/{id} показывает статус, комиссию, ожидаемую выплату, delegate_txid и payout_txid. Выплаты используют настройки аккаунта TRX/USDT и правила сайта. Автоматическое исполнение Seller Offers выполняется по выданному разрешению; ручная подпись нужна только для этого отдельного сценария.

Пример интеграции
javascript
// Claim an eligible buyer bid, then use the exact returned amounts.
const claim = await write("/trades", {
  order_id: "BUYER_ORDER_UUID", wallet_id: "YOUR_REGISTERED_WALLET_UUID",
  resource_amount: 131000
});
const transaction = await tronWeb.transactionBuilder.delegateResource(
  Number(claim.delegate_balance_sun), claim.recipient_address,
  claim.resource_type.toUpperCase(), claim.source_address,
  true, Number(claim.lock_period_blocks)
);
const signed = await tronWeb.trx.sign(transaction);
// Persist signed and the Idempotency-Key before this call.
// On timeout, resend the SAME signed transaction and key, not a new delegation.
const result = await write("/trades/" + claim.trade_id + "/delegate", {
  signed_transaction: signed
}, "UNIQUE_PERSISTED_DELEGATION_KEY");
console.log(result.status, result.delegate_txid, result.payout_txid);

События и учёт

Баланс, пополнение и статистика

GET /account возвращает общий баланс, права ключа и использование за сегодня, вчера и всё время. GET /statistics даёт отдельные объёмы Energy/Bandwidth, покупки, валовую выручку продавца, комиссию и доход.

Сегодня и вчера — календарные дни Europe/Moscow по умолчанию; можно выбрать UTC. week — последние 7 суток, month — 30, rolling — days суток. Учитываются подтверждённые исполнения API Marketplace, не чужие Quick Rent операции.

GET /account/recharge показывает адрес и can_recharge. Переводите TRX только с указанного payer_address, без параллельной оплаты других заказов с этого кошелька. Это проверка состояния, а не блокировка кошелька. Подтверждённые зачисления: GET /account/deposits.

Статусы, TXID и история

Проверяйте GET /orders/{id}: awaiting_payment → waiting → partially_delegated → delegated. Возможны cancelling, cancelled, expired; после частичного исполнения смотрите delivered_amount и remaining_amount. delivery_complete=true означает доставку всего заказанного ресурса.

txid_delegate — первый подтверждённый хеш; txids_delegate — все хеши. Детали частей, возвратов и выплат находятся в fulfillments и trades. Ссылка: https://tronscan.org/#/transaction/{txid}. Получение ID заказа само по себе не означает успешную доставку.

GET /orders?external_id=… ищет заказ по вашему идентификатору. GET /events?after=0 возвращает события по возрастанию и next_cursor. GET /statistics?days=30 разделяет покупки и продажи. Комиссия и доход продавца учитываются по подтверждённым операциям.

Подписанные уведомления

PUT /webhook с {url:"https://…"} включает уведомления для текущего ключа; url:null отключает их. Секрет подписи выдаётся администратором вместе с ключом. Только публичный HTTPS-адрес, без перенаправлений.

Проверяйте X-TronBid-Signature: v1=HMAC_SHA256(secret, timestamp + "." + rawBody); timestamp берётся из X-TronBid-Timestamp. Сравнивайте подпись за постоянное время, отклоняйте старые timestamps и дедуплицируйте по X-TronBid-Event-Id. Сначала проверьте подпись, затем разбирайте JSON.

Ответьте HTTP 2xx после надёжного сохранения события. Доставка как минимум один раз; возможны повторы и изменение порядка. При ошибке до 12 попыток с задержкой от 30 секунд до часа. Уведомления отражают состояние на момент события; актуальное состояние запрашивайте по ID. Пропущенные события доступны через GET /events.

Пример интеграции
javascript
import { createHmac, timingSafeEqual } from "node:crypto";
function verifyWebhook(rawBody, timestamp, signature, secret) {
  if (!/^\d+$/.test(timestamp) || Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;
  if (!/^v1=[a-f0-9]{64}$/.test(signature)) return false;
  const expected = createHmac("sha256", secret).update(timestamp + "." + rawBody).digest();
  return timingSafeEqual(expected, Buffer.from(signature.slice(3), "hex"));
}

Справочник API

Замените ключ, адреса и UUID своими значениями. Цены в примерах условные — используйте ответ котировки.

GET
/resources
Свободный объём продавцов

Право ключа: read

Параметры

ПолеТипОписание
resource_type
Необязательное
enumРесурс energy или bandwidth.
energy · bandwidth
duration_type
Необязательное
enumЕдиница срока: minutes, hours, days.
minutes · hours · days
duration_value
Необязательное
integer15 для minutes; 1 для hours; от 1 до 30 для days.
min_price_sun
Необязательное
integerНижняя граница цены за единицу в SUN.
max_price_sun
Необязательное
integerМаксимальная цена за единицу. Не повышается автоматически.
min_amount
Необязательное
integerМинимальный доступный объём в записи.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/resources' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/price
Цена без создания котировки

Право ключа: read

Параметры

ПолеТипОписание
resource_amount
Обязательное
integerКоличество единиц ресурса. Минимумы: GET /capabilities.
resource_type
Необязательное
enumРесурс energy или bandwidth.
energy · bandwidth
duration_type
Необязательное
enumЕдиница срока: minutes, hours, days.
minutes · hours · days
duration_value
Необязательное
integer15 для minutes; 1 для hours; от 1 до 30 для days.
default: 15
recipient_address
Необязательное
stringКошелёк TRON, который получит ресурс.
offer_id
Необязательное
stringID предложения из GET /market?side=offers.
max_price_sun
Необязательное
integerМаксимальная цена за единицу. Не повышается автоматически.
max_total_trx
Необязательное
stringПредельный бюджет покупки в TRX, строка до 6 знаков после точки.
allow_partial
Необязательное
booleanРазрешить исполнение частями несколькими продавцами.
default: true
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/price?resource_amount=131000&max_price_sun=50' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/estimate-energy
Расчёт Energy для перевода токена

Право ключа: read

Параметры

ПолеТипОписание
from_address
Обязательное
stringОтправитель токена; участвует в симуляции.
to_address
Обязательное
stringПолучатель токена; его состояние влияет на Energy.
contract_address
Необязательное
stringКонтракт TRC20; по умолчанию USDT в TRON.
default: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
amount
Необязательное
stringСумма в минимальных единицах токена. Для USDT 1 000 000 = 1 USDT.
default: 1000000
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/estimate-energy?from_address=YOUR_TRON_WALLET_ADDRESS&to_address=RECIPIENT_TRON_ADDRESS&amount=1000000' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/account/recharge
Реквизиты пополнения

Право ключа: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/account/recharge' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/account/deposits
История зачислений

Право ключа: read

Параметры

ПолеТипОписание
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
offset
Необязательное
integerПропустить указанное количество записей.
≥ 0 · ≤ 100000 · default: 0
since
Необязательное
stringНачало периода включительно, ISO 8601 с часовым поясом.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/account/deposits' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/orders/queue
Очередь текущих заказов

Право ключа: read

Параметры

ПолеТипОписание
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
offset
Необязательное
integerПропустить указанное количество записей.
≥ 0 · ≤ 100000 · default: 0
resource_type
Необязательное
enumРесурс energy или bandwidth.
energy · bandwidth
mode
Необязательное
enumbid — ваша заявка; offer — выбранное предложение; best — подбор по минимальной цене.
bid · offer · best
status
Необязательное
enumФильтр по состоянию; допустимые значения перечислены ниже.
awaiting_payment · waiting · partially_delegated · delegated · cancelling · cancelled · expired · filled
since
Необязательное
stringНачало периода включительно, ISO 8601 с часовым поясом.
until
Необязательное
stringКонец периода исключительно, ISO 8601 с часовым поясом.
sort
Необязательное
enumПорядок сортировки. price — цена, income — валовая сумма, amount — свободный объём.
newest · oldest
external_id
Необязательное
stringВаш уникальный ID заказа в пределах аккаунта.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/orders/queue' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/orders/instant
Создать покупку одним запросом

Право ключа: buy

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
purchase
Обязательное
objectТе же параметры покупки, что у POST /quotes.
purchase.mode
Обязательное
enumbid — ваша заявка; offer — выбранное предложение; best — подбор по минимальной цене.
bid · offer · best
purchase.resource_type
Обязательное
enumРесурс energy или bandwidth.
energy · bandwidth
purchase.resource_amount
Обязательное
integerКоличество единиц ресурса. Минимумы: GET /capabilities.
≥ 1 · ≤ 500000000
purchase.duration
Обязательное
object15 минут, 1 час или 1–30 дней.
purchase.duration.type
Обязательное
enumЕдиница срока: minutes, hours, days.
minutes · hours · days
purchase.duration.value
Обязательное
integer15 для minutes; 1 для hours; от 1 до 30 для days.
≥ 1 · ≤ 30
purchase.recipient_address
Обязательное
stringКошелёк TRON, который получит ресурс.
purchase.offer_id
Необязательное
stringID предложения из GET /market?side=offers.
purchase.price_sun
Необязательное
integerЦена за единицу ресурса в SUN. Для days — за сутки.
≥ 1 · ≤ 1000000
purchase.max_price_sun
Необязательное
integerМаксимальная цена за единицу. Не повышается автоматически.
≥ 1 · ≤ 1000000
purchase.max_total_trx
Необязательное
stringПредельный бюджет покупки в TRX, строка до 6 знаков после точки.
purchase.allow_partial
Необязательное
booleanРазрешить исполнение частями несколькими продавцами.
default: true
purchase.wait_seconds
Необязательное
integerВремя поиска исполнителей: 30–2 592 000 секунд, по умолчанию 900.
≥ 30 · ≤ 2592000 · default: 900
payment_mode
Необязательное
enumbalance — общий баланс; onchain — счёт для перевода TRX.
balance · onchain
external_id
Необязательное
stringВаш уникальный ID заказа в пределах аккаунта.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/orders/instant' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "purchase": {
    "mode": "best",
    "resource_type": "energy",
    "resource_amount": 131000,
    "duration": {
      "type": "minutes",
      "value": 15
    },
    "recipient_address": "YOUR_TRON_WALLET_ADDRESS",
    "max_price_sun": 50,
    "max_total_trx": "6.550000",
    "allow_partial": true,
    "wait_seconds": 900
  },
  "payment_mode": "balance",
  "external_id": "invoice-001"
}'
GET
/wallets/{id}
Кошелёк и проверенные ресурсы

Право ключа: read

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/wallets/00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
PATCH
/wallets/{id}
Включить или отключить кошелёк

Право ключа: wallets

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
enabled
Обязательное
booleanfalse запрещает новые операции кошелька и ставит предложения на паузу.
bash
curl --request PATCH \
  'https://tronbid.com/api/v2/marketplace/wallets/00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "enabled": false
}'
POST
/wallets/{id}/prepare-permission
Подготовить разрешение продавца

Право ключа: wallets

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/wallets/00000000-0000-4000-8000-000000000001/prepare-permission' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{}'
GET
/offers/{id}/reservations
Исполнения, выплаты и возврат ресурса

Право ключа: read

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
offset
Необязательное
integerПропустить указанное количество записей.
≥ 0 · ≤ 100000 · default: 0
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/offers/00000000-0000-4000-8000-000000000001/reservations' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/capabilities
Действующие правила Marketplace

Право ключа: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/capabilities' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/account
Аккаунт, баланс и использование

Право ключа: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/account' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/market
Заявки и предложения рынка

Право ключа: read

Параметры

ПолеТипОписание
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
offset
Необязательное
integerПропустить указанное количество записей.
≥ 0 · ≤ 100000 · default: 0
side
Необязательное
enumoffers — предложения продавцов; bids — заявки покупателей.
offers · bids
resource_type
Необязательное
enumРесурс energy или bandwidth.
energy · bandwidth
duration_type
Необязательное
enumЕдиница срока: minutes, hours, days.
minutes · hours · days
duration_value
Необязательное
integer15 для minutes; 1 для hours; от 1 до 30 для days.
min_price_sun
Необязательное
integerНижняя граница цены за единицу в SUN.
max_price_sun
Необязательное
integerМаксимальная цена за единицу. Не повышается автоматически.
min_amount
Необязательное
integerМинимальный доступный объём в записи.
sort
Необязательное
enumПорядок сортировки. price — цена, income — валовая сумма, amount — свободный объём.
price_asc · price_desc · income_desc · amount_desc · newest · oldest
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/market?side=offers&resource_type=energy&sort=price_asc' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/quotes
Рассчитать покупку

Право ключа: buy

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
mode
Обязательное
enumbid — ваша заявка; offer — выбранное предложение; best — подбор по минимальной цене.
bid · offer · best
resource_type
Обязательное
enumРесурс energy или bandwidth.
energy · bandwidth
resource_amount
Обязательное
integerКоличество единиц ресурса. Минимумы: GET /capabilities.
≥ 1 · ≤ 500000000
duration
Обязательное
object15 минут, 1 час или 1–30 дней.
duration.type
Обязательное
enumЕдиница срока: minutes, hours, days.
minutes · hours · days
duration.value
Обязательное
integer15 для minutes; 1 для hours; от 1 до 30 для days.
≥ 1 · ≤ 30
recipient_address
Обязательное
stringКошелёк TRON, который получит ресурс.
offer_id
Необязательное
stringID предложения из GET /market?side=offers.
price_sun
Необязательное
integerЦена за единицу ресурса в SUN. Для days — за сутки.
≥ 1 · ≤ 1000000
max_price_sun
Необязательное
integerМаксимальная цена за единицу. Не повышается автоматически.
≥ 1 · ≤ 1000000
max_total_trx
Необязательное
stringПредельный бюджет покупки в TRX, строка до 6 знаков после точки.
allow_partial
Необязательное
booleanРазрешить исполнение частями несколькими продавцами.
default: true
wait_seconds
Необязательное
integerВремя поиска исполнителей: 30–2 592 000 секунд, по умолчанию 900.
≥ 30 · ≤ 2592000 · default: 900
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/quotes' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "mode": "best",
  "resource_type": "energy",
  "resource_amount": 131000,
  "duration": {
    "type": "minutes",
    "value": 15
  },
  "recipient_address": "YOUR_TRON_WALLET_ADDRESS",
  "max_price_sun": 50,
  "max_total_trx": "6.550000",
  "allow_partial": true,
  "wait_seconds": 900
}'
POST
/orders
Купить по котировке

Право ключа: buy

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
quote_id
Обязательное
stringID котировки из POST /quotes, действует 60 секунд.
payment_mode
Необязательное
enumbalance — общий баланс; onchain — счёт для перевода TRX.
balance · onchain
external_id
Необязательное
stringВаш уникальный ID заказа в пределах аккаунта.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/orders' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "quote_id": "00000000-0000-4000-8000-000000000001",
  "payment_mode": "balance",
  "external_id": "invoice-001"
}'
GET
/orders
История и поиск заказов

Право ключа: read

Параметры

ПолеТипОписание
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
offset
Необязательное
integerПропустить указанное количество записей.
≥ 0 · ≤ 100000 · default: 0
external_id
Необязательное
stringВаш уникальный ID заказа в пределах аккаунта.
resource_type
Необязательное
enumРесурс energy или bandwidth.
energy · bandwidth
mode
Необязательное
enumbid — ваша заявка; offer — выбранное предложение; best — подбор по минимальной цене.
bid · offer · best
status
Необязательное
enumФильтр по состоянию; допустимые значения перечислены ниже.
awaiting_payment · waiting · partially_delegated · delegated · cancelling · cancelled · expired · filled
since
Необязательное
stringНачало периода включительно, ISO 8601 с часовым поясом.
until
Необязательное
stringКонец периода исключительно, ISO 8601 с часовым поясом.
sort
Необязательное
enumПорядок сортировки. price — цена, income — валовая сумма, amount — свободный объём.
newest · oldest
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/orders' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/orders/batch
Создать до 20 заказов атомарно

Право ключа: buy

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
orders
Обязательное
arrayМассив до 20 объектов PlaceOrder; вся партия создаётся атомарно.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/orders/batch' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "orders": [
    {
      "quote_id": "00000000-0000-4000-8000-000000000001",
      "payment_mode": "balance",
      "external_id": "invoice-001"
    }
  ]
}'
GET
/orders/{id}
Заказ, исполнения и TXID

Право ключа: read

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/orders/00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/orders/{id}/payment
Реквизиты оплаты заказа

Право ключа: buy

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/orders/00000000-0000-4000-8000-000000000001/payment' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{}'
POST
/orders/{id}/cancel
Отменить неисполненный остаток

Право ключа: buy

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/orders/00000000-0000-4000-8000-000000000001/cancel' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{}'
POST
/wallet-challenges
Получить сообщение для подписи

Право ключа: wallets

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
address
Обязательное
stringАдрес кошелька TRON, которым вы владеете.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/wallet-challenges' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "address": "YOUR_TRON_WALLET_ADDRESS"
}'
POST
/wallets
Подтвердить и подключить кошелёк

Право ключа: wallets

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
challenge_id
Обязательное
stringОдноразовый ID сообщения для подписи; срок 5 минут.
signatures
Обязательное
arrayПодписи message методом signMessageV2; для multisig — порог владельцев.
automatic
Необязательное
booleantrue проверяет разрешение TronBid на делегацию и возврат ресурсов.
default: false
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/wallets' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "challenge_id": "00000000-0000-4000-8000-000000000001",
  "signatures": [
    "SIGN_MESSAGE_V2_SIGNATURE"
  ],
  "automatic": false
}'
GET
/wallets
Подключённые кошельки

Право ключа: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/wallets' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/offers
Создать Seller Offer

Право ключа: offers

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
wallet_id
Обязательное
stringID подключённого кошелька из GET /wallets.
resource_type
Обязательное
enumРесурс energy или bandwidth.
energy · bandwidth
resource_amount
Обязательное
integerКоличество единиц ресурса. Минимумы: GET /capabilities.
≥ 1 · ≤ 500000000
duration
Обязательное
object15 минут, 1 час или 1–30 дней.
duration.type
Обязательное
enumЕдиница срока: minutes, hours, days.
minutes · hours · days
duration.value
Обязательное
integer15 для minutes; 1 для hours; от 1 до 30 для days.
≥ 1 · ≤ 30
price_sun
Обязательное
integerЦена за единицу ресурса в SUN. Для days — за сутки.
≥ 1 · ≤ 1000000
auto_repeat
Необязательное
booleanАвтоматически создавать следующие предложения по правилам Marketplace.
paused
Необязательное
booleantrue приостанавливает новые покупки; принятые части продолжаются.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/offers' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "wallet_id": "00000000-0000-4000-8000-000000000001",
  "resource_type": "energy",
  "resource_amount": 1000000,
  "duration": {
    "type": "minutes",
    "value": 15
  },
  "price_sun": 20,
  "auto_repeat": true,
  "paused": false
}'
GET
/offers
Мои предложения

Право ключа: read

Параметры

ПолеТипОписание
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
offset
Необязательное
integerПропустить указанное количество записей.
≥ 0 · ≤ 100000 · default: 0
wallet_id
Необязательное
stringID подключённого кошелька из GET /wallets.
status
Необязательное
enumФильтр по состоянию; допустимые значения перечислены ниже.
draft · active · pending_match · filled · cancelled · expired · paused_no_energy · paused_no_bandwidth · paused_permission · paused_fee_resource
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/offers' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/offers/{id}
Предложение и свободный остаток

Право ключа: read

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/offers/00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
PATCH
/offers/{id}
Цена, объём, срок, пауза, автоповтор

Право ключа: offers

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
price_sun
Необязательное
integerЦена за единицу ресурса в SUN. Для days — за сутки.
≥ 1 · ≤ 1000000
free_amount
Необязательное
integerНовый свободный объём, без уже исполненного и зарезервированного.
≥ 0 · ≤ 500000000
duration
Необязательное
object15 минут, 1 час или 1–30 дней.
duration.type
Обязательное
enumЕдиница срока: minutes, hours, days.
minutes · hours · days
duration.value
Обязательное
integer15 для minutes; 1 для hours; от 1 до 30 для days.
≥ 1 · ≤ 30
paused
Необязательное
booleantrue приостанавливает новые покупки; принятые части продолжаются.
auto_repeat
Необязательное
booleanАвтоматически создавать следующие предложения по правилам Marketplace.
cancel
Необязательное
booleantrue отменяет свободный остаток и отключает автоповтор.
bash
curl --request PATCH \
  'https://tronbid.com/api/v2/marketplace/offers/00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "price_sun": 22,
  "free_amount": 500000,
  "duration": {
    "type": "minutes",
    "value": 15
  },
  "paused": false,
  "auto_repeat": true
}'
POST
/trades
Принять заявку покупателя

Право ключа: sell

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
order_id
Обязательное
stringID заявки покупателя.
wallet_id
Обязательное
stringID подключённого кошелька из GET /wallets.
resource_amount
Обязательное
integerКоличество единиц ресурса. Минимумы: GET /capabilities.
≥ 1 · ≤ 500000000
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/trades' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "order_id": "00000000-0000-4000-8000-000000000001",
  "wallet_id": "00000000-0000-4000-8000-000000000001",
  "resource_amount": 131000
}'
GET
/trades
Мои ручные исполнения

Право ключа: read

Параметры

ПолеТипОписание
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
offset
Необязательное
integerПропустить указанное количество записей.
≥ 0 · ≤ 100000 · default: 0
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/trades' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/trades/{id}
Состояние исполнения продавца

Право ключа: read

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/trades/00000000-0000-4000-8000-000000000001' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/trades/{id}/delegate
Отправить подписанную делегацию

Право ключа: sell

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
signed_transaction
Обязательное
objectПолная подписанная DelegateResourceContract. Приватный ключ не отправляется.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/trades/00000000-0000-4000-8000-000000000001/delegate' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "signed_transaction": {
    "txID": "SIGNED_TRANSACTION_ID",
    "raw_data": {
      "contract": [
        "FULL_CONTRACT_FROM_TRONWEB"
      ]
    },
    "raw_data_hex": "FULL_HEX_FROM_TRONWEB",
    "signature": [
      "YOUR_SIGNATURE"
    ]
  }
}'
POST
/trades/{id}/cancel
Освободить неисполненное принятие

Право ключа: sell

Параметры

ПолеТипОписание
id
Обязательное
stringUUID объекта, полученный от API.
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
bash
curl --request POST \
  'https://tronbid.com/api/v2/marketplace/trades/00000000-0000-4000-8000-000000000001/cancel' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{}'
GET
/events
Журнал событий с курсором

Право ключа: read

Параметры

ПолеТипОписание
limit
Необязательное
integerКоличество записей: 1–100, по умолчанию 50.
≥ 1 · ≤ 100 · default: 50
after
Необязательное
stringКурсор последнего обработанного события; начальное значение 0.
default: 0
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/events?after=0&limit=50' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/statistics
Покупки, продажи и доход

Право ключа: read

Параметры

ПолеТипОписание
days
Необязательное
integerРазмер скользящего периода; 1–3660, по умолчанию 30.
≥ 1 · ≤ 3660 · default: 30
period
Необязательное
enumrolling: последние days суток; today/yesterday по timezone; week: 7 дней; month: 30; all: всё.
rolling · today · yesterday · week · month · all
timezone
Необязательное
enumКалендарная зона Europe/Moscow или UTC.
Europe/Moscow · UTC
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/statistics?period=today' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/webhook
Текущий адрес webhook

Право ключа: webhooks

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/webhook' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
PUT
/webhook
Настроить или отключить webhook

Право ключа: webhooks

Параметры

ПолеТипОписание
Idempotency-Key
Обязательное
stringУникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело.
url
Обязательное
string | nullПубличный HTTPS-адрес webhook; null отключает доставку.
bash
curl --request PUT \
  'https://tronbid.com/api/v2/marketplace/webhook' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_UNIQUE_OPERATION_KEY' \
  --data '{
  "url": "https://your-service.example/tronbid/events"
}'

Получить отдельный ключ