Skip to main content
POST
/
events
/
{event}
/
races
Criar prova
curl --request POST \
  --url http://localhost/api/v1/events/{event}/races \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "code": "<string>",
  "default_modality_id": 123,
  "distance": 1,
  "distance_label": "<string>",
  "sort_order": 123,
  "starts_at": "2023-11-07T05:31:56Z",
  "type": "<string>",
  "scoring_type": "<string>",
  "duration_minutes": 123,
  "lap_count": 123,
  "lap_distance": 1,
  "registration_limit": 123,
  "sem_classificacao": true,
  "modality_ids": [
    123
  ]
}
'
{
  "data": {
    "id": 123,
    "event_id": 123,
    "code": "<string>",
    "name": "<string>",
    "distance": 123,
    "distance_label": "<string>",
    "sort_order": 123,
    "starts_at": "<string>",
    "type": "<string>",
    "scoring_type": "<string>",
    "duration_minutes": 123,
    "lap_count": 123,
    "lap_distance": 123,
    "registration_limit": 123,
    "sem_classificacao": true,
    "status": "<string>",
    "results_status": "<string>",
    "created_at": "<string>",
    "updated_at": "<string>",
    "modalities": [
      {
        "id": 123,
        "name": "<string>",
        "is_default": true
      }
    ],
    "categories": [
      {
        "id": 123,
        "race_id": 123,
        "event_id": 123,
        "name": "<string>",
        "type": "<string>",
        "modality_id": 123,
        "category_group_id": "<string>",
        "sex": "<string>",
        "age_min": 123,
        "age_max": 123,
        "award_count": 123,
        "is_pwd": true,
        "is_team": true,
        "sort_order": 123,
        "status": "<string>",
        "created_at": "<string>",
        "updated_at": "<string>",
        "modality": {
          "id": 123,
          "name": "<string>"
        }
      }
    ],
    "prize_rules": [
      {
        "id": 123,
        "race_id": 123,
        "event_id": 123,
        "seq": 123,
        "modality_id": 123,
        "ranking_type": "<string>",
        "ranking_cut": 123,
        "gender_filter": "<string>",
        "pne_filter": "<string>",
        "dupla_prem": [
          "<unknown>"
        ],
        "tipo_premiacao": "<string>",
        "eqp_apuracao": "<string>",
        "eqp_n_melhores": 123,
        "eqp_base_ranking": "<string>",
        "status": "<string>",
        "created_at": "<string>",
        "updated_at": "<string>",
        "modality": {
          "id": 123,
          "name": "<string>"
        }
      }
    ],
    "categories_count": "<string>"
  }
}

Authorizations

Authorization
string
header
required

API key do hub com escopo manage. Header: Authorization: Bearer <api_key>.

Path Parameters

event
string
required

Body

application/json

POST /api/v1/events/{event}/races — cria uma prova (Management API · Domínio 3). Reusa o RaceCreator no controller (gera code automático). Espelha o painel (EventView::saveRace) + carga de provas.

name
string
required
Maximum string length: 80
code
string | null
Maximum string length: 20
default_modality_id
integer | null
distance
number | null
Required range: x >= 0
distance_label
string | null
Maximum string length: 20
sort_order
integer | null
starts_at
string<date-time> | null
type
string | null
Maximum string length: 20
scoring_type
string | null
Maximum string length: 20
duration_minutes
integer | null
lap_count
integer | null
lap_distance
number | null
Required range: x >= 0
registration_limit
integer | null
status
enum<string>

Status genérico usado por várias entidades (Hub, User, Group, Category, etc.). Entidades com estados específicos (Event, Registration) têm enums próprios.

Available options:
active,
inactive,
suspended
sem_classificacao
boolean | null

Prova sem cronometragem (ex.: KIDS) — portal exibe lista de inscritos.

modality_ids
integer[] | null

Conjunto de modalidades da prova (PRD modalidade-nível-prova). Sincroniza race_modalities; default_modality_id marca a "pura" (Geral).

Response

JsonResource

data
RaceResource · object
required