ChurchOps API
Keep your current tools — pull ChurchOps-only data into them, or push data back in.
Quickstart

From zero to your first API call in about two minutes.

No SDK to install, no OAuth dance. One key, one header, plain JSON back.

1
Generate a key
Go to Settings → API & Webhooks inside ChurchOps, name your key, check the scopes it needs (e.g. action_items:read), and click Generate. The key is shown once — copy it immediately.
2
Make your first call
Send the key as a Bearer token on every request. Pick your language below:
curl
JavaScript
Python
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://getchurchops.com/api/v1/action-items"
const res = await fetch("https://getchurchops.com/api/v1/action-items", {
  headers: { Authorization: "Bearer YOUR_API_KEY" }
});
const { data, total } = await res.json();
console.log(data);
import requests

res = requests.get(
    "https://getchurchops.com/api/v1/action-items",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
payload = res.json()
print(payload["data"])
3
Optional: get notified instead of polling
Add a webhook URL from the same Settings page and ChurchOps will POST a signed JSON payload to it the moment something happens — a new follow-up, a completed action item — instead of you checking on a timer.
Scopes

Each key only sees what it's explicitly given. Combine scopes freely when generating a key.

directory:basic

Name, gender, department. Add :contact, :address, :sensitive, or :write as needed.

action_items:read / :write

Read the board, or create/update items and receive status-change webhooks.

attendance:read / :write

Aggregate service/HF counts only — no individual names ever.

followups:read / :write

Care pipeline entries — read or create/update, including status.

volunteers:read / :write

Roster read or add/update, including department assignments.

tasks:read / :write

Execution tasks under an Action Item.

programs:read

Program metadata — read-only.

collections:read / :donor

Giving amounts and dates; add :donor for donor identity (respects anonymous giving).

house_fellowships:read

Active fellowships and their leaders — read-only.

Recipes

No-code integrations, start to finish.

Three concrete ways to connect ChurchOps to tools you already use — no developer required.

📊
New Action Items → Google Sheet
  1. Generate a key with action_items:read scope.
  2. In Zapier, create a Zap with a Schedule trigger (e.g. every hour).
  3. Add a Webhooks by Zapier → GET action calling /api/v1/action-items with an Authorization header.
  4. Add a Google Sheets → Create Row action, mapping each field from the response.
🔔
New follow-up → Slack message
  1. On /settings/api, add a webhook subscribed to followup.created.
  2. Point the Target URL at a Zapier Catch Hook trigger.
  3. Add a Slack → Send Channel Message action using the follow-up's name and category from the payload.
  4. Your care team gets pinged the moment someone new needs a call — no polling.
🔁
Weekly Directory export
  1. Generate a key with directory:basic + directory:contact.
  2. In Zapier, use a Schedule → Every Week trigger.
  3. Add Webhooks by Zapier → GET against /api/v1/directory?per_page=200.
  4. Feed the results into whatever weekly report or spreadsheet your team already reviews.
Full reference

Every endpoint, live.

Paste a real API key into "Authorize" below to try requests directly from this page.