Discover/Blackbaud API
live

Blackbaud APIstatus.blackbaud.com

Monitor and review current and historical service outages and incidents affecting Blackbaud systems. Track incident details and status updates to stay informed about service disruptions impacting your business.

This API takes change requests — .
Endpoint health
monitored
get_incident
list_incidents
Checks pendingself-healing
Endpoints
2
Updated
2h ago
This call costs1 credit / call— charged only on success
Try it
Which incidents to return.
api.parse.bot/scraper/fabfd6ee-5478-4fcc-aa1c-03a69fa38f20/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/fabfd6ee-5478-4fcc-aa1c-03a69fa38f20/list_incidents?filter=unresolved' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace status-blackbaud-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: BlackbaudStatus SDK — bounded, re-runnable; every call capped."""
from parse_apis.status_blackbaud_com_api import BlackbaudStatus, IncidentFilter, IncidentNotFound

client = BlackbaudStatus()

# List current unresolved incidents (active outages)
for incident in client.incident_summaries.list(filter=IncidentFilter.UNRESOLVED, limit=3):
    print(incident.name, incident.status, incident.impact)

# Drill into the first incident for full details
summary = client.incident_summaries.list(filter=IncidentFilter.UNRESOLVED, limit=1).first()
if summary:
    try:
        full = summary.details()
        print(full.name, full.status, full.resolved_at)
        for update in full.incident_updates[:3]:
            print(update.status, update.body[:80], update.created_at)
    except IncidentNotFound as e:
        print("gone:", e.incident_id)

print("exercised: incident_summaries.list, IncidentSummary.details")
All endpoints · 2 totalmissing one? ·

List incidents from the Blackbaud status page. By default returns only unresolved (active) incidents; set filter to 'all' for the 50 most recent incidents including resolved ones. Each incident includes affected components and update count. Results are returned in a single page.

Input
ParamTypeDescription
filterstringWhich incidents to return.
Response
{
  "type": "object",
  "fields": {
    "total": "integer count of incidents returned",
    "incidents": "array of incident summaries with id, name, status, impact, components, and timestamps"
  },
  "sample": {
    "data": {
      "total": 1,
      "incidents": [
        {
          "id": "tt6bzqpmv91h",
          "name": "Active Issue Alert – Blackbaud ID – Multiple Products - 000685870",
          "impact": "minor",
          "status": "investigating",
          "shortlink": "https://stspg.io/2zf7plqbpcy1",
          "components": [
            {
              "id": "tl7cmmsgmcz2",
              "name": "Blackbaud Merchant Services™",
              "status": "degraded_performance"
            }
          ],
          "created_at": "2026-07-29T16:01:19.365-04:00",
          "started_at": "2026-07-29T16:01:19.352-04:00",
          "updated_at": "2026-07-29T16:37:31.185-04:00",
          "resolved_at": null,
          "updates_count": 2
        }
      ]
    },
    "status": "success"
  }
}

About the Blackbaud API

The Blackbaud API on Parse exposes 2 endpoints for the publicly available data on status.blackbaud.com. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.