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
Запросите отдельный ключ Marketplace у поддержки. Проверьте GET /account и GET /capabilities.
- 2
Выберите режим покупки, получите POST /quotes и создайте POST /orders. Для оплаты из общего баланса достаточно payment_mode: balance.
- 3
Читайте GET /orders/{id} или события webhook. Успех делегации: delivery_complete=true; хеши находятся в txids_delegate. Создание заказа само по себе не подтверждает получение ресурса.
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.
// 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 выполняется по выданному разрешению; ручная подпись нужна только для этого отдельного сценария.
// 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.
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Необязательное | integer | 15 для minutes; 1 для hours; от 1 до 30 для days. |
min_price_sunНеобязательное | integer | Нижняя граница цены за единицу в SUN. |
max_price_sunНеобязательное | integer | Максимальная цена за единицу. Не повышается автоматически. |
min_amountНеобязательное | integer | Минимальный доступный объём в записи. |
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Необязательное | integer | 15 для minutes; 1 для hours; от 1 до 30 для days. default: 15 |
recipient_addressНеобязательное | string | Кошелёк TRON, который получит ресурс. |
offer_idНеобязательное | string | ID предложения из GET /market?side=offers. |
max_price_sunНеобязательное | integer | Максимальная цена за единицу. Не повышается автоматически. |
max_total_trxНеобязательное | string | Предельный бюджет покупки в TRX, строка до 6 знаков после точки. |
allow_partialНеобязательное | boolean | Разрешить исполнение частями несколькими продавцами. default: true |
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 |
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
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 с часовым поясом. |
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Необязательное | enum | bid — ваша заявка; 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 заказа в пределах аккаунта. |
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Обязательное | enum | bid — ваша заявка; offer — выбранное предложение; best — подбор по минимальной цене. bid · offer · best |
purchase.resource_typeОбязательное | enum | Ресурс energy или bandwidth. energy · bandwidth |
purchase.resource_amountОбязательное | integer | Количество единиц ресурса. Минимумы: GET /capabilities. ≥ 1 · ≤ 500000000 |
purchase.durationОбязательное | object | 15 минут, 1 час или 1–30 дней. |
purchase.duration.typeОбязательное | enum | Единица срока: minutes, hours, days. minutes · hours · days |
purchase.duration.valueОбязательное | integer | 15 для minutes; 1 для hours; от 1 до 30 для days. ≥ 1 · ≤ 30 |
purchase.recipient_addressОбязательное | string | Кошелёк TRON, который получит ресурс. |
purchase.offer_idНеобязательное | string | ID предложения из 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Необязательное | enum | balance — общий баланс; onchain — счёт для перевода TRX. balance · onchain |
external_idНеобязательное | string | Ваш уникальный ID заказа в пределах аккаунта. |
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Обязательное | string | UUID объекта, полученный от API. |
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Обязательное | string | UUID объекта, полученный от API. |
Idempotency-KeyОбязательное | string | Уникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело. |
enabledОбязательное | boolean | false запрещает новые операции кошелька и ставит предложения на паузу. |
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Обязательное | string | UUID объекта, полученный от API. |
Idempotency-KeyОбязательное | string | Уникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело. |
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Обязательное | string | UUID объекта, полученный от API. |
limitНеобязательное | integer | Количество записей: 1–100, по умолчанию 50. ≥ 1 · ≤ 100 · default: 50 |
offsetНеобязательное | integer | Пропустить указанное количество записей. ≥ 0 · ≤ 100000 · default: 0 |
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
curl --request GET \
'https://tronbid.com/api/v2/marketplace/capabilities' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/accountАккаунт, баланс и использование
Право ключа: read
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Необязательное | enum | offers — предложения продавцов; bids — заявки покупателей. offers · bids |
resource_typeНеобязательное | enum | Ресурс energy или bandwidth. energy · bandwidth |
duration_typeНеобязательное | enum | Единица срока: minutes, hours, days. minutes · hours · days |
duration_valueНеобязательное | integer | 15 для 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 |
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Обязательное | enum | bid — ваша заявка; offer — выбранное предложение; best — подбор по минимальной цене. bid · offer · best |
resource_typeОбязательное | enum | Ресурс energy или bandwidth. energy · bandwidth |
resource_amountОбязательное | integer | Количество единиц ресурса. Минимумы: GET /capabilities. ≥ 1 · ≤ 500000000 |
durationОбязательное | object | 15 минут, 1 час или 1–30 дней. |
duration.typeОбязательное | enum | Единица срока: minutes, hours, days. minutes · hours · days |
duration.valueОбязательное | integer | 15 для minutes; 1 для hours; от 1 до 30 для days. ≥ 1 · ≤ 30 |
recipient_addressОбязательное | string | Кошелёк TRON, который получит ресурс. |
offer_idНеобязательное | string | ID предложения из 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 |
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Обязательное | string | ID котировки из POST /quotes, действует 60 секунд. |
payment_modeНеобязательное | enum | balance — общий баланс; onchain — счёт для перевода TRX. balance · onchain |
external_idНеобязательное | string | Ваш уникальный ID заказа в пределах аккаунта. |
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Необязательное | enum | bid — ваша заявка; 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 |
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; вся партия создаётся атомарно. |
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Обязательное | string | UUID объекта, полученный от API. |
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Обязательное | string | UUID объекта, полученный от API. |
Idempotency-KeyОбязательное | string | Уникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело. |
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Обязательное | string | UUID объекта, полученный от API. |
Idempotency-KeyОбязательное | string | Уникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело. |
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, которым вы владеете. |
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Необязательное | boolean | true проверяет разрешение TronBid на делегацию и возврат ресурсов. default: false |
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
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Обязательное | string | ID подключённого кошелька из GET /wallets. |
resource_typeОбязательное | enum | Ресурс energy или bandwidth. energy · bandwidth |
resource_amountОбязательное | integer | Количество единиц ресурса. Минимумы: GET /capabilities. ≥ 1 · ≤ 500000000 |
durationОбязательное | object | 15 минут, 1 час или 1–30 дней. |
duration.typeОбязательное | enum | Единица срока: minutes, hours, days. minutes · hours · days |
duration.valueОбязательное | integer | 15 для minutes; 1 для hours; от 1 до 30 для days. ≥ 1 · ≤ 30 |
price_sunОбязательное | integer | Цена за единицу ресурса в SUN. Для days — за сутки. ≥ 1 · ≤ 1000000 |
auto_repeatНеобязательное | boolean | Автоматически создавать следующие предложения по правилам Marketplace. |
pausedНеобязательное | boolean | true приостанавливает новые покупки; принятые части продолжаются. |
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Необязательное | string | ID подключённого кошелька из GET /wallets. |
statusНеобязательное | enum | Фильтр по состоянию; допустимые значения перечислены ниже. draft · active · pending_match · filled · cancelled · expired · paused_no_energy · paused_no_bandwidth · paused_permission · paused_fee_resource |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/offers' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/offers/{id}Предложение и свободный остаток
Право ключа: read
Параметры
| Поле | Тип | Описание |
|---|---|---|
idОбязательное | string | UUID объекта, полученный от API. |
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Обязательное | string | UUID объекта, полученный от API. |
Idempotency-KeyОбязательное | string | Уникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело. |
price_sunНеобязательное | integer | Цена за единицу ресурса в SUN. Для days — за сутки. ≥ 1 · ≤ 1000000 |
free_amountНеобязательное | integer | Новый свободный объём, без уже исполненного и зарезервированного. ≥ 0 · ≤ 500000000 |
durationНеобязательное | object | 15 минут, 1 час или 1–30 дней. |
duration.typeОбязательное | enum | Единица срока: minutes, hours, days. minutes · hours · days |
duration.valueОбязательное | integer | 15 для minutes; 1 для hours; от 1 до 30 для days. ≥ 1 · ≤ 30 |
pausedНеобязательное | boolean | true приостанавливает новые покупки; принятые части продолжаются. |
auto_repeatНеобязательное | boolean | Автоматически создавать следующие предложения по правилам Marketplace. |
cancelНеобязательное | boolean | true отменяет свободный остаток и отключает автоповтор. |
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Обязательное | string | ID заявки покупателя. |
wallet_idОбязательное | string | ID подключённого кошелька из GET /wallets. |
resource_amountОбязательное | integer | Количество единиц ресурса. Минимумы: GET /capabilities. ≥ 1 · ≤ 500000000 |
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 |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/trades' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/trades/{id}Состояние исполнения продавца
Право ключа: read
Параметры
| Поле | Тип | Описание |
|---|---|---|
idОбязательное | string | UUID объекта, полученный от API. |
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Обязательное | string | UUID объекта, полученный от API. |
Idempotency-KeyОбязательное | string | Уникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело. |
signed_transactionОбязательное | object | Полная подписанная DelegateResourceContract. Приватный ключ не отправляется. |
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Обязательное | string | UUID объекта, полученный от API. |
Idempotency-KeyОбязательное | string | Уникальный ключ операции; при сетевом повторе сохраняйте тот же ключ и тело. |
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 |
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Необязательное | enum | rolling: последние days суток; today/yesterday по timezone; week: 7 дней; month: 30; all: всё. rolling · today · yesterday · week · month · all |
timezoneНеобязательное | enum | Календарная зона Europe/Moscow или UTC. Europe/Moscow · UTC |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/statistics?period=today' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/webhookТекущий адрес webhook
Право ключа: webhooks
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 отключает доставку. |
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"
}'