Skip to main content

Overview

The Inscrito content type manages confirmed participant records for races and events. Unlike Inscripcion (which tracks payment processing), Inscrito represents final, confirmed participants with validated information.
This is a collection type with draft and publish enabled. Participants can be reviewed before being made public.

Schema Information

  • Collection Name: inscritos
  • Singular: inscrito
  • Plural: inscritos
  • Draft & Publish: Enabled

Attributes

nombreCompleto

nombreCompleto
string
required
Full name of the confirmed participant.
  • Required field
  • Free text format
  • Must be provided for all participants

rut

rut
string
required
Chilean national identification number (RUT).
  • Required field
  • Format: XX.XXX.XXX-X
  • Must include verification digit
  • Used as unique identifier for participants

edad

edad
integer
required
Age of the participant.
  • Required field
  • Minimum: 3
  • Maximum: 99
  • Used for category eligibility validation

categoria

categoria
enumeration
required
Race category classification.
  • Required field
  • Allowed values:
    • Infantil: Youth category
    • Experto: Expert riders
    • Enduro: Enduro category
    • Elite: Elite/professional level
    • Master A: Master A age group
    • Master B: Master B age group
  • Must be one of the predefined values

tipo

tipo
enumeration
required
Registration type classification.
  • Required field
  • Allowed values:
    • Open: Open category participants
    • Federado: Federated/licensed riders
  • Determines race rules and eligibility

API Endpoints

List All Participants

curl -X GET 'https://api.example.com/api/inscritos?publicationState=live' \
  -H 'Authorization: Bearer YOUR_TOKEN'
data
array
Array of participant entries

Get Single Participant

curl -X GET 'https://api.example.com/api/inscritos/1' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Create Participant

curl -X POST 'https://api.example.com/api/inscritos' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "data": {
      "nombreCompleto": "Carlos Rodríguez",
      "rut": "18.765.432-1",
      "edad": 32,
      "categoria": "Elite",
      "tipo": "Federado"
    }
  }'

Update Participant

curl -X PUT 'https://api.example.com/api/inscritos/1' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "data": {
      "categoria": "Master A"
    }
  }'

Delete Participant

curl -X DELETE 'https://api.example.com/api/inscritos/1' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Query Parameters

Filter by Category

# Elite participants
curl -X GET 'https://api.example.com/api/inscritos?filters[categoria][$eq]=Elite' \
  -H 'Authorization: Bearer YOUR_TOKEN'

# Multiple categories
curl -X GET 'https://api.example.com/api/inscritos?filters[categoria][$in][0]=Elite&filters[categoria][$in][1]=Experto' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Filter by Type

# Federated riders only
curl -X GET 'https://api.example.com/api/inscritos?filters[tipo][$eq]=Federado' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Filter by Age Range

# Participants aged 25-35
curl -X GET 'https://api.example.com/api/inscritos?filters[edad][$gte]=25&filters[edad][$lte]=35' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Sorting

# Sort by name alphabetically
curl -X GET 'https://api.example.com/api/inscritos?sort=nombreCompleto:asc' \
  -H 'Authorization: Bearer YOUR_TOKEN'

# Sort by age (youngest first)
curl -X GET 'https://api.example.com/api/inscritos?sort=edad:asc' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Pagination

curl -X GET 'https://api.example.com/api/inscritos?pagination[page]=1&pagination[pageSize]=50' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Publication State

# Published only (default)
curl -X GET 'https://api.example.com/api/inscritos?publicationState=live' \
  -H 'Authorization: Bearer YOUR_TOKEN'

# Include drafts
curl -X GET 'https://api.example.com/api/inscritos?publicationState=preview' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Example Response

{
  "data": [
    {
      "id": 1,
      "attributes": {
        "nombreCompleto": "Carlos Rodríguez",
        "rut": "18.765.432-1",
        "edad": 32,
        "categoria": "Elite",
        "tipo": "Federado",
        "createdAt": "2026-03-04T08:00:00.000Z",
        "updatedAt": "2026-03-04T08:00:00.000Z",
        "publishedAt": "2026-03-04T08:05:00.000Z"
      }
    },
    {
      "id": 2,
      "attributes": {
        "nombreCompleto": "Ana Martínez",
        "rut": "16.543.210-9",
        "edad": 28,
        "categoria": "Experto",
        "tipo": "Open",
        "createdAt": "2026-03-04T09:15:00.000Z",
        "updatedAt": "2026-03-04T09:15:00.000Z",
        "publishedAt": "2026-03-04T09:20:00.000Z"
      }
    }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "pageSize": 25,
      "pageCount": 1,
      "total": 2
    }
  }
}

Categories Explained

Infantil

Youth category for younger participants. Typically ages 3-15.

Experto

Expert riders with advanced skills. Intermediate to advanced level.

Enduro

Enduro-specific category for technical downhill and climbing sections.

Elite

Elite/professional level riders. Highest competitive category.

Master A

Master A age group, typically 30-39 years old.

Master B

Master B age group, typically 40+ years old.

Registration Types

Open

Open category participants who are not affiliated with a federation. Generally:
  • No license required
  • Open to recreational riders
  • May have different rules or start times

Federado

Federated/licensed riders who are:
  • Registered with a cycling federation
  • Hold a valid racing license
  • Compete under federation rules
  • May be eligible for ranking points

Validation Rules

All fields are required. The system enforces the following validations:
  • nombreCompleto: Must not be empty
  • rut: Must not be empty, validate format on client
  • edad: Must be between 3 and 99 (inclusive)
  • categoria: Must be one of: Infantil, Experto, Enduro, Elite, Master A, Master B
  • tipo: Must be either Open or Federado

Relationship with Inscripcion

While Inscripcion handles the payment and registration process, Inscrito represents confirmed participants:
Typically, an Inscrito record is created only after successful payment confirmation in the Inscripcion flow.

Best Practices

Validate RUT

Always validate RUT format and verification digit before creating participant records to maintain data integrity.

Age Verification

Validate that participant age falls within the allowed range (3-99) and matches their selected category.

Category Rules

Implement category eligibility rules based on age and rider type to ensure proper classification.

Draft Review

Use draft mode to review participant information before publishing to participant lists.

Duplicate Prevention

Check for duplicate RUT values before creating new participants to prevent double registrations.

Bulk Operations

Use pagination and filtering for efficient bulk operations when managing large participant lists.

Participant Lists

Generate participant lists by category:
curl -X GET 'https://api.example.com/api/inscritos?filters[categoria][$eq]=Elite&sort=nombreCompleto:asc&publicationState=live' \
  -H 'Authorization: Bearer YOUR_TOKEN'

Statistics Query

Get participant counts by category:
# Total participants
curl -X GET 'https://api.example.com/api/inscritos?pagination[pageSize]=1&publicationState=live' \
  -H 'Authorization: Bearer YOUR_TOKEN'

# The meta.pagination.total field contains the total count

Build docs developers (and LLMs) love