> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qrticket.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Eventos

> Listar y consultar los eventos de tu productora

# Eventos

Requiere el permiso `EVENTS_READ`.

## Listar eventos

```http theme={null}
GET /api/v1/events
```

```bash theme={null}
curl "https://qrticket.app/api/v1/events?status=public&limit=50" \
  -H "Authorization: Bearer qrt_live_..."
```

### Parámetros

| Parámetro | Tipo | Descripción |
| - | - | - |
| `limit` | número | 1 a 200. Default 50. |
| `cursor` | texto | Cursor de la página anterior. |
| `status` | texto | Filtra por estado. Repetible o separado por comas: `?status=public,featured`. |
| `starts_after` | fecha | Eventos que arrancan a partir de esta fecha (ISO-8601). |
| `starts_before` | fecha | Eventos que arrancan hasta esta fecha. |
| `updated_after` | fecha | Eventos modificados después de esta fecha. |

Los eventos eliminados no aparecen nunca.

## Consultar un evento

```http theme={null}
GET /api/v1/events/{event_id}
```

## El objeto Evento

```json theme={null}
{
  "id": "m94K1zLU8S",
  "slug": "euforia",
  "name": "EUFORIA",
  "description": "La fiesta más grande del año",
  "starts_at": "2026-08-15T12:00:00.000Z",
  "ends_at": null,
  "start_time": "23:30",
  "end_time": "06:00",
  "status": "public",
  "is_published": true,
  "url": "https://qrticket.app/e/euforia",
  "image_url": "https://cdn.qrticket.app/...jpg",
  "media": [],
  "transferable": true,
  "venue": {
    "name": "Club Paraíso",
    "address": "Av. Siempre Viva 742",
    "city": "Rosario",
    "province": "Santa Fe",
    "country": "Argentina",
    "latitude": -32.94,
    "longitude": -60.65
  },
  "sales_channels": {
    "mercadopago": true,
    "stripe": false,
    "recurrente": false,
    "automatic_transfer": false,
    "bank_transfer": true,
    "whatsapp": false
  },
  "currency": "ARS",
  "created_at": "2026-06-01T14:22:10.000Z",
  "updated_at": "2026-08-01T09:14:55.000Z"
}
```

### Campos

<ResponseField name="id" type="string">
  Identificador del evento. Es el que usás en `event_id` en el resto de los endpoints.
</ResponseField>

<ResponseField name="starts_at" type="string">
  El **día** del evento (ISO-8601). Es una fecha de calendario: la hora que trae (siempre las 12:00 UTC) no significa nada; usá `date` de ese valor en UTC, sin pasarlo a tu zona horaria. `ends_at` es igual, y solo viene en eventos de varios días.
</ResponseField>

<ResponseField name="start_time" type="string | null">
  Hora de inicio, `"HH:mm"` en 24 horas, en la hora local del lugar del evento, tal como la cargó el organizador. Sin zona horaria a propósito: mostrala tal cual. Opcional: `null` si el evento no tiene hora o dura varios días.
</ResponseField>

<ResponseField name="end_time" type="string | null">
  Hora de fin, mismo formato. Opcional, y puede venir sin `start_time` (el organizador cargó solo a qué hora termina). Si es menor que `start_time`, termina al día siguiente (`"23:30"` a `"06:00"`).
</ResponseField>

<ResponseField name="status" type="string">
  Uno de `public`, `featured`, `pending_approval`, `rejected`, `private`.

  * `public` — publicado y a la venta.
  * `featured` — publicado y además destacado por nosotros en la home de qrTicket. A los fines de tu integración es equivalente a `public`.
  * `pending_approval` — esperando que lo revisemos.
  * `rejected` — lo rechazamos; el organizador tiene el motivo en el dashboard.
  * `private` — no está listado; se vende solo por link directo.
</ResponseField>

<ResponseField name="is_published" type="boolean">
  Atajo: `true` cuando el estado es `public` o `featured`. Si solo te importa "¿está a la venta?", usá esto y olvidate de la diferencia entre los dos.
</ResponseField>

<ResponseField name="url" type="string">
  Link público del evento. Si la productora tiene [dominio propio](/organizations/white-label) verificado, la URL sale con **ese** dominio, no con qrticket.app.
</ResponseField>

<ResponseField name="sales_channels" type="object">
  Qué medios de pago están habilitados **en este evento**. Las entradas gratis no son un canal: son un precio de `0` en un tipo de entrada, y las ves en [tipos de entrada](/api/ticket-types).

  `automatic_transfer` es la transferencia automática (Argentina): cada compra recibe su propio alias y se aprueba sola cuando la plata se acredita. `bank_transfer` es la transferencia con comprobante, que aprueba el organizador.
</ResponseField>

<ResponseField name="currency" type="string">
  Moneda de la productora (`ARS`, `USD`, `GTQ`, `MXN`…). Los precios en `ticket_types` son números pelados, así que esta es la moneda en la que hay que leerlos.
</ResponseField>

<ResponseField name="updated_at" type="string">
  Se mueve con cualquier edición del evento. Es el campo para `updated_after`.
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.