Invita y gana

Cómo funcionan las recompensas

Comparte tu enlace. Cuando un amigo se registre con él y recargue saldo, recibirás la recompensa indicada por sus recargas posteriores.

Qué es una Base URL: estructura de una API y solución de errores 401/404

Una Base URL es la dirección raíz de un servidor o gateway de API. El cliente añade un endpoint concreto para formar la URL final de la solicitud. Esta guía explica la diferencia entre Base URL, endpoint y URL completa; muestra cómo elegir la dirección correcta de BetterToken para clientes compatibles con OpenAI y para Claude Code; y ofrece un orden de comprobación para errores 401, 404, 405, model not found, respuestas HTML, timeouts y configuraciones antiguas que siguen activas.

Índice

Si ya has creado una API Key pero el cliente devuelve 401, 404, 405, model not found, abre una página de inicio de sesión o entrega HTML en lugar de JSON, no cambies a la vez la clave, el modelo y la dirección. Primero aclara qué es la Base URL y después revisa la configuración en este orden: protocolo → dirección raíz → versión de la API → endpoint → autenticación → modelo.

La Base URL es la dirección raíz de un servidor o gateway de API. Una biblioteca cliente, un SDK o una herramienta de línea de comandos añade la ruta de un recurso concreto —el endpoint— para formar la URL completa de la solicitud.

Los ejemplos utilizan BetterToken, pero el método también sirve para otros gateways, proxies propios y servicios compatibles con los protocolos de OpenAI o Anthropic.

¿Qué es una Base URL en una API?

La fórmula más sencilla es:

URL completa de la solicitud = Base URL + ruta del endpoint

Ejemplo de una solicitud compatible con OpenAI:

Base URL:  https://www.bettertoken.ai/v1
Endpoint:  /responses
URL completa: https://www.bettertoken.ai/v1/responses

Otro endpoint habitual es /chat/completions:

Base URL:  https://www.bettertoken.ai/v1
Endpoint:  /chat/completions
URL completa: https://www.bettertoken.ai/v1/chat/completions

En una aplicación real, el cliente suele normalizar la barra entre ambos fragmentos. La cuestión importante no es cómo concatenar las cadenas a mano, sino si el campo Base URL ya incluye una ruta que el cliente volverá a añadir.

Partes de una URL de API

Tomemos https://www.bettertoken.ai/v1/responses:

ParteEjemploFunción
Esquemahttps://Define cómo se establece la conexión
Hostbettertoken.aiIdentifica el servicio de API
Ruta base/v1Selecciona una versión o entrada común
Endpoint/responsesSelecciona un recurso u operación

En algunos servicios la Base URL contiene solo el esquema y el dominio; en otros también incluye una ruta como /v1. No existe un sufijo universal. Usa siempre la documentación vigente del servicio y del cliente.

Lo que no es una Base URL

Concepto que suele confundirseDiferencia
Página principal del sitioPuede devolver HTML; una Base URL de API está pensada para solicitudes programáticas
URL completaYa contiene un endpoint como /responses, /chat/completions o /v1/messages
API KeyLa clave autentica; la Base URL decide adónde se envía la solicitud
Model IDSelecciona el modelo, pero no el protocolo ni la ruta
Dirección de un servidor MCPMCP conecta herramientas y datos; no sustituye la Base URL de la API del modelo

Que una dirección se abra en el navegador no demuestra que sea la Base URL correcta. Muchos puntos raíz de API no muestran una página legible. A la inversa, una página de inicio de sesión puede pertenecer al sitio web y no a la API.

Elige la dirección por el protocolo del cliente, no por el nombre del modelo

Un mismo gateway puede ofrecer entradas compatibles con OpenAI y con Anthropic. El protocolo que espera el cliente importa más que si el modelo se llama GPT, Claude, Kimi o GLM.

La documentación actual de BetterToken usa estas reglas:

Cliente o casoProtocolo habitualBase URL que debes introducirRuta que añade el cliente
CodexOpenAI Responseshttps://www.bettertoken.ai/v1/responses
Cursor, Cline, OpenCode y similaresOpenAI-compatiblehttps://www.bettertoken.ai/v1La que corresponda, como /chat/completions
Claude CodeAnthropic-compatiblehttps://bettertoken.ai/v1/messages
Solicitud HTTP escrita por tiDepende del formatoLa dirección del protocolo elegidoEl endpoint se indica en el código

Consulta API compatible con OpenAI frente a API compatible con Anthropic. No configures todos los programas con la dirección de Anthropic solo porque quieras usar un modelo Claude, ni ignores el protocolo del cliente porque el modelo sea GPT.

Cinco comprobaciones de la Base URL

Modifica una sola variable cada vez y repite la misma solicitud corta después de cada cambio. Así sabrás qué capa causaba el fallo.

1. Confirma el protocolo que espera el cliente

Revisa el provider o el tipo de API dentro de la herramienta:

  • Codex utiliza OpenAI Responses.
  • Cursor, Cline, OpenCode y muchas herramientas similares suelen utilizar un provider OpenAI-compatible.
  • Claude Code utiliza el protocolo Messages compatible con Anthropic.
  • En un script propio, el formato implementado en el código determina el protocolo.

Cambiar de modelo no corrige una incompatibilidad de protocolo. Los campos, la autenticación y las rutas pueden ser diferentes.

2. Introduce solo la dirección raíz, no un endpoint completo

Un campo llamado base_url, Base URL, API base o endpoint base suele esperar la raíz compartida.

Correcto:

https://www.bettertoken.ai/v1

Errores frecuentes:

https://www.bettertoken.ai/v1/responses
https://www.bettertoken.ai/v1/chat/completions

Si el cliente añade /responses, el primer error puede terminar así:

https://www.bettertoken.ai/v1/responses/responses

En Claude Code tampoco debes poner https://www.bettertoken.ai/v1/messages en ANTHROPIC_BASE_URL; el propio programa añade /v1/messages.

3. Asegúrate de que /v1 aparezca una sola vez

La Base URL de BetterToken para clientes OpenAI-compatible ya contiene /v1. Si el SDK ofrece además api_version, path_prefix o un campo parecido, no añadas otro /v1 salvo que su documentación lo exija.

Esta URL en los logs casi siempre indica un error de unión:

https://www.bettertoken.ai/v1/v1/responses

En el extremo contrario, una solicitud OpenAI-compatible sin /v1 puede devolver 404, HTML del sitio o una redirección al inicio de sesión.

4. Prueba el endpoint con la solicitud más pequeña posible

Desactiva streaming, tools, MCP y contexto largo. Envía una frase breve desde el mismo cliente. No empieces con una tarea que pueda escribir en un repositorio real.

Inicia Codex:

codex

Después escribe:

Responde con una sola frase breve: la conexión funciona.

Inicia Claude Code:

claude

Después escribe:

Responde con una sola frase breve: la conexión funciona.

En una solicitud HTTP directa, usa un Model ID disponible actualmente en Setup o Model Plaza. La guía vigente de Codex usa gpt-6-astra como ejemplo, pero la disponibilidad real para tu clave debe verificarse en el panel. Activa streaming, tools o tareas largas solo después de que funcione la prueba mínima.

5. Reinicia el cliente por completo

Muchas CLI, aplicaciones de escritorio y extensiones leen las variables de entorno y los archivos de configuración solo al iniciarse. Guardar el archivo no implica que el proceso en ejecución haya cargado el nuevo valor.

Después de un cambio:

  1. Cierra la CLI, la aplicación o la ventana del editor.
  2. Comprueba que los procesos relacionados hayan terminado.
  3. Abre un terminal nuevo o reinicia la aplicación.
  4. Repite la misma solicitud corta.

De lo contrario, puedes estar viendo el archivo nuevo mientras sigues probando la Base URL antigua.

Cómo interpretar los errores habituales

SíntomaQué comprobar primeroSiguiente paso
404 Not Found/v1 duplicado, endpoint repetido o protocolo incorrectoCompara la URL real de los logs con la documentación
HTML o página de accesoRuta web en lugar de ruta de APIRevisa host, /v1 y endpoint
401API Key, variable de autenticación y configuración activaElimina espacios accidentales y reinicia el cliente
403Acceso de la clave al modelo o la rutaComprueba la disponibilidad en Setup o el panel
405 Method Not AllowedMétodo HTTP y endpointConfirma si la ruta requiere POST u otro método
model not foundBase URL y protocolo antes que Model IDNo ocultes un error de ruta cambiando primero de modelo
Timeout o stream interrumpidoSolicitud corta sin streamingSi funciona, revisa streaming y timeout por separado
No cambia tras editarRuta del archivo, variables que sobrescriben, procesosCierra todo y reinicia

Un 401 no demuestra que la URL sea correcta, y un 404 no demuestra que falte el modelo. El código solo describe cómo respondió el servidor a la solicitud recibida.

Comprobación rápida para Codex y Claude Code

Codex

La parte de la configuración de Codex relacionada con la dirección debe parecerse a esta:

model_provider = "bettertoken"
model = "gpt-6-astra"
cli_auth_credentials_store = "file"

[model_providers.bettertoken]
name = "BetterToken"
base_url = "https://www.bettertoken.ai/v1"
wire_api = "responses"
requires_openai_auth = true

La API Key se guarda en auth.json, dentro del mismo directorio de configuración. Consulta la guía completa de Codex para los demás campos. Codex añade /responses, así que no lo incluyas en base_url.

Claude Code

Las variables de dirección y autenticación son:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://bettertoken.ai",
    "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY"
  }
}

Este fragmento solo destaca la dirección y el token. Usa la configuración completa de la guía de Claude Code. No añadas /v1 ni /messages a ANTHROPIC_BASE_URL.

Cuatro fallos típicos al unir rutas

Incorrecto: https://www.bettertoken.ai/v1/v1/responses
Causa:      la Base URL y el cliente añadieron /v1

Incorrecto: https://www.bettertoken.ai/v1/responses/responses
Causa:      se introdujo un endpoint completo como Base URL

Incorrecto: Base URL de Claude Code = https://www.bettertoken.ai/v1/messages
Causa:      Claude Code volverá a añadir /v1/messages

Incorrecto: un cliente OpenAI-compatible usa https://bettertoken.ai
Causa:      falta la ruta /v1 exigida por esa entrada

Corrige primero estas uniones y después revisa la clave, el modelo o los parámetros avanzados.

Qué no debes hacer

  • No cambies a la vez Base URL, API Key y Model ID.
  • No copies la misma Base URL en todas las herramientas.
  • No deduzcas el protocolo por el nombre del modelo.
  • No reutilices una dirección de una captura o guía antigua sin comprobar la documentación actual.
  • No uses un proyecto real con permisos de escritura para la primera prueba.
  • No publiques la API Key completa en incidencias, chats o capturas.
  • No ajustes streaming, tools, MCP o timeouts antes de que funcione una solicitud básica.

Preguntas frecuentes

¿Qué es una Base URL?

Es la dirección raíz de un servidor o gateway de API. El cliente le añade un endpoint como /responses, /chat/completions o /v1/messages.

¿Qué diferencia hay entre Base URL y endpoint?

La Base URL es la raíz común de muchas solicitudes. El endpoint es la ruta de un recurso u operación concretos. Juntos forman la URL completa.

¿Por qué una Base URL incorrecta suele devolver 404?

Normalmente por un /v1 duplicado, un endpoint repetido, una ruta base ausente o una incompatibilidad entre un cliente OpenAI-compatible y una dirección Anthropic-compatible, o al revés.

¿Todas las Base URL de BetterToken necesitan /v1?

No. Codex, Cursor, Cline y otros clientes OpenAI-compatible suelen usar https://www.bettertoken.ai/v1. Claude Code usa https://bettertoken.ai y añade /v1/messages.

¿Por qué el cambio de Base URL no se aplicó?

El proceso puede seguir usando variables o configuración antiguas. Cierra por completo el cliente y sus procesos en segundo plano, abre un terminal nuevo o reinicia la aplicación.

¿Base URL y MCP son lo mismo?

No. Base URL y API Key configuran el enrutamiento y la autenticación de las solicitudes a modelos. MCP conecta herramientas externas, archivos, bases de datos y contexto. Consulta MCP frente a API Key y Base URL.

Siguiente paso

Abre la documentación de BetterToken, selecciona la herramienta que utilizas y copia únicamente la Base URL vigente que aparece en esa página. Envía una solicitud corta con tu API Key, sin streaming ni tools, y revisa en el Dashboard la hora, el estado, el modelo y el consumo de tokens.

Cuando funcione la solicitud básica, vuelve a activar el cambio de modelo, el contexto largo, tools, MCP y streaming de uno en uno. Así separarás “¿es correcta la dirección?” de “¿funciona la característica avanzada?” y localizarás el problema mucho más rápido.

¿Quieres optimizar tu flujo de trabajo con LLM?

Conecta modelos mediante una API, gestiona claves y controla el gasto en IA.

Empezar gratis