Rodeo Ticket Software API Documentation


This API was designed specifically for the Director software to allow certain timers and directors integration into our Rodeo Ticket 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':

{
"message": "The details of the error message"
}

*All test endpoints start with https://demo.rodeoticket.com/softwareapi

*All production endpoints start with https://www.rodeoticket.com/softwareapi





API USER CREATION

Before a user can access any rodeo data, they must have an API key and token. This is only provided to users that exist in Rodeo Ticket’s user database. This function allows an authorized Rodeo Ticket 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 Rodeo Ticket rodeo information.

This feature cannot create authorized Rodeo Ticket API partners. You must contact Rodeo Ticket to receive a Rodeo Ticket 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.rodeoticket.com/softwareapi/user/create?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH

Parameter Format Required
first_name string
(limit 32 characters)
YES
last_name string
(limit 32 characters)
YES
organization string
(limit 48 characters)
YES
phone string
(limit 30 characters)
YES
email string
(limit 120 characters)
YES
password string
(limit 32 characters)
YES

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"
}

RODEO CREATION DATA

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_data


http://demo.rodeoticket.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"
},
...
]
}

RODEO CREATION

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 Rodeo Ticket'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.rodeoticket.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

Parameter Format Required
event[event-name] string
(between 4 - 128 characters)
YES
event[event-dom-timezone-id] enum
(1, 2, 3, 4, 5, 6, or 7)
YES
event[event-description] string
(min 4 characters)
YES
event[event-external-url] string
(limit 256 characters)
YES
event[event-type-id] enum
(1, 2, 3, 4, 5, 6, 7, or 10)
YES
event[contact-first-name] string
(limit 32 characters)
YES
event[contact-last-name] string
(limit 32 characters)
YES
event[contact-email] string
(limit 255 characters)
YES
eventYear[event-year-address] string
(limit 64 characters)
YES
eventYear[event-year-city] string
(limit 32 characters)
YES
eventYear[event-year-state] int
(1 - 60)
YES
eventYear[event-year-country] enum
(USA only)
YES
eventYear[event-year-zipcode] string
(between 3 - 10 characters)
YES
eventYear[event-year-datetime] timestamp
(mm/dd/YYYY HH:mm)
YES
eventYear[terms-initials] string
(between 2 - 4 characters)
YES

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"
}

RODEO COPY TO NEXT YEAR

This endpoint allows an authenticated user to copy an existing event to a new year.

In Rodeo Ticket, '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, merchandise and volunteer information is not copied over automatically and should be re-added on Rodeo Ticket.

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.rodeoticket.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

Parameter Format Required
event_id_to_copy int
YES
event[event-dom-timezone-id] enum
(1, 2, 3, 4, 5, 6, or 7)
YES
event[event-description] string
(min 4 characters)
YES
event[event-external-url] string
(limit 256 characters)
YES
event[event-type-id] enum
(1, 2, 3, 4, 5, 6, 7, or 10)
YES
event[contact-first-name] string
(limit 32 characters)
YES
event[contact-last-name] string
(limit 32 characters)
YES
event[contact-email] string
(limit 255 characters)
YES
eventYear[event-year-address] string
(limit 64 characters)
YES
eventYear[event-year-city] string
(limit 32 characters)
YES
eventYear[event-year-state] int
(1 - 60)
YES
eventYear[event-year-country] enum
(USA only)
No
eventYear[event-year-zipcode] string
(between 3 - 10 characters)
YES
eventYear[event-year-datetime] timestamp
(mm/dd/YYYY HH:mm)
YES
eventYear[terms-initials] string
(between 2 - 4 characters)
YES

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"
}

RODEO INFORMATION

These are the endpoints that will return information about and set certain settings for rodeos. They will only give information about rodeos that the user (determined by the key/secret pair) has permission to access.

Query Parameters

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)

Endpoints

ENDPOINT RESPONSE

/get_events

Returns an array of rodeos

Note: Failure returns a status code of 403


http://demo.rodeoticket.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",
"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",
"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 rodeo 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_categories

Returns 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 rodeo event


http://demo.rodeoticket.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_questions

Returns 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.rodeoticket.com/softwareapi/get_event_questions?tmp_key=KEY_HASH&tmp_secret=SECRET_HASH&event_id=12345



Possible Question Types

Type Description
Single Line Text Answers with free-form responses up to 256 characters
MultiLine Text Allow registrants to write responses longer than 256 characters
Dropdown Allow registrants to select from a dropdown list of options
Radio Allow registrants to select from options with radio buttons
Checkbox Allow registrants to select multiple checkboxes
Pace Allow registrants to enter a time
Runner Editable Dropdown Participants can add choices to the dropdown

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_participants

Returns an array of partipants only

Requires event_id in the GET request


http://demo.rodeoticket.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_teams

Returns 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.rodeoticket.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_teams

Returns an array of teams in a category

Cannot return event-wide teams (teams across categories)

Requires category_id in the GET request


http://demo.rodeoticket.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_pin

Returns 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.rodeoticket.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_pin

Sets 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.rodeoticket.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_access

Sets 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.rodeoticket.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"
}

CLUB INFORMATION

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.

Query Parameters

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)

Endpoints

ENDPOINT RESPONSE

memberships/get-clubs

Returns an array of clubs

Note: Failure returns a status code of 403


http://demo.rodeoticket.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-members

Returns an array of clubs


http://demo.rodeoticket.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"
}