This API was designed specifically for the Director software to allow certain timers and directors integration into our Race Entry data with the Director.
The Login action must be called first as it returns the key/secret pair that is required for the other endpoints.
All responses are returned in JSON format.
Any errors in the response will be returned in an object called 'message':
*All test endpoints start with https://demo.raceentry.com/softwareapi
*All production endpoints start with https://www.raceentry.com/softwareapi
Before a user can access any race data, they must have an API key and token. This is only provided to users that exist in Race Entry’s user database. This function allows an authorized Race Entry partner to create users in our user database that do not yet exist in our database. These created users are then also given an API key and token to access Race Entry race information.
This feature cannot create authorized Race Entry API partners. You must contact Race Entry to receive a Race Entry partner API key and token to use this feature.
ENDPOINT | POST FIELDS | RESPONSE | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/user/create This will return a temporary key/secret pairfor the user (valid for 2 days). http://demo.raceentry.com/softwareapi/user/create?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH |
|
Success: Response Code: 200
{
"tmp_key":"KEY_HASH", "tmp_secret":"SECRET_HASH", "user": { "user": { "first_name":"John", "last_name":"Doe" } } } The tmp_key is hashed in our database, so it is important to save this key and associate it with the user before discarding the response data! Failure: Response Code: 200
{
"message":"Failed to create the user or user already exists" } |
API users can be created for users who are already in the Race Entry user database. Only an authorized Race Entry API partner can use this feature.
An API user’s credentials (key and token) expire after 48 hours. When a user’s credentials are expired, the API will return a 403 code. For this reason, an API user should be logged in before using the API is their last login was longer than two days from the current login. If a user accesses the API within the 48 hour expiration, the time is extended another 48 hours from the time the API is accessed. Thus, a frequent API user will not have to change their key often.
If an API user is logged in with this feature, a new key and token are returned and should be saved to the user.
ENDPOINT | POST FIELDS | RESPONSE | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
/login This will return your temporary key/secret pair (valid for 2 days). Note: Subsequent calls will invalidate previous key/secret pair and give you a new pair. http://demo.raceentry.com/softwareapi/login |
|
Success: Response Code: 200
{
"tmp_key":"KEY_HASH", "tmp_secret":"SECRET_HASH", "user": { "user": { "first_name":"John", "last_name":"Doe" } } } The tmp_key is hashed in our database, so it is important to save this key and associate it with the user before discarding the response data! Failure: Response Code: 200
{
"tmp_key":null, "tmp_secret":null, "message":"E-mail and Password Don't Match" } |
This endpoint allows an authenticated user to access arrays of ID and name data for event_types, timezones, and states which are needed to create an event with the /event/create and event/copy endpoints.
ENDPOINT | RESPONSE |
---|---|
/event/get_create_datahttp://demo.raceentry.com/softwareapi/event/get_create_data?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH |
Success: Response Code: 200
{
"event_types": [ { "id": "1", "name": "Running/Walking" }, { "id": "2", "name": "Biking" }, { "id": "3", "name": "Triathlon" }, { "id": "4", "name": "Duathlon" }, { "id": "6", "name": "Virtual Event" }, { "id": "7", "name": "OCR" }, { "id": "10", "name": "Other" } ], "timezones": [ { "id": "1", "name": "America/Denver" }, { "id": "2", "name": "America/New_York" }, { "id": "3", "name": "America/Chicago" }, { "id": "4", "name": "America/Phoenix" }, { "id": "5", "name": "America/Los_Angeles" }, { "id": "6", "name": "America/Anchorage" }, { "id": "7", "name": "Pacific/Honolulu" } ], "states": [ { "id": "1", "abbr": "AL" "name": "Alabama" "selected": "0" }, { "id": "2", "abbr": "AK" "name": "Alaska" "selected": "0" }, { "id": "3", "abbr": "AZ" "name": "Arizona" "selected": "0" }, { "id": "4", "abbr": "AR" "name": "Arkansas" "selected": "0" }, { "id": "5", "abbr": "CA" "name": "California" "selected": "0" }, ... ] } |
This endpoint allows an authenticated user to create an event. The event is always default "calendar listing" which means adding registration, ticketing, payee information, and other event configuration must be done through Race Entry's website.
This is a POST request that expects the tmp_key and tmp_secret to be in GET parameters and the rest of the payload to be POST data.
ENDPOINT | POST FIELDS | RESPONSE | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/event/create http://demo.raceentry.com/softwareapi/event/create?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH Use the /event/get_create_data endpoint to get IDs and names for event_types, timezones, and states |
|
Success: Response Code: 200
{
"success": true, "url":"fake-api-event", "year": "2019", } Failure (validation): Response Code: 400
{
"event": { "name": "A event with this name already exists. Please change your event name to make it unique. You could add a location, number, company name, etc. to make it unique.", "url": "A event is already using this URL. If this is your event, you can claim it HERE" } } Failure (server): Response Code: 500
{
"message":"The event could not be created - internal error. Please contact support" } |
This endpoint allows an authenticated user to copy an existing event to a new year.
In Race Entry, 'events' have multiple 'event_years'. If an event has the same name but occurs yearly, it is considered to be an existing event but needs a new event_year for every calendar year that the event occurs.
This endpoint should be used to create new event years for an existing event.
Categories, products and volunteer information is not copied over automatically and should be re-added on Race Entry.
This is a POST request that expects the tmp_key and tmp_secret to be in GET parameters and the rest of the payload to be POST data.
ENDPOINT | POST FIELDS | RESPONSE | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/event/copy http://demo.raceentry.com/softwareapi/event/copy?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH Use the /event/get_create_data endpoint to get IDs and names for event_types, timezones, and states |
|
Success: Response Code: 200
{
"success": true, "url":"fake-api-event", "year": "2020", } Failure (validation): Response Code: 400
{
"event_year": { "year": "This year has already been created for your event. Please enter a different year or find the existing year in your list of events" } } Failure (server): Response Code: 500
{
"message":"The event could not be copied - internal error. Please contact support" } |
These are the endpoints that will return information about and set certain settings for races. They will only give information about races that the user (determined by the key/secret pair) has permission to access.
Parameter | Format | Value | Affect | Applies To |
---|---|---|---|---|
tmp_key | string | Returned from login API call | Allows authorized access to API endpoints | All (required) |
tmp_secret | string | Returned from login API call | Allows authorized access to API endpoints | All (required) |
event_id | int | Specifies the event from which to retreive results |
get_event_categories (required) get_event_participants (required) get_event_pin (required) set_event_pin (required) |
|
category_id | int | Specifies the category from which to retreive results |
get_event_teams (required) get_category_teams (required) get_event_participants (optional filter) |
|
results_per_page | int | Limits the number of results to return | All (optional) | |
page_number | int | Determines the offset from which to return results | All (optional) | |
has_bib | enum: 'all', 'yes', 'no' |
'all' will return all results regardless of bib number (default) 'yes' will only return results that have an assigned bib number 'no' will only return results that have no set bib number |
get_event_participants (optional) |
|
checked_in | enum: 'all', 'yes', 'no' |
'all' will return all results regardless of checked-in status (default) 'yes' will only return results that have been checked-in 'no' will only return results that have not been checked in |
get_event_participants (optional) |
|
get_responses | enum: yes', 'no' |
'no' will only return primary registration data with no custom registration question responses (default) 'yes' return an array of registration question responses per registration |
get_event_participants (optional) |
modified_after | string | YYYY-MM-DD HH:MM:SS | Returns only results that have been modified after the given timestamp |
get_event_participants (optional) |
ENDPOINT | RESPONSE | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/get_eventsReturns an array of races Note: Failure returns a status code of 403 http://demo.raceentry.com/softwareapi/get_events?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH |
Success: Response Code: 200
[
{ "event_id": "12345", "name": "Jane's Demo Event", "event_type": "Running/Walking", "event_logo": "https://s3-us-west-2.amazonaws.com/images.raceentry.com/logo/janes-demo-event-registration-logo-12345.png?v=123456789", "url": "janes-demo-event", "description": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>This is a demo description returned as HTML.</p></body></html>\n", "last_modified": "2019-06-05 13:31:32", "contact_first_name": "Jane", "contact_last_name": "Director", "contact_email": "janedirector@fakeevent.com", "event_date": "2019-06-12 11:00:00", "street": "100 W 200 N", "city": "Provo", "state": "Utah", "province": null, "country": "USA", "zipcode": "84604" }, { "event_id": "123456", "name": "John's Test Event", "event_type": "Triathlon", "event_logo": null, "url": "johns-test-event", "description": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>Another example of a test race description</p></body></html>\n", "last_modified": "2019-01-18 12:20:49", "contact_first_name": "John", "contact_last_name": "Doe", "contact_email": "jdoe@notrealemail.com", "event_date": "2020-05-09 12:00:00", "street": "205 E Randolph St", "city": "Chicago", "state": "IL", "province": null, "country": "USA", "zipcode": "60601" }, ] |
||||||||||||||||
/get_event_categoriesReturns an array of categories Requires event_id in the GET request Categories are sometimes called sub-events in other platforms. A category is a Marathon, 10K, 5K, etc. in a race event http://demo.raceentry.com/softwareapi/get_event_categories?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345 |
Success: Response Code: 200
[
{ "category_id": "123", "category_name": "Marathon", "category_details": "This is the main marathon category for this event", "distance": "26.2000", "distance_units": "Mi", "participant_cap": "2500" }, { "category_id": "124", "category_name": "10K", "category_details": null, "distance": "10.0000", "distance_units": "Km", "participant_cap": "unlimited" }, { "category_id": "125", "category_name": "Half Marathon", "category_details": "Another description of this category (sub-event)", "distance": "13.1000", "distance_units": "Mi", "participant_cap": "unlimited" } ] Failure: Response Codes: 400
{
"message": "Event ID required" } |
||||||||||||||||
/get_event_questionsReturns an array of active registration questions in the event If the question has selectable options, they are returned as an array of option IDs and options text Requires category_id in the GET request http://demo.raceentry.com/softwareapi/get_event_questions?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345 Possible Question Types
|
Success: Response Code: 200
[
{ "question_id": "860", "question_text": "T-Shirt Size", "question_type": "Dropdown", "options": [ { "id": "4658", "text": "S" }, { "id": "4659", "text": "M" }, { "id": "4661", "text": "L" } ] }, { "question_id": "861", "question_text": "Emergency Contact Name", "question_type": "Single Line Text", "options": null }, { "question_id": "863", "question_text": "Emergency Contact Phone", "question_type": "Single Line Text", "options": null }, { "question_id": "872", "question_text": "How did you hear about the event?", "question_type": "Dropdown", "options": [ { "id": "4984", "text": "Web Search" }, { "id": "4985", "text": "Friend/Family" }, { "id": "4986", "text": "Facebook" }, { "id": "4987", "text": "Past Participant" }, { "id": "4988", "text": "Other" } ] } ] Failure: Response Codes: 400
{
"message": "Event ID required" } |
||||||||||||||||
/get_event_participantsReturns an array of partipants only Requires event_id in the GET request http://demo.raceentry.com/softwareapi/get_event_participants?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345 |
Success: default Response Code: 200
[
{ "participant_id": "10101", "category_id": "125", "category_name": "Half Marathon", "team_id": null, "team_name": null, "first_name": "Bob", "last_name": "Person", "email": "bperson@somedomain.com", "address": "100 N 200 E", "city": "Provo", "bib_num": "123", "price": "12.34", "discount": "12.34", "province": null, "state": "Utah", "zipcode": "84604", "dob": "1989-07-07", "gender": "M", "last_modified": "2019-01-04 12:49:39", "phone": "8015554214", "checked_in": "yes" }, { "participant_id": "10102", "category_id": "123", "category_name": "Marathon", "team_id": null, "team_name": null, "first_name": "Mary", "last_name": "Runner", "email": "maryruns@fakedomain.com", "address": "500 S 200 E", "city": "Orem", "bib_num": null, "price": "12.34", "discount": "12.34", "province": "", "state": "Utah", "zipcode": "84097", "dob": "1989-08-08", "gender": "F", "last_modified": "2019-01-10 16:15:10", "phone": "3145550987", "checked_in": "no" }, ... ] Success: (get_responses=yes) Response Code: 200
[
{ "participant_id": "10101", "category_id": "125", "category_name": "Half Marathon", "team_id": null, "first_name": "Bob", "last_name": "Person", "email": "bperson@somedomain.com", "address": "100 N 200 E", "city": "Provo", "bib_num": "123", "price": "12.34", "discount": "12.34", "province": null, "state": "Utah", "zipcode": "84604", "dob": "1989-07-07", "gender": "M", "last_modified": "2019-01-04 12:49:39", "phone": "8015554214", "checked_in": "yes", "responses": [ { "qid": "860", "q": "T-Shirt Size", "qoid": "19923", "ans": "Large" }, { "qid": "861", "q": "Emergency Contact Name", "qoid": "", "ans": "Bethany Person" }, { "qid": "863", "q": "Emergency Contact Phone", "qoid": "", "ans": "3145557761" }, { "qid": "872", "q": "How did you hear about the event?", "qoid": "5124", "ans": "Family/Friend" } ] }, { "participant_id": "10102", "category_id": "123", "category_name": "Marathon", "team_id": null, "first_name": "Mary", "last_name": "Runner", "email": "maryruns@fakedomain.com", "address": "500 S 200 E", "city": "Orem", "bib_num": null, "price": "12.34", "discount": "12.34", "province": "", "state": "Utah", "zipcode": "84097", "dob": "1989-08-08", "gender": "F", "last_modified": "2019-01-10 16:15:10", "phone": "3145550987", "checked_in": "no", "responses": [ { "qid": "860", "q": "T-Shirt Size", "qoid": "19920", "ans": "Small" }, { "qid": "861", "q": "Emergency Contact Name", "qoid": "", "ans": "Jordan Runner" }, { "qid": "863", "q": "Emergency Contact Phone", "qoid": "", "ans": "8015554789" }, { "qid": "872", "q": "How did you hear about the event?", "qoid": "5121", "ans": "Billboard" } ] }, ... ] Failure: Response Codes: 400
{
"message": "Event ID required" } |
||||||||||||||||
/get_event_teamsReturns an array of category IDs with arrays of teams Returns empty category ID for event-wide teams (teams across categories) Requires event_id in the GET request http://demo.raceentry.com/softwareapi/get_event_teams?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345 |
Success: Response Code: 200
{
"126": [ { "team_id": "111", "team_name": "Tate's Tater Tots", "captain_reg_id": "10103", "captain_name": "Isaiah Bespoken", "captain_email": "isaiah_besp@email.com", "password_required": "1", "password": "Allegiant", "category_id": "126" }, { "team_id": "112", "team_name": "Captain Jacks", "captain_reg_id": "10104", "captain_name": "Jack Dillon", "captain_email": "dillon.jack@phone.net", "password_required": "1", "password": "russyrach2", "category_id": "126" } ], "127": [ "team_id": "113", "team_name": "Cate's Chasers", "captain_reg_id": "10105", "captain_name": "Cathleen Farnsworth", "captain_email": "caty_worth@fakeaccount.com", "password_required": "0", "password": null, "category_id": "127" }, { "team_id": "114", "team_name": "Bombastic Baddies", "captain_reg_id": "10106", "captain_name": "Gladys O'Brien", "captain_email": "gladys.obrien@email.net", "password_required": "0", "password": null, "category_id": "127" } ] } Failure: Response Codes: 400
{
"message": "Event ID required" } |
||||||||||||||||
/get_category_teamsReturns an array of teams in a category Cannot return event-wide teams (teams across categories) Requires category_id in the GET request http://demo.raceentry.com/softwareapi/get_category_teams?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&category_id=126 |
Success: Response Code: 200
[
{ "team_id": "111", "team_name": "Tate's Tater Tots", "captain_reg_id": "10103", "captain_name": "Isaiah Bespoken", "captain_email": "isaiah_besp@email.com", "password_required": "1", "password": "Allegiant", "category_id": "126" }, { "team_id": "112", "team_name": "Captain Jacks", "captain_reg_id": "10104", "captain_name": "Jack Dillon", "captain_email": "dillon.jack@phone.net", "password_required": "1", "password": "russyrach2", "category_id": "126" } ] Failure: Response Codes: 400
{
"message": "Category ID required" } |
||||||||||||||||
/get_event_pinReturns the Check In app access PIN for an event, the expiration, and status of access (enabled / disabled) Requires event_id in the GET request http://demo.raceentry.com/softwareapi/get_event_pin?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345 |
Success: default Response Code: 200
{
"pin": "1234", "expires": "2019-08-10 23:59:59", "access": "enabled" } Failure: Response Codes: 200
{
"message": "No PIN found for this event" } |
||||||||||||||||
/set_event_pinSets a Check In app event access PIN Requires 'event_id' as a URL param and 'pin' in the POST request PIN must be between 4 and 8 characters and contain only numbers http://demo.raceentry.com/softwareapi/set_event_pin?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345 post_data: {pin: 1234 } |
Success: default Response Code: 200
{
"pin": "1234", "expires": "2019-08-10 23:59:59", "access": "enabled" } Failure: Response Codes: 400
{
"message": "Event ID required" } |
||||||||||||||||
/set_event_app_accessSets a Check In app event access PIN to enabled or disabled (if there is a PIN) Requires 'event_id' as a URL param and 'enabled' in the POST request 'enabled' must be a '1' or '0'. '1' enables the PIN and '0' disables it. http://demo.raceentry.com/softwareapi/set_event_app_access?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345 post_data: {enabled: 0 } |
Success: default Response Code: 200
{
"pin": "1234", "expires": "2019-08-10 23:59:59", "access": "disabled" } Failure: Response Codes: 200
{
"message": "No PIN found for this event" } |
This section contains the information and endpoints for editing and deleting individual race result entries.
ENDPOINT | POST FIELDS | RESPONSE | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
/result/edit Edits the result identified by result_info by the data provided in new_values. http://demo.raceentry.com/softwareapi/result/edit?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH |
|
Success: Response Code: 200
{
"message":"Result edited" } Failure: Response Codes: 400, 403, 500
{
"message":"Error message details" } |
|||||||||
/result/delete Deletes the result identified by result_info. http://demo.raceentry.com/softwareapi/result/delete?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH |
|
Success: Response Code: 200
{
"message":"Result deleted" } Failure: Response Codes: 400, 403, 500
{
"message":"Error message details" } |
This section contains detailed information on what to include in the JSON parameters listed in the above individual race results endpoints.
JSON PARAMETER | FIELDS | EXAMPLES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
result_info This is used to identify the individual results. If id is provided, none of the other fields are required. Otherwise, all other fields except bib_number are required. |
|
Example #1: Only using id.
{
"id":11111 } Example #2: Without using id.
{
"name":"Jane Doe", "event_id":12345, "year":2020 } |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
new_values This is used to define the new values for a result. At least one field must be provided (can be any of the fields). If a field is submit as an empty string, that field will be deleted from the result. |
|
Example #1: Only one value.
{
"whole_name":"John Doe" } Example #2: Several Values, while deleting the value under city.
{
"bib_number":55, "first_name":"Jane", "last_name":"Doe", "city":"", "state":"Washington", "country":"USA", "gender":"F", "age":36, "gun_time":"00:55:32.78", "overall_place":12, "age_gender_division_place":5, "division":"Female 35 to 39", "custom_2":"Pizza", "custom_6":"Team Underdog" } |
API users can upload race results following a standard GRU format that is in a JSON encoded array of arrays.
ENDPOINT | POST FIELDS | RESPONSE | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/upload/results http://demo.raceentry.com/softwareapi/upload/results?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH |
|
Success: Response Code: 200
{
"message": "Results uploaded" } Failure: Response Codes: 400, 403, or 500
{
"message": "Error message details" } |
Header Name | Corrosponding Data | Corrosponding Data Format | Required |
---|---|---|---|
whole_name | The full name of the participant |
string (limit 64 characters) |
Yes (if first_name and last) name is not provided |
first_name | The participant’s first name |
string (limit 32 characters) |
Yes (if whole_name is not provided) |
last_name | The participant’s last name |
string (limit 32 characters) |
Yes (if whole_name is not provided) |
gun_time | The participant’s result finish time from gun fire time |
Time (hh:mm:ss.ss) or (hh:mm:ss) |
Yes (if chip_time is not provided) |
chip_time | The participant result finish time based on chip time |
Time (hh:mm:ss.ss) or (hh:mm:ss) |
Yes (if gun_time is not provided) |
age_group | The participant age group |
string (limit 32 characters) |
No |
age_group_place | The participant’s place in his or her age group | int | Yes (if overall_place or gender_place is not provided) |
bib_number | The participant’s bib number | int | Yes |
overall_place | The participants overall place in the race | int | Yes (if gender_place or age_group_place is not provided) |
pace | The participant’s overall pace |
Time (hh:mm:ss.ss) or (hh:mm:ss) |
No |
category | The participant’s race category (marathon, half, 10K, etc.) |
string (limit 32 characters) |
Yes |
gender | The participant’s gender |
char (limit 1 character) |
No |
gender_place | The participant’s finish place based on his or her gender | int | Yes (if overall_place or age_group_place is not provided) |
city | The participant’s city |
string (limit 64 characters) |
No |
state | The participant’s state |
string (limit 64 characters) |
No |
country | The participant’s country |
string (limit 48 characters) |
No |
age | The participant’s age | int | No |
age_division | The participant’s age group |
string (limit 32 characters) |
No |
any custom header string | The first custom field of data |
string (limit 32 characters) |
No |
any custom header string | The second custom field of data |
string (limit 32 characters) |
No |
any custom header string | The third custom field of data |
string (limit 32 characters) |
No |
any custom header string | The fourth custom field of data |
string (limit 32 characters) |
No |
any custom header string | The fifth custom field of data |
string (limit 32 characters) |
No |
any custom header string | The sixth custom field of data |
string (limit 32 characters) |
No |
Warning! The first 6 unrecognized headers are considered to be custom fields and the header names and corresponding row data will be saved in the results as custom fields to display in the results
The following are examples of the expected format of the GRU data. Notice the first array element consists of header names. The subsequent array elements are the result row data corresponding to the header rows. The final JSON encoded array of arrays is the expected API format.
These are the endpoints that will return information about clubs. They will only give information about clubs that the user (determined by the key/secret pair) has permission to access.
Parameter | Format | Value | Affect | Applies To |
---|---|---|---|---|
tmp_key | string | Returned from login API call | Allows authorized access to API endpoints | All (required) |
tmp_secret | string | Returned from login API call | Allows authorized access to API endpoints | All (required) |
club_id | int | Specifies the club from which to retreive results |
get_members (required) |
|
active_status | enum: 'Complete', 'Incomplete', 'Deleted', 'Completed Dupicate', 'Pending Edit' | Specifies the status of the members from which to retreive results |
get_members (optional) |
|
status_id | int | Specifies the status of the members from which to retreive results using status id rather than status name |
get_members (optional) |
|
start_date | 'YYYY-MM-DD' | Only returns members whos memberships have not expired as of this date |
get_members (optional) |
|
end_date | 'YYYY-MM-DD' | Only returns members whos memberships have not expired before this date |
get_members (optional) |
ENDPOINT | RESPONSE |
---|---|
memberships/get-clubsReturns an array of clubs Note: Failure returns a status code of 403 http://demo.raceentry.com/softwareapi/memberships/get-clubs?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH |
Success: Response Code: 200
[
{ "id": "12345", "site_id": "1", "company_id": "12345", "payee_id": "12345", "tax_exempt": "0", "processor_id": "12345", "currency_id": "123", "disabled": "1", "name": "My Club", "url": "my-club", "external_url": "https://www.myclub.com/home", "description": "<p>This is my club's description</p>", "membership_by_location": "1", "contact_first_name": "John", "contact_last_name": "Doe", "contact_email": "jdoe@notrealemail.com" "created_by": "12345" "created_date": "1970-01-01 00:00:00" "terms_initials": "jd" }, { "id": "12345", "site_id": "1", "company_id": "12345", "payee_id": "12345", "tax_exempt": "0", "processor_id": "12345", "currency_id": "123", "disabled": "1", "name": "Our Club", "url": "our-club", "external_url": "https://www.ourclub.com/home", "description": "<p>This is our club's description</p>", "membership_by_location": "1", "contact_first_name": "Jane", "contact_last_name": "Doe", "contact_email": "jadoe@notrealemail.com" "created_by": "12345" "created_date": "1970-01-01 00:00:00" "terms_initials": "jd" }, ] |
memberships/get-membersReturns an array of clubs http://demo.raceentry.com/softwareapi/memberships/get-clubs?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&club_id=12345 |
Success: Response Code: 200
[
{ "id": "12345", "hash": "alkjsdfiknavio", "club_id": "12345", "group_id": "12345", "status_id": "2", "email": "jd@gmail.com", "first_name": "John", "last_name": "Doe", "address": "1234 fake road", "city": "New York", "state_id": "1", "province": "null", "zip": "12345", "country_code": "USA", "phone": "1234567890", "birthdate": "1970-01-01" "gender": "M" "waiver_initials": "jd" "waiver_signature": "john doe" "last_modified": "1970-01-01 00:00:00" "subscription_id": "12345" "start_date": "1970-01-01" "expiration_date": "2100-01-01" "paid_member_count": "100" }, { "id": "12345", "hash": "alkjsdfiknavio", "club_id": "12345", "group_id": "12345", "status_id": "2", "email": "jd@gmail.com", "first_name": "Jane", "last_name": "Doe", "address": "1234 fake road", "city": "New York", "state_id": "1", "province": "null", "zip": "12345", "country_code": "USA", "phone": "1234567890", "birthdate": "1970-01-01" "gender": "F" "waiver_initials": "jd" "waiver_signature": "jane doe" "last_modified": "1970-01-01 00:00:00" "subscription_id": "12345" "start_date": "1970-01-01" "expiration_date": "2100-01-01" "paid_member_count": "100" ] Failure: Response Codes: 400
{
"message": "Club ID required" } |