All integrations

ChMeetings

BUSINESS · TASKS

People, families, groups, events, and attendance in the account they connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

chmeetings_delete_api_v1_contributions_batches_by_idWRITE

Delete a batch if no contributions are associated via DELETE /api/v1/contributions/batches/{id}

api
chmeetings_delete_api_v1_contributions_by_idWRITE

Delete a contribution by ID. via DELETE /api/v1/contributions/{id}

api
chmeetings_delete_api_v1_contributions_funds_by_idWRITE

Delete a contribution fund and move all its contributions to another fund. The move_to_fund_id must be provided to specify where to move existing contributions in case of deleted fund has contributions. via DELETE /api/v1/contributions/funds/{id}

api
chmeetings_delete_api_v1_contributions_payment_methods_by_idWRITE

Delete a custom payment method and move all its contributions to another payment method. System payment methods cannot be deleted. The move_to_payment_method_id must be provided to specify where to move existing contributions in case of deleted payment method has contributions. via DELETE /api/v1/contributions/payment-methods/{id}

api
chmeetings_delete_api_v1_families_by_idWRITE

Delete a family and remove family relationships from all members via DELETE /api/v1/families/{id}

api
chmeetings_delete_api_v1_families_by_id_members_by_person_idWRITE

Remove a member from a family (family must retain at least 2 members) via DELETE /api/v1/families/{id}/members/{person_id}

api
chmeetings_delete_api_v1_groups_by_group_idWRITE

Deletes a group and removes all of its memberships and group-leader assignments. Returns 404 when the group does not exist, and 400 when the group is still assigned to one or more upcoming events — remove it from those events first. via DELETE /api/v1/groups/{group_id}

api
chmeetings_delete_api_v1_groups_by_group_id_memberships_by_person_idWRITE

Removes a person from a group. Returns 200 if removed, 404 if not found. via DELETE /api/v1/groups/{group_id}/memberships/{person_id}

api
chmeetings_delete_api_v1_integrations_webhooks_by_idWRITE

Only subscriptions the church owns can be deleted. One managed by Zapier answers `403` - turn it off in that platform instead, which tears the subscription down through its own unsubscribe. via DELETE /api/v1/integrations/webhooks/{id}

api
chmeetings_delete_api_v1_occurrences_by_occurrence_id_check_ins_by_person_idWRITE

- Cancels a check-in (removes the attendance record, including its check-out if any). - Returns 404 when the person has no active check-in on this occurrence; offline clients replaying a queue should treat 404 as already done. via DELETE /api/v1/occurrences/{occurrence_id}/check-ins/{person_id}

api
chmeetings_delete_api_v1_occurrences_by_occurrence_id_check_outs_by_person_idWRITE

- Cancels a check-out (clears checked_out_at; the person remains checked in). - Returns 404 when the person is not checked out of this occurrence; offline clients replaying a queue should treat 404 as already done. via DELETE /api/v1/occurrences/{occurrence_id}/check-outs/{person_id}

api
chmeetings_delete_api_v1_organizations_by_organization_id_groups_by_group_idWRITE

Deletes a group within an organization and removes all of its memberships and group-leader assignments. Returns 404 when the group does not exist in that organization, and 400 when the group is still assigned to one or more upcoming events — remove it from those events first. via DELETE /api/v1/organizations/{organization_id}/groups/{group_id}

api
chmeetings_delete_api_v1_organizations_by_organization_id_groups_by_group_id_memberships_by_person_idWRITE

Removes a person from a group within an organization. Returns 200 if removed, 404 if not found. via DELETE /api/v1/organizations/{organization_id}/groups/{group_id}/memberships/{person_id}

api
chmeetings_delete_api_v1_organizations_by_organization_id_occurrences_by_occurrence_id_check_ins_by_person_idWRITE

- Cancels a check-in (removes the attendance record, including its check-out if any). - Returns 404 when the person has no active check-in on this occurrence; offline clients replaying a queue should treat 404 as already done. via DELETE /api/v1/organizations/{organization_id}/occurrences/{occurrence_id}/check-ins/{person_id}

api
chmeetings_delete_api_v1_organizations_by_organization_id_occurrences_by_occurrence_id_check_outs_by_person_idWRITE

- Cancels a check-out (clears checked_out_at; the person remains checked in). - Returns 404 when the person is not checked out of this occurrence; offline clients replaying a queue should treat 404 as already done. via DELETE /api/v1/organizations/{organization_id}/occurrences/{occurrence_id}/check-outs/{person_id}

api
chmeetings_delete_api_v1_organizations_by_organization_id_people_by_person_idWRITE

Removes a person from an organization. The person stays in the account — to delete them entirely, use `DELETE /api/v1/people/{person_id}`. Removing someone from the account itself returns 400. Removing them from their main church is allowed. Repeating the call on a person who is no longer a member returns 404; retry logic can treat that as success. An organization outside the API key's tree returns 400, not 404. via DELETE /api/v1/organizations/{organization_id}/people/{person_id}

api
chmeetings_delete_api_v1_organizations_by_organization_id_posts_by_post_idWRITE

Delete organization post by its Id via DELETE /api/v1/organizations/{organization_id}/posts/{post_id}

api
chmeetings_delete_api_v1_organizations_by_organization_id_posts_by_post_id_imageWRITE

Removes the post's image. Returns 404 when the post has no image. via DELETE /api/v1/organizations/{organization_id}/posts/{post_id}/image

api
chmeetings_delete_api_v1_people_by_idWRITE

Delete person by Id via DELETE /api/v1/people/{id}

api
chmeetings_delete_api_v1_people_by_person_id_notes_by_note_idWRITE

Delete a member note. via DELETE /api/v1/people/{person_id}/notes/{note_id}

api
chmeetings_delete_api_v1_posts_by_idWRITE

Delete a post by its Id via DELETE /api/v1/posts/{id}

api
chmeetings_delete_api_v1_posts_by_post_id_imageWRITE

Removes the post's image. Returns 404 when the post has no image. via DELETE /api/v1/posts/{post_id}/image

api
chmeetings_get_api_v1_accounting_accountsREAD

Get the ledger's accounts (bank registers) with paging, ordered by display order then name. - Account types are `asset` and `liability`; income/expense classification lives on categories, not accounts. - Available filters: `type`, `include_archived` (default false). - `include=balance` adds each account's current running balance (income minus expenses across all non-voided transactions, beginning balances included). via GET /api/v1/accounting/accounts

api
chmeetings_get_api_v1_accounting_accounts_by_account_idREAD

Gets a single ledger account by its ID. Returns 404 when the account does not exist. `include=balance` adds the account's current running balance (voided transactions excluded). via GET /api/v1/accounting/accounts/{account_id}

api
chmeetings_get_api_v1_accounting_categoriesREAD

Get the income/expense categories with paging, ordered by type then name. - Categories are a flat list; rebuild the hierarchy with `parent_category_id` (at most two levels). - Available filters: `type` (income|expense), `include_archived` (default false), `search` (name contains). via GET /api/v1/accounting/categories

api
chmeetings_get_api_v1_accounting_categories_by_category_idREAD

Gets a single income/expense category by its ID. Returns 404 when the category does not exist. via GET /api/v1/accounting/categories/{category_id}

api
chmeetings_get_api_v1_accounting_fundsREAD

Get the ledger's funds (cost centers, e.g. General Fund, Missions) with paging, ordered by name. These are GL funds, not the giving funds under /contributions/funds. - Available filters: `include_archived` (default false). - `include=balance` adds each fund's net balance across all accounts (voided transactions excluded). via GET /api/v1/accounting/funds

api
chmeetings_get_api_v1_accounting_funds_by_fund_idREAD

Gets a single GL fund by its ID. Returns 404 when the fund does not exist. `include=balance` adds the fund's net balance across all accounts. via GET /api/v1/accounting/funds/{fund_id}

api
chmeetings_get_api_v1_accounting_payeesREAD

Get the payee (vendor) master list with paging, ordered by name. - Available filters: `search` (name contains), `is_1099_eligible`. - Tax IDs are never exposed through the API. via GET /api/v1/accounting/payees

api
chmeetings_get_api_v1_accounting_payees_by_payee_idREAD

Gets a single payee by its ID. Returns 404 when the payee does not exist. via GET /api/v1/accounting/payees/{payee_id}

api
chmeetings_get_api_v1_accounting_transactionsREAD

Get ledger transactions with their split lines, paged, newest first (date, then ID descending). - Amounts are positive; the direction comes from `type` (signed value = income ? +amount : -amount). The one exception is fund transfers, whose source-fund line is negative (header amount 0). - An account-to-account transfer is recorded as two transactions, income on the receiving account and expense on the sending one; a fund transfer is one transaction with `is_fund_transfer: true` and offsetting lines. Transfer lines carry no category. - Voided transactions are hidden by default (`include_voided`); beginning-balance rows are included by default (`include_beginning_balances`) and flagged per row. - Filter by register, dates, type, categories, funds, payee, check number, text, and amount range. - This list doubles as the category/fund/payee ledger drill-down via `category_ids`/`fund_ids`/`payee_id`. via GET /api/v1/accounting/transactions

api
chmeetings_get_api_v1_accounting_transactions_by_transaction_idREAD

Gets a single ledger transaction by its ID, including its split lines. Returns 404 when the transaction does not exist. Voided and beginning-balance rows are returned. via GET /api/v1/accounting/transactions/{transaction_id}

api
chmeetings_get_api_v1_address_citiesREAD

Retrieves a paged list of cities for a specified state, allowing for optional search text to filter results. via GET /api/v1/address/cities

api
chmeetings_get_api_v1_address_countriesREAD

Retrieves a paged list of countries, allowing for optional search text to filter results. via GET /api/v1/address/countries

api
chmeetings_get_api_v1_address_statesREAD

Retrieves a paged list of states for a specified country, allowing for optional search text to filter results. via GET /api/v1/address/states

api
chmeetings_get_api_v1_campaignsREAD

Get all campaigns with paging via GET /api/v1/campaigns

api
chmeetings_get_api_v1_campaigns_by_id_pledgesREAD

Get all pledges for a campaign with paging via GET /api/v1/campaigns/{id}/pledges

api
chmeetings_get_api_v1_contributionsREAD

- Get all contributions with paging and filtering options. - Available filters: person_id, start_date, end_date, reference_id, batch_id. - Filters are combined with AND; omit a filter to leave it unapplied. - Supports pagination via page and page_size. via GET /api/v1/contributions

api
chmeetings_get_api_v1_contributions_batchesREAD

Get all contribution batches with paging via GET /api/v1/contributions/batches

api
chmeetings_get_api_v1_contributions_batches_by_idREAD

Get a batch by Id via GET /api/v1/contributions/batches/{id}

api
chmeetings_get_api_v1_contributions_fundsREAD

- Get all contribution funds with paging and filtering options. - Available filters: search_text, is_tax_deductible. - Supports pagination via page and page_size. via GET /api/v1/contributions/funds

api
chmeetings_get_api_v1_contributions_funds_by_idREAD

Get detailed information about a specific contribution fund by its ID via GET /api/v1/contributions/funds/{id}

api
chmeetings_get_api_v1_contributions_members_no_envelopesREAD

Get all members without envelopes with paging and filtering options via GET /api/v1/contributions/members/no-envelopes

api
chmeetings_get_api_v1_contributions_payment_methodsREAD

- Get all payment methods with paging and filtering options. - Available filters: search_text. - Supports pagination via page and page_size. via GET /api/v1/contributions/payment-methods

api
chmeetings_get_api_v1_contributions_payment_methods_by_idREAD

Get detailed information about a specific payment method by its ID via GET /api/v1/contributions/payment-methods/{id}

api
chmeetings_get_api_v1_eventsREAD

Get events within a date range with pagination. Each event includes a `visibility` value ("internal", "members", or "public") and an `image_url` (CDN URL of the event image, or null when no image is set). via GET /api/v1/events

api
chmeetings_get_api_v1_events_by_event_idREAD

Returns a single event by its unique identifier. Response includes `visibility` ("internal", "members", or "public") and `image_url` (CDN URL of the event image, or null when no image is set). via GET /api/v1/events/{event_id}

api
chmeetings_get_api_v1_events_by_event_id_occurrencesREAD

Returns both materialized and virtual (computed) occurrences for a given event. Each occurrence includes an `image_url` (CDN URL of the occurrence image, or null when no image is set). For materialized occurrences the schedule's own image is used when set; otherwise the parent event's image is returned. For virtual occurrences the parent event's image is always returned. via GET /api/v1/events/{event_id}/occurrences

api
chmeetings_get_api_v1_events_by_event_id_statisticsREAD

Returns a per-occurrence attendance summary plus a period rollup for every materialized occurrence of the event with Day within [from, to]. Pass include=groups to add a per-group breakdown inside each occurrence. via GET /api/v1/events/{event_id}/statistics

api
chmeetings_get_api_v1_familiesREAD

Get all families with optional search and paging via GET /api/v1/families

api
chmeetings_get_api_v1_families_by_idREAD

Get a specific family by ID via GET /api/v1/families/{id}

api
chmeetings_get_api_v1_families_family_rolesREAD

Get family roles via GET /api/v1/families/family-roles

api
chmeetings_get_api_v1_follow_upsREAD

Get follow-ups (pastoral follow-up tasks) with paging and filtering options. - A follow-up is a task to follow up with a specific person, optionally assigned to one or more people (`assignees`) and categorized by a follow-up action. - Filters are combined with AND; omit a filter to leave it unapplied. An unknown `person_id`/`assignee_id`/`action_id` yields an empty page, not an error. - Results are sorted by scheduled date descending. - All dates and times are church-local wall-clock: `date` is the scheduled date, `completed_on` is when the follow-up was marked done, `created_on`/`updated_on` are record audit stamps. via GET /api/v1/follow-ups

api
chmeetings_get_api_v1_follow_ups_actionsREAD

Get the follow-up actions (categories such as "First Visit") available to this organization, sorted by name, unpaged. via GET /api/v1/follow-ups/actions

api
chmeetings_get_api_v1_follow_ups_by_follow_up_idREAD

Returns a single follow-up by its unique identifier. All dates and times are church-local wall-clock: `date` is the scheduled date, `completed_on` is when the follow-up was marked done. via GET /api/v1/follow-ups/{follow_up_id}

api
chmeetings_get_api_v1_groupsREAD

Get all groups, ordered by name. Optionally filter by name with `search_text`. Omitting it returns every group - this response is not paged. via GET /api/v1/groups

api
chmeetings_get_api_v1_groups_by_group_idREAD

Gets a single group by its id. Returns 404 when the group does not exist. via GET /api/v1/groups/{group_id}

api
chmeetings_get_api_v1_groups_peopleREAD

Get all people in groups with filtering options. - group_ids parameter can accept a single group ID or multiple group IDs separated by commas (e.g., "123" or "123,456,789"). via GET /api/v1/groups/people

api
chmeetings_get_api_v1_integrations_webhooksREAD

Returns every webhook subscription for the church, including those created by Zapier. The `app` field says which integration owns each one; `secret` is returned only for subscriptions the church owns (`app` = `custom`). via GET /api/v1/integrations/webhooks

api
chmeetings_get_api_v1_integrations_webhooks_by_idREAD

Get a webhook subscription by ID via GET /api/v1/integrations/webhooks/{id}

api
chmeetings_get_api_v1_integrations_webhooks_eventsREAD

Every event a subscription can listen for. Send `event_name` in the `event_names` of a create or update; it is also the value delivered as `event_name` on the payload. `category` is the domain the event belongs to - People, Contributions, Contribution Funds or Attendance. via GET /api/v1/integrations/webhooks/events

api
chmeetings_get_api_v1_occurrences_by_occurrence_idREAD

Resolves a materialized (numeric ID) or virtual occurrence. via GET /api/v1/occurrences/{occurrence_id}

api
chmeetings_get_api_v1_occurrences_by_occurrence_id_attendanceREAD

Returns the full attendance list for occurrence, with optional status filter and pagination. via GET /api/v1/occurrences/{occurrence_id}/attendance

api
chmeetings_get_api_v1_occurrences_by_occurrence_id_attendance_summaryREAD

Returns attendance statistics for occurrence. via GET /api/v1/occurrences/{occurrence_id}/attendance/summary

api
chmeetings_get_api_v1_organizationsREAD

Returns a paginated list of organizations accessible by the current API key. Scope depends on subscription: - Diocese: Diocese, Churches, Ministries. - Church: Church and its Ministries. Ordered by hierarchy, then by name. via GET /api/v1/organizations

api
chmeetings_get_api_v1_organizations_by_organization_idREAD

Retrieves the details of a specific organization by its ID. via GET /api/v1/organizations/{organization_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_accountsREAD

Get the ledger's accounts (bank registers) of an organization with paging. Same filters as the non-organization endpoint, scoped to the requested organization. via GET /api/v1/organizations/{organization_id}/accounting/accounts

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_accounts_by_account_idREAD

Gets a single ledger account by its ID within an organization. Returns 404 when the account does not exist in that organization. via GET /api/v1/organizations/{organization_id}/accounting/accounts/{account_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_categoriesREAD

Get the income/expense categories of an organization with paging. Same filters as the non-organization endpoint, scoped to the requested organization. via GET /api/v1/organizations/{organization_id}/accounting/categories

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_categories_by_category_idREAD

Gets a single income/expense category by its ID within an organization. Returns 404 when the category does not exist in that organization. via GET /api/v1/organizations/{organization_id}/accounting/categories/{category_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_fundsREAD

Get the GL funds of an organization with paging. Same filters as the non-organization endpoint, scoped to the requested organization. via GET /api/v1/organizations/{organization_id}/accounting/funds

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_funds_by_fund_idREAD

Gets a single GL fund by its ID within an organization. Returns 404 when the fund does not exist in that organization. via GET /api/v1/organizations/{organization_id}/accounting/funds/{fund_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_payeesREAD

Get the payee (vendor) master list of an organization with paging. Same filters as the non-organization endpoint, scoped to the requested organization. via GET /api/v1/organizations/{organization_id}/accounting/payees

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_payees_by_payee_idREAD

Gets a single payee by its ID within an organization. Returns 404 when the payee does not exist in that organization. via GET /api/v1/organizations/{organization_id}/accounting/payees/{payee_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_transactionsREAD

Get the ledger transactions of an organization with their split lines, paged, newest first. Same filters as the non-organization endpoint, scoped to the requested organization. via GET /api/v1/organizations/{organization_id}/accounting/transactions

api
chmeetings_get_api_v1_organizations_by_organization_id_accounting_transactions_by_transaction_idREAD

Gets a single ledger transaction by its ID within an organization, including its split lines. Returns 404 when the transaction does not exist in that organization. via GET /api/v1/organizations/{organization_id}/accounting/transactions/{transaction_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_eventsREAD

Get events in organization within a date range with pagination. Each event includes a `visibility` value ("internal", "members", or "public") and an `image_url` (CDN URL of the event image, or null when no image is set). via GET /api/v1/organizations/{organization_id}/events

api
chmeetings_get_api_v1_organizations_by_organization_id_events_by_event_idREAD

Returns a single event by its unique identifier within the organization. Response includes `visibility` ("internal", "members", or "public") and `image_url` (CDN URL of the event image, or null when no image is set). via GET /api/v1/organizations/{organization_id}/events/{event_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_events_by_event_id_occurrencesREAD

Returns both materialized and virtual (computed) occurrences for a given event within the organization. Each occurrence includes an `image_url` (CDN URL of the occurrence image, or null when no image is set). For materialized occurrences the schedule's own image is used when set; otherwise the parent event's image is returned. For virtual occurrences the parent event's image is always returned. via GET /api/v1/organizations/{organization_id}/events/{event_id}/occurrences

api
chmeetings_get_api_v1_organizations_by_organization_id_events_by_event_id_statisticsREAD

Same as GET /events/{event_id}/statistics, scoped to the given organization. via GET /api/v1/organizations/{organization_id}/events/{event_id}/statistics

api
chmeetings_get_api_v1_organizations_by_organization_id_follow_upsREAD

Get follow-ups (pastoral follow-up tasks) in the organization with paging and filtering options. - A follow-up is a task to follow up with a specific person, optionally assigned to one or more people (`assignees`) and categorized by a follow-up action. - Filters are combined with AND; omit a filter to leave it unapplied. An unknown `person_id`/`assignee_id`/`action_id` yields an empty page, not an error. - Results are sorted by scheduled date descending. - All dates and times are church-local wall-clock: `date` is the scheduled date, `completed_on` is when the follow-up was marked done, `created_on`/`updated_on` are record audit stamps. via GET /api/v1/organizations/{organization_id}/follow-ups

api
chmeetings_get_api_v1_organizations_by_organization_id_follow_ups_actionsREAD

Get the follow-up actions (categories) available to the organization, sorted by name, unpaged. via GET /api/v1/organizations/{organization_id}/follow-ups/actions

api
chmeetings_get_api_v1_organizations_by_organization_id_follow_ups_by_follow_up_idREAD

Returns a single follow-up by its unique identifier within the organization. All dates and times are church-local wall-clock: `date` is the scheduled date, `completed_on` is when the follow-up was marked done. via GET /api/v1/organizations/{organization_id}/follow-ups/{follow_up_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_groupsREAD

Get groups in organization with paging and search options. via GET /api/v1/organizations/{organization_id}/groups

api
chmeetings_get_api_v1_organizations_by_organization_id_groups_by_group_idREAD

Gets a single group by its id within an organization. Returns 404 when the group does not exist in that organization. via GET /api/v1/organizations/{organization_id}/groups/{group_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_groups_by_group_id_membershipsREAD

Retrieves all people of a specific group within an organization with filtering and pagination. via GET /api/v1/organizations/{organization_id}/groups/{group_id}/memberships

api
chmeetings_get_api_v1_organizations_by_organization_id_occurrences_by_occurrence_idREAD

Resolves a materialized (numeric ID) or virtual occurrence within the organization. via GET /api/v1/organizations/{organization_id}/occurrences/{occurrence_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_occurrences_by_occurrence_id_attendanceREAD

Returns the full attendance list for occurrence within the organization, with optional status filter and pagination. via GET /api/v1/organizations/{organization_id}/occurrences/{occurrence_id}/attendance

api
chmeetings_get_api_v1_organizations_by_organization_id_occurrences_by_occurrence_id_attendance_summaryREAD

Returns attendance statistics for an occurrence within the organization. via GET /api/v1/organizations/{organization_id}/occurrences/{occurrence_id}/attendance/summary

api
chmeetings_get_api_v1_organizations_by_organization_id_peopleREAD

Retrieves all people belonging to a specific organization with filtering and pagination. The example response shows every optional expansion. Each appears only when asked for: `organizations` with `include_organizations=true` and `groups` with `include_groups=true`. When an expansion is requested and the person has nothing to show, the key is present with an empty list; when it is not requested the key is absent entirely. The remaining fields depend on the account's profile-field configuration, so a field the account has disabled is omitted rather than returned as null. via GET /api/v1/organizations/{organization_id}/people

api
chmeetings_get_api_v1_organizations_by_organization_id_postsREAD

Get all organization posts with paging and filtering options. Available filters: status (draft/published), start_date, end_date. Supports pagination via page and page_size. Each post includes an `image_url` (CDN URL of the post image, or null when no image is set). via GET /api/v1/organizations/{organization_id}/posts

api
chmeetings_get_api_v1_organizations_by_organization_id_posts_by_post_idREAD

Get a single organization post by its Id. Response includes an `image_url` (CDN URL of the post image, or null when no image is set). via GET /api/v1/organizations/{organization_id}/posts/{post_id}

api
chmeetings_get_api_v1_organizations_by_organization_id_posts_by_post_id_commentsREAD

Get all organization comments for a specific post with pagination support. via GET /api/v1/organizations/{organization_id}/posts/{post_id}/comments

api
chmeetings_get_api_v1_organizations_by_organization_id_posts_by_post_id_likesREAD

Get all organization likes for a specific post with pagination support. via GET /api/v1/organizations/{organization_id}/posts/{post_id}/likes

api
chmeetings_get_api_v1_organizations_by_organization_id_posts_categoriesREAD

Get all organization post categories with pagination support. via GET /api/v1/organizations/{organization_id}/posts/categories

api
chmeetings_get_api_v1_peopleREAD

Get all people with paging and filtering options The example response shows every optional expansion. Each appears only when asked for: `organizations` with `include_organizations=true` and `groups` with `include_groups=true`. When an expansion is requested and the person has nothing to show, the key is present with an empty list; when it is not requested the key is absent entirely. The remaining fields depend on the account's profile-field configuration, so a field the account has disabled is omitted rather than returned as null. via GET /api/v1/people

api
chmeetings_get_api_v1_people_by_idREAD

Get person by Id via GET /api/v1/people/{id}

api
chmeetings_get_api_v1_people_by_person_id_notesREAD

Retrieve all public notes for a specific person with paging. via GET /api/v1/people/{person_id}/notes

api
chmeetings_get_api_v1_people_by_person_id_notes_by_note_idREAD

Retrieve member note by id. via GET /api/v1/people/{person_id}/notes/{note_id}

api
chmeetings_get_api_v1_people_by_person_id_organizationsREAD

Returns all organizations (diocese, church, ministry) a person belongs to within the account scope, with paging. Main church entries are returned first. via GET /api/v1/people/{person_id}/organizations

api
chmeetings_get_api_v1_people_fieldsREAD

Get all member fields via GET /api/v1/people/fields

api
chmeetings_get_api_v1_people_gendersREAD

Get all Genders via GET /api/v1/people/genders

api
chmeetings_get_api_v1_people_grade_valuesREAD

Get all Grade Values via GET /api/v1/people/grade-values

api
chmeetings_get_api_v1_people_social_statusesREAD

Get all Social Statuses via GET /api/v1/people/social-statuses

api
chmeetings_get_api_v1_postsREAD

Get all posts with paging and filtering options. Available filters: status (draft/published), start_date, end_date. Supports pagination via page and page_size. Each post includes an `image_url` (CDN URL of the post image, or null when no image is set). via GET /api/v1/posts

api
chmeetings_get_api_v1_posts_by_idREAD

Get a single post by its Id. Response includes an `image_url` (CDN URL of the post image, or null when no image is set). via GET /api/v1/posts/{id}

api
chmeetings_get_api_v1_posts_by_post_id_commentsREAD

Get all comments for a specific post with pagination support. via GET /api/v1/posts/{post_id}/comments

api
chmeetings_get_api_v1_posts_by_post_id_likesREAD

Get all likes for a specific post with pagination support. via GET /api/v1/posts/{post_id}/likes

api
chmeetings_get_api_v1_posts_categoriesREAD

Get all post categories with pagination support. via GET /api/v1/posts/categories

api
chmeetings_patch_api_v1_families_by_id_members_by_person_idWRITE

Change a family member's role via PATCH /api/v1/families/{id}/members/{person_id}

api
chmeetings_post_api_v1_contributionsWRITE

Create a new contribution. Send a unique reference_id (idempotency key) with each contribution: posting the same reference_id again is rejected as a duplicate, which makes retries safe. via POST /api/v1/contributions

api
chmeetings_post_api_v1_contributions_batchesWRITE

Create a new batch via POST /api/v1/contributions/batches

api
chmeetings_post_api_v1_contributions_batches_by_id_closeWRITE

Close a contribution batch to prevent further contributions from being added via POST /api/v1/contributions/batches/{id}/close

api
chmeetings_post_api_v1_contributions_batches_by_id_reopenWRITE

Reopen a contribution batch to allow contributions to be added again via POST /api/v1/contributions/batches/{id}/reopen

api
chmeetings_post_api_v1_contributions_fundsWRITE

Create a new contribution fund with the specified properties via POST /api/v1/contributions/funds

api
chmeetings_post_api_v1_contributions_payment_methodsWRITE

Create a new custom payment method via POST /api/v1/contributions/payment-methods

api
chmeetings_post_api_v1_familiesWRITE

Create a new family with members (minimum 2 members required) via POST /api/v1/families

api
chmeetings_post_api_v1_families_by_id_membersWRITE

Add members to an existing family via POST /api/v1/families/{id}/members

api
chmeetings_post_api_v1_groupsWRITE

Creates a new group and returns the created group. Returns 400 when the name is already used by another group. via POST /api/v1/groups

api
chmeetings_post_api_v1_groups_by_group_id_membershipsWRITE

Adds a person to a group. Returns 201 if created, 200 if already exists. via POST /api/v1/groups/{group_id}/memberships

api
chmeetings_post_api_v1_integrations_webhooksWRITE

Creates a subscription owned by the church. The response carries the signing secret, which is used to verify the `ChMeetings-Webhook-Signature` header on delivery. Delivery is at-least-once and is delayed at least a minute after the triggering action (about 4 to 5 minutes for `person.*` events), so key on `event_id` to spot a repeat. Answer `410 Gone` to have the subscription removed automatically. via POST /api/v1/integrations/webhooks

api
chmeetings_post_api_v1_occurrences_by_occurrence_id_check_insWRITE

- Checks a person in to the occurrence (creates the attendance record). - Idempotent: if the person is already checked in, the existing record is returned with 200. - occurred_at is optional and is the church's local wall-clock time in yyyy-MM-ddTHH:mm:ss (e.g. 2026-08-09T09:14:23). Fractional seconds are accepted and truncated. A UTC offset (Z or +03:00) is rejected with 400 - convert to the church's timezone before sending; do not simply strip the offset, or the time will be stored wrong. Defaults to now. Offline clients pass the locally recorded time when they sync. - Returns 201 with the attendance record; check_in_code is populated when the event has name tags enabled. - Concurrent duplicate check-ins return 409; retrying returns the winning record with 200. via POST /api/v1/occurrences/{occurrence_id}/check-ins

api
chmeetings_post_api_v1_occurrences_by_occurrence_id_check_outsWRITE

- Checks a person out of the occurrence (sets checked_out_at on the attendance record). - Requires an existing check-in (422 otherwise) and the event's check-out option enabled. - Idempotent: if the person is already checked out, the existing record is returned with 200. - occurred_at is optional and is the church's local wall-clock time in yyyy-MM-ddTHH:mm:ss (e.g. 2026-08-09T09:14:23). Fractional seconds are accepted and truncated. A UTC offset (Z or +03:00) is rejected with 400 - convert to the church's timezone before sending; do not simply strip the offset, or the time will be stored wrong. Defaults to now. Offline clients pass the locally recorded time when they sync. - Rejected with 422 when occurred_at is before the recorded check-in time. via POST /api/v1/occurrences/{occurrence_id}/check-outs

api
chmeetings_post_api_v1_organizations_by_organization_id_groupsWRITE

Creates a new group within an organization and returns the created group. Returns 400 when the name is already used by another group in that organization. via POST /api/v1/organizations/{organization_id}/groups

api
chmeetings_post_api_v1_organizations_by_organization_id_groups_by_group_id_membershipsWRITE

Adds a person to a group within an organization. Returns 201 if created, 200 if already exists. via POST /api/v1/organizations/{organization_id}/groups/{group_id}/memberships

api
chmeetings_post_api_v1_organizations_by_organization_id_occurrences_by_occurrence_id_check_insWRITE

- Checks a person in to the occurrence (creates the attendance record). - Idempotent: if the person is already checked in, the existing record is returned with 200. - occurred_at is optional and is the church's local wall-clock time in yyyy-MM-ddTHH:mm:ss (e.g. 2026-08-09T09:14:23). Fractional seconds are accepted and truncated. A UTC offset (Z or +03:00) is rejected with 400 - convert to the church's timezone before sending; do not simply strip the offset, or the time will be stored wrong. Defaults to now. Offline clients pass the locally recorded time when they sync. - Returns 201 with the attendance record; check_in_code is populated when the event has name tags enabled. - Concurrent duplicate check-ins return 409; retrying returns the winning record with 200. via POST /api/v1/organizations/{organization_id}/occurrences/{occurrence_id}/check-ins

api
chmeetings_post_api_v1_organizations_by_organization_id_occurrences_by_occurrence_id_check_outsWRITE

- Checks a person out of the occurrence (sets checked_out_at on the attendance record). - Requires an existing check-in (422 otherwise) and the event's check-out option enabled. - Idempotent: if the person is already checked out, the existing record is returned with 200. - occurred_at is optional and is the church's local wall-clock time in yyyy-MM-ddTHH:mm:ss (e.g. 2026-08-09T09:14:23). Fractional seconds are accepted and truncated. A UTC offset (Z or +03:00) is rejected with 400 - convert to the church's timezone before sending; do not simply strip the offset, or the time will be stored wrong. Defaults to now. Offline clients pass the locally recorded time when they sync. - Rejected with 422 when occurred_at is before the recorded check-in time. via POST /api/v1/organizations/{organization_id}/occurrences/{occurrence_id}/check-outs

api
chmeetings_post_api_v1_organizations_by_organization_id_peopleWRITE

Adds an existing person to an organization. Returns 201 if the membership was created, 200 if the person was already a member. Get `organization_id` from `GET /api/v1/organizations` — it is an opaque string, not a number. The person is also added to the organization's parent church and account when they are not already a member there, so `organizations` in the response can list more than the one you requested. An organization outside the API key's tree returns 400, not 404. via POST /api/v1/organizations/{organization_id}/people

api
chmeetings_post_api_v1_organizations_by_organization_id_postsWRITE

Create a new organization post. Status and visibility are required. Valid `visibility` values: "internal", "members", "public". Note: the legacy value "users" was renamed to "internal" — update any integrations sending "users". Set notify_members to true to send push notifications to members — only takes effect when status is set to published. via POST /api/v1/organizations/{organization_id}/posts

api
chmeetings_post_api_v1_peopleWRITE

Create a new person via POST /api/v1/people

api
chmeetings_post_api_v1_people_by_person_id_notesWRITE

Create a new member note. via POST /api/v1/people/{person_id}/notes

api
chmeetings_post_api_v1_postsWRITE

Create a new post. Status and visibility are required. Valid `visibility` values: "internal", "members", "public". Note: the legacy value "users" was renamed to "internal" — update any integrations sending "users". Set notify_members to true to send push notifications to members — only takes effect when status is set to published. via POST /api/v1/posts

api
chmeetings_put_api_v1_contributions_batches_by_idWRITE

Updates a contribution batch. If 'date' is provided, the batch date is updated; if 'date' is null or omitted, the existing date remains unchanged. via PUT /api/v1/contributions/batches/{id}

api
chmeetings_put_api_v1_contributions_funds_by_idWRITE

Update an existing contribution fund's properties via PUT /api/v1/contributions/funds/{id}

api
chmeetings_put_api_v1_contributions_payment_methods_by_idWRITE

Update an existing custom payment method. System payment methods cannot be updated. via PUT /api/v1/contributions/payment-methods/{id}

api
chmeetings_put_api_v1_families_by_id_membersWRITE

Replace all family members (minimum 2 members required) via PUT /api/v1/families/{id}/members

api
chmeetings_put_api_v1_groups_by_group_idWRITE

Replaces a group's editable fields and returns the updated group. This is a full replacement — any omitted field is reset to its default. Returns 404 when the group does not exist, and 400 when the name is already used by another group. via PUT /api/v1/groups/{group_id}

api
chmeetings_put_api_v1_integrations_webhooks_by_idWRITE

Replaces the URL, the event list and the active flag. Only subscriptions the church owns can be updated; one managed by Zapier answers `403`. Setting `is_active` back to true on a subscription that repeated delivery failures disabled. via PUT /api/v1/integrations/webhooks/{id}

api
chmeetings_put_api_v1_organizations_by_organization_id_groups_by_group_idWRITE

Replaces the editable fields of a group within an organization and returns the updated group. This is a full replacement — any omitted field is reset to its default. Returns 404 when the group does not exist in that organization, and 400 when the name is already used by another group in it. via PUT /api/v1/organizations/{organization_id}/groups/{group_id}

api
chmeetings_put_api_v1_organizations_by_organization_id_posts_by_post_idWRITE

Update an existing organization post. Valid `visibility` values: "internal", "members", "public". Note: the legacy value "users" was renamed to "internal" — update any integrations sending "users". Set notify_members to true to send push notifications to members — only takes effect when status is set to published. via PUT /api/v1/organizations/{organization_id}/posts/{post_id}

api
chmeetings_put_api_v1_people_by_idWRITE

Fully updates a person by Id. This is a full replacement — omitted fields will be cleared. via PUT /api/v1/people/{id}

api
chmeetings_put_api_v1_people_by_person_id_notes_by_note_idWRITE

Update a member note. via PUT /api/v1/people/{person_id}/notes/{note_id}

api
chmeetings_put_api_v1_posts_by_idWRITE

Update an existing post. Valid `visibility` values: "internal", "members", "public". Note: the legacy value "users" was renamed to "internal" — update any integrations sending "users". Set notify_members to true to send push notifications to members — only takes effect when status is set to published. via PUT /api/v1/posts/{id}

api

Put ChMeetings behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.