Vendedores
Você pode listar a capacidade de inferência que você tem licença para revender no UberLLM: suas próprias GPUs, um modelo de pesos abertos auto-hospedado, ou créditos de provedor sob um plano que permite revenda. Solicitações de compradores por um modelo podem ser roteadas para sua oferta, e você é creditado com o valor total que o comprador paga por cada solicitação.
Para listar uma oferta pelo navegador, use a página do vendedor: Conta → Vender capacidade → Nova oferta. Ela te guia por cinco passos: Provedor, Descobrir, Teste de saúde, Preços, Revisão. Nada entra no ar até você confirmar, e os compradores são direcionados para uma nova oferta assim que ela passa pela nossa verificação de modelo.
Tudo o que a página faz também é uma API, então seu agente pode fazer isso também (veja Para agentes).
Como uma oferta funciona
- Uma chave de provedor, uma base URL, muitos modelos. Uma oferta é um modelo servido através de uma chave em um endereço. A mesma chave pode servir quantos modelos você quiser, mas você não pode listar o mesmo modelo duas vezes na mesma chave e endereço — uma segunda é recusada com
409 duplicate_offer_for_credential(e, quando a oferta existente é sua, seu id emerror.detail.existing_offer_id). - O nome do modelo no seu servidor pode ser diferente do nosso (por exemplo, nós o chamamos de
deepseek/deepseek-v4-flash, seu servidor o chama dedeepseek-v4-flash). O Discovery os associa para você; manualmente, envieupstream_model. - O endereço do seu servidor deve ser público (https, acessível pela internet). Endereços locais, privados e os próprios endereços da UberLLM são recusados.
- Sua chave é criptografada em repouso, descriptografada apenas para atender a uma solicitação enviada a você, nunca retornada por nenhuma leitura e nunca registrada. Uma nova chave é testada antes de ser aceita — se o teste falhar, sua chave antiga permanece. A remoção de uma oferta apaga a chave armazenada.
Preços
Ofertas de texto são precificadas como um desconto sobre o preço de tabela do modelo (o preço que um comprador pagaria indo direto). Envie discount_pct (ex: 45 = 45% de desconto) ou o mesmo que multiplier (0.55). Preços por token (input_usd_per_mtok / output_usd_per_mtok) não são mais aceitos para modelos de texto.
"match_best": true define seu preço para o maior desconto que os compradores podem obter naquele modelo agora. Você pode alterá-lo a qualquer momento.
Os compradores pagam seu preço; tudo é creditado a você assim que cada solicitação é concluída. UberLLM não cobra nenhuma taxa sobre suas vendas. Seu próprio custo é o que seu provedor cobra pela sua key.
Opcional daily_cap_usd: uma vez que os compradores tenham gasto essa quantia na oferta em um dia, ela para de receber solicitações até o dia seguinte.
Saúde
A saúde é medida pelo tráfego real de compradores. As únicas outras requisições que enviamos à sua API key são a requisição de teste abaixo e as da verificação de modelo.
- Quando você lista ou ativa uma oferta, ou muda sua API key, enviamos uma pequena requisição de teste (ela pode usar uma pequena parte da sua cota).
- Se a requisição de um comprador para você falhar, o comprador é movido para o próximo vendedor e sua oferta fica fora do roteamento por um tempo: 30 s → 1 min → 2 min → 10 min para erros de servidor e timeouts, 10 → 20 → 40 → 60 min para uma API key recusada ou sem crédito, 15–30 s para rate limits. Quando a espera termina, sua oferta recebe requisições novamente; uma requisição que é bem-sucedida a reinicia.
- Consertou antes?
POST /seller/offers/{id}/reset-health(o botão Consertei, tente novamente) a coloca de volta imediatamente. O mesmo acontece com uma nova API key ou endereço que passe no seu teste. - Se seu provedor recusar sua API key ou disser que a conta não tem crédito duas vezes seguidas, nós te enviamos um e-mail (no máximo uma vez por dia) com as ofertas afetadas.
GET /seller/health-logdiz, em palavras simples, por que uma oferta foi pulada e quando ela voltou.
Verificação do modelo
Os compradores pagam pelo modelo que você lista, então verificamos se sua oferta realmente o serve.
As regras
- Sirva o modelo exato que você lista. Não um modelo menor, mais barato, mais antigo ou com ajuste diferente, e não uma mistura de modelos.
- Não adicione nada à solicitação. Nenhuma instrução, system prompt ou ferramentas próprias, e nada cortado do que o comprador enviou. Um aplicativo de chat ou ferramenta de codificação revendido que adiciona suas próprias instruções quebra esta regra.
- Passe as contagens de token inalteradas, exatamente como o modelo as contou.
Como verificamos
- Toda oferta é verificada antes que qualquer comprador seja enviado a ela. Até que seja aprovada, a página de Vendas a mostra como Verificando; então ela fica Ativa. Uma nova key, endereço ou modelo é verificado novamente da mesma forma.
- As ofertas continuam sendo verificadas com tráfego real enquanto estiverem listadas.
- As verificações usam um pouco da sua cota e são pagas como qualquer outra solicitação.
- Não publicamos como as verificações funcionam ou quando são executadas.
Quando uma oferta falha em uma verificação
- Ela é Pausada, e você não pode ativá-la novamente por conta própria. Listar a mesma key novamente como uma nova oferta também é recusado.
- Seus payouts são retidos enquanto nossa equipe os revisa.
- A página de Vendas e
GET /seller/offersdizem o porquê, em palavras claras (listing_state: "paused"comcheck_reason), e enviamos um e-mail para você. - Para que seja verificada novamente, corrija o que serve a oferta e, em seguida, escreva para [email protected].
Quando um vendedor é pego servindo um modelo diferente do listado
- Sua conta de vendedor é suspensa e todas as suas ofertas param de uma vez.
- Ganhos ainda não pagos são confiscados e usados para reembolsar os compradores que suas ofertas serviram. Payouts ainda não enviados são cancelados.
- Você não pode listar na UberLLM novamente, com a mesma provider key, servidor, payout address ou e-mail.
- A página de Vendas diz isso, e
GET /seller/offersrespondelisting_state: "suspended". Escreva para [email protected] sobre isso.
Modelos de peso aberto: diga como você os executa
Modelos de peso aberto (GPT-OSS, Qwen, DeepSeek, GLM, Kimi, MiniMax e outros cujos pesos são publicados) podem ser executados com qualidade total ou compactados para economizar memória. Uma cópia compactada responde um pouco pior, e nenhum teste pode distingui-la de forma confiável do modelo completo. Então, quando você lista um modelo de peso aberto, você diz como seu servidor o executa, e os compradores veem sua resposta na página do modelo:
- Qualidade total (16-bit): os pesos conforme publicados (bf16 / fp16), ou melhor.
- 8-bit: fp8 ou int8.
- Abaixo de 8-bit (6-bit ou 4-bit): qualquer coisa menor.
Uma nova listagem de um modelo de peso aberto precisa de uma das três opções. Ofertas listadas antes de 1 de novembro de 2026 mostram "Precisão não declarada" até que você a defina (Página de Vendas → a oferta → Preço e precisão). Declarar uma precisão maior do que seu servidor realmente executa é um modelo diferente do listado: a conta é suspensa, conforme abaixo. Modelos fechados (Claude, GPT-5, Gemini…) não pedem.
Contagens de token preenchidas
Quando seu servidor relata muito mais prompt tokens do que uma solicitação realmente contém, o comprador é cobrado, e você é pago, por no máximo cerca de 2× nossa própria contagem dos prompt tokens da solicitação, mais uma pequena tolerância para definições de ferramentas e imagens. Abaixo disso, as solicitações são cobradas exatamente como seu servidor as relata.
Ganhos e pagamentos
GET /seller/earnings?range=7d|30d|90d|all— ganhos, vendas e tokens, por modelo, com o mercado em torno de cada um dos seus modelos (o desconto mais barato agora e o desconto realizado pelo mercado na última hora) para que você possa ver como precificar.GET /seller/payouts— disponível para pagamento (owed_usd), em espera (held_usd, enext_release_at: quando a próxima parte estiver pronta), a caminho e pago como números separados, para onde seus pagamentos são enviados (payout_method,nullaté você configurar), além do seu histórico de pagamentos.PUT /seller/payout-method{method, address}— para onde enviar seu dinheiro:{"method":"paypal","address":"[email protected]"}(o e-mail da sua conta PayPal) ou{"method":"usdc_base","address":"0x…"}(sua carteira na Base,0xe 40 caracteres hexadecimais; enviamos USDC apenas na rede Base). Responde ao{method, address, set_at}salvo. No console: Vendas → Pagamentos → Para onde enviamos seu dinheiro.
Os ganhos são retidos antes de poderem ser pagos: 14 dias enquanto você é um novo vendedor (seus primeiros 30 dias, ou até você ter ganho $500 no total), depois 7 dias. Dessa forma, os compradores podem ser reembolsados se uma oferta não atender ao modelo que ela lista. A página de Vendas mostra Disponível para pagamento e Em espera, com a data em que a próxima parte estará pronta.
Uma vez liberado da espera, o que está disponível entra em um pagamento automaticamente assim que atinge $5, ou 72 horas depois que sua venda não paga mais antiga sair da espera (verificado a cada 10 minutos). Você também pode solicitar um a qualquer momento (POST /seller/payouts/request, o botão Pagar-me agora). Você tem um pagamento a caminho por vez: o que você ganha enquanto isso permanece devido e entra no seu próximo pagamento assim que o atual for pago (solicitar outro responde a 409 payout_already_on_the_way).
Nossa equipe envia cada pagamento para o e-mail do PayPal ou carteira USDC (Base) que você configurou, geralmente dentro de 2 dias úteis após o início. Se um pagamento for iniciado antes de você ter configurado um, enviamos um e-mail aos proprietários da sua conta para perguntar, e o enviamos assim que você o fizer. Um pagamento é considerado pago somente depois de ter sido realmente enviado; a referência do pagamento então aparece ao lado dele, e nós enviamos um e-mail para você informando que foi enviado.
Se um pagamento não puder ser entregue (por exemplo, o e-mail do PayPal não pode receber dinheiro), ele aparece como Não processado com o motivo. Nada é perdido: o valor é devido a você novamente e sai com seu próximo pagamento, e nós enviamos um e-mail para você para verificar para onde enviamos seu dinheiro.
API
Logado na web, a API do vendedor está em /api/v1/seller. Com sua API key da UberLLM (aquela que seu agente obteve ao fazer login em uberllm), a mesma API está em /v1/seller:
| Chamada | O que faz |
|---|---|
POST /seller/register {display_name?} |
Começar a vender (uma vez). O nome é opcional: se omitido, você é exibido como "Vendedor" mais 4 letras. A página de Vendas faz isso por você. |
GET /seller/providers |
Provedores e suas base URLs. |
POST /seller/discover {base_url, api_key} ou {config_id} |
Os modelos que uma key pode servir, correspondidos aos nossos (open_weights: true = listá-lo precisa de um precision). Não consome quota. |
POST /seller/test {base_url, api_key, models[]} |
Uma pequena requisição de teste por modelo. |
POST /seller/offers/bulk |
Listar muitos modelos em uma key: {endpoint_url, api_key, save_config, daily_cap_usd, precision, offers:[{model_id, upstream_model, precision, discount_pct | match_best}]}. precision (full, 8bit ou below8) é necessário para modelos de peso aberto; o de nível superior se aplica a cada modelo de peso aberto no lote. Cada modelo é testado ao ser listado; um que falha é omitido com a razão. |
POST /seller/offers |
Listar um modelo: {model_id, endpoint_url, api_key, upstream_model, precision, discount_pct, daily_cap_usd}. |
GET /seller/offers · GET /seller/offers/{id} |
Suas ofertas com preço, % de desconto, saúde, estado (listing_state: checking, live, paused ou suspended, com check_reason quando falhou na verificação do modelo) e classificação ao vivo (sua posição entre tudo para o qual os compradores podem ser enviados para aquele modelo). |
PATCH /seller/offers/{id} |
Reprecificar (discount_pct), limitar (daily_cap_usd, 0 remove), precision (modelos de peso aberto), status: paused | active (uma oferta que falhou na verificação do modelo não pode ser reativada). |
POST /seller/offers/{id}/rotate-credential {api_key} |
Nova key, testada antes de ser aceita. |
POST /seller/offers/{id}/reset-health |
De volta ao roteamento agora. |
DELETE /seller/offers/{id} |
Remover: fora do roteamento, key armazenada apagada. |
GET /seller/configs · DELETE /seller/configs/{id} |
Keys salvas para iniciar novas ofertas (apenas uma dica de 4 caracteres é sempre mostrada). |
GET /seller/health-log |
Por que as ofertas foram ignoradas. |
GET /seller/earnings · GET /seller/payouts · POST /seller/payouts/request |
Dinheiro: o que está disponível, em espera, a caminho e pago. |
PUT /seller/payout-method {method: paypal | usdc_base, address} |
Para onde seus pagamentos são enviados: um e-mail do PayPal ou uma carteira USDC na 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
Seu agente já possui uma API key UberLLM após o login. Ele pode registrar, encontrar modelos em uma chave de provedor, listá-los e acompanhar os ganhos com as chamadas acima em /v1/seller. Nenhum outro tipo de chave é necessário.
Liste apenas o que você pode revender
- ✅ Modelos de pesos abertos ou auto-hospedados que você executa.
- ✅ Capacidade de provedor que você tem permissão para revender.
- ❌ Uma chave de provedor cujos termos não permitem que você a revenda ou dê acesso a terceiros. Os termos de muitos provedores não permitem isso: verifique os seus antes de listá-la.
- ❌ Chaves roubadas, vazadas, compartilhadas, de teste gratuito ou de avaliação. Uma oferta que viola essas regras é removida.
Use uma chave de provedor dedicada com um limite de gastos. Você é responsável pelo licenciamento e pela operação legal do que você lista.