Skip to main content

Response envelope

Every API response uses a consistent envelope:
{
  "data": { ... },
  "meta": {
    "request_id": "req_abc123",
    "api_version": "v2",
    "source": "bigquery",
    "as_of": "2026-02-09T04:00:00Z"
  },
  "errors": []
}
FieldTypeDescription
dataobject or arrayThe response payload. null on errors.
meta.request_idstringUnique request identifier for debugging
meta.api_versionstringAlways "v2"
meta.sourcestringData source (risecrm, bigquery, nmi, etc.)
meta.as_ofstringISO-8601 timestamp of data freshness
errorsarrayEmpty on success. Contains error objects on failure.

Pagination

List endpoints return paginated results with metadata:
{
  "data": [ ... ],
  "meta": {
    "request_id": "req_abc123",
    "api_version": "v2",
    "pagination": {
      "page": 1,
      "page_size": 50,
      "total_count": 6153,
      "total_pages": 124
    }
  }
}

Parameters

ParameterDefaultMaxDescription
page1Page number (1-indexed)
page_size25200Items per page

Iterating pages

import requests

url = "https://modulate.aurorapayments.net/api/v2/partner/merchants"
headers = {"X-Partner-API-Key": "pk_live_YOUR_KEY_HERE"}
page = 1

while True:
    resp = requests.get(url, headers=headers, params={"page": page, "page_size": 100})
    result = resp.json()
    merchants = result["data"]

    for merchant in merchants:
        process(merchant)

    pagination = result["meta"]["pagination"]
    if page >= pagination["total_pages"]:
        break
    page += 1

Money formatting

All monetary values are returned as decimal strings to avoid IEEE 754 floating-point precision issues:
{
  "volume": "1045230.56",
  "total_fees": "12543.89",
  "payout": "4532.10"
}
Never parse monetary values as floats. Use decimal types (Decimal in Python, BigDecimal in Java, string math in JavaScript).

Timestamps

All timestamps use ISO-8601 format in UTC:
2026-02-09T04:00:00Z
The meta.as_of field tells you when the underlying data was last refreshed. See Data Freshness for per-endpoint details.

Incremental sync

Most list endpoints accept an updated_since parameter for incremental sync:
GET /merchants?updated_since=2026-01-15T00:00:00Z
This returns only records modified after the given timestamp. See the Sync Merchants guide for a full implementation pattern.