curl --request POST \
--url https://production.hifibridge.com/v2/reporting/metrics/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template": "GROSS_VOLUME",
"params": {
"createdAfter": "2025-11-01",
"createdBefore": "2025-11-07",
"calculationInterval": "day",
"transactionDirections": [
"onramp",
"offramp"
]
}
}
'{
"status": "success",
"data": [
{
"periodStart": "2025-11-06",
"grossVolume": 0
},
{
"periodStart": "2025-11-05",
"grossVolume": 0
},
{
"periodStart": "2025-11-04",
"grossVolume": 0
},
{
"periodStart": "2025-11-03",
"grossVolume": 0
},
{
"periodStart": "2025-11-02",
"grossVolume": 0
},
{
"periodStart": "2025-11-01",
"grossVolume": 0
}
],
"metadata": {
"template": "GROSS_VOLUME",
"recordCount": 6,
"projectedRowCount": null,
"filledCount": 6,
"calculationInterval": "day",
"dateRange": {
"start": "2025-11-01",
"end": "2025-11-07"
},
"filters": {
"createdAfter": {
"applied": "subset",
"specified": true,
"values": "2025-11-01"
},
"createdBefore": {
"applied": "subset",
"specified": true,
"values": "2025-11-07"
},
"calculationInterval": {
"applied": "subset",
"specified": true,
"values": "day"
},
"transactionDirections": {
"applied": "subset",
"specified": true,
"count": 2,
"values": [
"onramp",
"offramp"
]
},
"userIds": {
"applied": "all",
"specified": false,
"count": 1000,
"note": "1000 total (list omitted for brevity)"
}
},
"breakdowns": null
}
}curl --request POST \
--url https://production.hifibridge.com/v2/reporting/metrics/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template": "GROSS_VOLUME",
"params": {
"createdAfter": "2025-11-01",
"createdBefore": "2025-11-07",
"calculationInterval": "day",
"transactionDirections": [
"onramp",
"offramp"
]
}
}
'{
"status": "success",
"data": [
{
"periodStart": "2025-11-06",
"grossVolume": 0
},
{
"periodStart": "2025-11-05",
"grossVolume": 0
},
{
"periodStart": "2025-11-04",
"grossVolume": 0
},
{
"periodStart": "2025-11-03",
"grossVolume": 0
},
{
"periodStart": "2025-11-02",
"grossVolume": 0
},
{
"periodStart": "2025-11-01",
"grossVolume": 0
}
],
"metadata": {
"template": "GROSS_VOLUME",
"recordCount": 6,
"projectedRowCount": null,
"filledCount": 6,
"calculationInterval": "day",
"dateRange": {
"start": "2025-11-01",
"end": "2025-11-07"
},
"filters": {
"createdAfter": {
"applied": "subset",
"specified": true,
"values": "2025-11-01"
},
"createdBefore": {
"applied": "subset",
"specified": true,
"values": "2025-11-07"
},
"calculationInterval": {
"applied": "subset",
"specified": true,
"values": "day"
},
"transactionDirections": {
"applied": "subset",
"specified": true,
"count": 2,
"values": [
"onramp",
"offramp"
]
},
"userIds": {
"applied": "all",
"specified": false,
"count": 1000,
"note": "1000 total (list omitted for brevity)"
}
},
"breakdowns": null
}
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Request to preview a metric calculation without saving
Metric template name
GROSS_VOLUME, TRANSFERS, NEW_CUSTOMERS Metric parameters. Structure varies by template, but common fields include:
Additional properties may be present based on the metric template. Each template may define template-specific parameters.
Show child attributes
Filter transactions created after this date (ISO 8601)
Filter transactions created before this date (ISO 8601)
Time interval for aggregation
day, week, month, quarter, year Filter by specific user IDs
Filter by transaction directions
onramp, offramp, crypto_to_crypto Filter by transfer statuses (for TRANSFERS template)
COMPLETED, FAILED, PENDING, CANCELLED Dimensions to group results by. Maximum 2 breakdowns allowed. Field names in response data will match these dimension names.
2transactionDirection, transferStatus, userId Maximum number of records to return
1 <= x <= 500Metric calculation results
Response from metric calculation endpoints. The structure of data array items
varies based on the breakdowns parameter in the request.
Base structure (no breakdowns):
periodStart, plus metric-specific fields (e.g., grossVolume, transferCount)With breakdowns:
transactionDirection, transferStatus, userId)Example without breakdowns:
{
"status": "success",
"data": [
{ "periodStart": "2025-01-01T00:00:00Z", "grossVolume": 1000.50 },
{ "periodStart": "2025-01-02T00:00:00Z", "grossVolume": 2000.75 }
],
"metadata": { ... }
}Example with breakdowns: ["transactionDirection"]:
{
"status": "success",
"data": [
{ "periodStart": "2025-01-01T00:00:00Z", "transactionDirection": "onramp", "grossVolume": 500.25 },
{ "periodStart": "2025-01-01T00:00:00Z", "transactionDirection": "offramp", "grossVolume": 500.25 }
],
"metadata": { ... }
}Response status
success Array of metric calculation results. Each object structure depends on:
Show child attributes
Start of the calculation period
Gross volume amount (for GROSS_VOLUME template)
Gross volume in USD (for GROSS_VOLUME template)
Number of transfers (for TRANSFERS template)
Number of new customers (for NEW_CUSTOMERS template)
Transaction direction (present if "transactionDirection" in breakdowns)
onramp, offramp, crypto_to_crypto Transfer status (present if "transferStatus" in breakdowns)
COMPLETED, FAILED, PENDING, CANCELLED User ID (present if "userId" in breakdowns)
Metadata about the metric calculation
Show child attributes
The metric template used
GROSS_VOLUME, TRANSFERS, NEW_CUSTOMERS Actual number of records returned
Projected total row count (null if no breakdowns)
Number of time periods filled with zero values
The calculation interval used
day, week, month, quarter, year Information about filters that were applied
Breakdown metadata (null if no breakdowns specified)
Show child attributes
List of breakdown dimensions used
transactionDirection, transferStatus, userId Metric name (only present for saved metrics, not previews)