> ## 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.

# Referencia de endpoints

> Rutas, permisos y contratos de competencias.

La base es el origen de la API, por ejemplo `https://api.example.com`; **no** añadas la ruta de inscripción a la variable base. Los nombres de rutas y campos son en inglés. La especificación interactiva de la instancia está en `/docs` y `/openapi.json`.

| Método | Ruta | Acceso | Resultado |
| - | - | - | - |
| `POST` | `/api/v1/competitions` | Admin | Crea competencia; `201` |
| `GET` | `/api/v1/competitions` | Admin | Lista competencias autorizadas |
| `GET` | `/api/v1/competitions/{uuid}/admin` | Admin | Configuración |
| `PUT` | `/api/v1/competitions/{uuid}` | Admin | Edita si no terminó |
| `GET` | `/api/v1/competitions/{uuid}/integration` | Admin | Enlaces y estado de clave; nunca muestra el secreto existente |
| `POST` | `/api/v1/competitions/{uuid}/integration-key` | Admin | Genera o rota clave; devuelve `token` una vez |
| `GET` | `/api/v1/competitions/{uuid}/participants` | Admin | Inscritos, filtro `login`, `limit`, `offset` |
| `GET` | `/api/v1/competitions/{uuid}/incidents` | Admin | Fallos de sincronización y archivo |
| `POST` | `/api/v1/competitions/{uuid}/participants/{participant_uuid}/adjustment` | Admin | Corrección final auditada |
| `GET` | `/api/v1/competitions/{uuid}/adjustments` | Admin | Auditoría de correcciones |
| `POST` | `/api/v1/integrations/competitions/{uuid}/participants` | Clave CRM | Inscribe login existente |
| `GET` | `/api/v1/competitions/{uuid}` | Público | Metadatos y premios |
| `GET` | `/api/v1/competitions/{uuid}/leaderboard` | Público | Ranking paginado |
| `GET` | `/api/v1/competitions/{uuid}/participants/{participant_uuid}/history` | Público | Curva y cierres recientes |

`POST` de creación exige `company_id`, `connection_id`, `name`, `slug`, `start_at`, `end_at`; admite `description`, `webhook_url` HTTPS y `prizes`. Cada premio usa `rank_from`, `rank_to`, `prize_type`, `amount` opcional, `currency` de tres letras y `description` opcional. No se permiten rangos superpuestos. `PUT` reemplaza toda la lista cuando recibe `prizes`; omitirla conserva la actual y `[]` la borra. Una competencia terminada no se edita; el inicio en vivo no puede cambiar.

`GET /leaderboard` acepta `limit` de 1 a 500 (predeterminado 100) y `offset` desde cero. `GET /participants` administrativo acepta `limit` de 1 a 200 (predeterminado 50), `offset` y `login` positivo.

La API administrativa usa el bearer de sesión de administrador. El token CRM no concede esos permisos. Revisa también los [errores y reintentos](/broker/errores).

El bearer de admin tampoco funciona en la inscripción CRM: consulta la [matriz de credenciales](/broker/credenciales) para ver qué token exige cada ruta.

Para implementar tu propio panel de gestión, consulta la [API administrativa y el aprovisionamiento](/broker/admin-api).

## Respuestas de ejemplo

Una inscripción devuelve el participante y su UUID (los valores financieros iniciales pueden estar en cero o `null` hasta el primer sync):

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{"uuid":"<participant-uuid>","competition_id":1,"login":12345678,"profit_net":"0.00","balance":null,"equity":null,"closed_deals":0,"last_sync_at":null}
```

El ranking público tiene esta forma general:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "competition": {"uuid":"<competition-uuid>","name":"Competencia de ejemplo","status":"LIVE","start_at":"2026-11-01T12:00:00","end_at":"2026-11-03T12:00:00","prizes":[]},
  "generated_at":"2026-11-01T12:15:00Z",
  "total":1,
  "items":[{"rank":1,"participant_uuid":"<participant-uuid>","login":12345678,"profit_net":"25.50","balance":"500.00","equity":"525.50","closed_deals":2,"last_sync_at":"2026-11-01T12:14:00","prize":null}]
}
```

Este fragmento ilustra campos, no es una respuesta contractual completa. Usa `/docs` del entorno para el esquema exacto de cada versión desplegada. En particular, no supongas un sufijo `Z` si el serializador entrega un valor UTC sin sufijo: la base y la lógica del servidor almacenan UTC.


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