URL base da API TTS: o que é e o que inserir
Uma URL base é a parte inicial compartilhada de cada endereço de endpoint. Esta página explica o que inserir aqui para este serviço, que é uma API de LLM de texto e não um endpoint de fala, e como configurá-la em ferramentas comuns.
Atualizado

Pontos principais
- A URL base para esta API é https://api.ttsapihub.com/v1; caminhos como /chat/completions são adicionados após ela.
- Apesar do nome do site, o endpoint produz apenas texto. Não há endpoint de fala ou áudio.
- A maioria das ferramentas compatíveis com OpenAI precisa apenas de três valores: URL base, chave de API e o ID do modelo uncensored.
- Dois erros comuns são duplicar /v1 e colar o caminho completo /chat/completions em um campo de URL base.
A URL base, e uma coisa a saber primeiro
Se você chegou aqui pesquisando por uma url base da api tts, verifique um detalhe antes de copiar qualquer coisa: o serviço por trás deste site é uma API de modelo de linguagem de texto, não um sintetizador de fala. A URL base é https://api.ttsapihub.com/v1, e ela expõe POST /v1/chat/completions e GET /v1/models. Não há rota /audio/speech, nem lista de vozes nem saída de áudio.
Isso importa porque muitas ferramentas rotulam suas configurações de forma genérica. Um campo chamado base URL em um cliente funciona da mesma forma, seja o servidor por trás dele respondendo com texto ou som. Se o seu objetivo é converter texto em áudio, este endpoint não fará isso. Se o seu objetivo é gerar o texto que uma ferramenta de fala lerá depois, para roteiros, diálogos ou rascunhos de narração, ele se encaixa bem. A lista de verificação de pipeline TTS do site é o lugar para olhar quando você está planejando esse tipo de fluxo de trabalho, e a documentação de início rápido lista todos os parâmetros de requisição.
O restante desta página aplica-se a qualquer cliente compatível com OpenAI, portanto, é útil mesmo que você esteja aqui apenas para aprender como as URLs base funcionam.
O que uma URL base realmente é
Um endereço de API tem duas metades. A primeira metade identifica o serviço e a versão de sua interface. A segunda metade nomeia a ação. A biblioteca do cliente as une para você. Com os SDKs da OpenAI, as partes se parecem com isto:
| Parte | Valor |
|---|---|
| URL base | https://api.ttsapihub.com/v1 |
| Caminho adicionado pelo SDK para chat | /chat/completions |
| Endereço completo que é chamado | https://api.ttsapihub.com/v1/chat/completions |
| Caminho para a lista de modelos | /models |
Como o SDK anexa o caminho, você fornece apenas a primeira metade. Essa é toda a ideia por trás da troca de provedores com uma alteração de linha: o formato da solicitação é compartilhado, portanto, a única coisa que precisa ser movida é onde as solicitações são enviadas. A chave também muda, já que cada serviço emite a sua. E o nome do modelo muda, porque cada serviço nomeia seus próprios modelos. Para esta API, o ID do modelo é uncensored.
Dois pequenos detalhes economizam tempo. O segmento de versão, /v1, pertence à URL base porque marca a geração da interface; uma interface incompatível futura viveria sob uma versão diferente, e seu código não mudaria até que você escolhesse mover. E uma barra final na URL base é tolerada pela maioria dos SDKs, mas é mais seguro deixá-la de fora para que os caminhos unidos nunca contenham uma barra dupla.
A autenticação é um cabeçalho bearer padrão: Authorization: Bearer YOUR_KEY. Os SDKs constroem esse cabeçalho a partir da chave que você passa, então você raramente o escreve sozinho, exceto no curl.
Definindo a URL base no código
Python
O pacote oficial openai aceita um argumento base_url. Esta é uma chamada completa funcional:
from openai import OpenAI
client = OpenAI(
base_url="https://api.ttsapihub.com/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Write a two-line scene opening."}],
)
print(resp.choices[0].message.content)Node
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.ttsapihub.com/v1",
apiKey: process.env.API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Write a two-line scene opening." }],
});
console.log(resp.choices[0].message.content);curl
Com curl, você escreve o endereço inteiro sozinho, portanto, o caminho está incluído:
curl https://api.ttsapihub.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "uncensored", "messages": [{"role": "user", "content": "Say hello."}]}'Variáveis de ambiente
Versões recentes dos SDKs oficiais da OpenAI leem OPENAI_BASE_URL e OPENAI_API_KEY do ambiente quando você não os passa no código. Isso é útil quando você deseja apontar software existente para um novo endpoint sem editá-lo. Defina-os no seu shell ou gerenciador de processos, então execute o programa normalmente. Verifique a documentação da versão do seu SDK se ele não os reconhecer.
Definindo-o em editores e aplicativos
Ferramentas que aceitam um endpoint OpenAI personalizado pedem os mesmos três valores. Os nomes diferem, então procure por textos como o seguinte:
- Cursor: nas configurações do modelo há uma opção para substituir a URL base da OpenAI. Cole
https://api.ttsapihub.com/v1, adicione sua chave e adicioneuncensoredcomo um nome de modelo personalizado. Os rótulos da interface mudam entre as versões do Cursor, então trate esses nomes como um guia. - SillyTavern: escolha Chat Completion, depois a fonte Custom (compatível com OpenAI) e preencha o endpoint, a chave e o modelo.
- Open WebUI e interfaces de chat semelhantes: adicione uma conexão do tipo OpenAI com a URL base e a chave.
- Seus próprios scripts: qualquer cliente HTTP funciona, já que a interface é JSON puro sobre HTTPS.
Algumas ferramentas verificam a conexão chamando GET /v1/models. Esta API suporta essa rota, então a verificação passa. Algumas ferramentas permitem apenas escolher de uma lista fixa; se a sua fizer isso, procure um campo de modelo personalizado ou manual em vez do menu suspenso.
Lembre-se para que serve a ferramenta. Um editor como o Cursor enviará perguntas de código para um modelo de chat geral, o que funciona. Mas recursos que dependem de endpoints especiais, como embeddings para pesquisa de código, não estão disponíveis aqui, porque embeddings não são oferecidos.
Erros que causam a maioria dos erros de URL base
Quase toda a primeira conexão falha vem de uma destas.
- Duplicar a versão. A URL base já termina em
/v1. Se você adicionar outro, o endereço se tornará/v1/v1/chat/completionse o servidor responderá com um erro de não encontrado. - Colar o caminho completo. Um campo de URL base quer
https://api.ttsapihub.com/v1, nãohttps://api.ttsapihub.com/v1/chat/completions. O SDK anexaria o caminho uma segunda vez. - Usando o endereço do site. O site que você lê não é o host da API. As solicitações vão para o host
api.mostrado acima. - Chamando uma rota de fala. Caminhos como
/audio/speechnão existem aqui e retornam um erro. - Nome de modelo errado ou ausente. Sempre envie
uncensoredem minúsculas. - Problemas com a chave. Um espaço solto ou um prefixo
Bearerausente em um cabeçalho escrito à mão causa um erro de autenticação.
Para distinguir um problema de URL de um problema de chave, solicite a lista de modelos. Uma URL correta e uma chave errada dão um erro de autenticação. Uma URL errada dá não encontrado, erro de DNS ou uma página HTML em vez de JSON.
curl https://api.ttsapihub.com/v1/models -H "Authorization: Bearer $API_KEY"
# then a minimal chat call with the model ID "uncensored":
curl https://api.ttsapihub.com/v1/chat/completions -H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}],"max_tokens":5}'Obtenha uma chave e quanto custa
Você precisa de uma chave para que tudo funcione. Entre com Google ou com e-mail e senha na página da chave de API, depois resgate o crédito de teste grátis de $0,50 com um clique. Ele é válido por 7 dias, um resgate por pessoa e não precisa de cartão. A chave de teste permite 2 requisições simultâneas e 60 requisições por minuto, enquanto a chave completa permite 8 simultâneas e 300 por minuto.
A precificação é de $0,15 por 1M de tokens de entrada e $0,50 por 1M de tokens de saída, pagos a partir de crédito pré-pago sem assinatura. Uma requisição com 2.000 tokens de entrada e 500 tokens de saída custa $0,0003 mais $0,00025, totalizando $0,00055. Recarregamentos variam de $20 a $500 com bônus a partir de $50, e você pode pagar com cartão (Visa, Mastercard, Apple Pay, Google Pay) ou cripto (USDT em TRC20, USDC em Base). A página de precificação tem a tabela completa. Os prompts não são usados para treinamento, e o modelo é apenas para uso adulto legal, sem conteúdo sexual envolvendo menores de idade.
Mais guias
Perguntas e respostas
Qual é a URL base desta API?
É https://api.ttsapihub.com/v1. Adicione caminhos como /chat/completions depois dele, ou deixe seu SDK adicioná-los.
Posso usar este endpoint para síntese de fala?
Não. Ele retorna apenas texto, sem geração de áudio, imagem ou vídeo. Você pode usá-lo para escrever o texto que outra ferramenta converte em fala.
Devo adicionar /chat/completions à URL base em um SDK?
Não. Os SDKs adicionam o caminho automaticamente. Apenas clientes HTTP brutos como curl precisam do endereço completo.
Qual nome de modelo devo enviar?
Envie uncensored. Você pode confirmar o que o servidor lista com GET /v1/models.
Por que minha ferramenta diz não encontrado depois de definir a URL?
As causas mais comuns são um /v1 duplicado, um caminho completo colado, ou o endereço do site usado no lugar de api. host.
Sua chave está a um formulário de distância
Crie uma conta, copie a chave e altere a URL base. Essa é toda a configuração.