TronBid · Developer API

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. 1

    Solicita una clave Marketplace independiente a soporte. Consulta GET /account y GET /capabilities.

  2. 2

    Elige modo de compra, solicita POST /quotes y crea POST /orders. payment_mode: balance utiliza el saldo común.

  3. 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.

Ejemplo de integración
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);

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 · @tronbid

Respuestas 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.

Ejemplo de integración
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);

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.

Ejemplo de integración
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);

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.

Ejemplo de integración
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"));
}

Referencia API

Sustituye clave, direcciones y UUID por tus valores. Los precios son ilustrativos; utiliza la cotización recibida.

GET
/resources
Recursos disponibles de vendedores

Permiso de clave: read

Parámetros

CampoTipoDescripción
resource_type
Opcional
enumRecurso: energy o bandwidth.
energy · bandwidth
duration_type
Opcional
enumUnidad del plazo: minutes, hours, days.
minutes · hours · days
duration_value
Opcional
integer15 para minutes; 1 para hours; 1–30 para days.
min_price_sun
Opcional
integerPrecio unitario mínimo en SUN.
max_price_sun
Opcional
integerPrecio unitario máximo; nunca aumenta automáticamente.
min_amount
Opcional
integerVolumen disponible mínimo por registro.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/resources' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/price
Consultar precio sin crear cotización

Permiso de clave: read

Parámetros

CampoTipoDescripción
resource_amount
Obligatorio
integerUnidades del recurso. Mínimos: GET /capabilities.
resource_type
Opcional
enumRecurso: energy o bandwidth.
energy · bandwidth
duration_type
Opcional
enumUnidad del plazo: minutes, hours, days.
minutes · hours · days
duration_value
Opcional
integer15 para minutes; 1 para hours; 1–30 para days.
default: 15
recipient_address
Opcional
stringMonedero TRON que recibe el recurso.
offer_id
Opcional
stringID de oferta de GET /market?side=offers.
max_price_sun
Opcional
integerPrecio unitario máximo; nunca aumenta automáticamente.
max_total_trx
Opcional
stringPresupuesto máximo en TRX, cadena con hasta 6 decimales.
allow_partial
Opcional
booleanPermitir ejecuciones parciales entre vendedores.
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
Estimar una transferencia de tokens

Permiso de clave: read

Parámetros

CampoTipoDescripción
from_address
Obligatorio
stringEmisor del token; se usa en la simulación.
to_address
Obligatorio
stringReceptor; su estado influye en Energy.
contract_address
Opcional
stringContrato TRC20; por defecto USDT de TRON.
default: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
amount
Opcional
stringCantidad en unidades mínimas. 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
Instrucciones de recarga

Permiso de clave: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/account/recharge' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/account/deposits
Historial de depósitos

Permiso de clave: read

Parámetros

CampoTipoDescripción
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
offset
Opcional
integerNúmero de registros a omitir.
≥ 0 · ≤ 100000 · default: 0
since
Opcional
stringInicio inclusivo, ISO 8601 con zona horaria.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/account/deposits' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/orders/queue
Cola de pedidos actuales

Permiso de clave: read

Parámetros

CampoTipoDescripción
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
offset
Opcional
integerNúmero de registros a omitir.
≥ 0 · ≤ 100000 · default: 0
resource_type
Opcional
enumRecurso: energy o bandwidth.
energy · bandwidth
mode
Opcional
enumbid: tu precio; offer: oferta elegida; best: ofertas más baratas.
bid · offer · best
status
Opcional
enumFiltro por estado; valores permitidos abajo.
awaiting_payment · waiting · partially_delegated · delegated · cancelling · cancelled · expired · filled
since
Opcional
stringInicio inclusivo, ISO 8601 con zona horaria.
until
Opcional
stringFinal exclusivo, ISO 8601 con zona horaria.
sort
Opcional
enumOrden. price: precio; income: importe bruto; amount: volumen disponible.
newest · oldest
external_id
Opcional
stringTu identificador único de pedido dentro de la cuenta.
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/orders/queue' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/orders/instant
Comprar en una sola solicitud

Permiso de clave: buy

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
purchase
Obligatorio
objectMismos parámetros de compra que POST /quotes.
purchase.mode
Obligatorio
enumbid: tu precio; offer: oferta elegida; best: ofertas más baratas.
bid · offer · best
purchase.resource_type
Obligatorio
enumRecurso: energy o bandwidth.
energy · bandwidth
purchase.resource_amount
Obligatorio
integerUnidades del recurso. Mínimos: GET /capabilities.
≥ 1 · ≤ 500000000
purchase.duration
Obligatorio
object15 minutos, 1 hora o 1–30 días.
purchase.duration.type
Obligatorio
enumUnidad del plazo: minutes, hours, days.
minutes · hours · days
purchase.duration.value
Obligatorio
integer15 para minutes; 1 para hours; 1–30 para days.
≥ 1 · ≤ 30
purchase.recipient_address
Obligatorio
stringMonedero TRON que recibe el recurso.
purchase.offer_id
Opcional
stringID de oferta de GET /market?side=offers.
purchase.price_sun
Opcional
integerSUN por unidad; por día para alquileres days.
≥ 1 · ≤ 1000000
purchase.max_price_sun
Opcional
integerPrecio unitario máximo; nunca aumenta automáticamente.
≥ 1 · ≤ 1000000
purchase.max_total_trx
Opcional
stringPresupuesto máximo en TRX, cadena con hasta 6 decimales.
purchase.allow_partial
Opcional
booleanPermitir ejecuciones parciales entre vendedores.
default: true
purchase.wait_seconds
Opcional
integerEspera: 30–2.592.000 segundos; por defecto 900.
≥ 30 · ≤ 2592000 · default: 900
payment_mode
Opcional
enumbalance: saldo común; onchain: factura para transferir TRX.
balance · onchain
external_id
Opcional
stringTu identificador único de pedido dentro de la cuenta.
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}
Monedero y recursos verificados

Permiso de clave: read

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la 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}
Activar o desactivar monedero

Permiso de clave: wallets

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
enabled
Obligatorio
booleanfalse desactiva operaciones nuevas y pausa ofertas.
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
Preparar permiso de vendedor

Permiso de clave: wallets

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
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
Ejecuciones, pagos y devolución de recursos

Permiso de clave: read

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
offset
Opcional
integerNúmero de registros a omitir.
≥ 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
Reglas del Marketplace

Permiso de clave: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/capabilities' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/account
Cuenta, saldo y uso

Permiso de clave: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/account' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
GET
/market
Solicitudes y ofertas del mercado

Permiso de clave: read

Parámetros

CampoTipoDescripción
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
offset
Opcional
integerNúmero de registros a omitir.
≥ 0 · ≤ 100000 · default: 0
side
Opcional
enumoffers: ofertas de venta; bids: solicitudes de compra.
offers · bids
resource_type
Opcional
enumRecurso: energy o bandwidth.
energy · bandwidth
duration_type
Opcional
enumUnidad del plazo: minutes, hours, days.
minutes · hours · days
duration_value
Opcional
integer15 para minutes; 1 para hours; 1–30 para days.
min_price_sun
Opcional
integerPrecio unitario mínimo en SUN.
max_price_sun
Opcional
integerPrecio unitario máximo; nunca aumenta automáticamente.
min_amount
Opcional
integerVolumen disponible mínimo por registro.
sort
Opcional
enumOrden. price: precio; income: importe bruto; amount: volumen disponible.
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
Crear una cotización

Permiso de clave: buy

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
mode
Obligatorio
enumbid: tu precio; offer: oferta elegida; best: ofertas más baratas.
bid · offer · best
resource_type
Obligatorio
enumRecurso: energy o bandwidth.
energy · bandwidth
resource_amount
Obligatorio
integerUnidades del recurso. Mínimos: GET /capabilities.
≥ 1 · ≤ 500000000
duration
Obligatorio
object15 minutos, 1 hora o 1–30 días.
duration.type
Obligatorio
enumUnidad del plazo: minutes, hours, days.
minutes · hours · days
duration.value
Obligatorio
integer15 para minutes; 1 para hours; 1–30 para days.
≥ 1 · ≤ 30
recipient_address
Obligatorio
stringMonedero TRON que recibe el recurso.
offer_id
Opcional
stringID de oferta de GET /market?side=offers.
price_sun
Opcional
integerSUN por unidad; por día para alquileres days.
≥ 1 · ≤ 1000000
max_price_sun
Opcional
integerPrecio unitario máximo; nunca aumenta automáticamente.
≥ 1 · ≤ 1000000
max_total_trx
Opcional
stringPresupuesto máximo en TRX, cadena con hasta 6 decimales.
allow_partial
Opcional
booleanPermitir ejecuciones parciales entre vendedores.
default: true
wait_seconds
Opcional
integerEspera: 30–2.592.000 segundos; por defecto 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
Comprar según cotización

Permiso de clave: buy

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
quote_id
Obligatorio
stringID de POST /quotes; válido 60 segundos.
payment_mode
Opcional
enumbalance: saldo común; onchain: factura para transferir TRX.
balance · onchain
external_id
Opcional
stringTu identificador único de pedido dentro de la cuenta.
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
Historial y búsqueda de pedidos

Permiso de clave: read

Parámetros

CampoTipoDescripción
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
offset
Opcional
integerNúmero de registros a omitir.
≥ 0 · ≤ 100000 · default: 0
external_id
Opcional
stringTu identificador único de pedido dentro de la cuenta.
resource_type
Opcional
enumRecurso: energy o bandwidth.
energy · bandwidth
mode
Opcional
enumbid: tu precio; offer: oferta elegida; best: ofertas más baratas.
bid · offer · best
status
Opcional
enumFiltro por estado; valores permitidos abajo.
awaiting_payment · waiting · partially_delegated · delegated · cancelling · cancelled · expired · filled
since
Opcional
stringInicio inclusivo, ISO 8601 con zona horaria.
until
Opcional
stringFinal exclusivo, ISO 8601 con zona horaria.
sort
Opcional
enumOrden. price: precio; income: importe bruto; amount: volumen disponible.
newest · oldest
bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/orders' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/orders/batch
Crear hasta 20 pedidos atómicamente

Permiso de clave: buy

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
orders
Obligatorio
arrayHasta 20 objetos PlaceOrder; lote completo atómico.
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}
Pedido, ejecuciones y TXID

Permiso de clave: read

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la 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
Instrucciones de pago del pedido

Permiso de clave: buy

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
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
Cancelar la parte no ejecutada

Permiso de clave: buy

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
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
Solicitar prueba de propiedad

Permiso de clave: wallets

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
address
Obligatorio
stringDirección TRON de tu propiedad.
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
Verificar y registrar monedero

Permiso de clave: wallets

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
challenge_id
Obligatorio
stringID de prueba de un solo uso; caduca en 5 minutos.
signatures
Obligatorio
arrayFirmas signMessageV2 de message; multisig requiere umbral del propietario.
automatic
Opcional
booleantrue verifica el permiso de delegación y recuperación de 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
Monederos registrados

Permiso de clave: read

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/wallets' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
POST
/offers
Crear Seller Offer

Permiso de clave: offers

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
wallet_id
Obligatorio
stringID del monedero registrado en GET /wallets.
resource_type
Obligatorio
enumRecurso: energy o bandwidth.
energy · bandwidth
resource_amount
Obligatorio
integerUnidades del recurso. Mínimos: GET /capabilities.
≥ 1 · ≤ 500000000
duration
Obligatorio
object15 minutos, 1 hora o 1–30 días.
duration.type
Obligatorio
enumUnidad del plazo: minutes, hours, days.
minutes · hours · days
duration.value
Obligatorio
integer15 para minutes; 1 para hours; 1–30 para days.
≥ 1 · ≤ 30
price_sun
Obligatorio
integerSUN por unidad; por día para alquileres days.
≥ 1 · ≤ 1000000
auto_repeat
Opcional
booleanCrear ofertas sucesoras según las reglas del Marketplace.
paused
Opcional
booleantrue pausa compras nuevas; las aceptadas continúan.
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
Mis ofertas

Permiso de clave: read

Parámetros

CampoTipoDescripción
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
offset
Opcional
integerNúmero de registros a omitir.
≥ 0 · ≤ 100000 · default: 0
wallet_id
Opcional
stringID del monedero registrado en GET /wallets.
status
Opcional
enumFiltro por estado; valores permitidos abajo.
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}
Oferta y volumen restante

Permiso de clave: read

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la 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}
Precio, volumen, plazo, pausa y repetición

Permiso de clave: offers

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
price_sun
Opcional
integerSUN por unidad; por día para alquileres days.
≥ 1 · ≤ 1000000
free_amount
Opcional
integerNuevo volumen libre, sin lo ejecutado ni reservado.
≥ 0 · ≤ 500000000
duration
Opcional
object15 minutos, 1 hora o 1–30 días.
duration.type
Obligatorio
enumUnidad del plazo: minutes, hours, days.
minutes · hours · days
duration.value
Obligatorio
integer15 para minutes; 1 para hours; 1–30 para days.
≥ 1 · ≤ 30
paused
Opcional
booleantrue pausa compras nuevas; las aceptadas continúan.
auto_repeat
Opcional
booleanCrear ofertas sucesoras según las reglas del Marketplace.
cancel
Opcional
booleantrue cancela el remanente libre y desactiva repetición.
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
Aceptar una solicitud de compra

Permiso de clave: sell

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
order_id
Obligatorio
stringID de pedido del comprador.
wallet_id
Obligatorio
stringID del monedero registrado en GET /wallets.
resource_amount
Obligatorio
integerUnidades del recurso. Mínimos: 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
Mis ejecuciones manuales

Permiso de clave: read

Parámetros

CampoTipoDescripción
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
offset
Opcional
integerNúmero de registros a omitir.
≥ 0 · ≤ 100000 · default: 0
bash
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

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la 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
Enviar delegación firmada

Permiso de clave: sell

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
signed_transaction
Obligatorio
objectDelegateResourceContract firmada completa. No envíes claves privadas.
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
Liberar una aceptación sin ejecutar

Permiso de clave: sell

Parámetros

CampoTipoDescripción
id
Obligatorio
stringUUID del objeto devuelto por la API.
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
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
Eventos con cursor

Permiso de clave: read

Parámetros

CampoTipoDescripción
limit
Opcional
integerTamaño de página: 1–100; por defecto 50.
≥ 1 · ≤ 100 · default: 50
after
Opcional
stringCursor del último evento procesado; comienza en 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
Estadísticas de compras, ventas e ingresos

Permiso de clave: read

Parámetros

CampoTipoDescripción
days
Opcional
integerPeriodo móvil: 1–3660 días; por defecto 30.
≥ 1 · ≤ 3660 · default: 30
period
Opcional
enumrolling: últimos days; today/yesterday según timezone; week: 7 días; month: 30; all: todo.
rolling · today · yesterday · week · month · all
timezone
Opcional
enumZona de calendario: Europe/Moscow o 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
URL actual del webhook

Permiso de clave: webhooks

bash
curl --request GET \
  'https://tronbid.com/api/v2/marketplace/webhook' \
  --header "Authorization: Bearer $TRONBID_MARKETPLACE_KEY"
PUT
/webhook
Configurar o desactivar webhook

Permiso de clave: webhooks

Parámetros

CampoTipoDescripción
Idempotency-Key
Obligatorio
stringClave única; conserva clave y cuerpo al reintentar.
url
Obligatorio
string | nullURL HTTPS pública del webhook; null desactiva entrega.
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"
}'

Solicitar clave independiente