Referrals
Grow MisarMail through referrals — generate your share link, track referrals, climb the leaderboard, and claim milestone badges
Overview
The MisarMail referral program rewards you for inviting other creators. Share your unique link; when someone signs up through it and activates a paid plan, the referral converts. As you accumulate referrals you unlock milestone badges that you can claim.
How it works:
- Generate your unique referral code and share link via the dashboard or API
- Share it with friends, followers, or your audience
- When someone signs up using your link, the referral is tracked as
pending; once they activate a paid plan it becomesconverted - As your converted-referral count grows, you reach milestone thresholds
- Claim each milestone badge once you've reached its required referral count
Authentication
All referral endpoints require session authentication (cookie-based). They are dashboard-only and cannot be called with an API key.
Get Referral Stats
/mail/referralsReturns your referral code, share link, aggregate counts, and the list of your referrals.
Response fields
successbooleantrue when the request succeeded.
dataobjectReferral stats — see the fields below.
data.codestring | nullYour referral code (null if you haven't generated one yet).
data.shareUrlstringYour shareable link — https://mail.misar.io/ref/{code}.
data.totalReferralsintegerAll referrals attributed to you.
data.pendingReferralsintegerReferrals that signed up but haven't activated a paid plan.
data.convertedReferralsintegerReferrals that activated a paid plan.
data.rewardedReferralsintegerReferrals that have been rewarded.
data.referralsArray<object>Individual referrals. Each has id, refereeEmail, status, source, createdAt, convertedAt, rewardedAt.
curl https://api.misar.io/mail/referrals \
-H "Cookie: sb-access-token=YOUR_SESSION"{
"success": true,
"data": {
"code": "abc123",
"shareUrl": "https://mail.misar.io/ref/abc123",
"totalReferrals": 14,
"pendingReferrals": 5,
"convertedReferrals": 9,
"rewardedReferrals": 4,
"referrals": [
{
"id": "ref_01j8abc12",
"refereeEmail": "friend@example.com",
"status": "converted",
"source": "twitter",
"createdAt": "2025-11-01T10:00:00Z",
"convertedAt": "2025-11-03T14:22:00Z",
"rewardedAt": null
}
]
}
}Generate Referral Code
/mail/referrals/generateGenerates your referral code and share link, or returns your existing one — the operation is idempotent, so calling it again returns the same code. Optionally records the share source.
Request body
sourcestringbodydefault: directWhere the code is being shared from. One of direct, email, twitter, linkedin, copy_link.
Response fields
successbooleantrue when the code was generated or fetched.
codestringYour referral code.
shareUrlstringYour shareable link — https://mail.misar.io/ref/{code}.
{ "source": "twitter" }{
"success": true,
"code": "abc123",
"shareUrl": "https://mail.misar.io/ref/abc123"
}Leaderboard
/mail/referrals/leaderboardReturns the top referrers (up to 50) plus your own rank. Other users' names are anonymized; your own entry is marked isSelf.
Response fields
successbooleantrue when the request succeeded.
data.leaderboardArray<object>Ranked entries. Each has rank, userId (your own id, or null for others), displayName, isSelf, totalReferrals, activeReferrals.
data.myRankinteger | nullYour position on the leaderboard, or null if you have no referrals yet.
curl https://api.misar.io/mail/referrals/leaderboard \
-H "Cookie: sb-access-token=YOUR_SESSION"{
"success": true,
"data": {
"leaderboard": [
{ "rank": 1, "userId": null, "displayName": "Al***", "isSelf": false, "totalReferrals": 87, "activeReferrals": 60 },
{ "rank": 2, "userId": null, "displayName": "Sa***", "isSelf": false, "totalReferrals": 64, "activeReferrals": 51 }
],
"myRank": 12
}
}List Milestones
/mail/referrals/milestonesReturns all milestone badge definitions, ordered by the referral count required to reach them.
Response fields
successbooleantrue when the request succeeded.
dataArray<object>Milestone definitions. Each has id, name, description, referrals_required, badge_icon, badge_color.
curl https://api.misar.io/mail/referrals/milestones \
-H "Cookie: sb-access-token=YOUR_SESSION"{
"success": true,
"data": [
{
"id": "milestone_1",
"name": "First Referral",
"description": "Refer your first creator",
"referrals_required": 1,
"badge_icon": "seedling",
"badge_color": "#22c55e"
},
{
"id": "milestone_10",
"name": "Connector",
"description": "Refer 10 creators",
"referrals_required": 10,
"badge_icon": "network",
"badge_color": "#16a34a"
}
]
}Claim a Milestone Badge
/mail/referrals/claimClaims a milestone badge once you've reached its required referral count. Claiming is idempotent per milestone.
Request body
milestone_idstringbodyrequiredThe milestone to claim.
Response fields
successbooleantrue when the badge was claimed.
data.milestoneNamestringThe name of the claimed milestone.
{ "milestone_id": "milestone_10" }{
"success": true,
"data": { "milestoneName": "Connector" }
}Error cases:
| Status | Error | Meaning |
|---|---|---|
400 | milestone_id is required | Missing or invalid body |
404 | Milestone not found | No milestone with that ID exists |
422 | You need N referrals to claim this milestone … | Referral threshold not yet met |
409 | Milestone already claimed | You've already claimed this badge |
Get Claimed Milestones
/mail/referrals/milestone-claimsReturns the milestone badges you've already claimed.
Response fields
successbooleantrue when the request succeeded.
dataArray<object>Claimed badges. Each has milestone_id, claimed_at, reward_applied.
curl https://api.misar.io/mail/referrals/milestone-claims \
-H "Cookie: sb-access-token=YOUR_SESSION"{
"success": true,
"data": [
{
"milestone_id": "milestone_1",
"claimed_at": "2025-11-03T14:22:00Z",
"reward_applied": true
}
]
}Nudge
/mail/referrals/nudgeReturns a short share prompt for the dashboard — your code, link, current referral count, and a suggested nudge message. This endpoint does not send any email.
Response fields
successbooleantrue when the request succeeded.
data.codestring | nullYour referral code.
data.urlstring | nullYour share link.
data.referralCountintegerNumber of people who signed up with your link.
data.nudgeMessagestringA ready-to-display prompt encouraging you to share.
curl https://api.misar.io/mail/referrals/nudge \
-H "Cookie: sb-access-token=YOUR_SESSION"{
"success": true,
"data": {
"code": "abc123",
"url": "https://mail.misar.io/ref/abc123",
"referralCount": 3,
"nudgeMessage": "3 friends signed up with your link — share more to unlock badges!"
}
}Log a Share
/mail/referrals/log-shareRecords that you shared your referral link on a given channel. Used to display share activity in the dashboard — it does not affect referral counts.
Request body
sourcestringbodydefault: directOne of copy_link, email, twitter, linkedin, direct.
Response fields
successbooleantrue when the share was logged.
{ "source": "twitter" }{ "success": true }