API documentation
Two endpoints. Authenticate with your project API key as a Bearer token. Base URL https://push.aiskillhub.info.
POST /api/v1/push
Optimize a push. Counts as one push against your monthly quota.
POST https://push.aiskillhub.info/api/v1/push
Authorization: Bearer ps_live_xxx
Content-Type: application/json
{
"title": "Big sale is live!!!",
"body": "Massive discounts on everything. Shop now before it ends!",
"platform": "IOS", // IOS | ANDROID | WEB
"goal": "drive checkout", // optional
"brand": "Acme", // optional
"scheduledAt": "2025-06-01T10:00:00Z" // optional
}Response
{
"id": "ckxyz...",
"optimized": { "title": "₹300 off ends tonight", "body": "Your cart's waiting — checkout in 1 tap." },
"survivalScore": 84,
"priorityBucket": "time-sensitive",
"rationale": "Front-loaded the offer + deadline; removed spam punctuation.",
"delivery": {
"iosInterruptionLevel": "time-sensitive",
"iosRelevanceScore": 0.8,
"androidImportance": "HIGH",
"sendAsCommunication": false
},
"variants": [ { "label": "A", "title": "...", "body": "..." } ],
"trackUrl": "https://push.aiskillhub.info/api/v1/push/ckxyz.../event",
"quota": { "used": 412, "limit": 1000 }
}POST /api/v1/push/{id}/event
Report lifecycle events so your dashboard shows real delivered-vs-opened rates.
POST https://push.aiskillhub.info/api/v1/push/{id}/event
Authorization: Bearer ps_live_xxx
Content-Type: application/json
{ "event": "opened" } // sent | delivered | opened | suppressed | failedHow to apply the delivery hints
- iOS (APNs): set
aps.interruption-levelandaps.relevance-scorefrom thedeliveryblock. Time-sensitive pushes skip the Scheduled Summary. - Android (FCM): map
androidImportanceto your notification channel’s importance. HIGH pops a heads-up; DEFAULT risks bundling. - Both: send the optimized
title/bodyinstead of your raw copy.