We use cookies to improve your experience and analyze platform usage. By continuing, you agree to our Privacy Policy.
Integrate your brand systems directly with the Kruve campaign platform. Create campaigns, track performance, and manage your wallet programmatically.
Contact our partnerships team to request an advertiser API key for your brand.
Deposit USD into your Kruve advertiser wallet via Stripe to escrow campaign budgets.
Use the REST API to programmatically launch campaigns targeting Zimbabwean cities.
Receive real-time notifications as Kruvers post, submit, and verify views.
All API requests require a Bearer token in the Authorization header. API keys are scoped per advertiser account and can be generated from your advertiser dashboard.
Authorization: Bearer kruve_live_abc123def456...
Content-Type: application/jsonNever expose your API key in client-side code or public repositories. Use environment variables and route requests through your backend server.
https://api.kruve.co.zw/v1All endpoint paths listed below are relative to this base URL.
curl -X POST https://api.kruve.co.zw/v1/campaigns \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"brand_name": "Econet Zimbabwe",
"target_views": 50000,
"rate_per_view": 0.005
}'Click an endpoint to view its request and response schema.
Create a new advertising campaign on the Kruve platform.
{
"brand_name": "Econet Zimbabwe",
"content_description": "Summer data bundle promo",
"image_url": "https://cdn.kruve.co.zw/ads/summer.png",
"share_link": "https://econet.co.zw/summer",
"target_locations": ["Harare", "Bulawayo"],
"target_views": 50000,
"rate_per_view": 0.005,
"start_date": "2026-08-01",
"end_date": "2026-08-31"
}{
"id": "cmp_8f3a2b1c",
"status": "pending",
"created_date": "2026-07-09T10:30:00Z",
"escrow_required": 250.00
}Subscribe to real-time events so your systems react instantly as Kruvers engage with your campaigns. Webhook payloads are signed with your subscription secret using HMAC-SHA256.
campaign.verifiedFired when a campaign is approved and goes live.
campaign.completedFired when a campaign reaches its target views or end date.
participation.submittedFired when a Kruver submits view proof for your campaign.
participation.verifiedFired when admin verifies a Kruver's submission.
wallet.low_balanceFired when your escrow balance drops below a threshold.
deposit.confirmedFired when a wallet deposit is confirmed.
// Verify webhook signature (Node.js)
const crypto = require('crypto');
const expected = crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(rawBody)
.digest('hex');
if (signature !== expected) return res.status(401).send('Invalid signature');Rate limit headers are included in every response: X-RateLimit-Remaining, X-RateLimit-Reset.
200Success400Bad Request401Unauthorized402Insufficient Funds404Not Found429Rate Limited500Server ErrorRequest API access for your brand and start building automated campaign workflows today.