Redeem Code
POST /v1/campaigns/{slug}/redeemRedeems a campaign code. The code is atomically marked as redeemed and the associated points are deducted from the campaign budget. Each code can only be redeemed once.
Authentication
Section titled “Authentication”| Header | Required | Value |
|---|---|---|
X-API-Secret | Yes | Your secret key |
Content-Type | Yes | application/json |
Request Body
Section titled “Request Body”| Field | Type | Required | Description |
|---|---|---|---|
code | string | Yes | The code to redeem (e.g., SUMM-AX7K9M2P) |
Request Examples
Section titled “Request Examples”curl -X POST https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem \ -H "X-API-Secret: sk_live_your_secret_key" \ -H "Content-Type: application/json" \ -d '{ "code": "SUMM-AX7K9M2P" }'const response = await fetch( 'https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem', { method: 'POST', headers: { 'X-API-Secret': 'sk_live_your_secret_key', 'Content-Type': 'application/json', }, body: JSON.stringify({ code: 'SUMM-AX7K9M2P' }), });
const data = await response.json();console.log(`Redeemed ${data.data.pointsEarned} points for ${data.data.campaignName}`);import requests
response = requests.post( "https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem", headers={ "X-API-Secret": "sk_live_your_secret_key", "Content-Type": "application/json", }, json={"code": "SUMM-AX7K9M2P"},)
data = response.json()print(f"Redeemed {data['data']['pointsEarned']} points for {data['data']['campaignName']}")import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.URI;
String body = """ { "code": "SUMM-AX7K9M2P" } """;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem")) .header("X-API-Secret", "sk_live_your_secret_key") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)) .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());payload := strings.NewReader(`{ "code": "SUMM-AX7K9M2P" }`)
req, _ := http.NewRequest("POST", "https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem", payload)req.Header.Set("X-API-Secret", "sk_live_your_secret_key")req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)if err != nil { log.Fatal(err)}defer resp.Body.Close()
var result map[string]interface{}json.NewDecoder(resp.Body).Decode(&result)fmt.Println(result["data"])$ch = curl_init('https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem');curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'X-API-Secret: sk_live_your_secret_key', 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode(['code' => 'SUMM-AX7K9M2P']),]);
$response = curl_exec($ch);curl_close($ch);
$data = json_decode($response, true);echo "Redeemed {$data['data']['pointsEarned']} points\n";require 'net/http'require 'json'
uri = URI('https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem')req = Net::HTTP::Post.new(uri)req['X-API-Secret'] = 'sk_live_your_secret_key'req['Content-Type'] = 'application/json'req.body = { code: 'SUMM-AX7K9M2P' }.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }data = JSON.parse(res.body)puts "Redeemed #{data['data']['pointsEarned']} points"using var client = new HttpClient();client.DefaultRequestHeaders.Add("X-API-Secret", "sk_live_your_secret_key");
var content = new StringContent( JsonSerializer.Serialize(new { code = "SUMM-AX7K9M2P" }), Encoding.UTF8, "application/json");
var response = await client.PostAsync( "https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem", content);var json = await response.Content.ReadAsStringAsync();Console.WriteLine(json);import 'dart:convert';import 'package:http/http.dart' as http;
final response = await http.post( Uri.parse('https://api.gamifyhost.com/v1/campaigns/summer-promo/redeem'), headers: { 'X-API-Secret': 'sk_live_your_secret_key', 'Content-Type': 'application/json', }, body: jsonEncode({'code': 'SUMM-AX7K9M2P'}),);
final data = jsonDecode(response.body);print('Redeemed ${data['data']['pointsEarned']} points');Response
Section titled “Response”Status: 200 OK
{ "status": "success", "data": { "pointsEarned": 500, "campaignName": "Summer Promo 2025", "campaignSlug": "summer-promo", "message": "Successfully redeemed 500 points" }}Response Fields
Section titled “Response Fields”| Field | Type | Description |
|---|---|---|
pointsEarned | integer | Points awarded from this code |
campaignName | string | Campaign name |
campaignSlug | string | Campaign slug |
message | string | Human-readable result message |
Errors
Section titled “Errors”| Code | Message |
|---|---|
400 | invalid or expired code — Code not found or belongs to another partner |
400 | code has already been redeemed — Code was already used |
400 | campaign is not active — Campaign is paused |
400 | campaign has ended — Campaign end date has passed |