API MarketPlace — Energía y Bandwidth TRON
Compra recursos a los participantes del Marketplace, publica pedidos y gestiona ofertas con una API independiente de TronBid.
- Energy y Bandwidth
- 3 modos de compra
- Seller Offers y firma
- Versión
- v2 · REST / JSON
- Actualizado
- 06.10.2026
- Base URL
- https://tronbid.com/api/v2/marketplace
En esta página
Integración
De la clave al TXID
- 1
Solicita una clave Marketplace independiente a soporte. Consulta GET /account y GET /capabilities.
- 2
Elige modo de compra, solicita POST /quotes y crea POST /orders. payment_mode: balance utiliza el saldo común.
- 3
Consulta GET /orders/{id} o eventos webhook. delivery_complete=true confirma la delegación; txids_delegate contiene los hashes. Crear el pedido no confirma la entrega.
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);Acceso y claves independientes
Solicita una clave a @tronbid en Telegram o support@tronbid.com tras iniciar sesión con tu billetera. El administrador entrega una clave tbm_ y permisos read, buy, sell, offers, wallets, webhooks. Las claves de Quick Rent y Seller Delegate API no son válidas.
URL base: https://tronbid.com/api/v2/marketplace. Usa Authorization: Bearer tbm_… por HTTPS. El saldo es compartido con la web y Quick Rent; el historial del API Marketplace es independiente. No hay límites de gasto. El administrador configura los límites de solicitudes e IP permitidas.
Solicitar clave independiente · @tronbidRespuestas y reintentos
Éxito: {data: …, request_id: UUID}. Error: {error: {code, details?}, request_id: UUID}. Los importes TRX en cotizaciones, pedidos y estadísticas son cadenas decimales; las operaciones manuales conservan campos numéricos. OpenAPI define el tipo de cada campo. 1 TRX = 1 000 000 SUN.
POST, PATCH, PUT y DELETE requieren Idempotency-Key de 8–128 letras, cifras o . _ : -. Repetir la misma solicitud con la misma clave devuelve el resultado original. Usa una clave nueva para otra operación. La idempotencia se limita a la identidad de tu clave API.
Tras un timeout, repite con el mismo Idempotency-Key. 409 REQUEST_IN_PROGRESS indica que sigue en curso; IDEMPOTENCY_CONFLICT, que cambió el cuerpo o la ruta. Ante 429 RATE_LIMITED respeta Retry-After. Un pedido aceptado no confirma la entrega: comprueba delivery_complete.
Para compradores
Mercado y precios
GET /capabilities devuelve mínimos y duraciones actuales: energy, bandwidth; 15 minutos, 1 hora y 1–30 días. GET /market?side=offers lista ofertas; side=bids lista pedidos de compradores. Filtros: resource_type, limit (1–100), offset.
price_sun es el precio por recurso para todo el alquiler en minutes/hours, o por día en days. Total = cantidad × price_sun × días; para 15 minutos y 1 hora el multiplicador es 1. La comisión se descuenta al vendedor; no hay comisión adicional al comprador.
La disponibilidad usa instantáneas verificadas de vendedores; resources_checked_at indica su fecha. La cotización no reserva recursos. Cada consulta del mercado no provoca una consulta a la cadena. Solo ejecutan participantes del Marketplace, sin recurrir a pools propios ni al proveedor chino.
Disponibilidad, precio y estimación
GET /resources suma recursos libres sin contar dos veces un mismo monedero. Filtra por recurso, plazo y precio. Es una instantánea, no una reserva.
GET /price muestra precio y disponibilidad sin guardar una cotización. Compra con POST /quotes o POST /orders/instant y un límite de presupuesto. Cada ejecución aplica el redondeo del Marketplace; utiliza la cotización recibida.
GET /estimate-energy simula transfer(address,uint256) del token entre from_address y to_address. amount usa unidades mínimas. fee_trx es el coste de quemar TRX en la red, no el alquiler. Se almacena 15 segundos por combinación de parámetros. Si falla la simulación, devuelve 422, no una estimación supuesta.
Tres modalidades de compra
POST /quotes: mode, resource_type, resource_amount, duration:{type,value}, recipient_address. bid publica tu price_sun; offer selecciona offer_id; best elige las ofertas más baratas dentro de max_price_sun y/o max_total_trx. offer también admite un precio máximo.
La cotización caduca a los 60 segundos. POST /orders: quote_id, payment_mode (balance/onchain), external_id opcional. Cada cotización crea un solo pedido; external_id es único por cuenta. El presupuesto máximo no aumenta automáticamente.
allow_partial=true permite varias entregas y vendedores. Con false, offer/best reserva todo el volumen atómicamente antes de empezar; un bid debe aceptarse entero por un vendedor. wait_seconds: 30 segundos–30 días, predeterminado 900. Las partes aceptadas conservan sus condiciones.
Pagos, cancelación y lotes
balance reserva el presupuesto al crear el pedido; asignar partes no vuelve a cobrar. onchain espera un pago: POST /orders/{id}/payment devuelve importe y payer_address. Envía el TRX indicado desde esa dirección en 15 minutos. El exceso se abona al saldo.
POST /orders/{id}/cancel detiene nuevas asignaciones y devuelve fondos no asignados al saldo común. Las delegaciones aceptadas o firmadas se verifican antes. El vencimiento del plazo aplica las mismas reglas. Los reembolsos por partes fallidas siguen las reglas del Marketplace.
POST /orders/batch acepta {orders:[{quote_id,payment_mode,external_id},…]}, hasta 20 pedidos. La creación es atómica: cualquier error revierte todo el lote. Usa un único Idempotency-Key.
Para vendedores
Billeteras y ofertas automáticas
Puedes registrar varias billeteras. POST /wallet-challenges con address devuelve message y challenge_id. Firma con TronWeb.trx.signMessageV2 y envía POST /wallets con challenge_id, signatures, automatic. Caduca en 5 minutos; multisig exige el umbral de propietarios. No envíes claves privadas.
Registra con automatic=false, llama POST /wallets/{id}/prepare-permission y firma y transmite la transacción desde tu monedero. Tras confirmarla, solicita una nueva prueba y registra con automatic=true para verificar el permiso en la cadena. Preparar no transmite; el propietario paga la comisión de red. GET /wallets muestra permisos e instantáneas. PATCH /wallets/{id} con enabled:false desactiva nuevas operaciones.
POST /offers: wallet_id, resource_type, resource_amount, duration, price_sun, auto_repeat, paused. El vendedor fija el precio. PATCH /offers/{id}: price_sun, free_amount, duration, paused, auto_repeat o cancel:true. Si hay reservas previas, las condiciones nuevas crean otro ID; la respuesta incluye replaces_offer_id y la oferta antigua replaced_by. Las reservas mantienen condiciones. repeat_source_offer_id enlaza repeticiones.
// 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);Cumplir pedidos con tu firma
Busca pedidos con GET /market?side=bids. POST /trades con order_id, wallet_id, resource_amount reserva durante 3 minutos. Devuelve origen, destinatario, delegate_balance_sun y lock_period_blocks.
Construye DelegateResourceContract con esos parámetros, firma localmente y envía POST /trades/{id}/delegate con {signed_transaction:{…}}. Se guarda antes de transmitir y se recupera tras interrupciones. POST /trades/{id}/cancel libera únicamente reservas no enviadas. Las reservas sin firma caducan automáticamente.
GET /trades/{id} muestra estado, comisión, pago esperado, delegate_txid y payout_txid. Los pagos siguen las preferencias TRX/USDT y reglas de la web. Seller Offers utiliza permisos para la ejecución automática; la firma local corresponde a este flujo manual.
// 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);Eventos y contabilidad
Saldo, depósitos y estadísticas
GET /account devuelve saldo común, permisos y uso de hoy, ayer y total. GET /statistics desglosa Energy/Bandwidth, compras, ingreso bruto, comisión e ingreso del vendedor.
Hoy y ayer son días del calendario Europe/Moscow por defecto; se admite UTC. week: últimas 7 jornadas, month: 30, rolling: days jornadas. Se cuentan ejecuciones confirmadas de API Marketplace, no operaciones Quick Rent ajenas.
GET /account/recharge devuelve dirección y can_recharge. Envía TRX solo desde payer_address, sin pagar otras facturas simultáneamente desde ese monedero. Es una comprobación, no un bloqueo. Consulta abonos confirmados en GET /account/deposits.
Estados, TXID e historial
GET /orders/{id}: awaiting_payment → waiting → partially_delegated → delegated. También cancelling, cancelled, expired. En entregas parciales consulta delivered_amount y remaining_amount. delivery_complete=true confirma la entrega íntegra.
txid_delegate es el primer hash confirmado; txids_delegate contiene todos. fulfillments y trades detallan partes, reembolsos y pagos. Explorador: https://tronscan.org/#/transaction/{txid}. El ID del pedido no acredita la entrega.
GET /orders?external_id=… busca tu referencia. GET /events?after=0 devuelve eventos ascendentes y next_cursor. GET /statistics?days=30 separa compras y ventas. Beneficios y comisiones se calculan sobre operaciones confirmadas.
Notificaciones firmadas
PUT /webhook con {url:"https://…"} configura la clave actual; url:null desactiva. El administrador entrega el secreto de firma. Solo HTTPS público, sin redirecciones.
Verifica X-TronBid-Signature: v1=HMAC_SHA256(secret, timestamp + "." + rawBody), con X-TronBid-Timestamp. Compara en tiempo constante, rechaza timestamps antiguos y deduplica X-TronBid-Event-Id. Verifica antes de analizar JSON.
Responde HTTP 2xx tras guardar el evento de forma duradera. Entrega al menos una vez; puede haber duplicados y cambios de orden. Hasta 12 intentos, con demoras de 30 segundos a 1 hora. Consulta la entidad para conocer el estado actual; recupera eventos con 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"));
}Referencia API
Sustituye clave, direcciones y UUID por tus valores. Los precios son ilustrativos; utiliza la cotización recibida.
GET/resourcesRecursos disponibles de vendedores
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
resource_typeOpcional | enum | Recurso: energy o bandwidth. energy · bandwidth |
duration_typeOpcional | enum | Unidad del plazo: minutes, hours, days. minutes · hours · days |
duration_valueOpcional | integer | 15 para minutes; 1 para hours; 1–30 para days. |
min_price_sunOpcional | integer | Precio unitario mínimo en SUN. |
max_price_sunOpcional | integer | Precio unitario máximo; nunca aumenta automáticamente. |
min_amountOpcional | integer | Volumen disponible mínimo por registro. |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/resources' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/priceConsultar precio sin crear cotización
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
resource_amountObligatorio | integer | Unidades del recurso. Mínimos: GET /capabilities. |
resource_typeOpcional | enum | Recurso: energy o bandwidth. energy · bandwidth |
duration_typeOpcional | enum | Unidad del plazo: minutes, hours, days. minutes · hours · days |
duration_valueOpcional | integer | 15 para minutes; 1 para hours; 1–30 para days. default: 15 |
recipient_addressOpcional | string | Monedero TRON que recibe el recurso. |
offer_idOpcional | string | ID de oferta de GET /market?side=offers. |
max_price_sunOpcional | integer | Precio unitario máximo; nunca aumenta automáticamente. |
max_total_trxOpcional | string | Presupuesto máximo en TRX, cadena con hasta 6 decimales. |
allow_partialOpcional | boolean | Permitir ejecuciones parciales entre vendedores. 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-energyEstimar una transferencia de tokens
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
from_addressObligatorio | string | Emisor del token; se usa en la simulación. |
to_addressObligatorio | string | Receptor; su estado influye en Energy. |
contract_addressOpcional | string | Contrato TRC20; por defecto USDT de TRON. default: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t |
amountOpcional | string | Cantidad en unidades mínimas. 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/rechargeInstrucciones de recarga
Permiso de clave: read
curl --request GET \
'https://tronbid.com/api/v2/marketplace/account/recharge' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/account/depositsHistorial de depósitos
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
offsetOpcional | integer | Número de registros a omitir. ≥ 0 · ≤ 100000 · default: 0 |
sinceOpcional | string | Inicio inclusivo, ISO 8601 con zona horaria. |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/account/deposits' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/orders/queueCola de pedidos actuales
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
offsetOpcional | integer | Número de registros a omitir. ≥ 0 · ≤ 100000 · default: 0 |
resource_typeOpcional | enum | Recurso: energy o bandwidth. energy · bandwidth |
modeOpcional | enum | bid: tu precio; offer: oferta elegida; best: ofertas más baratas. bid · offer · best |
statusOpcional | enum | Filtro por estado; valores permitidos abajo. awaiting_payment · waiting · partially_delegated · delegated · cancelling · cancelled · expired · filled |
sinceOpcional | string | Inicio inclusivo, ISO 8601 con zona horaria. |
untilOpcional | string | Final exclusivo, ISO 8601 con zona horaria. |
sortOpcional | enum | Orden. price: precio; income: importe bruto; amount: volumen disponible. newest · oldest |
external_idOpcional | string | Tu identificador único de pedido dentro de la cuenta. |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/orders/queue' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"POST/orders/instantComprar en una sola solicitud
Permiso de clave: buy
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
purchaseObligatorio | object | Mismos parámetros de compra que POST /quotes. |
purchase.modeObligatorio | enum | bid: tu precio; offer: oferta elegida; best: ofertas más baratas. bid · offer · best |
purchase.resource_typeObligatorio | enum | Recurso: energy o bandwidth. energy · bandwidth |
purchase.resource_amountObligatorio | integer | Unidades del recurso. Mínimos: GET /capabilities. ≥ 1 · ≤ 500000000 |
purchase.durationObligatorio | object | 15 minutos, 1 hora o 1–30 días. |
purchase.duration.typeObligatorio | enum | Unidad del plazo: minutes, hours, days. minutes · hours · days |
purchase.duration.valueObligatorio | integer | 15 para minutes; 1 para hours; 1–30 para days. ≥ 1 · ≤ 30 |
purchase.recipient_addressObligatorio | string | Monedero TRON que recibe el recurso. |
purchase.offer_idOpcional | string | ID de oferta de GET /market?side=offers. |
purchase.price_sunOpcional | integer | SUN por unidad; por día para alquileres days. ≥ 1 · ≤ 1000000 |
purchase.max_price_sunOpcional | integer | Precio unitario máximo; nunca aumenta automáticamente. ≥ 1 · ≤ 1000000 |
purchase.max_total_trxOpcional | string | Presupuesto máximo en TRX, cadena con hasta 6 decimales. |
purchase.allow_partialOpcional | boolean | Permitir ejecuciones parciales entre vendedores. default: true |
purchase.wait_secondsOpcional | integer | Espera: 30–2.592.000 segundos; por defecto 900. ≥ 30 · ≤ 2592000 · default: 900 |
payment_modeOpcional | enum | balance: saldo común; onchain: factura para transferir TRX. balance · onchain |
external_idOpcional | string | Tu identificador único de pedido dentro de la cuenta. |
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}Monedero y recursos verificados
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la 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}Activar o desactivar monedero
Permiso de clave: wallets
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
enabledObligatorio | boolean | false desactiva operaciones nuevas y pausa ofertas. |
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-permissionPreparar permiso de vendedor
Permiso de clave: wallets
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
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}/reservationsEjecuciones, pagos y devolución de recursos
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
offsetOpcional | integer | Número de registros a omitir. ≥ 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/capabilitiesReglas del Marketplace
Permiso de clave: read
curl --request GET \
'https://tronbid.com/api/v2/marketplace/capabilities' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/accountCuenta, saldo y uso
Permiso de clave: read
curl --request GET \
'https://tronbid.com/api/v2/marketplace/account' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/marketSolicitudes y ofertas del mercado
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
offsetOpcional | integer | Número de registros a omitir. ≥ 0 · ≤ 100000 · default: 0 |
sideOpcional | enum | offers: ofertas de venta; bids: solicitudes de compra. offers · bids |
resource_typeOpcional | enum | Recurso: energy o bandwidth. energy · bandwidth |
duration_typeOpcional | enum | Unidad del plazo: minutes, hours, days. minutes · hours · days |
duration_valueOpcional | integer | 15 para minutes; 1 para hours; 1–30 para days. |
min_price_sunOpcional | integer | Precio unitario mínimo en SUN. |
max_price_sunOpcional | integer | Precio unitario máximo; nunca aumenta automáticamente. |
min_amountOpcional | integer | Volumen disponible mínimo por registro. |
sortOpcional | enum | Orden. price: precio; income: importe bruto; amount: volumen disponible. 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/quotesCrear una cotización
Permiso de clave: buy
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
modeObligatorio | enum | bid: tu precio; offer: oferta elegida; best: ofertas más baratas. bid · offer · best |
resource_typeObligatorio | enum | Recurso: energy o bandwidth. energy · bandwidth |
resource_amountObligatorio | integer | Unidades del recurso. Mínimos: GET /capabilities. ≥ 1 · ≤ 500000000 |
durationObligatorio | object | 15 minutos, 1 hora o 1–30 días. |
duration.typeObligatorio | enum | Unidad del plazo: minutes, hours, days. minutes · hours · days |
duration.valueObligatorio | integer | 15 para minutes; 1 para hours; 1–30 para days. ≥ 1 · ≤ 30 |
recipient_addressObligatorio | string | Monedero TRON que recibe el recurso. |
offer_idOpcional | string | ID de oferta de GET /market?side=offers. |
price_sunOpcional | integer | SUN por unidad; por día para alquileres days. ≥ 1 · ≤ 1000000 |
max_price_sunOpcional | integer | Precio unitario máximo; nunca aumenta automáticamente. ≥ 1 · ≤ 1000000 |
max_total_trxOpcional | string | Presupuesto máximo en TRX, cadena con hasta 6 decimales. |
allow_partialOpcional | boolean | Permitir ejecuciones parciales entre vendedores. default: true |
wait_secondsOpcional | integer | Espera: 30–2.592.000 segundos; por defecto 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/ordersComprar según cotización
Permiso de clave: buy
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
quote_idObligatorio | string | ID de POST /quotes; válido 60 segundos. |
payment_modeOpcional | enum | balance: saldo común; onchain: factura para transferir TRX. balance · onchain |
external_idOpcional | string | Tu identificador único de pedido dentro de la cuenta. |
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/ordersHistorial y búsqueda de pedidos
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
offsetOpcional | integer | Número de registros a omitir. ≥ 0 · ≤ 100000 · default: 0 |
external_idOpcional | string | Tu identificador único de pedido dentro de la cuenta. |
resource_typeOpcional | enum | Recurso: energy o bandwidth. energy · bandwidth |
modeOpcional | enum | bid: tu precio; offer: oferta elegida; best: ofertas más baratas. bid · offer · best |
statusOpcional | enum | Filtro por estado; valores permitidos abajo. awaiting_payment · waiting · partially_delegated · delegated · cancelling · cancelled · expired · filled |
sinceOpcional | string | Inicio inclusivo, ISO 8601 con zona horaria. |
untilOpcional | string | Final exclusivo, ISO 8601 con zona horaria. |
sortOpcional | enum | Orden. price: precio; income: importe bruto; amount: volumen disponible. newest · oldest |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/orders' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"POST/orders/batchCrear hasta 20 pedidos atómicamente
Permiso de clave: buy
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
ordersObligatorio | array | Hasta 20 objetos PlaceOrder; lote completo atómico. |
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}Pedido, ejecuciones y TXID
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la 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}/paymentInstrucciones de pago del pedido
Permiso de clave: buy
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
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}/cancelCancelar la parte no ejecutada
Permiso de clave: buy
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
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-challengesSolicitar prueba de propiedad
Permiso de clave: wallets
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
addressObligatorio | string | Dirección TRON de tu propiedad. |
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/walletsVerificar y registrar monedero
Permiso de clave: wallets
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
challenge_idObligatorio | string | ID de prueba de un solo uso; caduca en 5 minutos. |
signaturesObligatorio | array | Firmas signMessageV2 de message; multisig requiere umbral del propietario. |
automaticOpcional | boolean | true verifica el permiso de delegación y recuperación de 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/walletsMonederos registrados
Permiso de clave: read
curl --request GET \
'https://tronbid.com/api/v2/marketplace/wallets' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"POST/offersCrear Seller Offer
Permiso de clave: offers
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
wallet_idObligatorio | string | ID del monedero registrado en GET /wallets. |
resource_typeObligatorio | enum | Recurso: energy o bandwidth. energy · bandwidth |
resource_amountObligatorio | integer | Unidades del recurso. Mínimos: GET /capabilities. ≥ 1 · ≤ 500000000 |
durationObligatorio | object | 15 minutos, 1 hora o 1–30 días. |
duration.typeObligatorio | enum | Unidad del plazo: minutes, hours, days. minutes · hours · days |
duration.valueObligatorio | integer | 15 para minutes; 1 para hours; 1–30 para days. ≥ 1 · ≤ 30 |
price_sunObligatorio | integer | SUN por unidad; por día para alquileres days. ≥ 1 · ≤ 1000000 |
auto_repeatOpcional | boolean | Crear ofertas sucesoras según las reglas del Marketplace. |
pausedOpcional | boolean | true pausa compras nuevas; las aceptadas continúan. |
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/offersMis ofertas
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
offsetOpcional | integer | Número de registros a omitir. ≥ 0 · ≤ 100000 · default: 0 |
wallet_idOpcional | string | ID del monedero registrado en GET /wallets. |
statusOpcional | enum | Filtro por estado; valores permitidos abajo. 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}Oferta y volumen restante
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la 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}Precio, volumen, plazo, pausa y repetición
Permiso de clave: offers
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
price_sunOpcional | integer | SUN por unidad; por día para alquileres days. ≥ 1 · ≤ 1000000 |
free_amountOpcional | integer | Nuevo volumen libre, sin lo ejecutado ni reservado. ≥ 0 · ≤ 500000000 |
durationOpcional | object | 15 minutos, 1 hora o 1–30 días. |
duration.typeObligatorio | enum | Unidad del plazo: minutes, hours, days. minutes · hours · days |
duration.valueObligatorio | integer | 15 para minutes; 1 para hours; 1–30 para days. ≥ 1 · ≤ 30 |
pausedOpcional | boolean | true pausa compras nuevas; las aceptadas continúan. |
auto_repeatOpcional | boolean | Crear ofertas sucesoras según las reglas del Marketplace. |
cancelOpcional | boolean | true cancela el remanente libre y desactiva repetición. |
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/tradesAceptar una solicitud de compra
Permiso de clave: sell
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
order_idObligatorio | string | ID de pedido del comprador. |
wallet_idObligatorio | string | ID del monedero registrado en GET /wallets. |
resource_amountObligatorio | integer | Unidades del recurso. Mínimos: 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/tradesMis ejecuciones manuales
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
offsetOpcional | integer | Número de registros a omitir. ≥ 0 · ≤ 100000 · default: 0 |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/trades' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/trades/{id}Estado de ejecución del vendedor
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la 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}/delegateEnviar delegación firmada
Permiso de clave: sell
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
signed_transactionObligatorio | object | DelegateResourceContract firmada completa. No envíes claves privadas. |
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}/cancelLiberar una aceptación sin ejecutar
Permiso de clave: sell
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
idObligatorio | string | UUID del objeto devuelto por la API. |
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
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/eventsEventos con cursor
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
limitOpcional | integer | Tamaño de página: 1–100; por defecto 50. ≥ 1 · ≤ 100 · default: 50 |
afterOpcional | string | Cursor del último evento procesado; comienza en 0. default: 0 |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/events?after=0&limit=50' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/statisticsEstadísticas de compras, ventas e ingresos
Permiso de clave: read
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
daysOpcional | integer | Periodo móvil: 1–3660 días; por defecto 30. ≥ 1 · ≤ 3660 · default: 30 |
periodOpcional | enum | rolling: últimos days; today/yesterday según timezone; week: 7 días; month: 30; all: todo. rolling · today · yesterday · week · month · all |
timezoneOpcional | enum | Zona de calendario: Europe/Moscow o UTC. Europe/Moscow · UTC |
curl --request GET \
'https://tronbid.com/api/v2/marketplace/statistics?period=today' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"GET/webhookURL actual del webhook
Permiso de clave: webhooks
curl --request GET \
'https://tronbid.com/api/v2/marketplace/webhook' \
--header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"PUT/webhookConfigurar o desactivar webhook
Permiso de clave: webhooks
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
Idempotency-KeyObligatorio | string | Clave única; conserva clave y cuerpo al reintentar. |
urlObligatorio | string | null | URL HTTPS pública del webhook; null desactiva entrega. |
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"
}'