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, the system will continue to calculate division finisher counts automatically based on the actual number of results in each division. If race_division_id is set but num_division_finishers is null, any existing manual finisher count for that division will be deleted.
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 system will continue to calculate the overall finisher count automatically based on the total number of results in the result set. If overall_num_finishers is set to null, any existing manual overall finisher count will be deleted.
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 |
|
tmp_key |
GET | Temporary API Key from login API call. This should NOT be used in combination with API Key. | string |
|
tmp_secret |
GET | Temporary API Secret from login API call. This should NOT be used in combination with 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 |
|
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" } }, "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": "tmp_key", "in": "query", "description": "Temporary API Key from login API call. This should NOT be used in combination with API Key.", "required": false, "schema": { "type": "string" } }, { "name": "tmp_secret", "in": "query", "description": "Temporary API Secret from login API call. This should NOT be used in combination with 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": "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" ] } } } } } } } }