Average Latency By Provider average latency by provider
Returns the average payment gateway response time, in milliseconds, as a separate time series for each provider (integration class plus gateway adapter class) the current company used in the period, each with its own KPIs. Accepts the same filters as the other reports except integration_class and adapter_class, since the report is already split by provider. Always scoped to the caller’s company. A custom period without a valid start_date / end_date pair returns 400. Requires a company admin Bearer token with the reports.view permission.
curl --request GET \
--url https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider', 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://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider",
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://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider"
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://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider")
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{
"providers": [
{
"integration_class": "CreditCard",
"adapter_class": "ActiveMerchant::Billing::NmiGateway",
"data_points": [
{
"timestamp": "2026-09-23T00:00:00Z",
"value": 598.2,
"interval": "daily"
},
{
"timestamp": "2026-09-24T00:00:00Z",
"value": 571.4,
"interval": "daily"
},
{
"timestamp": "2026-09-25T00:00:00Z",
"value": 622.9,
"interval": "daily"
},
{
"timestamp": "2026-09-26T00:00:00Z",
"value": 688.1,
"interval": "daily"
},
{
"timestamp": "2026-09-27T00:00:00Z",
"value": 640.7,
"interval": "daily"
},
{
"timestamp": "2026-09-28T00:00:00Z",
"value": 580.3,
"interval": "daily"
},
{
"timestamp": "2026-09-29T00:00:00Z",
"value": 609.5,
"interval": "daily"
},
{
"timestamp": "2026-09-30T00:00:00Z",
"value": null,
"interval": "daily"
}
],
"kpis": {
"total": 615.87,
"previous_period_total": 652.3,
"growth": {
"value": -36.43,
"percent": -5.58
},
"average": 615.87,
"min": 571.4,
"max": 688.1
}
},
{
"integration_class": "Bread",
"adapter_class": null,
"data_points": [
{
"timestamp": "2026-09-23T00:00:00Z",
"value": 842.6,
"interval": "daily"
},
{
"timestamp": "2026-09-24T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-25T00:00:00Z",
"value": 901.3,
"interval": "daily"
},
{
"timestamp": "2026-09-26T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-27T00:00:00Z",
"value": 877.9,
"interval": "daily"
},
{
"timestamp": "2026-09-28T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-29T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-30T00:00:00Z",
"value": null,
"interval": "daily"
}
],
"kpis": {
"total": 873.93,
"previous_period_total": 910.44,
"growth": {
"value": -36.51,
"percent": -4.01
},
"average": 873.93,
"min": 842.6,
"max": 901.3
}
}
],
"period": {
"from": "2026-09-23T00:00:00Z",
"to": "2026-09-30T23:59:59Z",
"interval": "daily"
},
"previous_period": {
"from": "2026-09-15T00:00:00Z",
"to": "2026-09-23T00:00:00Z"
},
"meta": {
"request_id": "c0a8012e-7f3b-4d6a-9e21-5b8d4f2a6c17",
"timestamp": "2026-09-30T14:15:22Z"
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Reporting period for the time series. Use custom together with start_date and end_date.
last_24_hours, last_7_days, last_30_days, last_month, last_year, custom ISO 8601 start of a custom period. Required when period is custom; must be before end_date.
ISO 8601 end of a custom period. Required when period is custom.
Time-series bucket size. Allowed values depend on period; defaults per period when omitted.
hourly, daily, weekly, monthly curl --request GET \
--url https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider', 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://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider",
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://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider"
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://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202506/payments/company_reports/average_latency_by_provider")
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{
"providers": [
{
"integration_class": "CreditCard",
"adapter_class": "ActiveMerchant::Billing::NmiGateway",
"data_points": [
{
"timestamp": "2026-09-23T00:00:00Z",
"value": 598.2,
"interval": "daily"
},
{
"timestamp": "2026-09-24T00:00:00Z",
"value": 571.4,
"interval": "daily"
},
{
"timestamp": "2026-09-25T00:00:00Z",
"value": 622.9,
"interval": "daily"
},
{
"timestamp": "2026-09-26T00:00:00Z",
"value": 688.1,
"interval": "daily"
},
{
"timestamp": "2026-09-27T00:00:00Z",
"value": 640.7,
"interval": "daily"
},
{
"timestamp": "2026-09-28T00:00:00Z",
"value": 580.3,
"interval": "daily"
},
{
"timestamp": "2026-09-29T00:00:00Z",
"value": 609.5,
"interval": "daily"
},
{
"timestamp": "2026-09-30T00:00:00Z",
"value": null,
"interval": "daily"
}
],
"kpis": {
"total": 615.87,
"previous_period_total": 652.3,
"growth": {
"value": -36.43,
"percent": -5.58
},
"average": 615.87,
"min": 571.4,
"max": 688.1
}
},
{
"integration_class": "Bread",
"adapter_class": null,
"data_points": [
{
"timestamp": "2026-09-23T00:00:00Z",
"value": 842.6,
"interval": "daily"
},
{
"timestamp": "2026-09-24T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-25T00:00:00Z",
"value": 901.3,
"interval": "daily"
},
{
"timestamp": "2026-09-26T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-27T00:00:00Z",
"value": 877.9,
"interval": "daily"
},
{
"timestamp": "2026-09-28T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-29T00:00:00Z",
"value": null,
"interval": "daily"
},
{
"timestamp": "2026-09-30T00:00:00Z",
"value": null,
"interval": "daily"
}
],
"kpis": {
"total": 873.93,
"previous_period_total": 910.44,
"growth": {
"value": -36.51,
"percent": -4.01
},
"average": 873.93,
"min": 842.6,
"max": 901.3
}
}
],
"period": {
"from": "2026-09-23T00:00:00Z",
"to": "2026-09-30T23:59:59Z",
"interval": "daily"
},
"previous_period": {
"from": "2026-09-15T00:00:00Z",
"to": "2026-09-23T00:00:00Z"
},
"meta": {
"request_id": "c0a8012e-7f3b-4d6a-9e21-5b8d4f2a6c17",
"timestamp": "2026-09-30T14:15:22Z"
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"message": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}