Gana dinero creando tus propias APIs REST
A todo el mundo le gusta el dinero, pero sobre todo lo que gusta es poder ganar dinero para tener más libertad y dedicar tu tiempo a lo que realmente quieres hacer, no a lo que estás obligado a hacer.
A veces me como la cabeza pensando en formas diferentes de conseguir algo de dinero extra para no tener que depender exclusivamente de un trabajo convencional de 8 a 5. Y siempre que me hago esas preguntas, me doy cuenta de que soy programador y que por lo tanto lo tengo mucho más fácil que otras personas.
Afortunadamente los programadores cobramos bastante bien a diferencia de otros oficios que hay ahora mismo en el mercado. Pero por muy bien que cobremos, no siempre es suficiente para vivir la vida que realmente queremos vivir. Aunque tengamos un buen salario, estamos ligados a un trabajo convencional que te obliga a madrugar, entrar por la mañana y salir por la tarde. Es decir, estamos cambiando nuestro tiempo por dinero. Y el tiempo, amigos, es muy importante.
Como programadores, tenemos una ventaja enorme: podemos escribir código una sola vez y que lo use gente del mundo entero. Y eso nos puede dar un beneficio económico sin tener que estar presentes constantemente.
Una de estas formas de conseguir dinero aprovechando que somos programadores es creando una API y haciendo que la gente que quiera utilizarla tenga que pagar por su uso. Pero ¿cómo se hace exactamente?
En este artículo vamos a ver qué es una API, qué tipos de APIs puedes crear, cómo crear una API, cómo subirla a la nube, cómo monetizarla con RapidAPI y varias maneras de promocionarla.
Así es, estoy obsesionado con desacoplar mis ingresos de mi tiempo. Y estoy bastante seguro de que haciendo cosas como estas terminaré consiguiéndolo. Ojo, nadie dice que sea sencillo. No os voy a vender humo: no os puedo prometer que vais a ganar un trillón de dólares, estaría mintiendo. Pero sí os aseguro que este es uno de los métodos que podéis aprovechar siendo programadores, y dependiendo de lo que queráis hacer con vuestra API, no tendréis que dedicar demasiado tiempo.
¿Qué es una API?
Primero de todo, por si has entrado y no lo sabes, te voy a explicar rápidamente qué es una API. Aunque si eres programador y no lo sabes, tienes un serio problema.
Una API básicamente es una forma estructurada de comunicarse con algún servicio sin necesidad de acceder directamente a su código. Básicamente son un conjunto de endpoints que te permiten pedir datos o enviar datos.
Hay muchísimos ejemplos de APIs. Todo ahora mismo va con APIs. Para que os hagáis una idea, si yo quiero, por ejemplo, hacer una aplicación que extraiga estadísticas de Twitter, necesitaré conectarme a la API de Twitter para recibir esos datos. O si quiero hacer un bot de Twitter, para que hable solo y mande mensajes automáticamente por Twitter, necesitaré una API para que haga de pasarela y me permita mandar esos mensajes.
Las APIs sirven para todo, incluso si quieres implementar Google Maps en tu aplicación, necesitas acceso a la API de Google Maps. Entonces, todo va por APIs. Y ahí, señores, entramos nosotros.
¿Qué API puedo hacer yo que me dé dinero?
Llegados a este punto, te preguntarás: ¿y qué API puedo hacer yo que me dé dinero? Pues solo hay que darle un poquito al coco y te aseguro que no es tan complicado.
No hace falta hacer una API de Twitter, no hace falta hacer una cosa colosal y súper complicada, a no ser que queráis hacerla. Te voy a dar algunos tips de lo que yo creo que podrían ser buenas utilidades que podrías hacer tú mismo.
Ahora está muy de moda scrapear datos de páginas web, y esto es súper útil. Mucha gente busca este tipo de servicios porque les da pereza hacerse sus propias APIs para extraer datos de otras webs. Y ahí es donde tú puedes entrar.
Sin ir más lejos puedes hacer una API que scrapee datos del Mercadona, del Carrefour, de varios supermercados o incluso de todos. Esa información es súper útil para alguien que quiera hacer una aplicación de comparador de precios o trackear precios, cosas así. Y si no quiere montarse esa API va a necesitar de tus servicios.
No sé si existe una API del Mercadona, lo he dicho como ejemplo. Pero da igual que ya exista, y ese es precisamente el punto importante.
Os recomiendo visitar rapidapi.com, que es la plataforma que utilizaremos para monetizar nuestra API. Allí podréis ver ejemplos de APIs existentes para sacar inspiración.
Y no solo para inspiraros, sino que también podéis hacer vuestro propio modelo. Si ya existe una API similar, no pasa nada. Podéis hacerla también, pero mejor, diferente, más rápida o a menor precio.
No os desmotivéis si vuestra idea ya existe porque no pasa nada. Podéis hacer competencia al mercado. Esto no es como hacerle competencia a grandes marcas. Esto mayormente son particulares y seguro que si existe algo, quizá podéis mejorarlo o adaptarlo a una utilidad diferente. No tiene por qué tener los mismos endpoints y vosotros podéis hacer un producto no mejor, sino diferente.
Lo importante es hacerlo bien y así de verdad haréis competencia.
¿Cómo creo una API?
Pues mira, hay muchas formas de crear una API, no tienes por qué hacerlo con un lenguaje específico o una tecnología, puedes hacerlo con muchísimas, de verdad, hay un gran abanico.
Yo, personalmente, he elegido Python con FastAPI, pero en serio, hacer la API con el lenguaje que más cómodos os sintáis, porque va a ser importante que vosotros mismos la podáis mantener y es vuestra herramienta con lo que vais a hacer dinero.
Así que no lo hagáis con Python porque es la moda o con Java porque os han dicho que es más robusto, no, hacerlo con lo que queráis.
¿Es mejor hacerlo con Python? Pues depende. Para este ejemplo uso Python porque es sencillo de explicar y entender, pero como ya he dicho, cada uno la va a hacer con el lenguaje que quiera y hay un montón de tutoriales por internet de cómo hacerlas.
Para explicarlo de forma sencilla, voy a usar Python con FastAPI como ejemplo. La estructura básica de una API es bastante simple: necesitas crear endpoints que respondan a peticiones HTTP.
En un ejemplo básico, podrías tener un archivo main.py donde defines tus modelos de datos (por ejemplo, un tipo Item con nombre, descripción, precio, etc.) y luego creas endpoints que devuelven esos datos. En un caso real, estos datos vendrían de scraping, de una base de datos, o de cualquier otra fuente que necesites.
La estructura típica incluye endpoints como:
GET /itemspara obtener todos los itemsGET /items/{id}para obtener un item específico por su ID
Dentro de cada endpoint defines la lógica que necesites: búsquedas, filtros, transformaciones de datos, conexiones con otras APIs, etc. La clave está en que cada endpoint hace una cosa específica y la hace bien.
He subido un ejemplo básico a GitHub para que tengáis una referencia de cómo empezar. Podéis usarlo como base y adaptarlo a vuestras necesidades.
La seguridad: una capa esencial
Uno de los aspectos más importantes al crear una API que vas a monetizar es la seguridad. Si no proteges tu API, cualquiera puede acceder directamente a la URL de tu servidor y usarla sin pasar por RapidAPI, es decir, sin pagar. Y eso, obviamente, no queremos que pase.
RapidAPI facilita mucho esto proporcionándote un secret único para tu aplicación. Este secret actúa como una clave de autenticación que debes validar en cada petición.
La implementación básica consiste en:
-
Guardar el secret como variable de entorno: RapidAPI te dará este secret cuando configures tu API en su plataforma. Lo guardas como variable de entorno para no exponerlo en el código.
-
Validar el header en cada endpoint: En cada endpoint, verificas que la petición incluya el header correcto con el secret. Si no coincide, devuelves un error 403 (Forbidden).
-
Usar decoradores o middleware: Dependiendo del framework que uses, puedes crear un decorador o middleware que valide automáticamente todas las peticiones antes de que lleguen a tus endpoints.
Esta es la capa básica de seguridad. Si quieres ir más allá, puedes configurar tu servidor para que solo acepte peticiones desde las IPs de RapidAPI (ellos proporcionan el listado de IPs permitidas). También puedes usar herramientas como Cloudflare para añadir capas adicionales de protección.
Es absolutamente crítico que implementes algún tipo de autenticación. Si no lo haces, tu API será atacada constantemente. En mi experiencia con mi API de descargas de TikTok, incluso con Cloudflare delante, recibo intentos de ataque constantes buscando vulnerabilidades. Sin autenticación, tu API será abusada sin piedad.
Sobre la implementación técnica específica, hay muchísimos tutoriales en internet y también puedes usar LLMs para que te ayuden con el código. Lo importante es que entiendas el concepto: necesitas validar que quien llama a tu API tiene permiso para hacerlo.
Desplegando tu API en la nube
Desplegar tu API se puede hacer de diferentes formas, sobre todo si es de Python, porque es bastante versátil.
Tienes herramientas como Render o Railway que tienen una interfaz muy amigable y te ayudan a desplegar estas APIs. Tienen documentación oficial sobre cómo desplegar una API de FastAPI en sus plataformas.
El problema es que son de pago. Tienen versión gratuita pero es limitada. Y si tu API va a tener mucho tráfico, esas limitaciones pueden ser un problema. Por eso prefiero usar mi propio servidor.
Tener un servidor puede costar desde 5 euros al mes, que es bastante razonable para soportar una API. Pero en mi caso, uso un servidor gratuito de Oracle Cloud que tiene 24 GB de RAM y 4 núcleos. No es una tontería, es un servidor bastante bueno y totalmente gratis.
Si te interesa conseguir este servidor, tengo un tutorial en el canal donde explico cómo hacerlo paso a paso. No es necesario que lo hagas ahí, pero es una opción muy válida si quieres empezar sin invertir dinero.
Para desplegar la API utilizo Coolify, que es un gestor visual para servidores que facilita mucho el proceso. Si no tienes Coolify instalado, también tengo un tutorial completo sobre cómo instalarlo y usarlo. Se puede hacer sin Coolify, claro, pero son varios comandos y prefiero usar herramientas que me faciliten la vida.
Configurando Docker para el despliegue
Para desplegar la API necesitamos dockerizarla. Esto requiere dos archivos importantes: un Dockerfile y un docker-compose.yml.
El Dockerfile contiene los comandos para construir la imagen de Docker con tu API. El docker-compose.yml define la configuración del contenedor, incluyendo las variables de entorno como el secret de RapidAPI.
Es buena práctica tener todo el código en GitHub, así tienes mejor control de versiones y puedes importarlo fácilmente en Coolify.
El Dockerfile es bastante estándar: usas una imagen base de Python, actualizas las dependencias del sistema, copias el archivo requirements.txt con las dependencias de tu API, las instalas, expones el puerto que necesites (por ejemplo, 8000 o 8080) y defines el comando para iniciar la API con uvicorn.
El docker-compose.yml te permite definir la configuración del contenedor: la carpeta del proyecto, los puertos y las variables de entorno (como el secret de RapidAPI). Las variables de entorno se pasan fácilmente desde Coolify cuando configures el despliegue.
Con estos dos archivos ya tienes todo lo necesario para dockerizar tu API. Es una configuración sencilla pero suficiente para empezar.
Desplegando con Coolify
Una vez que tienes tu código en GitHub y los archivos Docker configurados, el despliegue con Coolify es bastante directo.
En Coolify creas un nuevo proyecto, seleccionas la opción de importar desde GitHub y eliges tu repositorio. Necesitarás configurar:
-
El dominio o subdominio: Necesitas un dominio para que tu API sea accesible. Si tienes tu DNS en Cloudflare (o cualquier otro proveedor), simplemente creas un registro A que apunte a la IP de tu servidor. Por ejemplo,
api.tudominio.com. -
Las variables de entorno: Es donde pasas el secret de RapidAPI que mencionamos antes.
-
La configuración de Docker: Coolify detectará automáticamente tu
docker-compose.ymly usará esa configuración.
Una vez desplegado, puedes verificar que todo funciona accediendo a https://tu-dominio.com/docs (si usas FastAPI, tendrás la documentación interactiva de Swagger disponible automáticamente).
Con la API funcionando y accesible, ya puedes conectarla con RapidAPI para empezar a monetizarla.
Monetizando tu API con RapidAPI
Antes de seguir quiero aclarar que hay muchas formas de ganar dinero con tu API y no necesariamente debes hacerlo por RapidAPI, simplemente esta plataforma nos ayuda a hacerlo y nos ofrece su propio portal, pero podrías montarlo tú mismo con tu sistema de pagos, solo que es más costoso. Aunque también debes tener en cuenta que RapidAPI se va a quedar una comisión, yo os aviso para que tengáis todo en cuenta.
En RapidAPI, dentro de Studio, creas un nuevo proyecto de API. Necesitarás proporcionar:
- Nombre y descripción: Que sean claros y expliquen qué hace tu API
- URL base: La URL donde está desplegada tu API
- Endpoint de health: Un endpoint que RapidAPI puede usar para verificar que tu API está funcionando
- Security token: El secret que mencionamos antes, que RapidAPI te proporcionará y que usarás para validar las peticiones
- Endpoints: Define los endpoints que quieres exponer
- Precios: Configura tus planes de precios
La configuración de precios es crucial, ya que lo que pongáis marcará la diferencia entre una API utilizada o una API que apenas se usa.
Yo os recomiendo que os fijéis en que volúmenes maneja la competencia, fijaos que mucha gente pone un tier gratuito con pocas peticiones para que la gente pruebe su producto, y si realmente les gusta y les resulta útil paguen por un tier más alto.
Estudiad bien el mercado y poner precios competitivos, creedme que os ayudará a captar nueva gente.
Importante que activéis los pagos desde la sección del perfil llamada “Payouts account”, ahí lo podéis vincular con vuestro PayPal y recibir directamente los pagos ahí.
Con todo esto que os he explicado ya tenéis la base para monetizar vuestras APIs. Pero hay un paso más que es igual de importante: promocionarla.
Cómo promocionar tu API
No os quiero vender humo: si publicáis vuestra API y no hacéis publicidad en ningún sitio, difícilmente cogerá usuarios. Lo importante es saber moverse y publicitar vuestra API. Yo mismo tengo una API de descargas de TikTok que no le he dado ninguna publicidad, así que sé de lo que hablo.
Se me ocurren varios ejemplos de cómo publicitar vuestra API:
Por Reddit, creando un post nuevo o respondiendo al post de alguien que haya preguntado por una funcionalidad parecida a la que vosotros hayáis desarrollado.
Creando un producto propio. Por ejemplo he visto mucha gente que crea flujos de N8N bastante útiles que utilizan sus APIs expuesta en RapidAPI, entonces si quieres usar ese mismo flujo es gratis pero utilizan tu API. Ideas de ese estilo creo que ayudarían mucho a impulsar vuestro producto.
También he visto gente que hace scripts de N8N donde tiene una funcionalidad que llama a su API, entonces el script lo cuelga gratis, dice oye chicos he colgado este script, lo puedes publicar en LinkedIn, en Reddit donde quieras, pero ese script necesita el uso de tu API y para pasar por tu API tienen que pagar y ya está, así de simple.
Hay un montón de maneras súper ingeniosas, estoy seguro de que a vosotros se os ocurrirá alguna.
Conclusión
Con todo esto que os he explicado ya podéis empezar a monetizar vuestras APIs. Es un proceso que requiere trabajo, pero es totalmente factible y puede convertirse en una fuente de ingresos pasivos interesante.
Lo más importante es empezar con algo sencillo, asegurarse de que funciona bien, y luego ir mejorándolo y promocionándolo. No esperéis ganar millones desde el primer día, pero si hacéis las cosas bien y os movéis con inteligencia, podéis conseguir unos ingresos extra que os ayuden a tener más libertad financiera.
Si tenéis dudas sobre algún paso o queréis compartir vuestras experiencias creando APIs, dejadme un comentario. También me encantaría saber qué tipo de API estáis pensando crear o si ya tenéis alguna funcionando.
¡Nos vemos en el próximo artículo!