Skip to main content
You can query financial data directly, with server-side filtering, instead of fetching whole transaction bundles and filtering on your side. This is the recommended way to build reports and sync data into external tools.

Endpoints

Filtering

All filters are optional and combined with AND. Amounts are in cents; dates are ISO 8601 (e.g. 2026-04-01T00:00:00Z). GET /v1/donations GET /v1/memberships — same as donations, with start_from/start_to, end_from/end_to instead of date_*, membership_price_id instead of donation_price_id, and sortstart_date (default), end_date, created_at, amount. GET /v1/transactionsdate_from/date_to, created_from/created_to, amount_min/amount_max, status_id (repeat for several), payment_method_kind, code_campaign, external_transaction_id, sortcreated_at (default), date, amount.

Pagination

List endpoints accept limit (max 1000) and offset, and return a top-level total you can use directly as a count.

Reporting recipes

A few common monthly metrics, all from a single donations query for the month:
First-time (new) donors — Qomon has no “first donated” field, so determine it from donation history:
  • Recommended: keep a running set of all donor contact_ids you’ve already seen. Each month, fetch that month’s donors and treat any not already in your set as new, then add them. One call per month.
  • Stateless alternative: for each donor that month, check whether they donated earlier with GET /v1/donations?contact_id=<id>&date_to=<month_start>&limit=1. An empty result (total = 0) means they are a first-time donor. This makes one call per donor.
Please be gentle with the API: there is a limit of 10 requests/second per organization. For a monthly job that is plenty — add a small delay (~150 ms) between calls rather than firing them all at once. On a 429 Too Many Requests, wait the seconds given in the Retry-After header and retry.
Last modified on June 26, 2026