Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.momogood.com/llms.txt

Use this file to discover all available pages before exploring further.

The same conventions apply across every endpoint regardless of family (Custom Data Export, Salesforce, or Blackbaud).

Money fields

All amounts are integers in the event’s minor currency unit:
  • Pence for GBP (£1.50150)
  • Cents for USD, CAD, AUD, HKD ($1.50150)
The event’s currency is reported on the Event record’s currency field as an ISO 4217 code.

Timestamps

created and updated fields are Unix epoch seconds in UTC — not milliseconds.
{
  "created": 1709123456,
  "updated": 1714003200
}
For human-readable times, format these as UTC and convert to the event’s timezone (Event.timezone, an IANA timezone id) if displaying to end users.

IDs

UUIDs unless otherwise specified.

The since parameter

ParameterTypeDefaultNotes
sincelong (epoch seconds)1606062358 (2020-11-12)The server filters records by updated >= since. Use -1 (or any past epoch) to backfill everything.
The default is a past epoch — leaving it off returns all records updated since that date, which for most accounts is effectively “everything.” Pass an explicit since value to scope the response to recently-updated records. See the polling pattern for the recommended way to use since for incremental sync.

The q parameter

A simple full-text search. Empty string disables search. For bundle endpoints (/items, /purchases), the same q filters each category (buy-nows, auction items, etc.) independently.

Pagination

ParameterTypeDefaultNotes
offsetint0Records to skip.
limitint1000Page size. Maximum 1000.
For bundle endpoints (/items, /purchases), offset and limit apply per category in the response, not across the whole bundle. The bundle’s wrapper structure (its keys) is constant; only the array contents grow or shrink.

Status filter

All list endpoints implicitly filter to records with ACTIVE status. Archived, inactive, pending, and obfuscated records are not returned.

Enum casing

Enum values returned by the API are serialized in lowercase:
{
  "status": "active",
  "processorType": "stripe",
  "paymentStatus": "paid",
  "giftAidStatus": "yes"
}
Older Givergy reference material may show uppercase enum values (e.g. ACTIVE, STRIPE). Those are incorrect — the wire format is lowercase. Code-generated clients that assume uppercase will not deserialize correctly.

Content type and compression

HeaderValue
Response Content-Typeapplication/json
Response compressiongzip when Accept-Encoding: gzip is sent on the request
Response ETag / Cache-ControlNot emitted
None of these endpoints emit ETag or Cache-Control: max-age. For incremental sync, use the polling pattern with since, not HTTP caching.