API de CBA HOY
API pública de solo lectura con los eventos, los lugares y la cartelera de cine de Córdoba, Argentina.
CBA HOY (cbahoy.com) es la agenda cultural de Córdoba: recitales, teatro, fiestas, stand up, danza, ferias, planes para chicos y cine, agregados automáticamente desde las plataformas donde se venden las entradas y actualizados cada 2 horas. La misma API que usa el sitio está abierta para que la consumas.
- Base URL:
https://cbahoy.com/api/v1 - Autenticación: ninguna. No hace falta API key.
- Métodos: sólo
GETyHEAD. Cualquier escritura devuelve405. - Formato: JSON (
application/json), UTF-8. - CORS: habilitado para todos los orígenes.
-
OpenAPI:
https://cbahoy.com/openapi.json(3.1, sirve para generar un cliente automáticamente)
Empezar
curl "https://cbahoy.com/api/v1/events?date_from=2026-08-23&date_to=2026-08-23&group=show"
Devuelve una página de eventos con items, total, page,
per_page y has_more.
Endpoints
Eventos
| Endpoint | Qué devuelve |
|---|---|
GET /events | Listado paginado de eventos, con filtros |
GET /events/count | Cantidad de eventos para un filtro, con facetas opcionales |
GET /events/{event_id} | Detalle de un evento por UUID |
Parámetros de GET /events
| Parámetro | Tipo | Descripción |
|---|---|---|
date_from | date | Desde esta fecha, YYYY-MM-DD (hora de Córdoba) |
date_to | date | Hasta esta fecha, inclusive |
category | string | Uno o varios slugs separados por coma (concierto,fiesta); se toman como OR |
venue_id | int | Filtra por identidad del lugar, incluidas sus salas |
venue | string | Búsqueda parcial por nombre del lugar |
search | string | Texto libre sobre título, artista y lugar |
free_only | bool | Sólo eventos gratis |
in_capital | bool | Sólo dentro de la ciudad de Córdoba |
hide_sold_out | bool | Esconde los agotados |
group | string | show agrupa las funciones de un mismo show en una fila con occurrence_count |
sort_by / sort_order | string | Campo de orden y asc / desc |
page / per_page | int | Paginado |
Lugares
| Endpoint | Qué devuelve |
|---|---|
GET /venues | Lugares; con ?with_upcoming=true agrega el conteo de eventos próximos |
GET /venues/{key} | Un lugar por slug, con dirección, coordenadas y sus próximos eventos |
Cine
| Endpoint | Qué devuelve |
|---|---|
GET /movies | Cartelera; ?group=movie&date=YYYY-MM-DD agrupa por película |
GET /movies/dates | Días con funciones cargadas y cuántas hay |
GET /movies/{movie_id} | Detalle de una película |
GET /cinemas | Cines de Córdoba |
Metadatos y búsqueda
| Endpoint | Qué devuelve |
|---|---|
GET /meta/categories | Tipos de plan disponibles, con su conteo de eventos próximos |
GET /meta/sources | Plataformas de las que se agregan los datos |
GET /search/suggest | Sugerencias para autocompletado (eventos, lugares y tipos) |
GET /health | Estado del servicio |
Contenido en Markdown
Las páginas de contenido del sitio implementan
acceptmarkdown.com: pedidas con
Accept: text/markdown devuelven la misma información en Markdown en vez de HTML, con
Vary: Accept. Sirve para leer el sitio desde un agente sin tener que parsear HTML ni ejecutar
JavaScript.
curl -H "Accept: text/markdown" https://cbahoy.com/
curl -H "Accept: text/markdown" https://cbahoy.com/cine
curl -H "Accept: text/markdown" https://cbahoy.com/lugar/quality
Un Accept que no incluya text/markdown, text/html ni el comodín total
devuelve 406 Not Acceptable.
Caché y límites
- Las respuestas
200se cachean 60 segundos en el edge (s-maxage=60) constale-while-revalidatede 5 minutos. - Las búsquedas (
?search=) no se cachean. - No hay rate limit publicado. Si vas a hacer un volumen alto de pedidos, cacheá del lado tuyo y respetá los
Cache-Control. - Los datos se refrescan cada 2 horas: pedir más seguido que eso no trae nada nuevo.
Errores
| Código | Cuándo |
|---|---|
404 | El recurso no existe, o el path no está en la allowlist pública |
405 | Se usó un método distinto de GET, HEAD u OPTIONS |
406 | El Accept no incluye ningún tipo que se pueda servir |
502 | El backend no respondió a tiempo |
Versionado y deprecación
La API está versionada en la URL: todo cuelga de /api/v1. Mientras el prefijo sea
v1, valen estas reglas:
- Cambios compatibles, sin aviso. Se pueden agregar endpoints, campos nuevos en una respuesta y parámetros opcionales en cualquier momento. Escribí clientes tolerantes: ignorá los campos que no conozcas en vez de fallar.
-
Cambios incompatibles, versión nueva. Sacar un campo, renombrarlo, cambiarle el tipo o el
significado, o volver obligatorio un parámetro que no lo era, implica
/api/v2./api/v1no rompe. -
Deprecación anunciada por header. Cuando un endpoint queda marcado para retirarse, sus
respuestas empiezan a incluir
Deprecation(RFC 9745) ySunset(RFC 8594) con la fecha a partir de la cual deja de responder, más unLinkconrel="deprecation"apuntando a esta página. -
Al menos 6 meses. Entre el primer
Sunsety el apagado real pasan como mínimo 6 meses. Un endpoint ya retirado devuelve410 Gone, no un404, para que se distinga de una URL mal escrita.
Deprecation: @1780272000
Sunset: Sat, 28 Feb 2027 00:00:00 GMT
Link: <https://cbahoy.com/docs/api>; rel="deprecation"
Hoy no hay ningún endpoint deprecado: ninguna respuesta incluye esos headers. Si integrás
contra la API, chequear Sunset en tus respuestas es la forma de enterarte sin depender de que te
avisemos.
Uso de los datos
CBA HOY agrega información publicada por terceros (las plataformas de venta de entradas, los cines y los lugares). Los datos se ofrecen tal como se obtuvieron, sin garantía de exactitud: confirmá siempre fecha, hora y precio en el link de compra oficial antes de decidir. Si publicás algo derivado de esta API, citá cbahoy.com como fuente.
Más recursos
- Especificación OpenAPI 3.1 —
/openapi.json - llms.txt — índice del sitio pensado para modelos de lenguaje
- Sitemap — todas las URLs indexables
- Volver a CBA HOY