1. RunSignup
  2. API
  3. Methods
  4. Post Event Results

Post Event Results

Post a race result to the API.

The individual_result_set_id parameter is required if you have multiple result sets for an event. If not set, the existing result set will be used if it exists. Otherwise, a new result set will be automatically created.

The field names in your request should be identical to those returned by Get Event Result Sets. You should pass in either registration_id, bib_num, or chip_num if you want to match an existing registrant in the database. If you want to edit an existing result, pass in the result_id as well. If you are not matching an existing registration, you must pass in at least first_name and last_name. To post live splits, post the time in a field named split-<split_id> where the split id is obtained from Get Splits for Result Sets. A blank or null value for a split will NOT clear the split. This allows you to have separate computers posting splits versus the finish and not have the finish line computer overwrite the splits times if it does not know them. To clear a split, use “X” instead of a time. To post split placements, use a field named split-<split_id>-place. The 'first_name' and 'last_name' fields are required if a matching registrant is not found in our database. If you send user information (e.g. name, address, etc.), the participant’s personal information will NOT be changed for existing users.

WARNING! Creating and editing participants information fields (name, address, etc.) while posting event results has been deprecated. Instead, use the Participants API to create or edit participants first.

You can use the strings “DQ”, “DNS”, “DNF”, or “DNQ” for a split time, clock time, or chip time. To post custom fields, use a field named custom-field-<custom_field_id>.

Division placements are normally auto-calculated from the results data. If you wish to send hard-coded division placement as part of the results, first create the Result Set with Create Event Result Set and then turn off division placement calculation with Disable Division Placement Calculations for a Result Set. You can then post results and include to the Result Set and include the division place in a field named division-<division_id>-place where the division ID is obtained from Get Race Divisions. Also note that you cannot clear division placements with this API, but you can clear division placements with the Clear Division Placements for a Result Set API.

An alternative to including division results in this API is to post results without division placements, then make separate calls to Post Manual Division Placements as needed.

The request parameter depends on request_format.

For 'csv', the first row should be the field names that you are posting. The following rows contain a single result per row, each with the values for the fields in the first row. An example is below.

place,bib,clock_time,chip_time
1,123,17:00.1,17:00.0
2,456,17:00.2,17:00.2

For 'json', the request should be an object with a 'results' property, which is an array. Each result will be an object with field values being store as the property with that field name. An example is below.

{
	"results": [{
			"bib": 123,
			"place": 1,
			"clock_time": "17:00.1",
			"chip_time": "17:00.0"
		},
		{
			"bib": 456,
			"place": 2,
			"clock_time": "17:00.2",
			"chip_time": "17:00.2"
		}
  ]
}

For 'xml', the request should look like the example below.

<request>
	<result>
		<field>
			<name>bib</name>
			<value>123</value>
		</field>
		<field>
			<name>place</name>
			<value>1</value>
		</field>
		<field>
			<name>clock_time</name>
			<value>17:00.1</value>
		</field>
		<field>
			<name>chip_time</name>
			<value>17:00.0</value>
		</field>
	</result>
	<result>
		<field>
			<name>bib</name>
			<value>456</value>
		</field>
		<field>
			<name>place</name>
			<value>2</value>
		</field>
		<field>
			<name>clock_time</name>
			<value>17:00.2</value>
		</field>
		<field>
			<name>chip_time</name>
			<value>17:00.2</value>
		</field>
	</result>
</request>

URL

https://runsignup.com/rest/race/:race_id/results/full-results

HTTP Method

POST

Standard Parameters

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

Parameters

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
skip_invalid_registration_ids POST F Should the results for invalid registration IDs be skipped? This will allow the results with valid registration IDs to be uploaded even if other rows have an invalid registration ID. bool
allow_active_registrations_only POST F Should we allow the results for registrations that are no longer active (e.g. cleared, deleted, transferred, etc.)? bool

If you continue to use this site, you consent to use all cookies. We use cookies to offer you a better browsing experience. Read how we use cookies and how you can control them by visiting our Privacy Policy.

If you continue to use this site, you consent to use all cookies.