/eventsListar eventos
Requiere el tipo de acceso con llave READ o READ_WRITE api.
Autenticación
Envía una de las cabeceras de clave API compatibles en cada solicitud.
Parámetros
| Nombre | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
page | query | integer | Opcional | 1-based page. |
limit | query | integer | Opcional | Max items per page (events). |
Respuestas
curl --request GET \
--url 'https://api.runonrufus.com/v0/events?page=1&limit=1000' \
--header 'accept: application/json' \
--header 'api_key: YOUR_API_KEY'Operación OpenAPI original
{
"openapi": "3.0.3",
"info": {
"title": "RUFUS Public REST API",
"version": "0.1.0"
},
"tags": [
{
"name": "Events"
}
],
"servers": [
{
"url": "https://api.runonrufus.com/v0",
"description": "Production (v0)"
}
],
"security": [
{
"ApiKeyHeader": []
},
{
"XApiKeyHeader": []
}
],
"components": {
"securitySchemes": {
"ApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "api_key",
"description": "API key for authentication."
},
"XApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "x-api-key",
"description": "API key for authentication (alternate header)."
}
},
"parameters": {
"Page": {
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1
},
"description": "1-based page."
},
"LimitEvents": {
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"default": 1000
},
"description": "Max items per page (events)."
}
},
"schemas": {
"EventsListResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"result": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventSummary"
}
},
"pagination": {
"$ref": "#/components/schemas/Pagination"
}
},
"required": [
"description",
"result",
"pagination"
]
}
},
"required": [
"body"
]
},
"EventSummary": {
"type": "object",
"additionalProperties": false,
"properties": {
"event_token": {
"type": "string"
},
"name": {
"type": "string",
"nullable": true
},
"edition": {
"type": "string",
"nullable": true
},
"location": {
"type": "string",
"nullable": true
},
"start_date": {
"type": "string",
"format": "date-time",
"nullable": true
},
"end_date": {
"type": "string",
"format": "date-time",
"nullable": true
},
"status": {
"type": "string",
"nullable": true
}
},
"required": [
"event_token"
]
},
"Pagination": {
"type": "object",
"additionalProperties": false,
"properties": {
"page": {
"type": "integer",
"minimum": 1
},
"limit": {
"type": "integer",
"minimum": 1
},
"total": {
"type": "integer",
"minimum": 0
},
"has_more": {
"type": "boolean"
}
},
"required": [
"page",
"limit",
"total",
"has_more"
]
},
"EnvelopeAny": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"description": "Operation result body."
}
}
},
"EnvelopeNull": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"nullable": true
}
},
"required": [
"body"
]
}
},
"responses": {
"Forbidden": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"InternalError": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeNull"
}
}
}
}
}
},
"paths": {
"/events": {
"get": {
"tags": [
"Events"
],
"summary": "List events",
"description": "Requires `READ` or `READ_WRITE` api key access type.",
"parameters": [
{
"$ref": "#/components/parameters/Page"
},
{
"$ref": "#/components/parameters/LimitEvents"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventsListResponse"
}
}
}
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"500": {
"$ref": "#/components/responses/InternalError"
}
}
}
}
}
}/events/{event_token}Obtener evento por token
Requiere el tipo de acceso con llave READ o READ_WRITE api.
Autenticación
Envía una de las cabeceras de clave API compatibles en cada solicitud.
Respuestas
curl --request GET \
--url 'https://api.runonrufus.com/v0/events/{event_token}' \
--header 'accept: application/json' \
--header 'api_key: YOUR_API_KEY'Operación OpenAPI original
{
"openapi": "3.0.3",
"info": {
"title": "RUFUS Public REST API",
"version": "0.1.0"
},
"tags": [
{
"name": "Events"
}
],
"servers": [
{
"url": "https://api.runonrufus.com/v0",
"description": "Production (v0)"
}
],
"security": [
{
"ApiKeyHeader": []
},
{
"XApiKeyHeader": []
}
],
"components": {
"securitySchemes": {
"ApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "api_key",
"description": "API key for authentication."
},
"XApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "x-api-key",
"description": "API key for authentication (alternate header)."
}
},
"schemas": {
"EventGetResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"result": {
"type": "object",
"description": "Event details (fields follow RRM schema; large object).",
"additionalProperties": true
}
},
"required": [
"description"
]
}
},
"required": [
"body"
]
},
"EnvelopeAny": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"description": "Operation result body."
}
}
},
"EnvelopeNull": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"nullable": true
}
},
"required": [
"body"
]
}
},
"responses": {
"Forbidden": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"NotFound": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"InternalError": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeNull"
}
}
}
}
}
},
"paths": {
"/events/{event_token}": {
"get": {
"tags": [
"Events"
],
"summary": "Get event by token",
"description": "Requires `READ` or `READ_WRITE` api key access type.",
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventGetResponse"
}
}
}
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"500": {
"$ref": "#/components/responses/InternalError"
}
}
}
}
}
}/events/{event_token}/participantsListar participantes por evento
Requiere el tipo de acceso con llave READ o READ_WRITE api.
Autenticación
Envía una de las cabeceras de clave API compatibles en cada solicitud.
Parámetros
| Nombre | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
page | query | integer | Opcional | 1-based page. |
limit | query | integer | Opcional | Max items per page (participants). |
bib | query | string | Opcional | Filter participants by bib. |
chip | query | string | Opcional | Filter participants by chip. |
race_token | query | string | Opcional | Filter participants by race_token. |
status | query | string | Opcional | Filter participants by status. |
Respuestas
curl --request GET \
--url 'https://api.runonrufus.com/v0/events/{event_token}/participants?page=1&limit=1000&bib=%7Bbib%7D&chip=%7Bchip%7D&race_token=%7Brace_token%7D&status=%7Bstatus%7D' \
--header 'accept: application/json' \
--header 'api_key: YOUR_API_KEY'Operación OpenAPI original
{
"openapi": "3.0.3",
"info": {
"title": "RUFUS Public REST API",
"version": "0.1.0"
},
"tags": [
{
"name": "Events"
}
],
"servers": [
{
"url": "https://api.runonrufus.com/v0",
"description": "Production (v0)"
}
],
"security": [
{
"ApiKeyHeader": []
},
{
"XApiKeyHeader": []
}
],
"components": {
"securitySchemes": {
"ApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "api_key",
"description": "API key for authentication."
},
"XApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "x-api-key",
"description": "API key for authentication (alternate header)."
}
},
"parameters": {
"Page": {
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1
},
"description": "1-based page."
},
"LimitParticipants": {
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"default": 1000
},
"description": "Max items per page (participants)."
},
"ParticipantBib": {
"name": "bib",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Filter participants by bib."
},
"ParticipantChip": {
"name": "chip",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Filter participants by chip."
},
"ParticipantRaceToken": {
"name": "race_token",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Filter participants by race_token."
},
"ParticipantStatus": {
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Filter participants by status."
}
},
"schemas": {
"ParticipantsListResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"result": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ParticipantSummary"
}
},
"pagination": {
"$ref": "#/components/schemas/Pagination"
}
},
"required": [
"description",
"result",
"pagination"
]
}
},
"required": [
"body"
]
},
"ParticipantSummary": {
"type": "object",
"additionalProperties": false,
"properties": {
"event_token": {
"type": "string"
},
"participant_token": {
"type": "string"
},
"name": {
"type": "string"
},
"lastname": {
"type": "string",
"nullable": true
},
"bib": {
"type": "string",
"nullable": true
},
"chip": {
"type": "string",
"nullable": true
},
"status": {
"type": "string",
"nullable": true
},
"gender": {
"type": "string",
"nullable": true
},
"dob": {
"type": "string",
"format": "date-time",
"nullable": true
},
"yob": {
"type": "integer",
"nullable": true
},
"country": {
"type": "string",
"nullable": true
},
"city": {
"type": "string",
"nullable": true
},
"age_group": {
"type": "string",
"nullable": true
},
"team": {
"type": "string",
"nullable": true
},
"club": {
"type": "string",
"nullable": true
},
"email": {
"type": "string",
"format": "email",
"nullable": true
},
"telephone": {
"type": "string",
"nullable": true
},
"group_id": {
"type": "string",
"nullable": true
},
"race_token": {
"type": "string",
"nullable": true
},
"custom_fields": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/CustomField"
}
},
"individual_start_time": {
"type": "string",
"nullable": true
}
},
"required": [
"event_token",
"participant_token",
"name"
]
},
"CustomField": {
"type": "object",
"additionalProperties": false,
"properties": {
"field_name": {
"type": "string"
},
"value": {
"type": "string",
"nullable": true
}
},
"required": [
"field_name",
"value"
]
},
"Pagination": {
"type": "object",
"additionalProperties": false,
"properties": {
"page": {
"type": "integer",
"minimum": 1
},
"limit": {
"type": "integer",
"minimum": 1
},
"total": {
"type": "integer",
"minimum": 0
},
"has_more": {
"type": "boolean"
}
},
"required": [
"page",
"limit",
"total",
"has_more"
]
},
"EnvelopeAny": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"description": "Operation result body."
}
}
},
"EnvelopeNull": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"nullable": true
}
},
"required": [
"body"
]
}
},
"responses": {
"Forbidden": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"NotFound": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"InternalError": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeNull"
}
}
}
}
}
},
"paths": {
"/events/{event_token}/participants": {
"get": {
"tags": [
"Events"
],
"summary": "List participants by event",
"description": "Requires `READ` or `READ_WRITE` api key access type.",
"parameters": [
{
"$ref": "#/components/parameters/Page"
},
{
"$ref": "#/components/parameters/LimitParticipants"
},
{
"$ref": "#/components/parameters/ParticipantBib"
},
{
"$ref": "#/components/parameters/ParticipantChip"
},
{
"$ref": "#/components/parameters/ParticipantRaceToken"
},
{
"$ref": "#/components/parameters/ParticipantStatus"
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ParticipantsListResponse"
}
}
}
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"500": {
"$ref": "#/components/responses/InternalError"
}
}
}
}
}
}/events/{event_token}/participantsCrear participante
Requiere el tipo de acceso de clave WRITE o READ_WRITE api.
Las correcciones de los participantes (PATCH/DELETE) no se exponen intencionadamente en el API público.
Autenticación
Envía una de las cabeceras de clave API compatibles en cada solicitud.
Cuerpo de la solicitud
application/jsonEste esquema no define propiedades con nombre.
Respuestas
curl --request POST \
--url 'https://api.runonrufus.com/v0/events/{event_token}/participants' \
--header 'accept: application/json' \
--header 'api_key: YOUR_API_KEY' \
--header 'content-type: application/json' \
--data '{
"name": "Sample name",
"lastname": "Sample name",
"bib": "string",
"chip": "string",
"gender": "string",
"dob": "2026-09-02T10:30:00.000Z",
"yob": 1,
"country": "string",
"city": "string",
"age_group": "string",
"team": "string",
"club": "string",
"email": "timer@example.com",
"telephone": "string",
"group_id": "string",
"race_token": "string",
"custom_fields": [
{
"field_name": "Sample name",
"value": "string"
}
],
"individual_start_time": "string"
}'Operación OpenAPI original
{
"openapi": "3.0.3",
"info": {
"title": "RUFUS Public REST API",
"version": "0.1.0"
},
"tags": [
{
"name": "Events"
}
],
"servers": [
{
"url": "https://api.runonrufus.com/v0",
"description": "Production (v0)"
}
],
"security": [
{
"ApiKeyHeader": []
},
{
"XApiKeyHeader": []
}
],
"components": {
"securitySchemes": {
"ApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "api_key",
"description": "API key for authentication."
},
"XApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "x-api-key",
"description": "API key for authentication (alternate header)."
}
},
"schemas": {
"CreateParticipantRequest": {
"allOf": [
{
"$ref": "#/components/schemas/Participant"
}
]
},
"Participant": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"lastname": {
"type": "string",
"nullable": true
},
"bib": {
"type": "string",
"nullable": true
},
"chip": {
"type": "string",
"nullable": true
},
"gender": {
"type": "string",
"nullable": true
},
"dob": {
"type": "string",
"format": "date-time",
"nullable": true
},
"yob": {
"type": "integer",
"nullable": true
},
"country": {
"type": "string",
"nullable": true
},
"city": {
"type": "string",
"nullable": true
},
"age_group": {
"type": "string",
"nullable": true
},
"team": {
"type": "string",
"nullable": true
},
"club": {
"type": "string",
"nullable": true
},
"email": {
"type": "string",
"format": "email",
"nullable": true
},
"telephone": {
"type": "string",
"nullable": true
},
"group_id": {
"type": "string",
"nullable": true
},
"race_token": {
"type": "string",
"nullable": true
},
"custom_fields": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/CustomField"
}
},
"individual_start_time": {
"type": "string",
"nullable": true,
"description": "HH:mm:ss"
}
},
"required": [
"name",
"bib"
]
},
"CustomField": {
"type": "object",
"additionalProperties": false,
"properties": {
"field_name": {
"type": "string"
},
"value": {
"type": "string",
"nullable": true
}
},
"required": [
"field_name",
"value"
]
},
"CreateParticipantResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"event_token": {
"type": "string"
},
"participant_token": {
"type": "string"
},
"result": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"description",
"event_token",
"participant_token"
]
}
},
"required": [
"body"
]
},
"EnvelopeAny": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"description": "Operation result body."
}
}
},
"EnvelopeNull": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"nullable": true
}
},
"required": [
"body"
]
}
},
"responses": {
"BadRequest": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"NotFound": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"PayloadTooLarge": {
"description": "Payload too large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"InternalError": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeNull"
}
}
}
}
}
},
"paths": {
"/events/{event_token}/participants": {
"post": {
"tags": [
"Events"
],
"summary": "Create participant",
"description": "Requires `WRITE` or `READ_WRITE` api key access type.\n\nParticipant corrections (PATCH/DELETE) are intentionally not exposed in the public API.\n",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateParticipantRequest"
}
}
}
},
"responses": {
"201": {
"description": "Participant inserted succesfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateParticipantResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
},
"403": {
"description": "Forbidden (includes plan enforcement)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"409": {
"description": "Conflict (duplicate bib/chip/participant)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"413": {
"$ref": "#/components/responses/PayloadTooLarge"
},
"500": {
"$ref": "#/components/responses/InternalError"
}
}
}
}
}
}/events/{event_token}/participants/{participant_token}Obtener participante por token
Requiere el tipo de acceso con llave READ o READ_WRITE api.
Autenticación
Envía una de las cabeceras de clave API compatibles en cada solicitud.
Respuestas
curl --request GET \
--url 'https://api.runonrufus.com/v0/events/{event_token}/participants/{participant_token}' \
--header 'accept: application/json' \
--header 'api_key: YOUR_API_KEY'Operación OpenAPI original
{
"openapi": "3.0.3",
"info": {
"title": "RUFUS Public REST API",
"version": "0.1.0"
},
"tags": [
{
"name": "Events"
}
],
"servers": [
{
"url": "https://api.runonrufus.com/v0",
"description": "Production (v0)"
}
],
"security": [
{
"ApiKeyHeader": []
},
{
"XApiKeyHeader": []
}
],
"components": {
"securitySchemes": {
"ApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "api_key",
"description": "API key for authentication."
},
"XApiKeyHeader": {
"type": "apiKey",
"in": "header",
"name": "x-api-key",
"description": "API key for authentication (alternate header)."
}
},
"schemas": {
"ParticipantGetResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/ParticipantSummary"
}
},
"required": [
"description",
"result"
]
}
},
"required": [
"body"
]
},
"ParticipantSummary": {
"type": "object",
"additionalProperties": false,
"properties": {
"event_token": {
"type": "string"
},
"participant_token": {
"type": "string"
},
"name": {
"type": "string"
},
"lastname": {
"type": "string",
"nullable": true
},
"bib": {
"type": "string",
"nullable": true
},
"chip": {
"type": "string",
"nullable": true
},
"status": {
"type": "string",
"nullable": true
},
"gender": {
"type": "string",
"nullable": true
},
"dob": {
"type": "string",
"format": "date-time",
"nullable": true
},
"yob": {
"type": "integer",
"nullable": true
},
"country": {
"type": "string",
"nullable": true
},
"city": {
"type": "string",
"nullable": true
},
"age_group": {
"type": "string",
"nullable": true
},
"team": {
"type": "string",
"nullable": true
},
"club": {
"type": "string",
"nullable": true
},
"email": {
"type": "string",
"format": "email",
"nullable": true
},
"telephone": {
"type": "string",
"nullable": true
},
"group_id": {
"type": "string",
"nullable": true
},
"race_token": {
"type": "string",
"nullable": true
},
"custom_fields": {
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/CustomField"
}
},
"individual_start_time": {
"type": "string",
"nullable": true
}
},
"required": [
"event_token",
"participant_token",
"name"
]
},
"CustomField": {
"type": "object",
"additionalProperties": false,
"properties": {
"field_name": {
"type": "string"
},
"value": {
"type": "string",
"nullable": true
}
},
"required": [
"field_name",
"value"
]
},
"EnvelopeAny": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"description": "Operation result body."
}
}
},
"EnvelopeNull": {
"type": "object",
"additionalProperties": false,
"properties": {
"body": {
"nullable": true
}
},
"required": [
"body"
]
}
},
"responses": {
"Forbidden": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"NotFound": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeAny"
}
}
}
},
"InternalError": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnvelopeNull"
}
}
}
}
}
},
"paths": {
"/events/{event_token}/participants/{participant_token}": {
"get": {
"tags": [
"Events"
],
"summary": "Get participant by token",
"description": "Requires `READ` or `READ_WRITE` api key access type.",
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ParticipantGetResponse"
}
}
}
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"500": {
"$ref": "#/components/responses/InternalError"
}
}
}
}
}
}