> ## Documentation Index
> Fetch the complete documentation index at: https://tournaments-partners.exuratech.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Preparar una competencia

> Configuración, credenciales y enlaces antes de recibir inscripciones.

## Requisitos

1. Exura Tech debe tener creada la compañía del broker y una conexión MT5 activa asociada.
2. Un administrador debe disponer de sesión para `/admin/competitions` o de autorización administrativa para la API.
3. La API y el frontend deben tener URL públicas configuradas. Las variables del servidor `COMPETITION_PUBLIC_API_URL` y `COMPETITION_PUBLIC_FRONTEND_URL` determinan los enlaces entregados al CRM. No uses `localhost` fuera de desarrollo.
4. El broker debe decidir la ventana, la lista de premios y, si quiere avisos de cierre, una URL HTTPS para webhook.

## Crear desde el panel

Abre `/admin/competitions`, selecciona **Crear competencia**, define compañía, conexión, nombre, slug, inicio y fin. El formulario permite premios por puesto o rango. Copia el UUID, la ruta de registro y el enlace público desde **Integración CRM**. Genera la clave y guárdala en el servidor del CRM; la respuesta en texto claro aparece una sola vez.

## Crear mediante la API administrativa

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /api/v1/competitions
Authorization: Bearer <admin-session>
Content-Type: application/json
```

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "company_id": 1,
  "connection_id": 2,
  "name": "Competencia de ejemplo",
  "slug": "competencia-ejemplo",
  "start_at": "2026-11-01T12:00:00Z",
  "end_at": "2026-11-03T12:00:00Z",
  "prizes": [{"rank_from": 1, "rank_to": 1, "prize_type": "CASH", "amount": "500.00", "currency": "USD"}]
}
```

El fin debe ser futuro y posterior al inicio. Se aceptan offsets como `-05:00`; el servidor los normaliza a UTC. La respuesta `201` contiene el UUID, `registration_endpoint` y `ranking_link`. También puedes recuperarlos con `GET /api/v1/competitions/{uuid}/integration` usando sesión administrativa.

Genera o rota la clave con `POST /api/v1/competitions/{uuid}/integration-key`. La respuesta devuelve `token` una sola vez. Rotarla invalida la anterior inmediatamente: cambia el secreto en el CRM antes de reanudar inscripciones.

> [!WARNING]
>
> La clave CRM no autoriza `POST /api/v1/competitions` ni `PUT /api/v1/competitions/{uuid}`. Para automatizar la creación, usa un backend con una sesión administrativa autorizada y controles de acceso propios.

> **[API administrativa](/broker/admin-api)**
>
> Consulta autenticación, compañías, conexiones y creación desde un panel propio.

> **[Qué token usar](/broker/credenciales)**
>
> El token de admin crea y configura; la integration key inscribe logins.


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