The Breeze API allows you to build custom applications integrated with the Breeze database.
If you have a specific need and programming talent, you can build the solution you're looking for
using the data you already have in Breeze.
You can use any programming language you'd like. If you'd like to
use an API wrapper, you'll find some below (disclaimer: API wrappers are not necessarily created or maintained by Breeze).
Name | Description | Example | Default |
details | Option to return all information (slower) or just names. 1 = get all information pertaining to person; 0 = only get id and name | 1 | 0 |
filter_json | Option to filter through results based on criteria (tags, status, etc). Refer to profile field response to know values to search for or if you're hard-coding the field ids, watch the URL bar when filtering for people within Breeze's people filter page and use the variables you see listed. | {"2000138015":"226-227","835255370":"Male"} | None |
limit | Number of people to return. If 0 or not present, will return all people. | 50 | 0 |
offset | Number of people to skip before beginning to return results. Can be used in conjunction with limit for pagination. | 51 | 0 |
Name | Description | Example | Default |
details | Option to return all information (slower) or just names. 1 = get all information pertaining to person; 0 = only get id and name | 0 | 1 |
Name | Description | Example | Default |
first | The first name of the person. | Jack Christina Jorge |
- |
last | The last name of the person | Anderson Smith Brown |
- |
fields_json | Additional fields to update. | See Update Person for eligible values. | - |
Name | Description | Example | Default |
person_id | The id of the person to update. | 15235634 58234234 2485234 |
- |
fields_json |
Additional fields to update. These fields are passed as a JSON encoded array of fields, each containing a field id, field type, response, and in some cases, more information. The field information itself can be found on List Profile Fields. Code samples are below for the fields that can be updated.
// TEXT
$field = new stdClass(); $field->field_id = "2000138875"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "text"; $field->response = "Testing"; $fields[] = $field; // MULTIPLE CHOICE $field = new stdClass(); $field->field_id = "2000138811"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "radio"; // multiple choice uses 'radio' field type $field->response = "459"; // option id (obtainable from https://www.breezechms.com/api#list_profile_fields) $fields[] = $field; // DROPDOWN $field = new stdClass(); $field->field_id = "2000138746"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "radio"; // dropdown uses 'radio' field type $field->response = "428"; // option id (obtainable from https://www.breezechms.com/api#list_profile_fields) $fields[] = $field; // CHECKBOX $field = new stdClass(); $field->field_id = "2000138325"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "checkbox"; $field->response = '388'; // option id (obtainable from https://www.breezechms.com/api#list_profile_fields) $fields[] = $field; // add $field to $fields array // CHECKBOX (same field, new value) $field = new stdClass(); $field->field_id = "2000138325"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "checkbox"; $field->response = '390'; // option id (obtainable from https://www.breezechms.com/api#list_profile_fields) $fields[] = $field; // add $field to $fields array // DATE $field = new stdClass(); $field->field_id = "2000138050"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "date"; $field->response = '12/1/2015'; $fields[] = $field; // add $field to $fields array // TEXTAREA $field = new stdClass(); $field->field_id = "2000138883"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "textarea "; $field->response = 'A test here'; $fields[] = $field; // add $field to $fields array // BIRTHDATE $field = new stdClass(); $field->field_id = "656342607"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "birthdate"; $field->response = '1/1/2015'; $fields[] = $field; // add $field to $fields array $field = new stdClass(); $field->field_id = "1508481877"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "email"; $field->response = true; $email = new stdClass(); $email->address = 'email@test.com'; $field->details = $email; $fields[] = $field; // add $field to $fields array // MOBILE PHONE $field = new stdClass(); $field->field_id = "1148898687"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "phone"; $field->response = true; $phone = new stdClass(); $phone->phone_mobile = "111-111-1111"; $field->details = $phone; $fields[] = $field; // add $field to $fields array // HOME PHONE $field = new stdClass(); $field->field_id = "1148898687"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "phone"; $field->response = true; $phone = new stdClass(); $phone->phone_home = "222-222-2222"; $field->details = $phone; $fields[] = $field; // add $field to $fields array // WORK PHONE $field = new stdClass(); $field->field_id = "1148898687"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "phone"; $field->response = true; $phone = new stdClass(); $phone->phone_work = "333-333-3333"; $field->details = $phone; $fields[] = $field; // add $field to $fields array // ADDRESS $field = new stdClass(); $field->field_id = "1537527569"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "address"; $field->response = true; $address = new stdClass(); $address->street_address = "123 Test St."; $address->city = "Grand Rapids"; $address->state = "MI"; $address->zip = "49506"; $field->details = $address; $fields[] = $field; // add $field to $fields array // FAMILY ROLE $field = new stdClass(); $field->field_id = "62348923451"; // field id (obtainable from https://www.breezechms.com/api#list_profile_fields) $field->field_type = "family_role "; $field->response = 'undefined'; $field->details = Array('person_id' => 12345678, 'role_id' => 1); // role_id is numeric and can be 1 (Unassigned), 2 (Child), 3 (Adult), 4 (Head of Household), or 5 (Spouse) $fields[] = $field; // add $field to $fields array // UPDATE PERSON $person = $breeze->url('https://yoursubdomain.breezechms.com/api/people/update?person_id=12345678&fields_json='.json_encode($fields)); |
Name | Description | Example | Default |
person_id | The id of the person to delete. | Jack Christina Jorge |
- |
Name | Description | Example | Default |
name | The name of the tag. | Students Small Groups Elders |
- |
folder_id | The specific folder to place the tag can be specified. If omitted, the tag will be placed in the top level folder. | 12345 1521 12314 |
Top Level |
Name | Description | Example | Default |
name | The name of the folder. | Youth Group Adult Ministries Leadership |
- |
parent_id | The specific parent folder to place this folder within. If omitted, the folder will be placed on the top level. | 5023 1521 7192 |
Top Level |
Name | Description | Example | Default |
person_id | The id of the person to which tag should be assigned to. | 12498124 82395235 121821493 |
- |
tag_id | The id of the tag that should be assigned | 523523 234534 623523 |
- |
Name | Description | Example | Default |
person_id | The id of the person to which tag should be unassigned from. | 12498124 82395235 121821493 |
- |
tag_id | The id of the tag that should be unassigned | 523523 234534 623523 |
- |
Name | Description | Example | Default |
start | Events on or after (YYYY-MM-DD) | 2015-1-20 | The first day of the current month/year |
end | Events on or before (YYYY-MM-DD) | 2018-1-31 | The last day of the current month/year |
category_id | If supplied, only events on the specified calendar will be returned. Note that external calendars are not available via this call. If you need to pull in external calendars, we recommend parsing the calendar's ical feed accessible via List Calendars. | 14924 912315 63293 |
n/a |
calendar_id deprecated |
Does the same thing as the category_id parameter. Note that category_id will trump calendar_id if both are used. |
14924 912315 63293 |
n/a |
eligible | If set to 1, details about who is eligible to be checked in ("everyone", "tags", "forms", or "none") are returned (including tags associated with the event). | 1 0 |
0 |
details | If set to 1, additional event details will be returned (e.g. description, check in settings, etc) | 1 0 |
0 |
limit | Number of events to return. Default is 500. Max is 1000. | 100 750 |
0 |
Name | Description | Example | Default |
instance_id | The id of the event instance that should be returned | 29034243 92340243 8923424 |
- |
schedule | If other instances in the same series should be included. Note that if set to true, response will be an array of events, each element only containing the id and starting timestamp. | true 1 |
- |
schedule_direction | If including the schedule, should it include events before the instance_id or after the instance_id | before after |
before |
schedule_limit | If including the schedule, how many events in the series should be returned. Default is 10. Max is 100. | 5 20 50 |
unlimited |
eligible | If set to 1, details about who is eligible to be checked in ("everyone", "tags", "forms", or "none") are returned (including tags associated with the event). | 1 0 |
0 |
details | If set to 1, additional event details will be returned (e.g. description, check in settings, etc) | 1 0 |
0 |
Name | Description | Example | Default |
name | The name of the event. | Bonfire Service Small Group |
- |
starts_on | The numeric timestamp for when the event should start (more details on this format can be found here). | 1467161100 1466711372 1498247371 |
- |
ends_on | The numeric timestamp for when the event should end (more details on this format can be found here). | 1467161100 1466711372 1498247371 |
One hour after starts_on |
all_day | If set, event will be all day and only the date from starts_on will be used, time will be ignored. | 1 0 |
0 |
description | The description of the event. HTML can be used. | Come to this event wearing a windsuit! | - |
category_id | The id of the calendar this event should be placed on | 1234 2344 |
0 |
calendar_id deprecated |
Does the same thing as the category_id parameter. Note that category_id will trump calendar_id if both are used. |
1234 2344 |
0 |
event_id | The id of an existing event for this event to be in the same series with | 1251 2923 |
New series |
Name | Description | Example | Default |
instance_id | The id of the instance that should be deleted. | 235324 8543239 82539230 |
- |
Name | Description | Examples | Default |
direction | Set whether someone is being checked into or out of an event. Note that checking "out" is not the same as "removing" the attendance record. Checking out refers to recording a timestamp of when the individual left the event.
If the check "out" call is made on a profile that is not already checked in, a new attendance record will be created that has a checked in time that matches the checked out time. The check out command will work even if the event's settings aren't set to enable check out (the setting simply controls the Breeze check in user interface for the event which the API bypasses). |
in out |
in |
Name | Description | Example | Default |
instance_id | The ID of the instance you'd like to return the attendance for | 190152081 25982342 |
- |
details | If set to true, details of the person will be included in the response | true false |
false |
type | Determines if result should contain people or anonymous head count by setting to either 'person' or 'anonymous' | person anonymous |
person |
Name | Description | Example | Default |
is_archived | If set to 1, archived forms will be returned instead of active forms. | 1 0 |
0 |
Name | Description | Example | Default |
form_id | The fields will be returned that correspond to the numeric form id provided. See List Forms for retrieving form IDs. | 115234 234634 693435 |
- |
Name | Description | Example | Default |
form_id | The entries will be returned that correspond to the numeric form id provided. See List Forms for retrieving form IDs. | 115234 234634 693435 |
- |
details | If set to 1, the entry responses will be returned as well. The entry response array has key values that correspond to the form fields. | 1 0 |
0 |
Name | Description | Example | Default |
entry_id | The id of the form entry you want to remove. | 115234 | - |
Name | Description | Example | Default |
instance_id | The id of the event instance you want to list the volunteers for. | 123456 | - |
Name | Description | Example | Default |
instance_id | The id of the event instance you want to schedule the volunteer for. | 123456 | - |
person_id | The id of the person you wish to schedule. | 654321 | - |
Name | Description | Example | Default |
instance_id | The id of the event instance you want to unschedule the volunteer from. | 123456 | - |
person_id | The id of the person you wish to unschedule. | 654321 | - |
Name | Description | Example | Default |
instance_id | The id of the event instance containing the person you wish to update. | 123456 | - |
person_id | The id of the person you wish to update. | 9520342 | - |
role_ids_json | The id(s) of the role(s) you wish the person to have. Note that this replaces current values, so if a volunteer currently has a role and this command is run and does not pass in that same role_id, the current role will be removed and replaced with the passed role(s). If excluded, the volunteer will be assigned no role. |
{563, 564} empty |
- |
Name | Description | Example | Default |
instance_id | The id of the event instance you want to retrieve the volunteer roles for. | 123456 | - |
show_quantity | Option to return quantity requested for each role. 1 = show quantity for role | 1 | - |
Name | Description | Example | Default |
instance_id | The id of the event instance you want to retrieve the volunteer roles for. Note that if the event is part of a series, the role will become available on all events within the series. | 123456 | - |
name | The name of the role you'd like to add. | Small Group Leader Greeter Usher |
- |
quantity | The quantity of volunteers needed for the role you'd like to add. Note that if the event is part of a series, this will overwrite any current quantity settings for any events in this series. | 1 2 |
- |
Name | Description | Example | Default |
instance_id | The id of the event instance you want to remove the role from. Note that if the event is part of a series, the role will be removed on all events within the series. | 123456 | - |
role_id | The id of the role to be removed. | 567 | - |
Name | Description | Example | Default |
people_ids_json | The json encoded ids of the people that should be connected into the same family. Note that if any of these people are in alternate families, this action will remove them from their previous family as a person can only be part of one family at a time. | [1111111,2222222,3333333] | - |
Name | Description | Example | Default |
people_ids_json | The id of the person belonging to a family you'd like to destroy. This does not delete any people, it simply removes their association with the family. Only one person id from the family is needed (e.g. if you specify one person in a family of seven, all 7 people are removed from the family). Passing in multiple people ids (where those people are in different families) allows developers to destroy multiple families in a single call. | [5555555,6666666] | - |
Name | Description | Example | Default |
people_ids_json | The json encoded ids of the people that should be added into the existing family. | [1111111,2222222,3333333] | - |
target_person_id | The person id of anyone who is in the existing family that the people_ids_json should be added to. It does not matter which family member it is. | 9999999 | - |
Name | Description | Example | Default |
people_ids_json | The json encoded ids of the people that should be removed from the family they are currently in. | [1111111,2222222,3333333] | - |
Name | Description | Example | Default |
action | A required parameter indicating which type of logged action should be returned. |
Communications text_sent Contributions contribution_added contribution_updated contribution_deleted bulk_contributions_deleted envelope_created envelope_updated envelope_deleted payment_method_updated payment_method_deleted payment_method_created bank_account_added bank_account_updated transfer_day_changed bank_account_deleted payment_association_deleted payment_association_created bulk_import_contributions bulk_import_pledges bulk_pledges_deleted batch_updated batch_deleted bulk_envelopes_deleted Events event_created event_updated event_deleted event_instance_deleted event_future_deleted events_calendar_created events_calendar_updated events_calendar_deleted bulk_import_attendance attendance_deleted bulk_attendance_deleted Volunteers volunteer_role_created volunteer_role_deleted People person_created person_updated person_deleted person_archived person_merged people_updated bulk_update_people bulk_people_deleted bulk_people_archived bulk_import_people bulk_notes_deleted Tags tag_created tag_updated tag_deleted bulk_tags_deleted tag_folder_created tag_folder_updated tag_folder_deleted tag_assign tag_unassign Forms form_created form_updated form_deleted form_entry_updated form_entry_deleted Follow Ups followup_option_created followup_option_updated followup_option_deleted Users user_created user_updated user_deleted role_created role_updated role_deleted Extensions extension_installed extension_uninstalled extension_upgraded extension_downgraded Account sub_payment_method_updated |
- |
start | The start date range for actions that should be returned. If not provided, logged items will be fetched from as long ago as the log is storing. | 2016-10-25 2013-11-15 |
- |
end | The end date range for actions that should be returned. If not provided, logged items will be fetched up until the current moment. | 2017-04-25 2017-12-17 |
- |
user_id | The user_id of the user who made the logged action. If not provided, all users' actions will be returned. | 145 420 250 |
- |
details | If details about the logged action should be returned. Note that this column is not guaranteed to be standardized and should not be relied upon for anything more than a description. | 1 0 |
0 |
limit | The number of logged items to return. Max is 3,000. | 50 1000 |
500 |
This example shows how to fetch all profile fields and then, for a given person, iterate through each profile field, outputting the data for that field for that person.
require_once('breeze/breeze.php'); $breeze = new Breeze('your_api_key'); // get person information $person_id = 3959584; $person = $breeze->url('https://yoursubdomain.breezechms.com/api/people/'.$person_id); $person = json_decode($person); $person_details = $person->details; // get all profile fields $field_sections = $breeze->url('https://yoursubdomain.breezechms.com/api/profile'); $field_sections = json_decode($field_sections); // output person's name echo "<h1>" . $person->first_name . " " . $person->last_name . "</h1><hr />"; // for each profile field section foreach($field_sections as $field_section) { // include the section name echo "<h2>" . $field_section->name . "</h2>"; // for each field in that section foreach($field_section->fields as $field) { // output the field name and ID echo "<h4>" . $field->name . " (".$field->field_id.")</h4>"; // and output the person's details for that field var_dump($person_details->{$field->field_id}); } }
This example shows a typical integration a third party payment processor might use to store processed payments within Breeze.
require_once('breeze/breeze.php'); $breeze = new Breeze('your_api_key '); $date = "2024-1-25"; // date gift was given $processor = "Acme Corp"; // name of 3rd party giving platform $method = "Check"; // method name; can be any string as if it does not already exist, it will be auto-created $amount = 100; // full contribution amount $funds = Array(); // list of funds that the gift is given to (can accept more than one for split fund gifts) // designate $70 to General Fund $fund = new stdClass(); $fund->name = "General Fund"; $fund->amount = 70; $funds[] = $fund; // designate $30 to Missions Fund $fund = new stdClass(); $fund->name = "Missions Fund"; $fund->amount = 30; $funds[] = $fund; $funds_json = json_encode($funds); // store as json to pass in URL $group = date('YW'); // all contributions with the same group will be put into the same batch - by creating a group out of the date('YW'), we effectively create a new batch for each week $batch_name = $processor . " Giving"; // Pass along person's information. If person is not already matched in Breeze, this will help the Breeze user either create or match the gift with the correct profile $person = new stdClass(); $person->name = "John Doe"; $person->email = "john.doe@example.com"; $person_json = json_encode($person); // store as json to pass in URL // A unique ID for the person as defined by the giving platform, not Breeze (i.e. this can be whatever you'd like). After the Breeze user initially matches this gift, all future gifts with this same unique ID will automatically connect to the correct profile $uid = "123f3d5g62"; // store payment $response = $breeze->url('https://yoursubdomain.breezechms.com/api/giving/add?date=' . $date . '&person_json=' . $person_json . '&uid=' . $uid . '&processor=' . $processor . '&method=' . $method . '&funds_json=' . $funds_json . '&amount=' . $amount . '&group=' . $group . '&batch_name=' . $batch_name);