Public card rewards
curl --request GET \
--url https://tapcoupon.at/api/v1/card/{cardId}/rewardsimport requests
url = "https://tapcoupon.at/api/v1/card/{cardId}/rewards"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://tapcoupon.at/api/v1/card/{cardId}/rewards', 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://tapcoupon.at/api/v1/card/{cardId}/rewards",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://tapcoupon.at/api/v1/card/{cardId}/rewards"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://tapcoupon.at/api/v1/card/{cardId}/rewards")
.asString();require 'uri'
require 'net/http'
url = URI("https://tapcoupon.at/api/v1/card/{cardId}/rewards")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"id": "693869428d49e641ba110e17",
"cardId": "9866191586296",
"rewards": [
{
"id": "693869428d49e641ba110e18",
"name": "Free coffee",
"description": "One coffee",
"pointsNeeded": 100,
"cooldownHours": 24,
"availableAt": "2026-10-03T12:00:00Z"
}
]
}
]{
"error": "<string>",
"errorCode": "<string>"
}{
"error": "<string>",
"errorCode": "<string>"
}{
"error": "<string>",
"errorCode": "<string>"
}Cards
Public card rewards
Retrieve configured points rewards and cooldown availability for each card instance.
GET
/
card
/
{cardId}
/
rewards
Public card rewards
curl --request GET \
--url https://tapcoupon.at/api/v1/card/{cardId}/rewardsimport requests
url = "https://tapcoupon.at/api/v1/card/{cardId}/rewards"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://tapcoupon.at/api/v1/card/{cardId}/rewards', 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://tapcoupon.at/api/v1/card/{cardId}/rewards",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://tapcoupon.at/api/v1/card/{cardId}/rewards"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://tapcoupon.at/api/v1/card/{cardId}/rewards")
.asString();require 'uri'
require 'net/http'
url = URI("https://tapcoupon.at/api/v1/card/{cardId}/rewards")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"id": "693869428d49e641ba110e17",
"cardId": "9866191586296",
"rewards": [
{
"id": "693869428d49e641ba110e18",
"name": "Free coffee",
"description": "One coffee",
"pointsNeeded": 100,
"cooldownHours": 24,
"availableAt": "2026-10-03T12:00:00Z"
}
]
}
]{
"error": "<string>",
"errorCode": "<string>"
}{
"error": "<string>",
"errorCode": "<string>"
}{
"error": "<string>",
"errorCode": "<string>"
}GET /card/{cardId}/rewards
Retrieve configured points rewards and cooldown availability for each card instance.
This endpoint is public. You do not need an API key or employee token.
The response is an array, including archived card instances. Match its id with the card instance from public lookup. Points cards include rewards referenced by program.rewardIds; other card types have an empty rewards array.
availableAt is omitted when the card has never redeemed that reward or no cooldown applies. If present, compare it with the current time; a past value means the cooldown has ended. Sufficient points are still required. This endpoint allows 10 requests per minute per IP.
Example request
curl "https://tapcoupon.at/api/v1/card/9866191586296/rewards"
Example response
[
{
"id": "693869428d49e641ba110e17",
"cardId": "9866191586296",
"rewards": [
{
"id": "693869428d49e641ba110e18",
"name": "Free coffee",
"description": "One coffee",
"pointsNeeded": 100,
"cooldownHours": 24,
"availableAt": "2026-10-03T12:00:00Z"
}
]
}
]
