API Reference
Einkäufe
Einkäufe erfassen und verfolgen, die mit Wettbewerbseinträgen verbunden sind
Einkäufe
Verfolgen Sie Einkäufe, die von Wettbewerbsteilnehmern getätigt wurden. Einkäufe können basierend auf der Konfiguration zur Einkaufserfassung Ihres Wettbewerbs Punkte für Einträge vergeben.
Einkauf erfassen
/api/v1/contests/:contestId/purchasesErfassen Sie einen Einkauf für einen Wettbewerbsteilnehmer. Dem Teilnehmer werden Punkte basierend auf den Einstellungen zur Einkaufserfassung des Wettbewerbs gutgeschrieben. Doppelte Einkäufe (gleiche orderId) werden erkannt und vergeben keine Punkte doppelt.
Pfadparameter
contestIdstring required Die eindeutige Wettbewerbskennung
Anfragekörper
emailstring required E-Mail-Adresse des Käufers (muss mit einem bestehenden Eintrag übereinstimmen)
orderIdstring required Eindeutige Bestellkennung aus Ihrem System
amountnumber required Kaufbetrag (muss größer als 0 sein)
currencystringWährungscode (Standard: 'USD')
Anfrage
curl -X POST https://blitzrocket.com/api/v1/contests/clx1abc123/purchases \
-H "x-api-key: your_private_key_here" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@example.com",
"orderId": "order-12345",
"amount": 49.99,
"currency": "USD"
}'
Antwort (201 Erstellt)
{
"success": true,
"data": {
"purchaseId": "purchase_xyz789",
"entryId": "entry_abc123",
"pointsAwarded": 50,
"alreadyExists": false,
"message": "Einkauf erfolgreich erfasst"
}
}
Antwort (200 - Duplikat)
Wenn ein Einkauf mit derselben orderId bereits existiert, gibt die API einen Status 200 zurück, um anzuzeigen, dass er bereits verarbeitet wurde:
{
"success": true,
"data": {
"purchaseId": "purchase_xyz789",
"entryId": "entry_abc123",
"pointsAwarded": 0,
"alreadyExists": true,
"message": "Einkauf bereits erfasst"
}
}
Antwortfelder
purchaseIdstringEindeutige Kennung für den Einkaufseintrag
entryIdstringDer Eintrag, mit dem der Einkauf verknüpft wurde
pointsAwardednumberFür diesen Einkauf vergebene Punkte (0 bei Duplikat)
alreadyExistsbooleanOb dieser Einkauf bereits erfasst wurde
messagestringFür Menschen lesbare Statusmeldung
Fehlerantworten
| Status | Fehler | Beschreibung |
|---|---|---|
400 | Ungültiger Anfragekörper | Fehlende oder ungültige E-Mail, orderId oder Betrag |
400 | Betrag muss positiv sein | Der Betrag muss größer als 0 sein |
403 | Privater Schlüssel erforderlich | Dieser Endpunkt erfordert einen privaten API-Schlüssel |
404 | Wettbewerb nicht gefunden | Kein Wettbewerb mit der angegebenen ID vorhanden |
Integrationsbeispiel
Hier ist ein vollständiges Beispiel für die Integration der Kaufverfolgung mit einem Shopify-Webhook:
app.post("/webhooks/shopify/order-created", async (req, res) => {
const order = req.body;
try {
const response = await fetch(
`https://blitzrocket.com/api/v1/contests/${CONTEST_ID}/purchases`,
{
method: "POST",
headers: {
"x-api-key": process.env.BLITZROCKET_PRIVATE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
email: order.email,
orderId: order.id.toString(),
amount: parseFloat(order.total_price),
currency: order.currency,
}),
}
);
const data = await response.json();
console.log("Kauf verfolgt:", data);
res.status(200).send("OK");
} catch (error) {
console.error("Fehler beim Verfolgen des Kaufs:", error);
res.status(500).send("Fehler");
}
});