https://api.dueflow.co. Every
endpoint is versioned under /v1.
What’s in v1
Payments are read-only in v1: money movement stays in the dashboard, where it
has the confirmation and approval flows an API call can’t reproduce.
What you can access
A token is bound to exactly one organization, and every response is scoped to it. A national organization can additionally read its direct child chapters with thechapters:read scope.
Member responses deliberately exclude phone numbers, guardian and emergency
contacts, custom fields and internal notes. Payment responses exclude
payment-provider identifiers and raw provider payloads.
Conventions
- Errors share one envelope with a stable
error.code. See Errors. - Writes require an
Idempotency-Key, so a retry can’t apply twice. See Idempotency. - Lists are cursor-paginated and support
updatedSince. See Pagination and sync. - Every response carries an
X-Request-Id. Include it when you contact support — it identifies the exact request in our logs. - Timestamps are RFC 3339 in UTC; monetary amounts are decimal strings
(
"50.00") with the organization’scurrency, never floats.
Versioning
/v1 will not change in a way that breaks a working integration. Concretely,
within v1 we will not remove an endpoint or a response field, add a required
parameter, narrow an accepted value, or require a scope or role that your
existing token doesn’t already hold. Every one of those is checked against the
published description on each change to this API, so it can’t ship by accident.
What we will do is add: new endpoints, new response fields, new optional
parameters, new scopes. So parse responses leniently and ignore fields you don’t
recognize. Anything genuinely incompatible goes in a /v2.
If an endpoint is ever retired, it is marked deprecated in the description below
and returns Deprecation and Sunset headers for at least 180 days before it
stops answering.
The machine-readable description of this version — the same one that generates
this reference — is served by the API itself:

