Skip to main content

Transaction Series

How many transactions fell in each hour, day, week or month of a window, cut in your time zone, with every bucket present, quiet ones included. The same transactions Transaction Stats counts, given a shape: the buckets sum to its count.

New in v3: v2 has no equivalent.

Authorization:

Every request is signed with your API key: a short-lived JWT, signed with your private key, sent in one header on /v3/* and /api/v2/* alike.

Headers:
Authorization: APIKey {SIGNED_JWT}

How to build and sign the JWT: Authentication.

Endpoint

GET

/v3/transactions/series

Query parameters​

ParameterTypeDescription
fromstring (date-time)Required. Start of the window, inclusive. RFC 3339 with an offset.
tostring (date-time)Required. End of the window, exclusive. At most 366 days after from.
intervalstringRequired, no default. The bucket width: hour, day, week or month.
tzstringRequired. The IANA time zone the buckets are cut in, e.g. America/Argentina/Buenos_Aires. A fixed offset such as -03:00 is refused: it cannot say when daylight saving starts or ends.
transaction_typestringOnly one type: trade, crypto, bank or platform_fee. Absent counts every type.
statusstringOnly one status, matched exactly as stored. Absent counts every status.

How the window is cut:

  • Buckets follow the calendar of tz: a day starts at local midnight, a week on Monday, a month on the 1st. Across a daylight-saving change a day is 23 or 25 hours long, never shifted.
  • The first bucket is the one that contains from, so it can start before from. Only transactions inside [from, to) are counted.
  • At most 1,000 buckets: hour over more than about 41 days is refused. Widen interval or narrow the window.

Who the series covers is decided as for Transaction Stats: a workspace-scoped key gets the whole workspace, an account-scoped key its own account.

Response Sample​

GET /v3/transactions/series?from=2026-08-06T00:00:00-03:00&to=2026-08-09T00:00:00-03:00&interval=day&tz=America/Argentina/Buenos_Aires

{
"from": "2026-08-06T03:00:00Z",
"to": "2026-08-09T03:00:00Z",
"interval": "day",
"tz": "America/Argentina/Buenos_Aires",
"buckets": [
{ "at": "2026-08-06T03:00:00Z", "count": 28 },
{ "at": "2026-08-07T03:00:00Z", "count": 0 },
{ "at": "2026-08-08T03:00:00Z", "count": 32 }
],
"summary": {
"total": 60,
"avg_count": 20,
"peak_at": "2026-08-08T03:00:00Z"
}
}

Response Schema​

FieldTypeDescription
from / tostring (date-time)The window counted, echoed back in UTC.
intervalstringThe bucket width, echoed back.
tzstringThe zone the buckets were cut in, echoed back.
bucketsarrayEvery bucket the window covers, oldest first, including those with a count of 0.
buckets[].atstring (date-time)The bucket's first instant, in UTC. Local midnight in Buenos Aires is 03:00:00Z: convert to tz to label it.
buckets[].countintegerHow many transactions fell in the bucket.
summary.totalintegerThe sum of every bucket.
summary.avg_countnumberThe mean per bucket, over every bucket, quiet ones included. Not rounded.
summary.peak_atstring (date-time)The start of the busiest bucket; on a tie, the earliest. Absent when the window holds no transactions.

Errors​

StatusmessageWhen
400failed to parse requestfrom or to is not a timestamp, or transaction_type is not one of the types above.
400window_incompletefrom or to is missing.
400window_invertedto is not after from.
400window_too_wideThe window is longer than 366 days.
400interval_unknowninterval is not hour, day, week or month.
400timezone_unknowntz is not an IANA zone name, for example a fixed offset.
400too_many_bucketsThe window holds more than 1,000 buckets of interval.
401unauthorizedMissing or invalid signature.
403forbiddenAn account-scoped key named another account in account_id.
422Validation failedinterval or tz is missing; details names it.

Support and Resources​

If you need assistance or have any questions, our support team is here to help. You can contact our support team at support@blockwyre.com.

Stay Updated​

Stay up-to-date with the latest news, updates, and features from BlockWyre by following us on social media:

We are excited to have you on board and look forward to seeing how you leverage BlockWyre's powerful tools to enhance your financial operations. Happy integrating!