Cómo desplegar tu API de Claude en Railway

Resumen

Desplegar una API REST con FastAPI en Railway es el paso que convierte tu código local en una URL pública que cualquiera puede usar desde Internet. Si vienes trabajando proyectos con la Claude API y quieres unificarlos y ponerlos en producción, aquí verás cómo hacerlo de principio a fin.

El objetivo es tomar las herramientas construidas a lo largo del curso (un chatbot, un extractor de JSON y un agente con tools) y transformarlas en una sola aplicación desplegada con variables de entorno seguras.

Qué se necesita para transformar los proyectos en una API REST

La base es FastAPI, un framework de Python para construir APIs. Desde ahí importamos varias piezas clave que hacen posible el proyecto.

  • La librería Anthropic, que sigue siendo el puente hacia el modelo.
  • FastAPI junto a HTTPException, que sirve para el manejo de errores directamente desde el framework.
  • HTMLResponse, que permite renderizar HTML directamente desde la API.
  • Pydantic, que aporta el tipado dentro de Python.

El modelo usado es Claude Sonnet 4.6 y el agente tiene un máximo de cuatro pasos [00:52]. La aplicación se llama Claude API Hub, con su versión, sus tipados y el formato de dato que recibe cada entrada.

¿Para qué sirve HTMLResponse en FastAPI? Permite que tu API devuelva y renderice HTML directamente en el navegador, en lugar de solo datos JSON. Así puedes mostrar un front-end completo desde el mismo servidor de la API.

Cómo funcionan los endpoints y el index HTML

El archivo incluye un index HTML con estilos CSS y un body que contiene los tres proyectos: el chatbot, el extractor JSON y el agente con tools. Se agrega algo de JavaScript solo para la funcionalidad de hacer los llamados.

Lo importante vive en los endpoints. Por ejemplo, el de /api/chat agrupa la llamada que ya construimos en clases anteriores hacia messages.create, usando el modelo definido arriba, la cantidad máxima de tokens y los mensajes enviados por el payload [02:00].

Las demás rutas son muy parecidas: solo cambian las funciones que ejecutan según cada proyecto. Ese archivo compilado es la aplicación que le indicaremos a Railway que despliegue.

Cómo crear una cuenta y un proyecto en Railway

Railway es la plataforma donde vive el despliegue. Puedes entrar a railway.com y crear una cuenta gratuita.

  1. Haz clic en sign in y regístrate con GitHub, para dar acceso directo a tus repositorios.
  2. Ve a la sección de proyectos y selecciona proyecto nuevo, luego GitHub Repository.
  3. Busca y elige el repositorio del curso, en este caso el de Claude API.

Al seleccionarlo, Railway empieza a desplegarlo. Y aquí viene el primer detalle: el build inicial va a fallar [03:40].

¿Por qué falla el primer build en Railway? Porque el repositorio tiene una estructura por clases y carpetas, y Railway no sabe cuál desplegar como principal. Debes indicarle la ruta correcta en settings para que apunte a la carpeta del proyecto final.

Cómo configurar la ruta y el comando de inicio

En el panel de settings buscas la opción del repositorio y agregas una ruta principal. En este caso apunta a la carpeta de Python clase 16 final [04:04].

Cada cambio que hagas genera un nuevo deploy al aplicarlo. Aun así, faltan dos cosas para que funcione:

  • Las variables de entorno que conectan con Anthropic, para mantener seguras tus credenciales.
  • El comando de inicialización del proyecto, muy parecido al que ejecutabas localmente.

Ese comando queda disponible en la sección de recursos de la clase y en el archivo README del proyecto, listo para copiar y pegar en el apartado de deploy.

Cómo generar la URL pública y probar la aplicación

Una vez que el despliegue termina correctamente, todavía falta lo esencial: una URL para conectarte desde Internet.

En el apartado de networking le dices generar dominio. Colocas el número de puerto que recomienda, el 8080, y confirmas [05:52]. Con eso ya tienes el dominio para acceder a tu aplicación.

En la pestaña de deployments puedes seguir el progreso. El primer despliegue tarda más porque construye la imagen desde cero; los siguientes agrupan y suben menos archivos, así que son más rápidos.

Qué se ve al abrir el proyecto en el navegador

Al abrir la URL aparece el front-end con los tres proyectos funcionando bajo el mismo enlace. Por ejemplo, en el chatbot puedes enviar el prompt "Dame tres ideas para practicar con la Claude API".

El placeholder cambia a cargando mientras hace la petición a la API de Claude, y luego devuelve una respuesta estructurada [06:40]:

  • Un chatbot con memoria conversacional, con su base de código.
  • Un analizador de documentos, para subir texto largo y hacer preguntas específicas.
  • Un generador de código con evaluación, que ejecuta código y devuelve errores a Claude para corregirlos automáticamente.

Cada idea llega con una descripción del proyecto, lo que aprenderás y un snippet de código para ejecutarlo. Y aquí está lo interesante: las otras herramientas del mismo proyecto se prueban igual, todas desde el mismo dominio.

Con esto cierras el recorrido que empezó en la primera llamada a la API y termina con un chatbot desplegado, pasando por memoria, documentos, JSON, tool use, agentes, caching, batch processing y producción. Ahora tienes las bases para integrar la Claude API en productos reales. ¿Qué proyecto vas a desplegar primero? Cuéntamelo en los comentarios.