Breeze Account API
Retrieve an account summary and read the account activity log, filtered by action, user, and date range, for auditing and administration.
Retrieve an account summary and read the account activity log, filtered by action, user, and date range, for auditing and administration.
openapi: 3.0.3
info:
title: Breeze ChMS API
description: >-
The Breeze ChMS API is a documented REST API for Breeze church management
software. It is scoped to an individual church subdomain
(https://{subdomain}.breezechms.com/api) and covers people, tags, events,
check-in / attendance, giving (contributions), funds, pledge campaigns,
custom forms, volunteers, and account administration. Every operation is an
HTTP GET request whose inputs are supplied as query-string parameters;
request bodies for create/update operations are passed as JSON-encoded
strings in parameters such as fields_json and funds_json. Authentication is
an account API key sent in the Api-Key HTTP header. The API is rate limited
to roughly 20 requests per minute; wait about 3.5 seconds between calls. The
API key is obtained by the Account Owner under Manage Account > API Key.
version: '1.0'
contact:
name: Breeze ChMS
url: https://www.breezechms.com
servers:
- url: https://{subdomain}.breezechms.com/api
description: Church-specific Breeze subdomain
variables:
subdomain:
default: yourchurch
description: Your church's Breeze subdomain.
security:
- apiKeyAuth: []
tags:
- name: People
description: Members, contacts, custom profile fields, and families.
- name: Tags
description: Tags, tag folders, and tag assignment.
- name: Events
description: Events, calendars, and locations.
- name: Attendance
description: Check-in / check-out attendance and eligibility.
- name: Giving
description: Contributions (giving records).
- name: Funds
description: Contribution funds.
- name: Pledges
description: Pledge campaigns and pledges.
- name: Forms
description: Forms, form fields, and form entries.
- name: Volunteers
description: Volunteers and volunteer roles for events.
- name: Account
description: Account summary and activity log.
paths:
/people:
get:
operationId: listPeople
tags: [People]
summary: List people
description: Retrieves a paged list of people (members and contacts).
parameters:
- name: limit
in: query
schema: { type: integer }
description: Number of people to return.
- name: offset
in: query
schema: { type: integer }
description: Number of people to skip for paging.
- name: details
in: query
schema: { type: integer, enum: [0, 1] }
description: Set to 1 to include full profile field details.
- name: filter_json
in: query
schema: { type: string }
description: JSON-encoded filter of profile field criteria.
responses:
'200':
description: A list of people.
'401':
$ref: '#/components/responses/Unauthorized'
/people/{person_id}:
get:
operationId: getPerson
tags: [People]
summary: Retrieve a person
description: Retrieves a single person by ID.
parameters:
- name: person_id
in: path
required: true
schema: { type: string }
- name: details
in: query
schema: { type: integer, enum: [0, 1] }
responses:
'200':
description: The requested person.
'401':
$ref: '#/components/responses/Unauthorized'
/people/add:
get:
operationId: addPerson
tags: [People]
summary: Add a person
parameters:
- name: first
in: query
schema: { type: string }
- name: last
in: query
schema: { type: string }
- name: fields_json
in: query
schema: { type: string }
description: JSON-encoded array of profile field values.
responses:
'200':
description: The created person.
'401':
$ref: '#/components/responses/Unauthorized'
/people/update:
get:
operationId: updatePerson
tags: [People]
summary: Update a person
parameters:
- name: person_id
in: query
required: true
schema: { type: string }
- name: fields_json
in: query
schema: { type: string }
responses:
'200':
description: The updated person.
'401':
$ref: '#/components/responses/Unauthorized'
/people/delete:
get:
operationId: deletePerson
tags: [People]
summary: Delete a person
parameters:
- name: person_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: Deletion result.
'401':
$ref: '#/components/responses/Unauthorized'
/profile:
get:
operationId: listProfileFields
tags: [People]
summary: List profile fields
description: Lists the profile fields (and sections) configured for the church.
responses:
'200':
description: A list of profile fields.
'401':
$ref: '#/components/responses/Unauthorized'
/families/create:
get:
operationId: createFamily
tags: [People]
summary: Create a family
parameters:
- name: people_ids_json
in: query
schema: { type: string }
responses:
'200':
description: The created family.
/families/add:
get:
operationId: addToFamily
tags: [People]
summary: Add people to a family
parameters:
- name: people_ids_json
in: query
schema: { type: string }
- name: target_person_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/families/remove:
get:
operationId: removeFromFamily
tags: [People]
summary: Remove people from a family
parameters:
- name: people_ids_json
in: query
schema: { type: string }
responses:
'200':
description: Result.
/tags/list_tags:
get:
operationId: listTags
tags: [Tags]
summary: List tags
parameters:
- name: folder_id
in: query
schema: { type: string }
responses:
'200':
description: A list of tags.
'401':
$ref: '#/components/responses/Unauthorized'
/tags/list_folders:
get:
operationId: listTagFolders
tags: [Tags]
summary: List tag folders
responses:
'200':
description: A list of tag folders.
/tags/add_tag:
get:
operationId: addTag
tags: [Tags]
summary: Add a tag
parameters:
- name: name
in: query
schema: { type: string }
- name: folder_id
in: query
schema: { type: string }
responses:
'200':
description: The created tag.
/tags/add_tag_folder:
get:
operationId: addTagFolder
tags: [Tags]
summary: Add a tag folder
parameters:
- name: name
in: query
schema: { type: string }
- name: parent_id
in: query
schema: { type: string }
responses:
'200':
description: The created tag folder.
/tags/delete_tag:
get:
operationId: deleteTag
tags: [Tags]
summary: Delete a tag
parameters:
- name: tag_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/tags/delete_tag_folder:
get:
operationId: deleteTagFolder
tags: [Tags]
summary: Delete a tag folder
parameters:
- name: folder_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/tags/assign:
get:
operationId: assignTag
tags: [Tags]
summary: Assign a tag to a person
parameters:
- name: person_id
in: query
schema: { type: string }
- name: tag_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/tags/unassign:
get:
operationId: unassignTag
tags: [Tags]
summary: Unassign a tag from a person
parameters:
- name: person_id
in: query
schema: { type: string }
- name: tag_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/events:
get:
operationId: listEvents
tags: [Events]
summary: List events
parameters:
- name: start
in: query
schema: { type: string }
description: Start date (YYYY-MM-DD).
- name: end
in: query
schema: { type: string }
description: End date (YYYY-MM-DD).
- name: category_id
in: query
schema: { type: string }
- name: eligible
in: query
schema: { type: integer, enum: [0, 1] }
- name: details
in: query
schema: { type: integer, enum: [0, 1] }
- name: limit
in: query
schema: { type: integer }
responses:
'200':
description: A list of events.
'401':
$ref: '#/components/responses/Unauthorized'
/events/list_event:
get:
operationId: getEvent
tags: [Events]
summary: Retrieve an event instance
parameters:
- name: instance_id
in: query
required: true
schema: { type: string }
- name: schedule
in: query
schema: { type: integer, enum: [0, 1] }
- name: schedule_direction
in: query
schema: { type: string, enum: [before, after] }
- name: schedule_limit
in: query
schema: { type: integer }
- name: eligible
in: query
schema: { type: integer, enum: [0, 1] }
- name: details
in: query
schema: { type: integer, enum: [0, 1] }
responses:
'200':
description: The requested event instance.
/events/calendars/list:
get:
operationId: listCalendars
tags: [Events]
summary: List calendars
responses:
'200':
description: A list of calendars.
/events/locations:
get:
operationId: listLocations
tags: [Events]
summary: List event locations
responses:
'200':
description: A list of locations.
/events/add:
get:
operationId: addEvent
tags: [Events]
summary: Add an event
parameters:
- name: name
in: query
schema: { type: string }
- name: starts_on
in: query
schema: { type: string }
- name: ends_on
in: query
schema: { type: string }
- name: all_day
in: query
schema: { type: integer, enum: [0, 1] }
- name: description
in: query
schema: { type: string }
- name: category_id
in: query
schema: { type: string }
- name: event_id
in: query
schema: { type: string }
responses:
'200':
description: The created event.
/events/delete:
get:
operationId: deleteEvent
tags: [Events]
summary: Delete an event instance
parameters:
- name: instance_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: Result.
/events/attendance/add:
get:
operationId: addAttendance
tags: [Attendance]
summary: Add attendance (check in / out)
parameters:
- name: person_id
in: query
schema: { type: string }
- name: instance_id
in: query
schema: { type: string }
- name: direction
in: query
schema: { type: string, enum: [in, out] }
responses:
'200':
description: Result.
'401':
$ref: '#/components/responses/Unauthorized'
/events/attendance/delete:
get:
operationId: deleteAttendance
tags: [Attendance]
summary: Delete attendance
parameters:
- name: person_id
in: query
schema: { type: string }
- name: instance_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/events/attendance/list:
get:
operationId: listAttendance
tags: [Attendance]
summary: List attendance for an event
parameters:
- name: instance_id
in: query
required: true
schema: { type: string }
- name: details
in: query
schema: { type: boolean }
- name: type
in: query
schema: { type: string, enum: [person, anonymous] }
responses:
'200':
description: A list of attendance records.
/events/attendance/eligible:
get:
operationId: listEligible
tags: [Attendance]
summary: List people eligible to check in
parameters:
- name: instance_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: A list of eligible people.
/giving/list:
get:
operationId: listContributions
tags: [Giving]
summary: List contributions
parameters:
- name: start
in: query
schema: { type: string }
- name: end
in: query
schema: { type: string }
- name: person_id
in: query
schema: { type: string }
- name: fund_ids
in: query
schema: { type: string }
- name: amount_min
in: query
schema: { type: string }
- name: amount_max
in: query
schema: { type: string }
responses:
'200':
description: A list of contributions.
'401':
$ref: '#/components/responses/Unauthorized'
/giving/add:
get:
operationId: addContribution
tags: [Giving]
summary: Add a contribution
parameters:
- name: date
in: query
schema: { type: string }
- name: name
in: query
schema: { type: string }
- name: person_id
in: query
schema: { type: string }
- name: amount
in: query
schema: { type: string }
- name: method
in: query
schema: { type: string }
- name: funds_json
in: query
schema: { type: string }
description: JSON-encoded array splitting the gift across funds.
- name: payment_id
in: query
schema: { type: string }
responses:
'200':
description: The created contribution.
/giving/edit:
get:
operationId: editContribution
tags: [Giving]
summary: Edit a contribution
parameters:
- name: payment_id
in: query
required: true
schema: { type: string }
- name: amount
in: query
schema: { type: string }
- name: funds_json
in: query
schema: { type: string }
responses:
'200':
description: The updated contribution.
/giving/delete:
get:
operationId: deleteContribution
tags: [Giving]
summary: Delete a contribution
parameters:
- name: payment_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: Result.
/funds/list:
get:
operationId: listFunds
tags: [Funds]
summary: List funds
parameters:
- name: include_totals
in: query
schema: { type: integer, enum: [0, 1] }
responses:
'200':
description: A list of funds.
'401':
$ref: '#/components/responses/Unauthorized'
/pledges/list_campaigns:
get:
operationId: listCampaigns
tags: [Pledges]
summary: List pledge campaigns
responses:
'200':
description: A list of pledge campaigns.
'401':
$ref: '#/components/responses/Unauthorized'
/pledges/list_pledges:
get:
operationId: listPledges
tags: [Pledges]
summary: List pledges in a campaign
parameters:
- name: campaign_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: A list of pledges.
/forms/list_forms:
get:
operationId: listForms
tags: [Forms]
summary: List forms
parameters:
- name: is_archived
in: query
schema: { type: integer, enum: [0, 1] }
responses:
'200':
description: A list of forms.
'401':
$ref: '#/components/responses/Unauthorized'
/forms/list_form_fields:
get:
operationId: listFormFields
tags: [Forms]
summary: List a form's fields
parameters:
- name: form_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: A list of form fields.
/forms/list_form_entries:
get:
operationId: listFormEntries
tags: [Forms]
summary: List form entries
parameters:
- name: form_id
in: query
required: true
schema: { type: string }
- name: details
in: query
schema: { type: integer, enum: [0, 1] }
responses:
'200':
description: A list of form entries.
/forms/remove_form_entry:
get:
operationId: removeFormEntry
tags: [Forms]
summary: Remove a form entry
parameters:
- name: entry_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: Result.
/volunteers/list:
get:
operationId: listVolunteers
tags: [Volunteers]
summary: List volunteers for an event
parameters:
- name: instance_id
in: query
required: true
schema: { type: string }
responses:
'200':
description: A list of volunteers.
'401':
$ref: '#/components/responses/Unauthorized'
/volunteers/add:
get:
operationId: addVolunteer
tags: [Volunteers]
summary: Add a volunteer to an event
parameters:
- name: instance_id
in: query
schema: { type: string }
- name: person_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/volunteers/remove:
get:
operationId: removeVolunteer
tags: [Volunteers]
summary: Remove a volunteer from an event
parameters:
- name: instance_id
in: query
schema: { type: string }
- name: person_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/volunteers/update:
get:
operationId: updateVolunteer
tags: [Volunteers]
summary: Update a volunteer's roles
parameters:
- name: instance_id
in: query
schema: { type: string }
- name: person_id
in: query
schema: { type: string }
- name: role_ids_json
in: query
schema: { type: string }
responses:
'200':
description: Result.
/volunteers/list_roles:
get:
operationId: listVolunteerRoles
tags: [Volunteers]
summary: List volunteer roles
parameters:
- name: instance_id
in: query
schema: { type: string }
- name: show_quantity
in: query
schema: { type: integer, enum: [0, 1] }
responses:
'200':
description: A list of volunteer roles.
/volunteers/add_role:
get:
operationId: addVolunteerRole
tags: [Volunteers]
summary: Add a volunteer role
parameters:
- name: instance_id
in: query
schema: { type: string }
- name: name
in: query
schema: { type: string }
- name: quantity
in: query
schema: { type: integer }
responses:
'200':
description: The created role.
/volunteers/remove_role:
get:
operationId: removeVolunteerRole
tags: [Volunteers]
summary: Remove a volunteer role
parameters:
- name: instance_id
in: query
schema: { type: string }
- name: role_id
in: query
schema: { type: string }
responses:
'200':
description: Result.
/account/summary:
get:
operationId: accountSummary
tags: [Account]
summary: Retrieve account summary
responses:
'200':
description: Account summary information.
'401':
$ref: '#/components/responses/Unauthorized'
/account/list_log:
get:
operationId: listAccountLog
tags: [Account]
summary: List account activity log
parameters:
- name: action
in: query
schema: { type: string }
- name: start
in: query
schema: { type: string }
- name: end
in: query
schema: { type: string }
- name: user_id
in: query
schema: { type: string }
- name: details
in: query
schema: { type: integer, enum: [0, 1] }
- name: limit
in: query
schema: { type: integer }
responses:
'200':
description: A list of account log entries.
components:
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: Api-Key
description: >-
Account API key sent in the Api-Key header. The Account Owner generates
it under Manage Account > API Key in the Breeze web app.
responses:
Unauthorized:
description: Missing or invalid Api-Key header.