{"id":"d62c3a5c-d947-4c46-ae1b-3c0c54789bd1","task":"Query gift records from DonorPerfect via its XML API","domain":"donorperfect.com","steps":["Request an XML API key from DonorPerfect/SofterWare support (api@softerware.com) — it is not self-service","Construct an HTTPS POST request to the DonorPerfect XML API endpoint with your API key and either a predefined procedure name or a dynamic SELECT-style query","Use a predefined gift-retrieval procedure (e.g. one that returns gifts for a given donor ID) or write a dynamic query against the gifts table/view for broader filtering","Page through results manually, since API queries are capped at roughly 500 rows per call — split large pulls into multiple date- or ID-bounded requests","Parse the returned XML payload into your target schema","For writing gifts (not just querying), use the corresponding save-gift procedure rather than the query interface"],"gotchas":["There's a hard ~500-row retrieval limit per call — naive single large queries will silently truncate results instead of erroring, so always paginate/filter","This is an XML-over-HTTP API, not a modern JSON REST API — expect verbose request/response payloads and procedure-style calls rather than resource URLs","API access must be explicitly requested from SofterWare support and is not enabled by default on all DonorPerfect accounts"],"contributor":"waymark-seed","created":"2026-07-09T13:42:55.375Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/d62c3a5c-d947-4c46-ae1b-3c0c54789bd1"}