Get Available Metric Templates
curl --request GET \
--url https://production.hifibridge.com/v2/reporting/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://production.hifibridge.com/v2/reporting/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://production.hifibridge.com/v2/reporting/templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production.hifibridge.com/v2/reporting/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production.hifibridge.com/v2/reporting/templates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://production.hifibridge.com/v2/reporting/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production.hifibridge.com/v2/reporting/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"template": "GROSS_VOLUME",
"displayName": "Gross Volume",
"description": "Total combined USD-equivalent value of completed Onramp and Offramp transactions.",
"supportedParams": [
{
"name": "createdAfter",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"minDate": "2024-07-01",
"maxDate": "2025-12-08"
}
},
{
"name": "createdBefore",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"maxDate": "2025-12-08"
}
},
{
"name": "calculationInterval",
"type": "enum",
"required": true,
"multiple": false,
"options": [
"day",
"week",
"month"
]
},
{
"name": "transactionTypes",
"type": "enum",
"required": false,
"multiple": true,
"options": [
"onramp",
"offramp",
"transfer"
]
},
{
"name": "userIds",
"type": "uuid",
"required": false,
"multiple": true,
"optionsCount": 1000,
"optionsTruncated": true,
"optionsEndpoint": "/reporting/params/userIds/options"
},
{
"name": "breakdowns",
"type": "enum",
"required": false,
"multiple": true,
"constraints": {
"maxCount": 2
}
},
{
"name": "limit",
"type": "number",
"required": false,
"multiple": false,
"constraints": {
"min": 1,
"max": 10000
}
}
],
"rules": [
"createdBefore must be after createdAfter"
],
"breakdownOptions": [
"transactionType",
"transactionStatus",
"userId"
]
},
{
"template": "TRANSACTION_COUNT",
"displayName": "Transaction Count",
"description": "Aggregated count of transactions grouped by status and type over time.",
"supportedParams": [
{
"name": "createdAfter",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"minDate": "2024-07-01",
"maxDate": "2025-12-08"
}
},
{
"name": "createdBefore",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"maxDate": "2025-12-08"
}
},
{
"name": "calculationInterval",
"type": "enum",
"required": true,
"multiple": false,
"options": [
"day",
"week",
"month"
]
},
{
"name": "transactionTypes",
"type": "enum",
"required": false,
"multiple": true,
"options": [
"onramp",
"offramp",
"transfer"
]
},
{
"name": "transactionStatuses",
"type": "enum",
"required": false,
"multiple": true,
"options": [
"AWAITING_FUNDS",
"COMPLETED",
"CRYPTO_FAILED",
"CRYPTO_INITIATED",
"CRYPTO_PENDING",
"FAILED",
"FIAT_FAILED",
"FIAT_INITIATED",
"FIAT_PENDING",
"FIAT_PROCESSED",
"FIAT_RETURNED",
"INITIATED",
"NOT_INITIATED",
"PENDING",
"QUOTE_FAILED",
"REJECTED"
]
},
{
"name": "userIds",
"type": "uuid",
"required": false,
"multiple": true,
"optionsCount": 1000,
"optionsTruncated": true,
"optionsEndpoint": "/reporting/params/userIds/options"
},
{
"name": "breakdowns",
"type": "enum",
"required": false,
"multiple": true,
"constraints": {
"maxCount": 2
}
},
{
"name": "limit",
"type": "number",
"required": false,
"multiple": false,
"constraints": {
"min": 1,
"max": 10000
}
}
],
"rules": [
"createdBefore must be after createdAfter"
],
"breakdownOptions": [
"transactionType",
"transactionStatus",
"userId"
]
},
{
"template": "NEW_USERS",
"displayName": "New Users",
"description": "Count of new unique end-users onboarded within the time period.",
"supportedParams": [
{
"name": "createdAfter",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"minDate": "2024-07-01",
"maxDate": "2025-12-08"
}
},
{
"name": "createdBefore",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"maxDate": "2025-12-08"
}
},
{
"name": "calculationInterval",
"type": "enum",
"required": true,
"multiple": false,
"options": [
"day",
"week",
"month"
]
},
{
"name": "limit",
"type": "number",
"required": false,
"multiple": false,
"constraints": {
"min": 1,
"max": 10000
}
}
],
"rules": [
"createdBefore must be after createdAfter"
],
"breakdownOptions": null
}
],
"metadata": {
"count": 3
}
}{
"status": "error",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"code": 123,
"error": "<string>",
"errorDetails": "<string>"
}{
"status": "error",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"code": 123,
"error": "<string>",
"errorDetails": "<string>"
}Reporting
Get Available Metric Templates
Retrieves a list of all available metric templates (e.g., GROSS_VOLUME, TRANSACTION_COUNT). Templates define the logic, supported parameters, and breakdown options available for building reports.
GET
/
v2
/
reporting
/
templates
Get Available Metric Templates
curl --request GET \
--url https://production.hifibridge.com/v2/reporting/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://production.hifibridge.com/v2/reporting/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://production.hifibridge.com/v2/reporting/templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production.hifibridge.com/v2/reporting/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production.hifibridge.com/v2/reporting/templates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://production.hifibridge.com/v2/reporting/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production.hifibridge.com/v2/reporting/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "success",
"data": [
{
"template": "GROSS_VOLUME",
"displayName": "Gross Volume",
"description": "Total combined USD-equivalent value of completed Onramp and Offramp transactions.",
"supportedParams": [
{
"name": "createdAfter",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"minDate": "2024-07-01",
"maxDate": "2025-12-08"
}
},
{
"name": "createdBefore",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"maxDate": "2025-12-08"
}
},
{
"name": "calculationInterval",
"type": "enum",
"required": true,
"multiple": false,
"options": [
"day",
"week",
"month"
]
},
{
"name": "transactionTypes",
"type": "enum",
"required": false,
"multiple": true,
"options": [
"onramp",
"offramp",
"transfer"
]
},
{
"name": "userIds",
"type": "uuid",
"required": false,
"multiple": true,
"optionsCount": 1000,
"optionsTruncated": true,
"optionsEndpoint": "/reporting/params/userIds/options"
},
{
"name": "breakdowns",
"type": "enum",
"required": false,
"multiple": true,
"constraints": {
"maxCount": 2
}
},
{
"name": "limit",
"type": "number",
"required": false,
"multiple": false,
"constraints": {
"min": 1,
"max": 10000
}
}
],
"rules": [
"createdBefore must be after createdAfter"
],
"breakdownOptions": [
"transactionType",
"transactionStatus",
"userId"
]
},
{
"template": "TRANSACTION_COUNT",
"displayName": "Transaction Count",
"description": "Aggregated count of transactions grouped by status and type over time.",
"supportedParams": [
{
"name": "createdAfter",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"minDate": "2024-07-01",
"maxDate": "2025-12-08"
}
},
{
"name": "createdBefore",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"maxDate": "2025-12-08"
}
},
{
"name": "calculationInterval",
"type": "enum",
"required": true,
"multiple": false,
"options": [
"day",
"week",
"month"
]
},
{
"name": "transactionTypes",
"type": "enum",
"required": false,
"multiple": true,
"options": [
"onramp",
"offramp",
"transfer"
]
},
{
"name": "transactionStatuses",
"type": "enum",
"required": false,
"multiple": true,
"options": [
"AWAITING_FUNDS",
"COMPLETED",
"CRYPTO_FAILED",
"CRYPTO_INITIATED",
"CRYPTO_PENDING",
"FAILED",
"FIAT_FAILED",
"FIAT_INITIATED",
"FIAT_PENDING",
"FIAT_PROCESSED",
"FIAT_RETURNED",
"INITIATED",
"NOT_INITIATED",
"PENDING",
"QUOTE_FAILED",
"REJECTED"
]
},
{
"name": "userIds",
"type": "uuid",
"required": false,
"multiple": true,
"optionsCount": 1000,
"optionsTruncated": true,
"optionsEndpoint": "/reporting/params/userIds/options"
},
{
"name": "breakdowns",
"type": "enum",
"required": false,
"multiple": true,
"constraints": {
"maxCount": 2
}
},
{
"name": "limit",
"type": "number",
"required": false,
"multiple": false,
"constraints": {
"min": 1,
"max": 10000
}
}
],
"rules": [
"createdBefore must be after createdAfter"
],
"breakdownOptions": [
"transactionType",
"transactionStatus",
"userId"
]
},
{
"template": "NEW_USERS",
"displayName": "New Users",
"description": "Count of new unique end-users onboarded within the time period.",
"supportedParams": [
{
"name": "createdAfter",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"minDate": "2024-07-01",
"maxDate": "2025-12-08"
}
},
{
"name": "createdBefore",
"type": "date",
"required": true,
"multiple": false,
"constraints": {
"maxDate": "2025-12-08"
}
},
{
"name": "calculationInterval",
"type": "enum",
"required": true,
"multiple": false,
"options": [
"day",
"week",
"month"
]
},
{
"name": "limit",
"type": "number",
"required": false,
"multiple": false,
"constraints": {
"min": 1,
"max": 10000
}
}
],
"rules": [
"createdBefore must be after createdAfter"
],
"breakdownOptions": null
}
],
"metadata": {
"count": 3
}
}{
"status": "error",
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"code": 123,
"error": "<string>",
"errorDetails": "<string>"
}{
"status": "error",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"code": 123,
"error": "<string>",
"errorDetails": "<string>"
}⌘I