Post race series results by scoring type ID for each event.
The request format must include the columns race_series_participant_id, series_points, and position.
The response will indicate which race series participant IDs have failed and how many scores were uploaded successfully.
Note: This endpoint only allows OAuth 2.0 authentication and requires the user to be a director of the race series or a timer of a race that is included in the series. It is currently in beta and subject to change.
This endpoint is limited to 500 results per request. For races with more than the request limit, you can upload results in batches using the clear_previous_results parameter:
clear_previous_results to true (or omit it, as it defaults to true) to clear any existing results and upload the first 500 results.clear_previous_results to false to append results without clearing previous uploads.
{
"columns": ["race_series_participant_id", "series_points", "position"],
"scoring_data":
[
[111, 17, 4],
[456, 25, 3],
[719, 28, 2],
[123, 30, 1]
]
}
{
"failed_race_series_participant_id": [123],
"num_scores_uploaded": 3
}
| Parameter | HTTP Method | Default | Description | Datatype |
|---|---|---|---|---|
AuthorizationRequired |
HTTP Header | OAuth 2.0 Authorization header (e.g. `Bearer ...`). | string |
|
race_series_idRequired |
GET | Race series ID. | uint |
|
race_series_year_idRequired |
GET | Race series year ID. | uint |
|
race_idRequired |
GET | Race ID. | uint |
|
event_idRequired |
GET | Event ID. | uint |
|
scoring_type_idRequired |
GET | Scoring Type ID. | uint |
|
clear_previous_results |
GET | T | Whether to clear previous results for this scoring type before uploading new results. | bool |
requestRequired |
POST | JSON containing the results that will be uploaded. | string |
{
"openapi": "3.0.3",
"info": {
"title": "Post Race Series Results (BETA)",
"description": "Post race series results.",
"version": "1.0.0",
"contact": {
"name": "RunSignup API Support",
"url": "https://runsignup.com/API",
"email": "info@runsignup.com"
}
},
"servers": [
{
"url": "https://api.runsignup.com/rest",
"description": "Production API Server"
}
],
"tags": [
{
"name": "Race Series Scoring",
"description": "APIs related to Race Series Scoring"
}
],
"components": {
"schemas": {
"Error": {
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Error message"
},
"details": {
"type": "object",
"description": "Additional error details",
"additionalProperties": true
}
},
"required": [
"error"
]
},
"BadRequestError": {
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"description": "Error indicating invalid request parameters or structure"
}
]
},
"UnauthorizedError": {
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"description": "Error indicating authentication failure"
}
]
},
"ForbiddenError": {
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"description": "Error indicating the authenticated user lacks required permissions"
}
]
},
"NotFoundError": {
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"description": "Error indicating the requested resource does not exist"
}
]
},
"ServerError": {
"allOf": [
{
"$ref": "#/components/schemas/Error"
},
{
"description": "Error indicating an unexpected server-side issue"
}
]
}
},
"securitySchemes": {
"apiKey": {
"type": "apiKey",
"in": "query",
"name": "api_key",
"description": "RunSignup API Key"
},
"apiSecret": {
"type": "apiKey",
"in": "query",
"name": "api_secret",
"description": "RunSignup API Secret"
}
}
},
"paths": {
"/v2/race-series/race-series-results.json": {
"post": {
"tags": [
"Race Series Scoring"
],
"summary": "Post Race Series Results (BETA)",
"description": "Post race series results.",
"operationId": "v2_race_series_race_series_results_json",
"parameters": [
{
"name": "Authorization",
"in": "header",
"description": "OAuth 2.0 Authorization header (e.g. `Bearer ...`).",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "race_series_id",
"in": "query",
"description": "Race series ID.",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "race_series_year_id",
"in": "query",
"description": "Race series year ID.",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "race_id",
"in": "query",
"description": "Race ID.",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "event_id",
"in": "query",
"description": "Event ID.",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "scoring_type_id",
"in": "query",
"description": "Scoring Type ID.",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "clear_previous_results",
"in": "query",
"description": "Whether to clear previous results for this scoring type before uploading new results.",
"required": false,
"schema": {
"type": "boolean",
"enum": [
"T",
"F"
],
"default": "T"
}
}
],
"security": [
{
"apiKey": [],
"apiSecret": []
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnauthorizedError"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForbiddenError"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerError"
}
}
}
}
},
"x-permissions": [
"race_directors",
"timers"
],
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"request": {
"type": "string"
}
},
"required": [
"request"
]
}
}
}
}
}
}
}
}