Badges API
Retrieve badge status for participants, including earned and locked badges with progress information.
Authentication: Public endpoint. Pass
engagement_id and session_id as query parameters. No API key required.Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /public/badges/status | Get badge earned/unearned status for a session |
Get Badge Status
Returns all badges configured for the tenant with their earned/unearned status for the given session. Supports filtering by specific badge codes.
curl -X GET "https://YOUR_API_DOMAIN/api/v1/public/badges/status?engagement_id=550e8400-e29b-41d4-a716-446655440000&session_id=sess_abc123"Response
{
"badges": [
{
"code": "first_quiz",
"name": "Quiz Master",
"description": "Complete your first quiz",
"image_url": "https://YOUR_CDN_DOMAIN/badges/quiz-master.png",
"earned": true,
"earned_at": "2026-04-10T14:30:00Z"
},
{
"code": "streak_7",
"name": "Week Warrior",
"description": "Maintain a 7-day streak",
"image_url": "https://YOUR_CDN_DOMAIN/badges/week-warrior.png",
"earned": false,
"earned_at": null
},
{
"code": "power_user",
"name": "Power User",
"description": "Complete all activities in a campaign",
"image_url": "https://YOUR_CDN_DOMAIN/badges/power-user.png",
"earned": false,
"earned_at": null
}
]
}Filtering by Badge Codes
Pass badge_codes as a comma-separated query parameter to filter for specific badges.
curl -X GET "https://YOUR_API_DOMAIN/api/v1/public/badges/status?engagement_id=550e8400-e29b-41d4-a716-446655440000&session_id=sess_abc123&badge_codes=first_quiz,streak_7"Response
{
"badges": [
{
"code": "first_quiz",
"name": "Quiz Master",
"description": "Complete your first quiz",
"image_url": "https://YOUR_CDN_DOMAIN/badges/quiz-master.png",
"earned": true,
"earned_at": "2026-04-10T14:30:00Z"
},
{
"code": "streak_7",
"name": "Week Warrior",
"description": "Maintain a 7-day streak",
"image_url": "https://YOUR_CDN_DOMAIN/badges/week-warrior.png",
"earned": false,
"earned_at": null
}
]
}