Connecting to your CRM API

by Scott Dilley - CTO 30 Nov 1999

Overview

Each Funraisin platform comes with its own API allowing you to access your data from other 3rd party applications. Using the API you can tap directly into your data in real-time to store your data in other CRM systems or to simply display content such as leaderboards on other websites.

Please note that this API is intended to be used for CRM integrations, it is not designed to be used for mobile apps since the credentials would become accessible for malicious use. For mobile apps you will need to read our article on the Fundraiser API

Please pop in a support ticket for assistance along the way and so we can assist you.

Technology

The Funraisin API is designed to allow sites access to their own data via RESTful requests and to also allow some limited ability for updating and creating records. This API will not allow for more triggered requests such as processing payments or sending out tax receipts.

Limits

API query requests are not limited since you will be querying your own data on your own instance, therefore we leave the responsibility of limiting the number and frequency of requests up to each client.

Datasets though will always be limited to no more than 1000 records per request.

Data Limits

Your API will provide you with access to almost ALL of your data with the exception of information such as encrypted passwords. The data is provided to you completely unfiltered therefore we suggest applying your own validation and formatting rules.

 

Understanding the Funraisin Data Structure

A typical Funraisin platform can be broken down into the following key data areas.

Object Comments
Events all online, offline and DIY events
Events_tickets ticket options for offline events
Events_waves wave options for offline and online events
Events_products shop products at an event level
Members_guests ticket holders or offline event guests
Members all fundraisers and event entrants
Members_history a member’s entry into any event
Members_history_options event-specific options e.g. merchandise, waves
Donations all donations
Donations_scheduled regular giving donors
Teams  
Transactions all monetary transactions
Pages static content
Products products used for the shop and event merchandise
Product_options product options e.g. size or colour etc
Sales all product purchases
Sales_Items individual line items for shop purchases
Raffles all raffles
Raffles_Sales all raffle sales

Below is a more detailed description of each object.

Events and Members

All event attendees/fundraisers are stored as members and are then linked to an event via the members_history object. A single member can have unlimited members_history records, depending on how many events they are participating in, however in most P2P cases they will only have a single members_history record.

Donations

All donations are linked to either an event or a page (if not a sponsored donation). Any sponsored donation will be linked to an event and will also be linked to a member and/or a team if they are sponsoring a team.

Note: Donations will contain duplicate records since a donor is never asked to log in to make a donation. If you donate 10 times then you will have 10 donor records all with their own unique ID.

Transactions

A transaction contains just the monetary information and will either be linked to a donation or an event registration fee (if applicable) and in many cases is not needed since the same information will also be contained in either the donation or members_history objects.

Teams

Teams are optional for any event and if enabled will contain information such as team names, URLs, etc. Members within a team are linked from within their members_history record.

The diagram below shows a visual understanding of how the objects are connected.

Ticketholders / Guests

Ticketholders/guests are used for ticketed events are for all events these are people that are added by the purchaser for those attending the event

-

Storing External IDs

All objects within Funraisin have an external CRM ID field that can be used to store your own unique IDs against any record.

Creating a User

To connect to your API first you need to create a user and allow that user access to the API. This can be done in Funraisin > User Admin. Jump in and create a new user and make sure you tick the “API Access” checkbox and then keep these credentials handy. You will also be able to retrieve the user's API key at this stage for use later on. 

Your API URL

To access your API you can use https://yourdomain.com/api/[endpoint]

Authentication

When connecting to your API you need to send through an API key for the user that you created in the step above. This can be done either using an Authentication header or via simple GET variable "apikey", when retrieving records or POST variables when updating or creating new records. We recommend that the APi Key is only sent via GET for testing purposes, for a production site using the Authentication header is preferred

For example

curl -H "Authorization: Bearer [APIKey]" "https://yourdomain.como/api/[endpoint]"

or

https://yourdomain.com/api/[endpoint]?apikey=[APIkey]

Specifying Formats and Date Ranges

When accessing each endpoint you can send a GET variable “format” to specify whether you want us to return the data in CSV of JSON format. If you don’t specify the format then you we will use CSV.

Each endpoint also has additional GET variables for filtering the data date ranges. When using dates please use the form “yyyy-mm-dd”.

Using “date_from” will return any record created or modified since that date. Using “date_to” will return any record created or modified prior to that date. Both “date_from” and “date_to” can be used together or on their own.

e.g. The below example will grab all donations made in 2016

https://yourdomain.com/api/donations?username=apiuser@yourdomain.com&password=apipassword&date_from=2016-01-01&date_to=2016-12-31

Paging & Limiting Results

For large datasets you can use the GET parameter “limit” to restrict the number of rows returned. Additionally, you can use the “offset” parameter to then handle paging.

e.g. https://yourdomain.com/api/donations?apikey=[APIkey]&limit=1000&offset=1000

By default all endpoints are limited to 1000 records unless specified otherwise via the limit querystring.

To find out how many records are available we will provide you with a record count.

  • If using CSV formats then the very first column will be the total records available.
  • If using JSON then the first column will be “total_records” and then the actual data will be returned via a “data” column.

Note that you cannot increase the results to greater than 1000

Updating and Creating New Records

Some endpoints will allow you to update or create new records by posting an array called “data” to the endpoint.

Example: POST to https://yourdomain.com/api/donations/123

data[d_email] = joeblogs@gmail.com;
data[d_phone_mobile] = 0404 123 456;

Will update donation record 123 with the above details.

Curl example

curl -d "data[crm_donor_id]=123"  "https://domain.com/api/donations/1?apikey=abcdefghij"

Please note that when Creating new records, the API won't interact with any of the other features within Funraisin. For example, adding a donation record won't send out any automated email or activate any fundraising triggers. etc.

Deleting Records

Some endpoints will allow you to delete records by making a DELETE request to the endpoint.

Curl example

curl -x DELETE -d "data[donation_id]=1"  "https://domain.com/api/donations/1?apikey=abcdefghij"

Working with Custom Fields

Some data sources support custom fields e.g. donations, teams, events, organisation pages, fundraisers. If a data source does support custom fields then these will automatically be available on the relevant endpoiint when specifying the format in JSON only.

To update or create new custom fields, you can simply post the field using the following format:

curl -d "data[customfield][field_name]=Value" "https://domain.com/api/donations/1?apikey=abcdefghij"

Searching and Advanced Filtering

Each endpoint contains specific filtering which is described below on each endpoint, but in some cases, you may need to filter data on a column which hasn't been catered for. In this instance, you are also able to add in additional filtering for any endpoint when using GET.

For additional filtering you can provide a "filter" array specifying the field name and value you want to filter on, as shown below

filter[field-name1]=value&filter[field-name2]=value

Example curl "https://yourdomain.com/api/donations?filter[d_email]=joe@blogs.com"

This will filter results pulling out records where donor's email addres is "joe@blogs.com"

Similary for searching, you can also specify a "search" array which we will use to perform a LIKE based search on whatever field you specify.

Example curl "https://yourdomain.com/api/donations?search[d_email]=blogs.com"

This will search for anything containing "blogs.com" on the email field in donations.

Endpoints

There are 2 types of endpoints for accessing your data, we have static endpoints and dynamic endpoints.

Static endpoints are simply direct access to your data tables, they return every column, un-formatted by us, making it ideal for accessing data for the purposes of storing in an external CRM.
Dynamic endpoints are the exact opposite. They consist of data that has been manipulated by us to produce more meaningful information, making these ideal for the use of displaying things like leaderboards on external websites.



Static Endpoints

The following static endpoints allow you to access your data tables.

Donations

Url: https://yourdomain.com/api/donations
Formats: CSV (default) or JSON
Filter Options: date_from, date_to, member_id, event_id, team_id. history_id
Primary key: donation_id
Foreign Keys: member_id,event_id,history_id,team_id,page_id
External ID: crm_donor_id

Donations

Column Type   Default Comments
donation_id bigint(20)      auto increment ID
event_id bigint(20)   0  
team_id bigint(20)   0  
member_id bigint(20)   0  
cause_id bigint(20)   0  
fbuser_id varchar(150)      
fbuser_pic varchar(150)      
history_id bigint(20)   0  
charity_id bigint(20)   0  
page_id bigint(20)   0  
event_page_id bigint(20)   0  
smscode_id bigint(20)   0  
sale_id bigint(20)   0  
sale_item_id bigint(20)   0  
product_id bigint(20)   0  
raffle_sale_id bigint(20)   0  
matched_id bigint(20)   0  
related_donation_id bigint(20)   0  used for matched giving and re-issuing tax receipts
donation_hash varchar(255)      auto generated hash
donation_type varchar(20)   online  online,offline,personal,registration,sms
donation_frequency varchar(50)      weekly,monthly,annual
donation_period int(4)   0  
number_donations int(4)   1  
donation_reason varchar(100)      
donation_reason_for text      
donation_interval varchar(50)      
display_on enum('Y', 'N')   Y  
d_photo varchar(150)      
d_title varchar(20)      
d_fname varchar(150)      
d_lname varchar(150)      
d_lname_prefix varchar(100)      
d_organisation varchar(150)      
d_email varchar(150)      
is_fundraiser_email enum('Y', 'N')   N  Flagged Y when fundraiser adds offline donation using own email
care_of_email varchar(150)      
d_optin enum('Y', 'N')   N  
d_external_optout enum('Y', 'N')   N  flagged Y when opts out from mailchimp, campaign monitor, etc
d_external_optout_date datetime   0000-00-00 00:00:00  
d_optin_email varchar(1)      
d_optin_sms varchar(1)      
d_optin_post varchar(1)      
d_optin_phone varchar(1)      
d_optin_text text      
d_optin_charity enum('Y', 'N')   N  Not currently used
d_optin_fees enum('Y', 'N')   N  
d_fee double(13,2)   0.00  
d_gender enum('M', 'F', 'O')   NULL  
d_language varchar(15)   EN  
d_dob date   0000-00-00  
d_address_unit varchar(20)      
d_address_number varchar(50)      
d_address_street varchar(255)      
d_address_2 varchar(255)      
d_address_suburb varchar(255)      
d_address_pcode varchar(50)      
d_address_state varchar(150)      
d_address_country varchar(150)      
d_phone varchar(100)      
d_phone_home varchar(80)      
d_phone_work varchar(80)      
d_phone_mobile varchar(80)      
d_phone_mobile_suffix varchar(10)      
d_comments text      
d_leave_message enum('Y', 'N')   N  
d_display_name varchar(150)      
d_receipt varchar(50)   personal  
d_anonymous enum('Y', 'N')   N  
d_amount double(13,2)   0.00  actual donation amount
d_amount_local double(13,2)   0.00  
d_currency varchar(20)      
d_currency_rate varchar(40)   1.00000  
d_currency_platform_rate varchar(40)      
d_amount_free double(7,2)   0.00  amount entered into free text field (not used for donation)
d_amount_sel double(7,2)   0.00  amount selected from dollar handle (not used for donation)
gateway_customer_ref varchar(255)      
gateway_card_ref varchar(255)      
po_number varchar(32)      auto generated number sent to Stripe, Paypal, etc
tax_ref varchar(80)      payment reference  returned from Stripe, PayPal, etc
card_type varchar(20)      
payment_method varchar(60)   credit card  
card_number varchar(20)      
card_name varchar(150)      
card_expiry varchar(20)      
cheque_name varchar(150)      Admin only
cheque_number varchar(150)      Admin only
eft_reference varchar(255)      Reference entered by donor when paying by EFT
date_paid datetime   0000-00-00 00:00:00  
date_banked datetime   0000-00-00 00:00:00  
d_status varchar(10)   paid  paid, pledge, refund, void
d_receipt_num int(7)   0000000  
d_receipt_sent enum('Y', 'N')   N  
is_mobile enum('Y', 'N')   N  If donating via mobile device
is_donation enum('Y', 'N')   Y  
is_profile_donation enum('Y', 'N')   N  Flagged Y when donating from a profile page
d_refund_amount double(7,2)   0.00  
d_refund_reason text      
d_refund_date datetime   0000-00-00 00:00:00  
d_reissue_date datetime   0000-00-00 00:00:00  
gift_aid enum('Y', 'N')   N  
sent_thanks enum('Y', 'N')   N  Flagged Y when sent email by Fundraiser
in_memory enum('Y', 'N')   N  
in_memory_title varchar(50)      
in_memory_fname varchar(150)      
in_memory_lname varchar(150)      
in_memory_email varchar(150)      
in_memory_address1 varchar(255)      
in_memory_address2 varchar(255)      
in_memory_card enum('Y', 'N')   N  
ecard_first_name varchar(150)      
ecard_last_name varchar(150)      
ecard_email varchar(150)      
ecard_comments text      
ecard_address text      
kw_address varchar(255)      Google lookup value if used
donor_lat varchar(150)      
donor_lng varchar(150)      
donor_ip varchar(150)      
utm_campaign text      
utm_source text      
utm_medium text      
utm_content text      
utm_term text      
donation_tags text      
crm_donor_id varchar(255)      
ecrm_customer_id varchar(255)      
last_logged_in date   0000-00-00  
ecrm_last_synced_date datetime   0000-00-00 00:00:00  
last_updated datetime   0000-00-00 00:00:00  
date_created datetime   0000-00-00 00:00:00  

Get all donations

To access your donation data you can use the below methods.

GET https://yourdomain.com/api/donations

Get a single donation

If you want to get a specific donation record you can specify the id of the donation in the url

GET https://yourdomain.com/api/donations/[donation_id]

Get all donations from an event

If you want to get donations from specific events you can apply the following GET parameter

GET https://yourdomain.com/api/donations?event_id=123

Create a new donation

To create a new donation record you can send a POST request with the fields sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/donations

This will produce a result of Success or Failure.

Update a donation

To update an existing donation you can send a POST request specifying the donation_id in the url, with any field that you want updated sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/donations/[donation_id]

This will produce a result of Success or Failure.

Recurring (scheduled) Donations

The following 2 endpoints relate specifically to regular donors. A regular donor exists in 2 parts, firstly the schedule and secondly the recurring donations themselves.

Url: https://yourdomain.com/api/scheduleddonations
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: id

Column Type Default Comments
id bigint(20)    auto-incrementing
donation_id bigint(20)    foreign key to donations table
d_amount double(7,2)   donation amount
donation_frequency varchar(150)   weekly, monthly, yearly
donation_period int(4)   payment reference from gateway
donation_day varchar(10)    1-7 for weekly, 1-28 for monthly
start_date date    
card_expiry date    
donation_status int(1)   1 = active, 2= archived
date_created datetime    

Get all scheduled donations

To access your donation data you can use the below methods.

GET https://yourdomain.com/api/scheduleddonations

Update a scheduled donation

To update an existing donation you can send a POST request specifying the donation_id in the URL, with any field that you want to be updated sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/scheduleddonations/[id]

Recurring Donation History

Url: https://yourdomain.com/api/recurringdonations
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: id
Read only

Column Type Default Comments
id bigint(20)    
donation_id bigint(20)    
d_amount double(7,2)   donation amount
po_number varchar(150)   auto-generate purchase order
tax_ref varchar(255)   payment reference from gateway
crm_donation_id varchar(255)    
date_created datetime    

Get all recurring donations

To access your donation data you can use the below methods.

GET https://yourdomain.com/api/recurringdonations

Get a single recurring donation

If you want to get a specific donation record you can specify the id of the donation in the URL

GET https://yourdomain.com/api/recurringdonations/[id]

 

 

Participants

Url: https://yourdomain.com/api/participants/
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: member_id
External ID: crm_member_id

To access your fundraisers/participants you can use the below methods. Note that this data will NOT contain any information relating to their event, it will only give you the main contact details for each participant such as names, email, phone numbers, address data etc. To get information relating to their event, use the below method Participants Events.

 
Column Type   Default Comments
member_id bigint(20)      Autoincrement ID
charity_id bigint(20)   0  
member_hash varchar(255)      auto-generated hash
member_login_token varchar(255)      
related_member_id bigint(20)   0  
m_rego_number varchar(150)      
fbuser_id varchar(150)      
fbuser_pic varchar(255)      
m_status_type varchar(100)      
m_title varchar(50)      
m_fname varchar(150)      
m_lname varchar(150)      
m_lname_prefix varchar(100)      
m_middle varchar(100)      
m_maiden varchar(100)      
m_email varchar(150)      
m_username varchar(150)      the fundraiser's url
m_pass varchar(255)      
m_dob date   0000-00-00  
m_gender varchar(20)   NULL  
m_language varchar(150)   EN  
m_address_unit varchar(20)      
m_address_number varchar(50)      
m_address_street varchar(255)      
m_address_2 varchar(255)      
m_address_suburb varchar(255)      
m_address_city varchar(150)      
m_address_pcode varchar(20)      
m_address_state varchar(150)      
m_address_country varchar(150)      
kw_address varchar(255)      
postal_is_same enum('Y', 'N')   Y  
m_postal_unit varchar(20)      
m_postal_number varchar(50)      
m_postal_street varchar(255)      
m_postal_suburb varchar(255)      
m_postal_city varchar(150)      
m_postal_pcode varchar(20)      
m_postal_state varchar(20)      
m_postal_country varchar(150)      
m_phone_home varchar(80)      
m_phone_work varchar(80)      
m_phone_mobile varchar(80)      
m_phone_mobile_suffix varchar(10)      
m_emergency_contact varchar(150)      
m_emergency_contact_alt varchar(150)      
m_emergency_contact_type varchar(150)      
m_emergency_phone varchar(150)      
m_medical_conditions varchar(10)      
m_medical_conditions_text text      
m_business_contact_name varchar(150)      
m_business_contact_number varchar(150)      
m_medication varchar(10)      
m_medication_details text      
m_hospitalised varchar(10)      
m_hospitalised_details text      
m_diet_notes text      
m_addition_care text      
m_twitter varchar(150)      not used
m_instagram varchar(100)      not used
m_pinterest varchar(150)      not used
m_snapchat varchar(100)      not used
participated_prior enum('Y', 'N')   N  not used
m_photo varchar(255)      
m_coverphoto_personal varchar(255)      
m_background varchar(255)      
m_insupport varchar(150)      
m_codeblock_personal text      
m_codeblock_personal_mobile text      
m_confirmation_sent enum('Y', 'N')   N  
m_reminder_sent enum('Y', 'N')   N  
m_donation_sent enum('Y', 'N')   N  
m_goal_sent enum('Y', 'N')   N  
m_alert_donation enum('Y', 'N')   Y  not used
m_alert_goal enum('Y', 'N')   Y  not used
m_agreed_waiver enum('Y', 'N')   N  not used
m_name_alt varchar(155)      
m_gallery_title varchar(150)      not used
m_gallery_copy text      not used
m_ranking_overall_on enum('Y', 'N')   Y  not used
m_ranking_team_on enum('Y', 'N')   Y  not used
agree_site_terms enum('Y', 'N')   N  not used
participated_before varchar(255)      no longer used
agree_to_pay enum('Y', 'N')   Y  no longer used
agree_over_18 enum('Y', 'N')   N   no longer used
agree_to_fundraise enum('Y', 'N')   N  no longer used
m_company varchar(150)      
m_company_matchgiving enum('Y', 'N')   N  
m_position varchar(150)      
m_shirt_size varchar(80)      
referal varchar(150)      not used
is_mobile enum('Y', 'N')   N  Flagged Y if on a mobile device when registering
optin enum('Y', 'N')   N  
m_optin enum('Y', 'N')   N  
m_optin_text text      
m_optin_date datetime   0000-00-00 00:00:00  
m_optin_email varchar(1)      
m_optin_sms varchar(1)      
m_optin_post varchar(1)      
m_optin_phone varchar(1)      
m_external_optout enum('Y', 'N')   N  
m_external_optout_date datetime   0000-00-00 00:00:00  
m_optout_triggers enum('Y', 'N')   N  
m_optout_triggers_date datetime   0000-00-00 00:00:00  
crm_member_id varchar(255)      
ecrm_customer_id varchar(255)      
gateway_customer_ref varchar(255)      
gateway_card_ref varchar(255)      
m_status int(1)   0  0=draft,1=live,2=archived
last_logged_in datetime   0000-00-00 00:00:00  
ecrm_last_synced_date datetime   0000-00-00 00:00:00  
last_updated datetime   0000-00-00 00:00:00  
date_created datetime   0000-00-00 00:00:00  

Get all participants

GET https://yourdomain.com/api/participants

Get a single participant

GET https://yourdomain.com/api/participants/[member_id]

Create a new participant

POST https://yourdomain.com/api/participants

Update a participant

POST https://yourdomain.com/api/participants/[member_id]

 

 

Participants Events

Url: https://yourdomain.com/api/participantsevents
Formats: CSV (default) or JSON
Options: date_from, date_to, member_id, event_id
Primary key: history_id
External ID: crm_history_id
Foreign keys: member_id,event_id,team_id

The participants' events endpoint produces information relating to each participant’s event that they are taking part in, whether it be an online event, an offline event or a DIY event. Information such as their fundraising target, payment information is held in this table.

Column Type Default Comments
history_id bigint(20)    
member_id bigint(20) 0  
event_id bigint(20) 0  
team_id bigint(20) 0  
group_id bigint(20)    
table_id bigint(20)    
wave_id text    
ticket_id text    
history_type enum(‘online’, ‘offline’, ‘diy’) online  
member_type varchar(150)    
bib_number varchar(20)    
seat_number int(4)    
is_active enum(‘Y’, ‘N’) N  
is_archived enum(‘Y’, ‘N’) N  
is_fundraising enum(‘Y’, ‘N’) Y  
is_team enum(‘Y’, ‘N’) N  
done_personaldetails enum(‘Y’, ‘N’) N  
done_eventoptions enum(‘Y’, ‘N’) N  
done_fundraising enum(‘Y’, ‘N’) N  
done_teamdetails enum(‘Y’, ‘N’) N  
conf_key varchar(80)    
entry_code varchar(20)    
promo_id bigint(20)    
paypal_token varchar(150)    
ticket varchar(32)    
number_tickets int(4)    
number_tables int(4)    
team_access enum(‘Y’, ‘N’) N  
m_display_reason enum(‘Y’, ‘N’) N  
m_target double(9,0) 0  
m_target_distance double(8,0)    
m_comments text    
m_reason text    
m_page_title varchar(255)    
m_event_photo varchar(255)   event specific profile pic
m_coverphoto varchar(255)   event specific coverphoto
m_donation_amount double(7,2) 0.00 personal donation amount
m_donation_amount_sel varchar(20)   dollar handle personal donation amount if applicable
m_donation_amount_free varchar(20)   free text personal donation amount if applicable
m_donation_po varchar(50)   auto generated purchase order for personal donation
m_donation_fee double(8,2)   optional contribution fee
m_donation_fee_optin enum(‘Y’, ‘N’) N optin to optional contribution fee
is_paid enum(‘Y’, ‘N’) N has paid
is_complete enum(‘Y’, ‘N’) N marked as completed entry
date_completed datetime   date marked as completed entry
total_paid double(7,2) 0.00  
total_paid_entry double(7,2)    
total_paid_ticket double(7,2) 0.00  
total_paid_paypal double(7,2) 0.00  
total_paid_card double(7,2) 0.00  
total_paid_extra double(7,2) 0.00  
total_paid_merchandise double(7,2)    
total_paid_donation double(7,2)    
total_paid_fees double(7,2)    
m_receipt_sent enum(‘Y’, ‘N’) N  
m_confirmation_sent enum(‘Y’, ‘N’) N  
payment_method varchar(50) credit card  
payment_source enum(‘online’, ‘offline’) online  
po_number varchar(150)   auto generated purchase order
tax_ref varchar(150)   payment reference from gateway
card_type varchar(20)    
card_number varchar(20)    
card_expiry varchar(20)    
card_name varchar(150)    
date_paid datetime    
bsb_number varchar(20)    
account_number varchar(50)    
cheque_name varchar(150)    
money_order_number varchar(50)    
sort_order bigint(20) 0  
activity_lat varchar(150)    
activity_lng varchar(150)    
card_token varchar(150)    
customer_token varchar(150)    
utm_campaign text    
utm_source text    
utm_medium text    
utm_content text    
utm_term text    
m_thanks_message text    
m_thanks_video varchar(255)    
m_thanks_image varchar(255)    
in_memory_name varchar(150)    
crm_history_id varchar(255)    
last_updated datetime    
date_created datetime 0000-00-00 00:00:00  

Get all participant’s events

Use this to return ALL participant events

https://yourdomain.com/api/participantsevents

Get a specific event record

To return a specific record you can send through the history_id

GET https://yourdomain.com/api/participantsevents/[history_id]

Get a specific participant’s event records

To get any events for a specific person you can send through the optional “member_id” in the querystring.

GET https://yourdomain.com/api/participantsevents?member_id=1234

Get all event records for a specific event

To retrieve a list of entries for a specific event you can send through the optional “event_id” in the querystring

GET https://yourdomain.com/api/participantsevents?event_id=123

Participants Options

Url: https://yourdomain.com/api/participantsoptions/[id]
Formats: CSV (default) or JSON
Options: date_from, date_to, member_id, history_id, event_id

The participants options endpoint produces information relating to any options that were selected during the entry process such as Merchandise or Waves.

Column Type Default
id bigint(20)  
option_type varchar(100) merchandise, wave, complimentary
event_id bigint(20) 0
member_id bigint(20) 0
history_id bigint(20) 0
product_id bigint(20)  
wave_id bigint(20) 0
shop_product_id bigint(20)  
option_id bigint(20) 0
option_num int(2) 0
option_textfield text  
option_cost double(7,2) 0.00
date_created datetime 0000-00-00 00:00:00

Get all records

To retrieve all participant’s products use

GET https://yourdomain.com/api/participantsoptions

Get a specific participant’s records

To retrieve product information during a specific registration you can send through the history_id of the registration (from the participants events table)

GET https://yourdomain.com/api/participantsoptions/?history_id=[history_id]

Participants Fitness

Url: https://yourdomain.com/api/participantsfitness/[id]
Formats: CSV (default) or JSON
Options: date_from, date_to, member_id, history_id, event_id

The participants fitness endpoint produces information relating to any connected fitnesss devices eg. FitBit or Strava.

Get all records

To retrieve all participant’s products use

GET https://yourdomain.com/api/participantsfitness

Get a specific participant’s records

To retrieve product information during a specific registration you can send through the history_id of the registration (from the participants events table)

GET https://yourdomain.com/api/participantsfitness/?history_id=[history_id]

Participants Fitness Activity

Url: https://yourdomain.com/api/participantsfitnessactivity/[activity_id]
Formats: CSV (default) or JSON
Options: date_from, date_to, member_id, history_id, event_id

The participants fitness endpoint produces information relating to any fitness data that has been added or recorded.

Get all records

To retrieve all participant’s products use

GET https://yourdomain.com/api/participantsfitnessactvity

Get a specific participant’s records

To retrieve product information during a specific registration you can send through the history_id of the registration (from the participants events table)

GET https://yourdomain.com/api/participantsfitnessactivity/?history_id=[history_id]

 

Teams

Url: https://yourdomain.com/api/teams
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: team_id
External ID: crm_team_id
Foreign Keys: event_id, history_id, captain_id

Column Type Default Comments
team_id bigint(20)    
event_id bigint(20) 0  
history_id bigint(20) 0 Links to history_id of captain
captain_id bigint(20) 0 Links to member_id of captain
t_name varchar(150)    
t_url varchar(150)    
t_target double(9,0) 0  
t_comments text    
t_page_title varchar(255)    
t_photo varchar(255)    
t_coverphoto varchar(255)    
t_alert_donation enum(‘Y’, ‘N’) Y  
t_alert_member enum(‘Y’, ‘N’) Y  
t_alert_goal enum(‘Y’, ‘N’) Y  
t_thanks_message text    
related_teams text    
t_public enum(‘Y’, ‘N’) Y  
crm_team_id varchar(255)    
t_status int(1) 1  
last_updated datetime 0000-00-00 00:00:00  
date_created datetime 0000-00-00 00:00:00  

Get all teams

To access your team data you can use the below methods.

GET https://yourdomain.com/api/teams

Get a single team

If you want to get a specific team record you can specify the team_id of the team in the url

GET https://yourdomain.com/api/teams/[team_id]

Create a new team

To create a new team record you can send a POST request with the fields sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/teams

This will produce a result of Success or Failure.

Update a team

To update an existing team you can send a POST request specifying the team_id in the url, with any field that you want updated sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/teams/[team_id]

This will product a result of Success or Failure.

 

Events

Url: https://yourdomain.com/api/events
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: event_id
External ID: crm_event_id

Column Type Default Comments
event_id bigint(20)    
created_member_id bigint(20)    
diy_category_id bigint(20)    
event_key varchar(255)    
event_code varchar(20)    
is_locked enum(‘Y’, ‘N’) N  
has_page enum(‘Y’, ‘N’) N  
event_name varchar(150)    
event_type enum(‘online’, ‘offline’, ‘diy’) online  
event_category varchar(150)    
allow_entries enum(‘Y’, ‘N’) Y  
entry_type varchar(80)    
entry_limit varchar(20)    
use_entry_code enum(‘Y’, ‘N’) N  
entry_code varchar(50)    
event_fee double(7,2) 0.00  
event_fee_description text    
event_ticket_price double(7,2)    
event_tickets int(5)    
event_tickets_max int(4)    
event_tickets_min int(3) 1  
event_allow_tables enum(‘Y’, ‘N’) N  
event_tables int(4)    
event_table_price double(7,2)    
event_seats_per_table int(4)    
event_fundraising enum(‘Y’, ‘N’) N  
event_domain varchar(255)    
st_prefix_donation varchar(50) DON  
st_prefix_registration varchar(50) REG  
st_prefix_ticket varchar(50) TKT  
st_prefix_shop varchar(80) SHP  
event_closed enum(‘Y’, ‘N’) N  
event_closed_date date    
event_closed_time time    
event_closed_msg text    
event_short_desc text    
event_about_info text    
event_about_image varchar(255)    
event_important_info text    
event_important_image varchar(255)    
event_banner varchar(255)    
event_mobile_banner varchar(255)    
event_image varchar(255)    
event_header_height int(3) 300  
event_header_bgcolor varchar(50)    
event_header_html text    
event_header_mask enum(‘Y’, ‘N’) Y  
event_header_mask_color varchar(20) #ffffff  
event_header_mask_opacity varchar(5) 0.6  
event_thumb varchar(255)    
event_target double(13,2) 0.00  
event_offline double(13,2)    
event_date date    
event_expiry date    
event_time varchar(50)    
event_end_time varchar(10)    
event_location varchar(255)    
event_unit varchar(20)    
event_number varchar(20)    
event_street varchar(150)    
event_suburb varchar(150)    
event_city varchar(50)    
event_postcode varchar(80)    
event_state varchar(20)    
event_country varchar(255)    
event_map text    
event_website varchar(255)    
show_address enum(‘Y’, ‘N’) N  
show_emergency_contact enum(‘Y’, ‘N’) N  
show_terms enum(‘Y’, ‘N’) N  
show_waiver enum(‘Y’, ‘N’) N  
event_waiver text    
show_dob enum(‘Y’, ‘N’) N  
show_gender enum(‘Y’, ‘N’) N  
show_phone enum(‘Y’, ‘N’) N  
show_mobile enum(‘Y’, ‘N’) N  
show_donation enum(‘Y’, ‘N’) Y  
show_progress enum(‘Y’, ‘N’) N  
event_fundraising_banner varchar(255)    
event_fundraising_banner_mobile varchar(255)    
st_target_team int(7) 3000  
st_target_distance_member int(7) 0  
st_target_member int(7) 1000  
st_title_member varchar(255)    
event_fundraising_message text    
event_blog_message text    
st_title_team varchar(150)    
event_teamfundraising_message text    
event_facebook_like_member text    
event_facebook_like_team text    
event_twitter_like_member text    
event_twitter_like_team text    
event_email_like_member text    
event_email_like_team text    
event_email_like_subject_member varchar(150)    
event_email_like_subject_team varchar(150)    
event_email_join_team text    
event_email_join_subject_team varchar(150)    
event_facebook_share_member text    
event_facebook_share_team text    
event_twitter_share_member text    
event_twitter_share_team text    
event_social_sharing enum(‘Y’, ‘N’) Y  
event_social_sharing_public enum(‘Y’, ‘N’) Y  
event_alerts enum(‘Y’, ‘N’) N  
event_alert_ids varchar(255)    
event_campaign_from date    
st_teams enum(‘Y’, ‘N’) N  
st_donations enum(‘Y’, ‘N’) Y  
st_donations_personal enum(‘Y’, ‘N’) Y  
event_default_image varchar(255)    
event_default_team_image varchar(255)    
confirmation_page_id bigint(20)    
confirmation_url varchar(255)    
event_confirmation_html text    
send_confirmation_email enum(‘Y’, ‘N’) Y  
confirmation_email_template_id bigint(20)    
confirmation_email_subject varchar(255)    
confirmation_email_body text    
event_page_facts enum(‘Y’, ‘N’) Y  
event_page_date enum(‘Y’, ‘N’) Y  
event_page_location enum(‘Y’, ‘N’) Y  
event_page_fees enum(‘Y’, ‘N’) Y  
event_page_about enum(‘Y’, ‘N’) N  
event_page_info enum(‘Y’, ‘N’) N  
sort_order bigint(20)    
event_status int(1) 0  
crm_event_id varchar(255)    
last_updated datetime    
date_created datetime 0000-00-00 00:00:00  

Get all events

To access your event data you can use the below methods.

GET https://yourdomain.com/api/events

Get a single event

If you want to get a specific event record you can specify the id of the event in the url

GET https://yourdomain.com/api/events/[event_id]

Create a new event

To create a new event record you can send a POST request with the fields sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/events

This will produce a result of Success or Failure.

Update an event

To update an existing event you can send a POST request specifying the event_id in the url, with any field that you want updated sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/events/[event_id]

This will product a result of Success or Failure.

Event Products

Url: https://yourdomain.com/api/eventproducts
Formats: CSV (default) or JSON
Options: date_from, date_to,event_id
Primary key: product_id

Column Type Default Comments
product_id bigint(20)    
event_id bigint(20)    
shop_product_id bigint(20)    
product_price double(7,2)    
is_free enum('Y', 'N') N  
is_mandatory enum('Y', 'N') N  
sort_order int(4)    
product_status int(1) 1  
last_updated datetime    
date_created datetime    

Get all products

GET https://yourdomain.com/api/eventproducts

Get a specific product

GET https://yourdomain.com/api/eventproducts/

Event Waves

Url: https://yourdomain.com/api/waves
Formats: CSV (default) or JSON
Options: date_from, date_to, event_id
Primary key: wave_id

Foreign Keys: event_id, parent_id

Column Type Default Comments
wave_id bigint(20)    
event_id bigint(20)    
parent_id bigint(20)    
wave_name varchar(150)    
wave_code varchar(50)   code for reporting
wave_time varchar(100)    
wave_limit bigint(20)    
wave_tag text   field for tagging waves
wave_date date    
wave_price double(8,2)    
wave_description text    
wave_image varchar(255)    
bib_colour varchar(80)    
bib_numbers_start bigint(4)    
wave_status int(1) 1  
sort_order int(4)    
crm_wave_id varchar(255)    
last_updated datetime    
date_created datetime    

Get all waves

GET https://yourdomain.com/api/waves

Get a specific Wave

GET https://yourdomain.com/api/waves/{wave_id}

Get a specific Event’s Waves

GET https://yourdomain.com/api/waves?event_id={event_id}

Create a new wave

To create a new event record you can send a POST request with the fields sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/waves

This will produce a result of Success or Failure.

Update a wave

To update an existing event you can send a POST request specifying the event_id in the url, with any field that you want updated sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/waves/{wave_id}

This will product a result of Success or Failure.

DIY Themes

Url: https://yourdomain.com/api/themes/
Formats: CSV (default) or JSON
Options: date_from, date_to, category_id
Primary key: category_id
Foreign Keys: none

Column Type
category_id bigint(20)
page_id bigint(20)
charity_id bigint(20)
category_name varchar(150)
category_url varchar(150)
default_target double(8,0)
default_image varchar(150)
default_coverimage varchar(150)
default_blog_title varchar(255)
default_blog_content text
show_target enum('Y', 'N')
use_custom_nav enum('Y', 'N')
use_custom_dollarhandles enum('Y', 'N')
category_template varchar(100)
crm_category_id varchar(255)
last_updated datetime

Get all themes

GET https://yourdomain.com/api/themes

Get a specific theme

GET https://yourdomain.com/api/themes/{category_id}

Shop Products

Url: https://yourdomain.com/api/products
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: product_id

Column Type Default Comments
product_id bigint(20)    
product_name varchar(150)    
product_tags text    
product_slug varchar(255)    
product_category varchar(150)    
product_code varchar(50)    
product_image varchar(255)    
product_image_large varchar(255)    
product_cost double(7,2)    
product_price double(7,2)    
product_description text    
product_description_long text    
product_delivery_price double(5,2)    
product_status int(1) 1  
sort_order int(4)    
crm_product_id varchar(255)    
last_updated datetime    
date_created datetime    

Get all products

GET https://yourdomain.com/api/products

Get a specific Product

GET https://yourdomain.com/api/products/{product_id}

Shop Product Options

Url: https://yourdomain.com/api/productoptions
Formats: CSV (default) or JSON
Options: date_from, date_to,product_id
Primary key: option_id

Column Type Default Comments
option_id bigint(20)    
product_id bigint(20)    
option_name varchar(150)    
option_type varchar(50)    
option_code varchar(150)    
option_price double(8,2)    
option_image varchar(255)    
option_image_large varchar(255)    
option_stock bigint(20)    
option_delivery double(8,2)    
option_status int(1)    
last_updated datetime    
date_created datetime    

Get all product options

GET https://yourdomain.com/api/productoptions

Get a specific product option

GET https://yourdomain.com/api/productoptions/

Shop Sales

Url: https://yourdomain.com/api/sales
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: sale_id
External CRM ID: crm_sale_id

Column Type Default Comments
sale_id bigint(20)    
member_id bigint(20)    
history_id bigint(20)    
po_number varchar(150)    
sale_type enum(‘sale’, ‘credit’) sale  
voucher_id bigint(20)    
voucher varchar(80)    
title varchar(50)    
first_name varchar(150)    
last_name varchar(150)    
email varchar(150)    
mobile varchar(50)    
phone varchar(80)    
unit varchar(50)    
number varchar(50)    
street varchar(150)    
postcode varchar(20)    
suburb varchar(150)    
state varchar(20) nsw  
country varchar(150)    
age varchar(20)    
gender enum(‘M’, ‘F’) F  
company varchar(150)    
sub_total double(7,2)    
gst double(7,2)    
delivery double(7,2)    
total double(7,2)    
date_paid datetime    
tax_ref varchar(150)    
payment_method varchar(30)    
email_sent enum(‘Y’, ‘N’) N  
email_sent_date datetime    
notes text    
card_type varchar(100)    
card_name varchar(100)    
card_number varchar(25)    
card_expiry varchar(10)    
referral varchar(150)    
deliver_to_billing enum(‘Y’, ‘N’) N  
delivery_unit varchar(50)    
delivery_number varchar(50)    
delivery_street varchar(150)    
delivery_suburb varchar(150)    
delivery_postcode varchar(10)    
delivery_state varchar(20)    
shipped enum(‘Y’, ‘N’) N  
shipped_date datetime    
shipped_tracking varchar(150)    
is_mobile enum(‘Y’, ‘N’) N  
crm_sale_id varchar(255)    
last_updated datetime    
date_created datetime    

Get all Sales

GET https://yourdomain.com/api/sales

Get a specific Sale

GET https://yourdomain.com/api/sales/{sale_id}

Shop Sales Items

Url: https://yourdomain.com/api/salesitems
Formats: CSV (default) or JSON
Options: date_from, date_to, sale_id, product_id
Primary key: id

Column Type Default Comments
id bigint(20)    
sale_id bigint(20)    
product_id bigint(20)    
option_id bigint(20)    
quantity int(4)    
recipient_first_name varchar(150)    
recipient_last_name varchar(150)    
recipient_email varchar(150)    
recipient_comments text    
recipient_address text    
unit_cost double(7,2)    
product_size varchar(150)   deprecated
product_colour varchar(150)   deprecated
product_option varchar(150)   deprecated
date_created datetime    

Get all Sale Items

GET https://yourdomain.com/api/salesitems

Get a specific Sale

GET https://yourdomain.com/api/salesitems/

Transactions

Url: https://yourdomain.com/api/transactions
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: transaction_id
External ID: crm_transaction_id
Foreign Keys: member_id, history_id, donation_id, schedule_id

The transactions table, as the name suggests, stores information on all monetary transactions, from donations to registrations and merchandise purchases.

Column Type Default Comments
transaction_id int(11)    
transaction_type enum(‘donation’, ‘registration’, ‘merchandise’, ‘refund’)    
transaction_value double(8,2)    
transaction_fees double(8,2)    
transaction_notes text    
payment_type enum(‘credit card’, ‘paypal’, ‘refund’, ‘cash’, ‘cheque’)    
payment_reference varchar(255)    
member_id bigint(20)    
history_id bigint(20)    
donation_id bigint(20)    
schedule_id bigint(20)    
related_transaction_id bigint(20)    
po_number varchar(100)    
crm_transaction_id varchar(255)    
date_created datetime    

Get all transactions

GET https://yourdomain.com/api/transactions

Get a specific transaction

GET https://yourdomain.com/api/transactions/{transaction_id}

Create a new transaction

To create a new transaction record you can send a POST request with the fields sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/transactions

This will produce a result of Success or Failure.

Update a transaction

To update an existing transaction you can send a POST request specifying the transaction_id in the url, with any field that you want updated sent via the $_POST[“data”] array.

POST https://yourdomain.com/api/transactions/{transaction_id}

This will produce a result of Success or Failure.

Refund a transaction

To refund a transaction you can send a POST request specifying the transaction_id in the url, and a refund command and the amount to refund and the refund reason via the $_POST["data"] array.

POST -d "data[refund]&data[refund_value]=100.00&data[transaction_notes]=fraud" https://yourdomain.com/api/transactions/{transaction_id}


This will produce a result of Success or Failure.

Raffles

Url: https://yourdomain.com/api/raffles
Formats: CSV (default) or JSON
Options: date_from, date_to
Primary key: raffle_id
External CRM ID: crm_raffle_id

Column Type   Default Comments
raffle_id bigint(20)      
charity_id bigint(20)      
raffle_name varchar(255)      
raffle_key varchar(255)      
raffle_code varchar(50)      
ticket_start bigint(20)   1  
ticket_prefix varchar(50)      
entries_closed enum('Y', 'N')   N  
raffle_end_date date      
raffle_end_time time      
number_tickets bigint(20)      
max_tickets int(4)      
min_tickets int(4)      
has_tax enum('Y', 'N')   N  
allow_single_tickets enum('Y', 'N')   Y  
ticket_price double(8,2)      
ticket_image varchar(255)      
raffle_short_desc text      
raffle_closed_message text      
raffle_thumbnail varchar(255)      
send_confirmation_email enum('Y', 'N')   Y  
confirmation_email_template_id bigint(20)      
confirmation_email_subject varchar(255)      
confirmation_email_body text      
redirect_page enum('Y', 'N')   N  
redirect_url varchar(255)      
event_confirmation_html text      
crm_raffle_id varchar(255)      
sort_order int(4)      
raffle_status int(1)   0  
last_updated datetime      
date_created datetime      

 

Get all Raffles

GET https://yourdomain.com/api/raffles

Get a specific Raffle

GET https://yourdomain.com/api/raffles/

Raffle Tickets

Url: https://yourdomain.com/api/raffletickets
Formats: CSV (default) or JSON
Options: date_from, date_to,raffle_id
Primary key: option_id

Column Type   Default Comments
option_id bigint(20)      
raffle_id bigint(20)      
option_name varchar(150)      
option_tickets int(4)      
option_price double(8,2)      
option_description text      
sort_order int(4)      
last_updated datetime      
date_created datetime      

 

Get all Raffle Tickets

GET https://yourdomain.com/api/raffletickets

Get a specific Raffle Ticket

GET https://yourdomain.com/api/raffletickets/

Raffle Sales

Url: https://yourdomain.com/api/rafflesales
Formats: CSV (default) or JSON
Options: date_from, date_to,raffle_id
Primary key: sale_id
External CRM ID: crm_sale_id

Column Type   Default Comments
sale_id bigint(20)      
raffle_id bigint(20)   0  
charity_id bigint(20)   0  
option_id bigint(20)   0  
number_tickets bigint(20)   0  
ticket_start bigint(20)   0  
ticket_end bigint(20)   0  
title varchar(80)      
first_name varchar(80)      
last_name varchar(80)      
last_name_prefix varchar(100)      
email varchar(80)      
optin_fees enum('Y', 'N')   N  
po_number varchar(150)      
donation_amount double(8,2)      
total_fee double(8,2)      
mobile varchar(50)      
mobile_suffix varchar(5)      
phone varchar(80)      
address_unit varchar(50)      
address_number varchar(150)      
address_street varchar(150)      
address_2 varchar(159)      
address_postcode varchar(20)      
address_suburb varchar(150)      
address_state varchar(100)      
address_country varchar(150)      
kw_address varchar(255)      
dob date   0000-00-00  
gender varchar(20)   NULL  
company varchar(150)      
optin enum('Y', 'N')   N  
optin_text text   NULL  
optin_email varchar(1)      
optin_sms varchar(1)      
optin_post varchar(1)      
optin_phone varchar(1)      
sub_total double(7,2)      
gst double(7,2)      
total double(7,2)      
date_paid datetime      
tax_ref varchar(150)      
card_type varchar(50)      
card_country varchar(10)      
card_brand varchar(80)      
card_name varchar(80)      
card_number varchar(80)      
card_expiry varchar(10)      
payment_method varchar(30)      
email_sent enum('Y', 'N')   N  
email_sent_date datetime      
is_mobile enum('Y', 'N')   N  
crm_sale_id varchar(255)      
last_updated datetime      
date_created datetime      

Get all Sales

GET https://yourdomain.com/api/rafflesales

Get a specific Sale

GET https://yourdomain.com/api/rafflesales/

Tickets

Url: https://yourdomain.com/api/tickets
Formats: CSV (default) or JSON
Options: date_from, date_to, event_id
Primary key: ticket_id
External CRM ID: N/A

Column Type
ticket_id bigint(20)
event_id bigint(20)
member_type_id varchar(80)
ticket_name varchar(150)
ticket_code varchar(50)
ticket_category varchar(150)
ticket_price double(8,2)
ticket_limit bigint(20)
is_table enum('Y', 'N')
allow_guests enum('Y', 'N')
is_private enum('Y', 'N')
num_tickets bigint(20)
min_buy_limit int(4)
max_buy_limit int(4)
ticket_description text
ticket_image varchar(255)
ticket_line_item varchar(100)
ticket_status int(1)
sort_order int(4)
crm_ticket_id varchar(255)
last_updated datetime
date_created datetime

Indexes

Get all Tickets

GET https://yourdomain.com/api/tickets

Get a specific Ticket Option

GET https://yourdomain.com/api/tickets/{ticket_id}

Get a specific Event Ticket Option

GET https://yourdomain.com/api/tickets?event_id={event_id}

Ticketholders / Offline Event Guests

Url: https://yourdomain.com/api/ticketholders
Formats: CSV (default) or JSON
Options: date_from, date_to,ticket_id,event_id
Primary key: guest_id

Column Type
guest_id bigint(20)
member_id bigint(20)
event_id bigint(20)
history_id bigint(20)
ticket_id bigint(20)
wave_id bigint(20)
table_id bigint(20)
related_member_id bigint(20)
bib_number varchar(100)
g_fname varchar(150)
g_lname varchar(150)
g_lname_prefix varchar(80)
g_email varchar(150)
g_phone varchar(80)
g_notes text
g_company varchar(150)
g_gender enum('M', 'F', 'O')
g_dob date
g_shirt_size varchar(150)
g_emergency_contact varchar(150)
g_emergency_contact_alt varchar(150)
g_emergency_phone varchar(150)
g_emergency_contact_type varchar(150)
crm_guest_id varchar(255)
ecrm_customer_id varchar(255)
ecrm_last_synced_date datetime
last_updated datetime
date_created datetime

Indexes

Get all Ticket Holders

GET https://yourdomain.com/api/ticketholders

Get a specific Ticket Holder

GET https://yourdomain.com/api/ticketholders/[guest_id]

Webforms

Url: https://yourdomain.com/api/webforms/[form_id]
Formats: CSV (default) or JSON

Webforms are forms that are built from within Funraisin itself and therefore these typically have no set structure since you are in complete control of what fields are captured.

Pages

Url: https://yourdomain.com/api/pages/[page_id]
Formats: CSV (default) or JSON

Pages will provide you access to the static pages created within the CMS module.

 

Dynamic Endpoints

The below endpoints provide you access to information that would otherwise require querying multiple data tables to determine the result such as leaderboards. The data produced from these endpoints are created on the fly based on the data in the database and as a result they are cached for a period of 10 minutes to protect the integrity of the live database.

Top Fundraisers

Url: https://yourdomain.com/api/topfundraisers/{optional limit}/{optional event_id}
Formats: CSV (default) or JSON

Returns an unformatted list of your top fundraisers in order of total amount raised, restricted to the optional limit. If no limit provided then it defaults to 100.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
member_id, name, page url, raised, target, photo, event

Top Teams

Url: https://yourdomain.com/api/topteams/{optional limit}/{optional event_id}
Formats: CSV (default) or JSON

Returns an unformatted list of your top teams in order of total amount raised, restricted to the optional limit. If no limit provided then it defaults to 100.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
team_id_id, name, page url, raised, target, photo, event

Top Donations

Url: https://yourdomain.com/api/topdonations/{optional limit}/{optional event_id}
Formats: CSV (default) or JSON

Returns an unformatted list of your top donations in order of total amount raised, restricted to the optional limit. If no limit provided then it defaults to 100.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
donation_id_id, display name, comments, amount donated, photo, page url of person or team sponsored

Total Donations

Url: https://yourdomain.com/api/totaldonations/{optional event_id}
Formats: CSV (default) or JSON
Options: member_id, team_id, history_id

Returns a dollar amount of total donations based on the parameters sent. If no parameters then it returns the sum of all donations.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
amount

Total Fundraisers

Url: https://yourdomain.com/api/totalmembers/{optional event_id}
Formats: CSV (default) or JSON

Returns an integer for the number of fundraisers.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
total

Total Teams

Url: https://yourdomain.com/api/totalteams/{optional event_id}
Formats: CSV (default) or JSON

Returns an integer for the number of teams.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
total

Total Steps

Url: https://yourdomain.com/api/totalsteps/{optional event_id}
Formats: CSV (default) or JSON
Options: member_id, team_id, history_id

Returns an integer of total steps based on the parameters sent. If no parameters then it returns the sum of all steps.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
steps

Total KMs

Url: https://yourdomain.com/api/totalkms/{optional event_id}
Formats: CSV (default) or JSON
Options: member_id, team_id, history_id

Returns an integer of total kilometres based on the parameters sent. If no parameters then it returns the sum of all kilometres.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
kilometres

Total Miles

Url: https://yourdomain.com/api/totalmiles/{optional event_id}
Formats: CSV (default) or JSON
Options: member_id, team_id, history_id

Returns an integer of total miles based on the parameters sent. If no parameters then it returns the sum of all miles.

If you wish to restrict the results to a certain event you can pass through the optional event_id paramater in the url.

Data Returned
miles

Custom Endpoints

In addition to the above endpoints which are fixed in terms of what data you can access, you are able to create your very own custom endpoints and choose what data you want to receive.

Using the Data Exports feature which is the ability to create customisable data files that can be downloaded, emailed or dropped onto a sFTP server, you are able to access these same data exports programmatically via the API.

This allows you to essentually pick and choose exactly what you want to receive data wise and it also allows you to access data across multiple tables, for example you can access both donor and fundraiser data in a single call, you can even apply custom SQL queries to get exactly the right data that you need.

To access a data export via the API you will need the Export url which can be obtained by viewing the data export from within the admin and clickin into the API Access tab. This will provide you with the endpoint for the specific data export.

Don't forget the same rules apply as per all the other endpoints, you will still need to pass across your API key and you can also still set the data format to csv or Json using the ?format=json attribute