Veja o saldo de crédito da API de IA sem abrir cinco dashboards

Para consultar o saldo de crédito da API de IA, primeiro você precisa saber qual número cada provedor informa. DeepSeek e Moonshot informam dinheiro. Kimi, MiniMax e Z.ai informam a cota de um plano, uma porcentagem de uma janela. O OpenRouter informa um dos dois, conforme a chave tenha ou não um limite de gasto. Aqui você vê quais endpoints dá para chamar por conta própria e como o Token Meter do MXterm Pro lê os seis, incluindo o que ele se recusa a fazer.
Três perguntas diferentes atrás de uma palavra só
"Crédito" cobre três coisas que se comportam de jeitos bem diferentes, e confundir uma com a outra é como as pessoas se surpreendem no meio de uma tarefa.
Um saldo pré-pago é dinheiro que você já depositou na conta e que vai sendo descontado a cada requisição. Ele não tem reinício: só diminui até você recarregar. DeepSeek e Moonshot funcionam assim.
Uma cota de plano é uma fatia de uma janela: um Coding Plan que libera uma quantidade fixa a cada 5 horas, por semana ou por mês, e se renova quando a janela reinicia. Kimi Code, o Coding Plan da MiniMax e o GLM Coding Plan da Z.ai funcionam assim.
Aqui, uma porcentagem significa algo diferente de uma porcentagem de um saldo. Se a janela reinicia no domingo à noite, estar em 90% na segunda às 09:00 é uma situação bem pior do que estar em 90% no domingo às 17:00, porque o reinício está a quase uma semana de distância, e não a poucas horas.
Gasto é simplesmente quanto uma chave já custou, sem teto nenhum. É a resposta direta quando não existe um limite do qual o valor seja uma fração, e é exatamente o que acontece com o OpenRouter numa chave sem limite.
O que cada provedor realmente expõe
A DeepSeek publica GET https://api.deepseek.com/user/balance, autorizado com uma chave de API comum como bearer token. Ele devolve balance_infos[], uma linha por moeda.
Cada linha traz total_balance (o que você realmente pode gastar), topped_up_balance (crédito que você pagou) e granted_balance (crédito promocional), como strings decimais em unidades inteiras da moeda. A divisão entre pago e concedido importa, porque o crédito concedido costuma ser o primeiro a expirar.
A Moonshot (a Kimi Open Platform) responde em GET /v1/users/me/balance em api.moonshot.ai no mundo todo e em api.moonshot.cn para a plataforma da China. Ele devolve available_balance junto com cash_balance e voucher_balance. Uma chave pertence a uma plataforma e não funciona na outra.
Um aviso antes de você construir qualquer coisa em cima disso: a resposta não traz nenhum campo de moeda. A moeda é deduzida do host que respondeu, CNY para o host da China e USD nos demais. Isso é uma dedução, não algo que o servidor declara.
O Kimi Code é uma assinatura, não uma carteira. GET https://api.kimi.com/coding/v1/usages devolve uma cota de uso de 7 dias e janelas de limite de requisições mais curtas. O pool mensal "Total usage" do site da Kimi vem de outro endpoint web, autenticado por cookie, então só a chave de API não dá esse número.
A MiniMax usa uma chave de Coding Plan que começa com sk-cp-. Ela chama GET /v1/token_plan/remains em api.minimax.io globalmente ou em api.minimaxi.com para a plataforma da China. Um caminho mais antigo, /v1/api/openplatform/coding_plan/remains, ainda responde em algumas contas. O que volta é a capacidade restante do plano por janela, não dinheiro.
O OpenRouter tem um endpoint documentado e de primeira classe para isso: GET https://openrouter.ai/api/v1/key devolve limit, limit_remaining e usage da própria chave que faz a chamada, tudo em USD. Se a chave tem um limite de gasto, você recebe uma porcentagem de verdade.
A Z.ai (e a BigModel, sua plataforma na China) expõe a cota do Coding Plan em /api/monitor/usage/quota/limit em api.z.ai ou open.bigmodel.cn. Esse endpoint não está na referência de API publicada da Z.ai. É o que o plugin de uso de código aberto da própria Z.ai chama, então é código de cliente publicado pelo fornecedor, e não uma interface prometida, e pode mudar sem aviso.
A resposta também mistura dois pools diferentes: a cota de tokens ou crédito do plano e uma cota mensal separada que conta chamadas de ferramentas MCP, como busca na web. Os dois não são intercambiáveis. Ler o segundo como se fosse o primeiro é um jeito fácil de achar que seu plano está quase acabando quando não está.
Guia relacionadoUso, limite do plano e saldo: três números que todo mundo confundeComo consultar por conta própria
Para dois deles você não precisa de ferramenta nenhuma. Ambos são GETs simples com bearer token. curl -H "Authorization: Bearer $DEEPSEEK_API_KEY" https://api.deepseek.com/user/balance traz o número da DeepSeek, e curl -H "Authorization: Bearer $OPENROUTER_API_KEY" https://openrouter.ai/api/v1/key traz o do OpenRouter.
Passe qualquer um dos dois por jq e você tem uma função de shell que dá para ligar a um alias em cerca de um minuto. Para um ou dois provedores, isso resolve.
Deixa de escalar na parte operacional. Cada chave precisa ficar em algum lugar que o seu shell consiga ler, normalmente um dotfile ou uma variável de ambiente exportada. Você precisa lembrar de rodar o comando, e o resultado é tão atual quanto a última vez que você o executou. Nos provedores cujos endpoints não são documentados, você ainda mantém um scrape de algo que pode mudar sem registro em changelog.
A outra opção gratuita é o dashboard de cada fornecedor. Ele é sempre o número oficial e mostra o que uma chave de API não mostra: faturas, datas de expiração do crédito concedido, detalhamento por chave. É o lugar certo para uma conciliação mensal.
Ele serve mal para "vou ficar sem saldo no meio da tarefa?", pergunta que você faz dez vezes por dia e quer ver respondida sem sair do que está fazendo.
O que o Token Meter do MXterm Pro faz com eles
Os seis foram adicionados ao Token Meter na 1.0.22. Em Configurações → Token Meter há uma linha por provedor.
Cole uma chave de API e escolha uma região nos provedores que têm mais de uma (Moonshot internacional/China, MiniMax global/China, Z.ai global/China; chaves da Moonshot e da Z.ai só funcionam na própria região). Aí esse provedor entra no popover com o saldo, as janelas de cota ou o valor gasto, atualizados em segundo plano. O popover lista todos os provedores que você configurou, e Configurações → Token Meter permite fixar um no topo (Claude Code, por padrão). Veja também a página do Token Meter e a documentação do Token Meter.
O único chip na barra de título mostra a cota mais restrita entre todas, colorido conforme a proximidade do limite. Pelo motivo dado na primeira seção, um saldo ou um valor gasto nunca conta como porcentagem nem vira barra. Sem nenhuma cota e sem Claude Code nem Codex instalados, o chip mostra o menor saldo em USD como dinheiro.
Cada linha mostra há quanto tempo a leitura foi feita e o que deu errado: chave rejeitada, provedor inacessível, limite de requisições atingido ou uma resposta que não deu para ler. Se o provedor está inacessível ou limita a consulta, a linha mantém a última leitura boa e avisa que está desatualizada, em vez de passar um número velho como atual. Uma chave rejeitada ou uma resposta ilegível mostra essa mensagem no lugar.
Onde as chaves ficam e o que nunca sai daqui
Seguem os detalhes, porque "guardamos com segurança" não é uma afirmação que alguém consiga conferir.
Uma chave colada vai para o armazenamento de credenciais do seu próprio sistema operacional. No macOS, é um item do Keychain criado pelo próprio MXterm, com serviço MXterm Pro e conta account-usage.<provider>. O build para Windows está preparado para usar o armazenamento de credenciais do Windows, mas isso não foi verificado lá. No build atual, a chave não é gravada nos arquivos do app nem no armazenamento do navegador.
O campo em que você cola é não controlado, de propósito. A chave fica nesse input do DOM e em nenhum outro lugar até você clicar em Salvar, que a entrega ao backend, e que depois esvazia o campo. O estado do app não a guarda.
Um segundo arquivo, sem segredos, no diretório de dados do app, account-usage.json, guarda só três coisas por provedor: se há uma chave salva, seus últimos quatro caracteres e a região. A barra de título o consulta a cada carregamento, então o app sabe o que você configurou sem nenhuma chamada ao armazenamento de credenciais. Sem nada configurado, o Token Meter não faz chamada ao armazenamento de credenciais nem chamada de rede nenhuma.
No build atual, cada chave vai apenas para hosts HTTPS do provedor a que ela pertence, fixados no código do app. Redirecionamentos não são seguidos, então um bearer token não pode ser desviado para outro host. Não existe URL base configurável pelo usuário para apontar uma chave para outro lugar.
O texto de erro é uma categoria fixa, não uma resposta bruta: "invalid credentials", "unreachable", "unreadable" ou "rate limited". Todo tipo que guarda um segredo imprime [redacted] quando depurado. A única parte de uma chave salva que o app exibe é … mais os últimos quatro caracteres, e só quando a chave é longa o bastante para que quatro caracteres não revelem nada.
O que ele deliberadamente não faz
Um medidor que lê credenciais deve ser julgado tanto pelo que recusa quanto pelos recursos. Estas recusas foram decisões explícitas.
Sem chaves de gerenciamento. Uma resposta do OpenRouter que diga vir de uma chave de gerenciamento ou de provisionamento é recusada como inválida, porque essas chaves podem criar e apagar chaves de API. O app também nunca chama o endpoint de créditos da conta, que só aceita chave de gerenciamento.
Sem cookies do navegador e sem credenciais guardadas por outro app. As únicas credenciais lidas são as que você colou e, só para o Kimi, o arquivo de token do próprio Kimi Code CLI: lido, nunca gravado, nunca renovado, porque pertence ao CLI.
Algumas ferramentas criam um arquivo de device-id quando ele não existe. O MXterm não cria, porque não grava no diretório de outro programa. Se esse arquivo não está lá, o caminho pelo CLI simplesmente fica indisponível e o provedor aparece como não configurado.
Sem bombardear o provedor. Cada provedor é consultado no máximo uma vez a cada cinco minutos. Um 429 o coloca em pausa por quinze. Um 401 ou 403 o pausa até você trocar a credencial, em vez de repetir uma chave rejeitada num temporizador. A consulta periódica do app só roda enquanto pelo menos um provedor estiver configurado: uma chave salva ou os arquivos de credenciais do Kimi Code CLI.
Identidade própria, com uma exceção. O app se identifica com um User-Agent que cita o MXterm e a versão. O cabeçalho de origem da MiniMax leva o nome do próprio MXterm, e o OpenRouter não recebe nenhum cabeçalho de atribuição.
A exceção é o caminho do Kimi Code CLI. Nele, o token do próprio CLI é enviado com a identidade de plataforma do CLI (X-Msh-Platform: kimi_code_cli) e o device id dele, junto com a versão do MXterm.
O aviso que vale dizer sem rodeios
O parsing do MXterm Pro foi escrito e testado com fixtures e exemplos da documentação, não com respostas reais capturadas de todos os provedores.
Então, se um provedor renomear um campo de que o parser precisa, a linha mostra "Não foi possível ler a resposta do provedor" em vez de um número errado. Esse é o modo de falha que você quer. Mesmo assim, não trate nada disso como fonte contábil.
Para dinheiro que precisa estar certo (uma fatura, um orçamento, um estorno), vá ao dashboard do fornecedor. Para "essa chave vai secar enquanto três agentes rodam?", uma lista que se atualiza sozinha no canto da janela é a melhor ferramenta.
SSH com vários painéis, Command Recipes (Cmd+J) e uma Control Room (antes War Room) multiagente: comece grátis.
Já tem o MXterm Pro? Leia o guia de configuração →
Novo no MXterm Pro? Veja os preços →
Perguntas frequentes
De seis: DeepSeek, Moonshot, Kimi, MiniMax, OpenRouter e Z.ai, cada um a partir de uma chave de API que você cola em Configurações → Token Meter. DeepSeek e Moonshot informam um saldo em dinheiro. Kimi, MiniMax e Z.ai informam janelas de cota do plano. O OpenRouter informa uma cota se a chave tem limite de gasto, ou o gasto se não tem. Claude Code e Codex são lidos à parte, a partir dos transcripts deles na sua máquina.
No armazenamento de credenciais do seu sistema operacional. No macOS, é um item do Keychain com o nome de serviço "MXterm Pro". O Windows está preparado para o armazenamento de credenciais dele, mas isso não foi verificado. No build atual, a chave não é gravada nos arquivos do app nem no armazenamento do navegador. Ela vai apenas para o host HTTPS fixo do seu provedor. Redirecionamentos não são seguidos, e nenhuma configuração muda o host.
Para DeepSeek e OpenRouter, sim. Cada um é um GET simples que você chama com curl e um bearer token (https://api.deepseek.com/user/balance e https://openrouter.ai/api/v1/key, este último documentado pelo OpenRouter para essa finalidade). Os outros também são GETs com bearer token, mas acrescentam hosts regionais e chaves específicas de cada plano, e o endpoint da Z.ai não está na referência de API dela. Para esses, use o dashboard do fornecedor.
Normalmente é a região. Z.ai, MiniMax e Moonshot têm, cada uma, plataformas separadas, global e da China. Escolha a região certa ao salvar a chave: chaves da Moonshot e da Z.ai só funcionam na própria região, e o MXterm tenta de novo o host da MiniMax na China se o global rejeitar a chave. A MiniMax também exige uma chave de Coding Plan, que começa com sk-cp-.
O que o provedor de fato publica. Um saldo pré-pago é o que sobrou. Uma cota de plano é uma porcentagem de uma janela, com horário de reinício. As chaves sem limite do OpenRouter só conseguem informar o que foi gasto, então é isso que aparece, identificado como gasto e não disfarçado de porcentagem de um limite que ninguém definiu.
No build atual, não. As linhas de conta consultam o endpoint do provedor sobre a sua conta usando a sua chave, e a requisição não leva nada sobre as suas sessões. As contagens de tokens do Claude Code e do Codex são lidas de transcripts na sua máquina, que não são enviados.