Get the analytics overview
curl --request GET \
--url https://api.voucher-staging.allride.io/consumer/v1/analytics/overview \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/consumer/v1/analytics/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/consumer/v1/analytics/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/consumer/v1/analytics/overview")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/consumer/v1/analytics/overview"
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/consumer/v1/analytics/overview",
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;
}{
"data": {
"resource": "redemption-overview",
"from": "2026-10-01",
"to": "2026-10-22",
"timezone": "Europe/Berlin",
"asOf": "2026-10-22T08:14:00Z",
"redemptions": {
"redeemedCount": 48211,
"voidedCount": 112,
"netCount": 48099,
"voidRatePercent": 0.23
},
"previousPeriod": {
"from": "2026-09-09",
"to": "2026-09-30",
"redeemedCount": 44102,
"voidedCount": 97,
"netCount": 44005,
"netChangePercent": 9.3
},
"uniqueEntities": 40977,
"newEntities": 3120,
"faceValue": {
"value": 24105500,
"label": "€241,055.00"
},
"byChannel": [
{
"channel": "api",
"redeemedCount": 47020
},
{
"channel": "dashboard",
"redeemedCount": 191
},
{
"channel": "redemption-link",
"redeemedCount": 1000
}
],
"topProviders": [
{
"providerPartnerId": 1030,
"providerDisplayName": {
"de": "Acme Scooters",
"en": "Acme Scooters"
},
"redeemedCount": 30117
},
{
"providerPartnerId": 1056,
"providerDisplayName": {
"de": "Acme Bikes",
"en": "Acme Bikes"
},
"redeemedCount": 18094
}
],
"links": {
"activeCount": 12,
"visits": 3400,
"otpRequested": 1500,
"otpVerified": 1320,
"redemptions": 1000,
"conversionRatePercent": 29.41
},
"catalog": {
"visibleProviders": 14,
"enabledProviders": 9,
"visibleVoucherSets": 31,
"enabledVoucherSets": 20,
"upcomingVoucherSets": 3,
"deactivationScheduledVoucherSets": 2,
"lowStockEnabledVoucherSets": 1,
"depletedEnabledVoucherSets": 0
},
"_links": {
"self": {
"href": "https://api.voucher.allride.io/consumer/v1/analytics/overview?from=2026-10-01&to=2026-10-22",
"type": "application/json"
}
}
}
}Analytics
Get the analytics overview
Returns key figures for a date range (default: this month so far) and the previous period of the same length. The range spans at most 366 days. Statistics use your partner time zone and are eventually consistent (up to 2 minutes). See Analytics.
Required permissions: view-consumer-analytics · API keys: allowed
GET
/
consumer
/
v1
/
analytics
/
overview
Get the analytics overview
curl --request GET \
--url https://api.voucher-staging.allride.io/consumer/v1/analytics/overview \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/consumer/v1/analytics/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/consumer/v1/analytics/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/consumer/v1/analytics/overview")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/consumer/v1/analytics/overview"
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/consumer/v1/analytics/overview",
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;
}{
"data": {
"resource": "redemption-overview",
"from": "2026-10-01",
"to": "2026-10-22",
"timezone": "Europe/Berlin",
"asOf": "2026-10-22T08:14:00Z",
"redemptions": {
"redeemedCount": 48211,
"voidedCount": 112,
"netCount": 48099,
"voidRatePercent": 0.23
},
"previousPeriod": {
"from": "2026-09-09",
"to": "2026-09-30",
"redeemedCount": 44102,
"voidedCount": 97,
"netCount": 44005,
"netChangePercent": 9.3
},
"uniqueEntities": 40977,
"newEntities": 3120,
"faceValue": {
"value": 24105500,
"label": "€241,055.00"
},
"byChannel": [
{
"channel": "api",
"redeemedCount": 47020
},
{
"channel": "dashboard",
"redeemedCount": 191
},
{
"channel": "redemption-link",
"redeemedCount": 1000
}
],
"topProviders": [
{
"providerPartnerId": 1030,
"providerDisplayName": {
"de": "Acme Scooters",
"en": "Acme Scooters"
},
"redeemedCount": 30117
},
{
"providerPartnerId": 1056,
"providerDisplayName": {
"de": "Acme Bikes",
"en": "Acme Bikes"
},
"redeemedCount": 18094
}
],
"links": {
"activeCount": 12,
"visits": 3400,
"otpRequested": 1500,
"otpVerified": 1320,
"redemptions": 1000,
"conversionRatePercent": 29.41
},
"catalog": {
"visibleProviders": 14,
"enabledProviders": 9,
"visibleVoucherSets": 31,
"enabledVoucherSets": 20,
"upcomingVoucherSets": 3,
"deactivationScheduledVoucherSets": 2,
"lowStockEnabledVoucherSets": 1,
"depletedEnabledVoucherSets": 0
},
"_links": {
"self": {
"href": "https://api.voucher.allride.io/consumer/v1/analytics/overview?from=2026-10-01&to=2026-10-22",
"type": "application/json"
}
}
}
}Authorizations
Your API key in Authorization: Bearer <key>. Use vk_test_… keys against the sandbox and vk_live_… keys against production.
Query Parameters
First day (default: first day of the current month).
Last day, inclusive (default: today); at most 366 days after from.
Response
OK
Single-object envelope around a RedemptionOverview.
Key figures of a period.
Show child attributes
Show child attributes