Breeze Events API
List events within a date range, retrieve a single event instance (with schedule expansion), list calendars and locations, and add or delete events on the church calendar.
List events within a date range, retrieve a single event instance (with schedule expansion), list calendars and locations, and add or delete events on the church calendar.
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.