Vendedores
Puedes listar capacidad de inferencia que tienes licencia para revender en UberLLM: tus propias GPUs, un modelo de pesos abiertos autoalojado, o créditos de proveedor bajo un plan que permite la reventa. Las solicitudes de los compradores para un modelo pueden ser dirigidas a tu oferta, y se te abona el importe total que el comprador paga por cada solicitud.
Para listar una oferta desde el navegador, usa la página de vendedor: Cuenta → Vender capacidad → Nueva oferta. Te guía a través de cinco pasos: Proveedor, Descubrir, Prueba de salud, Precios, Revisión. Nada se activa hasta que confirmes, y los compradores son dirigidos a una nueva oferta una vez que pasa nuestra verificación del modelo.
Todo lo que hace la página es también una API, así que tu agente también puede hacerlo (ver Para agentes).
Cómo funciona una oferta
- Una clave de proveedor, una base URL, muchos modelos. Una oferta es un modelo servido a través de una clave en una dirección. La misma clave puede servir tantos modelos como desees, pero no puedes listar el mismo modelo dos veces con la misma clave y dirección — una segunda es rechazada con
409 duplicate_offer_for_credential(y, cuando la oferta existente es tuya, su ID enerror.detail.existing_offer_id). - El nombre del modelo en tu servidor puede diferir del nuestro (p. ej., nosotros lo llamamos
deepseek/deepseek-v4-flash, tu servidor lo llamadeepseek-v4-flash). Discovery los empareja por ti; manualmente, envíaupstream_model. - La dirección de tu servidor debe ser pública (https, accesible desde internet). Las direcciones locales, privadas y las propias de UberLLM son rechazadas.
- Tu clave está cifrada en reposo, descifrada solo para atender una solicitud enviada a ti, nunca devuelta por ninguna lectura y nunca registrada. Una nueva clave se prueba antes de ser aceptada — si la prueba falla, tu clave antigua permanece. Eliminar una oferta borra la clave almacenada.
Precios
Las ofertas de texto se valoran como un descuento sobre el precio de lista del modelo (el precio que un comprador pagaría yendo directamente). Envía discount_pct (ej. 45 = 45% de descuento) o lo mismo que multiplier (0.55). Los precios por token (input_usd_per_mtok / output_usd_per_mtok) ya no se aceptan para los modelos de texto.
"match_best": true establece tu precio al descuento más profundo que los compradores pueden obtener en ese modelo ahora mismo. Puedes cambiarlo en cualquier momento.
Los compradores pagan tu precio; todo se te acredita a medida que cada solicitud se completa. UberLLM no cobra ninguna comisión de tus ventas. Tu propio costo es lo que tu proveedor cobre por tu key.
Opcional daily_cap_usd: una vez que los compradores han gastado esa cantidad en la oferta en un día, deja de recibir solicitudes hasta el día siguiente.
Salud
La salud se mide por el tráfico real de compradores. Las únicas otras solicitudes que enviamos a tu clave son la solicitud de prueba que se describe a continuación y las de la verificación del modelo.
- Cuando publicas o activas una oferta, o cambias su clave, enviamos una pequeña solicitud de prueba (puede usar una pequeña parte de tu cuota).
- Si una solicitud de un comprador hacia ti falla, el comprador es redirigido al siguiente vendedor y tu oferta queda fuera de la ruta por un tiempo: 30 s → 1 min → 2 min → 10 min para errores de servidor y tiempos de espera, 10 → 20 → 40 → 60 min para una clave rechazada o sin crédito, 15–30 s para rate limits. Cuando la espera termina, tu oferta vuelve a recibir solicitudes; una solicitud que se procesa la restablece.
- ¿Lo arreglaste antes?
POST /seller/offers/{id}/reset-health(el botón Lo arreglé, intenta de nuevo) la vuelve a poner en marcha de inmediato. También lo hace una nueva clave o dirección que pase su prueba. - Si tu proveedor rechaza tu clave o dice que la cuenta no tiene crédito dos veces seguidas, te enviamos un correo electrónico (como máximo una vez al día) con las ofertas afectadas.
GET /seller/health-logdice, en palabras sencillas, por qué se omitió una oferta y cuándo volvió.
Verificación del modelo
Los compradores pagan por el modelo que ofreces, así que verificamos que tu oferta realmente lo sirva.
Las reglas
- Sirve el modelo exacto que ofreces. No un modelo más pequeño, más barato, más antiguo o ajustado de forma diferente, y tampoco una mezcla de modelos.
- No añadas nada a la solicitud. Sin instructions, system prompt o tools propias, y nada recortado de lo que el comprador envió. Una aplicación de chat o herramienta de codificación revendida que añade sus propias instructions rompe esta regla.
- Pasa los token counts sin cambios, exactamente como el modelo los contó.
Cómo verificamos
- Cada oferta se verifica antes de que se envíe a cualquier comprador. Hasta que pasa la verificación, la página de Venta la muestra como Verificando; luego pasa a estar Activa. Una nueva key, dirección o modelo se verifica de nuevo de la misma manera.
- Las ofertas siguen siendo verificadas con tráfico real mientras estén publicadas.
- Las verificaciones usan un poco de tu cuota y se pagan como cualquier otra solicitud.
- No publicamos cómo funcionan las verificaciones ni cuándo se ejecutan.
Cuando una oferta falla una verificación
- Se Pausa, y no puedes volver a activarla tú mismo. Publicar la misma key de nuevo como una nueva oferta también es rechazado.
- Tus payouts se retienen mientras nuestro equipo la revisa.
- La página de Venta y
GET /seller/offersdicen por qué, en palabras claras (listing_state: "paused"concheck_reason), y te enviamos un email. - Para que se verifique de nuevo, corrige lo que sirve la oferta y luego escribe a [email protected].
Cuando un vendedor es descubierto sirviendo un modelo diferente al listado
- Tu cuenta de vendedor es suspendida y todas tus ofertas se detienen de inmediato.
- Las ganancias aún no pagadas se pierden y se usan para reembolsar a los compradores a los que tus ofertas sirvieron. Los payouts aún no enviados se cancelan.
- No puedes volver a publicar en UberLLM con la misma provider key, servidor, payout address o email.
- La página de Venta lo dice, y
GET /seller/offersrespondelisting_state: "suspended". Escribe a [email protected] al respecto.
Modelos de peso abierto: di cómo los ejecutas
Los modelos de peso abierto (GPT-OSS, Qwen, DeepSeek, GLM, Kimi, MiniMax y otros cuyos pesos se publican) pueden ejecutarse con calidad completa o comprimidos para ahorrar memoria. Una copia comprimida responde un poco peor, y ninguna prueba puede distinguirla de forma fiable del modelo completo. Por lo tanto, cuando publicas un modelo de peso abierto, dices cómo lo ejecuta tu servidor, y los compradores ven tu respuesta en la página del modelo:
- Calidad completa (16-bit): los pesos tal como se publicaron (bf16 / fp16), o mejor.
- 8-bit: fp8 o int8.
- Por debajo de 8-bit (6-bit o 4-bit): cualquier cosa más pequeña.
Una nueva publicación de un modelo de peso abierto necesita una de las tres. Las ofertas publicadas antes de 1 de noviembre de 2026 muestran "Precisión no indicada" hasta que la configures (Página de Venta → la oferta → Precio y precisión). Indicar una precisión más alta de la que tu servidor realmente ejecuta es un modelo diferente al listado: la cuenta es suspendida, como se indica a continuación. Los modelos cerrados (Claude, GPT-5, Gemini…) no lo piden.
Token counts con relleno
Cuando tu servidor reporta muchos más prompt tokens de los que realmente contiene una solicitud, al comprador se le factura, y a ti se te paga, por un máximo de aproximadamente 2× nuestro propio recuento de los prompt tokens de la solicitud, más una pequeña asignación para tool definitions e imágenes. Por debajo de eso, las solicitudes se facturan exactamente como tu servidor las reporta.
Ganancias y pagos
GET /seller/earnings?range=7d|30d|90d|all— ganancias, ventas y tokens, por modelo, con el mercado alrededor de cada uno de tus modelos (el descuento más barato ahora mismo y el descuento realizado por el mercado en la última hora) para que puedas ver cómo fijar el precio.GET /seller/payouts— disponible para pagar (owed_usd), en espera (held_usd, ynext_release_at: cuando la siguiente parte esté lista), en camino y pagado como números separados, dónde se envían tus pagos (payout_method,nullhasta que lo configures), además de tu historial de pagos.PUT /seller/payout-method{method, address}— dónde enviar tu dinero:{"method":"paypal","address":"[email protected]"}(el email de tu cuenta de PayPal) o{"method":"usdc_base","address":"0x…"}(tu wallet en Base,0xy 40 caracteres hexadecimales; enviamos USDC solo en la red Base). Responde a la{method, address, set_at}guardada. En la consola: Selling → Payouts → Where we send your money.
Las ganancias se retienen antes de poder ser pagadas: 14 días mientras eres un vendedor nuevo (tus primeros 30 días, o hasta que hayas ganado $500 en total), luego 7 días. De esa manera, los compradores pueden ser reembolsados si una oferta resulta no servir al modelo que lista. La página Selling muestra Available to pay out y On hold, con la fecha en que la siguiente parte estará lista.
Una vez fuera de la retención, lo que está disponible se convierte en un pago automáticamente una vez que
alcanza $5, o 72 horas después de que tu venta impagada más antigua haya salido de la
retención (se comprueba cada 10 minutos). También puedes
solicitar uno en cualquier momento (POST /seller/payouts/request, el botón Pay me now).
Tienes un pago en camino a la vez: lo que ganas mientras tanto
permanece adeudado y se incluirá en tu próximo pago una vez que el actual esté pagado
(solicitar otro responde 409 payout_already_on_the_way).
Nuestro equipo envía cada pago al email de PayPal o wallet de USDC (Base) que hayas configurado, normalmente dentro de 2 días hábiles desde que se inicia. Si un pago se inicia antes de que hayas configurado uno, enviamos un email a los propietarios de tu cuenta para preguntar, y lo enviamos una vez que lo hagas. Un pago se considera paid solo una vez que realmente ha sido enviado; la referencia de pago se muestra entonces junto a él, y te enviamos un email para informarte de que fue enviado.
Si un pago no puede ser entregado (por ejemplo, el email de PayPal no puede recibir dinero), se muestra como Didn't go through con la razón. Nada se pierde: el monto te es adeudado de nuevo y sale con tu próximo pago, y te enviamos un email para verificar dónde enviamos tu dinero.
API
Con la sesión iniciada en la web, la API del vendedor está en /api/v1/seller. Con tu
API key de UberLLM (la que tu agente obtuvo al iniciar sesión en uberllm), la misma API está
en /v1/seller:
| Call | What it does |
|---|---|
POST /seller/register {display_name?} |
Empezar a vender (una vez). El nombre es opcional: si se omite, se te mostrará como "Vendedor" más 4 letras. La página de Venta hace esto por ti. |
GET /seller/providers |
Proveedores y sus base URLs. |
POST /seller/discover {base_url, api_key} or {config_id} |
Los modelos que una key puede servir, emparejados con los nuestros (open_weights: true = listarlo necesita un precision). No consume cuota. |
POST /seller/test {base_url, api_key, models[]} |
Una pequeña solicitud de prueba por modelo. |
POST /seller/offers/bulk |
Listar muchos modelos con una key: {endpoint_url, api_key, save_config, daily_cap_usd, precision, offers:[{model_id, upstream_model, precision, discount_pct | match_best}]}. Se requiere precision (full, 8bit o below8) para modelos de peso abierto; el de nivel superior se aplica a cada modelo de peso abierto en el lote. Cada modelo se prueba a medida que se lista; uno que falla se omite con la razón. |
POST /seller/offers |
Listar un modelo: {model_id, endpoint_url, api_key, upstream_model, precision, discount_pct, daily_cap_usd}. |
GET /seller/offers · GET /seller/offers/{id} |
Tus ofertas con precio, % de descuento, estado de salud, estado (listing_state: checking, live, paused o suspended, con check_reason cuando falló la verificación del modelo) y clasificación en vivo (tu posición entre todo lo que se puede enviar a los compradores para ese modelo). |
PATCH /seller/offers/{id} |
Cambiar precio (discount_pct), limitar (daily_cap_usd, 0 lo elimina), precision (modelos de peso abierto), status: paused | active (una oferta que falló la verificación del modelo no se puede volver a activar). |
POST /seller/offers/{id}/rotate-credential {api_key} |
Nueva key, probada antes de ser aceptada. |
POST /seller/offers/{id}/reset-health |
De nuevo en el enrutamiento ahora. |
DELETE /seller/offers/{id} |
Eliminar: fuera de enrutamiento, key almacenada borrada. |
GET /seller/configs · DELETE /seller/configs/{id} |
Keys guardadas para iniciar nuevas ofertas (solo se muestra una pista de 4 caracteres). |
GET /seller/health-log |
Por qué se omitieron las ofertas. |
GET /seller/earnings · GET /seller/payouts · POST /seller/payouts/request |
Dinero: lo que está disponible, en espera, en camino y pagado. |
PUT /seller/payout-method {method: paypal | usdc_base, address} |
Dónde se envían tus pagos: un correo electrónico de PayPal o una wallet de USDC en Base. |
curl https://api.uberllm.dev/v1/seller/offers/bulk \
-H "Authorization: Bearer $UBERLLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"endpoint_url": "https://api.together.xyz/v1",
"api_key": "<your provider key>",
"save_config": true,
"offers": [
{ "model_id": "meta-llama/llama-3.3-70b-instruct", "match_best": true },
{ "model_id": "qwen/qwen3-235b-a22b-instruct", "discount_pct": 40 }
]
}'
Para agentes
Tu agente ya tiene una API key de UberLLM tras iniciar sesión. Puede registrarse, encontrar modelos con una clave de proveedor, listarlos y ver las ganancias con las llamadas anteriores bajo /v1/seller. No se necesita otro tipo de clave.
Solo publica lo que puedes revender
- ✅ Modelos de pesos abiertos o autoalojados que ejecutas.
- ✅ Capacidad de proveedor que tienes permitido revender.
- ❌ Una API key de proveedor cuyos términos no te permiten revenderla o dar acceso a otros. Los términos de muchos proveedores no lo permiten: verifica los tuyos antes de publicarla.
- ❌ API keys robadas, filtradas, compartidas, de prueba gratuita o de evaluación. Una oferta que infrinja estas reglas será eliminada.
Usa una API key de proveedor dedicada con un límite de gasto. Eres responsable de la licencia y la operación legal de lo que publicas.