RunSignUp

RunSignUp API Documentation

Setup Race Questions

Call this API method to setup race questions. To edit a question, include the question_id field with the question information. Any existing question not in the request will be deleted unless append_questions is set to "T". The order that the questions appear here will be the order they are displayed to users (with the exception that all overall questions are asked before individual questions). The response includes the question ids in the order defined.

Each question has the following fields:

  • question_id - Question id (A new question will be created if omitted or blank)
  • question_text - Question text
  • question_type_code - Question type code:
    • F: Freeform
    • B: Boolean (T/F)
    • S: Select box list of predefined responses.
    • R: Radio buttons of predefined responses.
    • C: Checkboxes of predefined responses (Allows multiple selection).
    • T: Time input.
    • A: Text box.
  • standard_question_type - Standard question type code:
    • ice_name: Emergency Contact Name
    • ice_phone: Emergency Contact Phone
    • sms_race_updates: Sign up for text message updates from the race.
    Note that standard questions may override certain question settings such as response type.
  • question_validation_type - Freeform questions may have a validation type. This can none, uint, int, float, email, phone, url, date, char_limit, or allowed_values.
  • validation_options - Depending on the validation type, you may need to include information in validation_options as shown in the examples.
  • individual - "T" if this question should be asked for each registrant. "F" if it should be asked once per transaction.
  • ask_in_kiosk - Show this question be asked during kiosk registration? T/F
  • corporate_team_only - Is the question for corporate team setup only? T/F
  • internal_question - Is the question for that participants should not see during registration? T/F
  • visible_to_corporate_team_captain - Should the question response be visible to corporate team captains? T/F
  • team_captains_only - Should the question be visible to group captains only? T/F
  • required - Is the question required? T/F
  • skip_for_event_ids - List of event ids that the question should NOT be asked for
  • responses - Predefined responses if applicable. If editing responses, send the response_id with each response.
  • parent_question_id - Id of parent question, if applicable. The parent question must be a boolean response or have predefined responses.
    • parent_visible_bool_response - If the parent question is a T/F question, the response for the parent question that indicates that this question should be asked.
    • parent_visible_response_ids - If the parent question has possible responses, the response id(s) for the parent question that indicates that this question should be asked.

For JSON requests, the request should look like the example below.

{
	"questions": [
		{
			"question_id": 12345,
			"question_text": "What browser are you using?",
			"question_type_code": "S",
			"individual": "F",
			"required": "F",
			"skip_for_event_ids": [123,124],
			"responses": [
				{
					"response_id": 6000,
					"response": "Chrome"
				},
				{
					"response_id": 6001,
					"response": "Internet Explorer"
				},
				{
					"response_id": 6002,
					"response": "Firefox"
				},
				{
					"response_id": 6003,
					"response": "Safari"
				}
			],
			"more_details": "This can include additional information to explain the question to registrants.",
			"more_details_html": "This can include additional information (formatted in HTML) to explain the question to registrants. This option takes precedent over more_details if both are submitted."
		},
		{
			"question_id": null,
			"question_text": "Where did you go to high school?",
			"question_type_code": "F",
			"individual": "T",
			"required": "F",
			"skip_for_event_ids": [],
			"question_validation_type": "none"
		},
		{
			"question_id": null,
			"question_text": "Emergency Contact Phone Number",
			"question_type_code": "F",
			"question_validation_type": "phone",
			"individual": "T",
			"ask_in_kiosk": "F",
			"corporate_team_only": "F",
			"internal_question": "F",
			"visible_to_corporate_team_captain": "F",
			"team_captains_only": "F",
			"required": "T",
			"skip_for_event_ids": [],
			"parent_question_id": 12345,
			"parent_visible_response_ids": [6001,6002]
		},
		{
			"question_id": null,
			"question_text": "Estimated Finish Time",
			"question_type_code": "T",
			"validation_options": {
				"min_time": "0:05:00",
				"max_time": "6:00:00"
			},
			"individual": "T",
			"ask_in_kiosk": "F",
			"corporate_team_only": "F",
			"internal_question": "F",
			"visible_to_corporate_team_captain": "F",
			"team_captains_only": "F",
			"required": "T",
			"skip_for_event_ids": [],
			"parent_question_id": null
		},
		{
			"question_id": null,
			"question_text": "Name on Bib",
			"question_type_code": "F",
			"question_validation_type": "char_limit",
			"validation_options": {
				"max_chars": 10
			},
			"individual": "T",
			"ask_in_kiosk": "F",
			"corporate_team_only": "F",
			"internal_question": "F",
			"visible_to_corporate_team_captain": "F",
			"team_captains_only": "F",
			"required": "T",
			"skip_for_event_ids": [],
			"parent_question_id": null
		},
		{
			"question_id": null,
			"question_text": "Registration Password",
			"question_type_code": "F",
			"question_validation_type": "allowed_values",
			"validation_options": {
				"allowed_values": ["value1", "value2"]
			},
			"individual": "T",
			"ask_in_kiosk": "F",
			"corporate_team_only": "F",
			"internal_question": "F",
			"visible_to_corporate_team_captain": "F",
			"team_captains_only": "F",
			"required": "T",
			"skip_for_event_ids": [],
			"parent_question_id": null
		}
	]
}

For XML requests, the request should look like the example below.

<questions>
  <question>
    <question_id>12345</question_id>
    <question_text>What browser are you using?</question_text>
    <question_type_code>S</question_type_code>
    <individual>F</individual>
		<ask_in_kiosk>F</ask_in_kiosk>
    <corporate_team_only>F</corporate_team_only>
		<internal_question>F</internal_question>
		<visible_to_corporate_team_captain>F</visible_to_corporate_team_captain>
		<team_captains_only>F</team_captains_only>
    <required>F</required>
    <skip_for_event_ids>
			<event_id>123</event_id>
			<event_id>124</event_id>
		</skip_for_event_ids>
    <responses>
      <response>
        <response_id>6000</response_id>
        <response>Chrome</response>
      </response>
      <response>
        <response_id>6001</response_id>
        <response>Internet Explorer</response>
      </response>
      <response>
        <response_id>6002</response_id>
        <response>Firefox</response>
      </response>
      <response>
        <response_id>6003</response_id>
        <response>Safari</response>
      </response>
    </responses>
    <more_details>This can include additional information to explain the question to registrants.</more_details>
    <more_details_html>This can include additional information (formatted in HTML) to explain the question to registrants. This option takes precedent over more_details if both are submitted.</more_details_html>
  </question>
  <question>
    <question_id></question_id>
    <question_text>Where did you go to high school?</question_text>
    <question_type_code>F</question_type_code>
    <question_validation_type>none</question_validation_type>
    <individual>T</individual>
		<ask_in_kiosk>F</ask_in_kiosk>
    <corporate_team_only>F</corporate_team_only>
		<internal_question>F</internal_question>
		<visible_to_corporate_team_captain>F</visible_to_corporate_team_captain>
		<team_captains_only>F</team_captains_only>
    <required>F</required>
    <skip_for_event_ids></skip_for_event_ids>
		<parent_question_id>12345</parent_question_id>
		<parent_visible_response_ids>
			<parent_visible_response_id>6001</parent_visible_response_id>
			<parent_visible_response_id>6002</parent_visible_response_id>
		</parent_visible_response_ids>
  </question>
	<question>
    <question_id></question_id>
    <question_text>Emergency Contact Phone Number</question_text>
    <question_type_code>F</question_type_code>
    <question_validation_type>phone</question_validation_type>
    <individual>T</individual>
		<ask_in_kiosk>F</ask_in_kiosk>
    <corporate_team_only>F</corporate_team_only>
		<internal_question>F</internal_question>
		<visible_to_corporate_team_captain>F</visible_to_corporate_team_captain>
		<team_captains_only>F</team_captains_only>
    <required>T</required>
    <skip_for_event_ids></skip_for_event_ids>
  </question>
	<question>
    <question_id></question_id>
    <question_text>Estimated Finish Time</question_text>
    <question_type_code>T</question_type_code>
		<validation_options>
			<min_time>0:05:00</min_time>
			<max_time>6:00:00</max_time>
		</validation_options>
    <individual>T</individual>
		<ask_in_kiosk>F</ask_in_kiosk>
    <corporate_team_only>F</corporate_team_only>
		<internal_question>F</internal_question>
		<visible_to_corporate_team_captain>F</visible_to_corporate_team_captain>
		<team_captains_only>F</team_captains_only>
    <required>T</required>
    <skip_for_event_ids></skip_for_event_ids>
  </question>
	<question>
    <question_id></question_id>
    <question_text>Name on Bib</question_text>
    <question_type_code>F</question_type_code>
		<question_validation_type>char_limit</question_validation_type>
		<validation_options>
			<max_chars>10</max_chars>
		</validation_options>
    <individual>T</individual>
		<ask_in_kiosk>F</ask_in_kiosk>
    <corporate_team_only>F</corporate_team_only>
		<internal_question>F</internal_question>
		<visible_to_corporate_team_captain>F</visible_to_corporate_team_captain>
		<team_captains_only>F</team_captains_only>
    <required>T</required>
    <skip_for_event_ids></skip_for_event_ids>
  </question>
	<question>
    <question_id></question_id>
    <question_text>Registration Password</question_text>
    <question_type_code>F</question_type_code>
		<question_validation_type>allowed_values</question_validation_type>
		<validation_options>
			<allowed_values>
				<allowed_value>value1</allowed_value>
				<allowed_value>value2</allowed_value>
			</allowed_values>
		</validation_options>
    <individual>T</individual>
		<ask_in_kiosk>F</ask_in_kiosk>
    <corporate_team_only>F</corporate_team_only>
		<internal_question>F</internal_question>
		<visible_to_corporate_team_captain>F</visible_to_corporate_team_captain>
		<team_captains_only>F</team_captains_only>
    <required>T</required>
    <skip_for_event_ids></skip_for_event_ids>
  </question>
</questions>

URL

https://runsignup.com/rest/race/:race_id/questions

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
format GET xml Format of response. format

Parameters

Parameter HTTP Method Default Description Datatype
race_id
Required
POST Id of race. uint
append_questions POST F Should the questions be appended to the existing questions? bool
request_format POST xml Format of request. format
request
Required
POST Request in proper format. string

Try It Now!

E-Mail
From Our Blog:
Nov 24th, 2017
2017 Thanksgiving Registration Stats

We are very thankful for all of the race directors, timers, partners, and runners who used RunSignUp yesterday. We are also thankful that our self-serve technology worked so well (and that we didn’t have too many support calls!). At RunSignUp, we always want to share our data on the trends and drivers of registrations to … Continue reading "2017 Thanksgiving Registration Stats"

Nov 22nd, 2017
Charity Payments Bug

We discovered a small bug in our software that has affected races using Braintree Marketplace for payment, who also have Charities setup to get paid directly, where the Charity is paying the processing fee. This affected: 19 races out of the 29,000 races held since this bug was introduced 460 Transactions out of the 5,376,000 … Continue reading "Charity Payments Bug"