Post division placements to a results set. You should Disable Automatic Division Placement Calculations before using this method. You may want to Clear Division Placements beforehand if needed or if you need to reupload editing placements.
Each request can contain multiple placements, with each containing race_division_id, result_id, and division_placement. If a runner does not get a place in a division (e.g. they won the overall division), division_placement should be set to null.
Optionally, you can also specify manual division finisher counts using division_num_finishers.
This allows you to override the automatically calculated “out of” count that appears in division placements (e.g., “1st out of 25”).
If not provided, finisher counts will continue to be calculated automatically based on the actual number of results in each division.
To clear a finisher count when using XML, send an empty element like <num_division_finishers></num_division_finishers>
.
For JSON, set the value to null
.
You can also optionally specify the overall finisher count using overall_num_finishers.
This allows you to override the automatically calculated total finisher count that appears in overall placements (e.g., “5th out of 1,250“).
If not provided, the overall finisher count will continue to be calculated automatically based on the total number of results in the result set.
To clear the overall finisher count when using XML, send an empty element like <overall_num_finishers></overall_num_finishers>
.
For JSON, set the value to null
.
For 'json', the request should look like the example below.
{ "placements": [ { "race_division_id": 123, "result_id": 123, "division_placement": 1 }, { "race_division_id": 123, "result_id": 456, "division_placement": 2 } ], "division_num_finishers": [ { "race_division_id": 123, "num_division_finishers": 120 } ], "overall_num_finishers": 1250 }
For 'xml', the request should look like the example below.
<request> <placement> <race_division_id>123</race_division_id> <result_id>123</result_id> <division_placement>1</division_placement> </placement> <placement> <race_division_id>123</race_division_id> <result_id>456</result_id> <division_placement>2</division_placement> </placement> <division_num_finishers> <race_division_id>123</race_division_id> <num_division_finishers>120</num_division_finishers> </division_num_finishers> <overall_num_finishers>1250</overall_num_finishers> </request>
Parameter | HTTP Method | Default | Description | Datatype |
---|---|---|---|---|
api_key |
GET | API Key | string |
|
api_secret |
GET | API Secret | string |
|
rsu_api_key |
GET | API v2 key. If used, you must send the API secret in an HTTP header named X-RSU-API-SECRET. | string |
|
sp_api_key |
GET | Super partner API key. If used, you must send the API secret in an HTTP header named X-RSU-API-SECRET. | string |
|
X-RSU-API-SECRET |
HTTP Header | API v2 or super partner secret. | string |
|
Authorization |
HTTP Header | Authorization Header. If using OAuth 2.0, fill this in with `Bearer <token>`. | string |
|
format |
GET | xml | Format of response. The default if not sent is `xml`, but `json` is preferred. | format |
Parameter | HTTP Method | Default | Description | Datatype |
---|---|---|---|---|
race_id Required |
POST | ID of race. | uint |
|
event_id Required |
POST | ID of event. | uint |
|
individual_result_set_id |
POST | ID of result set. | uint |
|
request_format |
POST | xml | Format of request. The default if not sent is `xml`, but `json` is preferred. | format |
request Required |
POST | Request in proper format. | string |
{ "openapi": "3.0.3", "info": { "title": "Post Manual Division Placements", "description": "Manually post division placements.", "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": "Results", "description": "APIs related to Results" } ], "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": { "/race/{race_id}/results/manual-divisions-placements": { "post": { "tags": [ "Results" ], "summary": "Post Manual Division Placements", "description": "Manually post division placements.", "operationId": "race_:race_id_results_manual_divisions_placements", "parameters": [ { "name": "race_id", "in": "path", "description": "Path parameter: race_id", "required": true, "schema": { "type": "string" } }, { "name": "api_key", "in": "query", "description": "API Key", "required": false, "schema": { "type": "string" } }, { "name": "api_secret", "in": "query", "description": "API Secret", "required": false, "schema": { "type": "string" } }, { "name": "rsu_api_key", "in": "query", "description": "API v2 key. If used, you must send the API secret in an HTTP header named X-RSU-API-SECRET.", "required": false, "schema": { "type": "string" } }, { "name": "sp_api_key", "in": "query", "description": "Super partner API key. If used, you must send the API secret in an HTTP header named X-RSU-API-SECRET.", "required": false, "schema": { "type": "string" } }, { "name": "X-RSU-API-SECRET", "in": "header", "description": "API v2 or super partner secret.", "required": false, "schema": { "type": "string" } }, { "name": "Authorization", "in": "header", "description": "Authorization Header. If using OAuth 2.0, fill this in with `Bearer <token>`.", "required": false, "schema": { "type": "string" } }, { "name": "format", "in": "query", "description": "Format of response. The default if not sent is `xml`, but `json` is preferred.", "required": false, "schema": { "type": "string", "enum": [ "xml", "json", "csv" ], "default": "xml" } }, { "name": "event_id", "in": "query", "description": "ID of event.", "required": true, "schema": { "type": "integer" } }, { "name": "individual_result_set_id", "in": "query", "description": "ID of result set.", "required": false, "schema": { "type": "integer" } } ], "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": [ "partners", "race_directors", "timers" ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "request_format": { "type": "string", "enum": [ "xml", "json", "csv" ], "default": "xml" }, "request": { "type": "string" } }, "required": [ "request" ] } } } } } } } }