curl --request GET \
--url https://api.voucher-staging.allride.io/partner/v1/email-templates \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/partner/v1/email-templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/partner/v1/email-templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/partner/v1/email-templates")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/partner/v1/email-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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/partner/v1/email-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;
}{
"data": {
"data": [
{
"id": 18030,
"resource": "email-template",
"purpose": "redemption-link-otp",
"subject": {
"de": "Ihr Code: {{otpCode}}",
"en": "Your code: {{otpCode}}"
},
"status": "draft",
"isSeeded": false,
"validation": {
"missingRequired": [],
"unknownVariables": [],
"htmlFindings": [],
"renderedOk": true
},
"valid": true,
"createdAt": "2026-10-22T09:20:00Z",
"updatedAt": "2026-10-22T09:20:00Z",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/partner/v1/email-templates/18030",
"type": "application/json"
},
"preview": {
"href": "https://api.voucher.allride.io/partner/v1/email-templates/18030/preview",
"type": "application/json"
}
}
}
],
"page": 1,
"perPage": 25,
"totalPages": 1,
"total": 1
}
}List email templates
Lists your email templates without their bodies; read one template for the bodies. See Email OTP links.
Required permissions: manage-consumer-email · API keys: allowed
curl --request GET \
--url https://api.voucher-staging.allride.io/partner/v1/email-templates \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/partner/v1/email-templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/partner/v1/email-templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/partner/v1/email-templates")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/partner/v1/email-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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/partner/v1/email-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;
}{
"data": {
"data": [
{
"id": 18030,
"resource": "email-template",
"purpose": "redemption-link-otp",
"subject": {
"de": "Ihr Code: {{otpCode}}",
"en": "Your code: {{otpCode}}"
},
"status": "draft",
"isSeeded": false,
"validation": {
"missingRequired": [],
"unknownVariables": [],
"htmlFindings": [],
"renderedOk": true
},
"valid": true,
"createdAt": "2026-10-22T09:20:00Z",
"updatedAt": "2026-10-22T09:20:00Z",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/partner/v1/email-templates/18030",
"type": "application/json"
},
"preview": {
"href": "https://api.voucher.allride.io/partner/v1/email-templates/18030/preview",
"type": "application/json"
}
}
}
],
"page": 1,
"perPage": 25,
"totalPages": 1,
"total": 1
}
}Authorizations
Your API key in Authorization: Bearer <key>. Use vk_test_… keys against the sandbox and vk_live_… keys against production.
Query Parameters
Page number, 1-100,000 (default 1). Outside the range: 400 data-failed-validation with the constraint invalid-page.
1 <= x <= 100000Items per page, 1-100 (default 25). Outside the range: 400 data-failed-validation with the constraint invalid-page.
1 <= x <= 100One sort field; prefix - for descending (sort=field or sort=-field). Allowed: createdAt, updatedAt. Default -createdAt. The server appends id as a tie-breaker.
"-createdAt"
Status (equals).
draft, active, archived Status (one of (comma-separated)). Comma-separated values.
Purpose (equals).
redemption-link-otp Generated from branding (equals).
Creation time (download key) (greater than).
Creation time (download key) (greater than or equal).
Creation time (download key) (less than).
Creation time (download key) (less than or equal).
Response
OK
Page envelope of EmailTemplateSummary items.
The page.
Show child attributes
Show child attributes