Gamification badges

Turn users into power users with in-app achievements

Purpose-built app gamification for achievements at scale. Launch and iterate on in-app achievements without a custom achievements engine.

Powering gamification experiences for 1M+ users

CampfireRevisionDojoLexiooOnePrepLealCyberPatientBohemian ResearchMaths GenieRitmo

Read our customer stories

Achievements engine

A purpose-built achievements engine

Build achievements using a flexible logic engine. Add new achievements and update existing logic without constant releases.

No-code achievement logic
Build milestone, streak, and one-off achievements using a flexible achievements engine.
Flexible badge targeting
Target specific user cohorts with achievements to drive engagement and retention.
Update logic without new releases
Modify achievement logic in the dashboard and push live instantly.

Achievement analytics

Understand how achievements perform

Track how achievements impact engagement and retention, and use completion data to inform product decisions.

Maintain balance at scale
Track completion rates and monitor which achievements are too easily unlocked vs. too difficult.
Identify power users
Spot users completing achievements at a high rate and use their feedback to inform product decisions.

Gamification software for modern product teams

The only gamification platform built for the modern era. Control via API or MCP and wire into your development workflow across multiple environments.

Official Gamification SDKs

NodeJS
Go
Java
.NET
PHP
Python
Ruby
First-class APIs for fast-moving teams
Idempotent, retry-safe, time-zone aware. Designed to feel obvious the first time you read the docs.
achievements.ts
// Track workout completions in Trophy const newState = await trophy.metrics.event('workouts-completed', { user: { id: user.id, tz: 'Europe/London', }, value: 1, idempotencyKey: 'workout-123', }) // React to unlocked achievements in the response const unlockedAchievements = newState.achievements
Control everything via MCP
Beta
Connect Trophy to MCP clients like Cursor and Claude Code and configure features without touching the dashboard.

Trophy MCP

Sonnet 4.6 · 8 tools loaded

> Set up achievement milestones for our fitness app — workouts completed and streak milestones at 3, 7, 14, and 30 days

Listed Trophy MCP tools · read achievements and streaks docs

(ctrl+o to expand)

I'll create workout count and streak milestone achievements:

  1. Workouts completed — 1, 10, 50, and 100 workouts
  2. Streak milestones — 3, 7, 14, and 30 days

metrics.create({ name: 'Workouts Completed', key: 'workouts-completed' })

achievements.create({ achievements: [{ name: 'First workout', key: 'workouts-1', trigger: { metric: 'workouts-completed', threshold: 1 } }, ...})

Workout and streak achievements are configured in Trophy staging environment. Shall I copy to production?

Connect your stack via webhooks
Trigger workflows in third-party tools and internal systems in real time based on changes in Trophy.
Trophy
achievement.completed
Customer.io
Knock
OneSignal
Mixpanel
Amplitude
Develop, test, and deploy across environments
Separate dev, staging, and production environments with their own keys, data, and configuration. Promote changes with confidence.
Production
Staging
Pre-prod
Jason Dev
Charlie Dev
Keith Dev

Scale with confidence

Trusted by startups and enterprises alike. Scale seamlessly from your first to your millionth user.

Scale from first user to millionth
Latency, throughput, and uptime that hold up as your user base grows.

150M

API requests · 30D

just now

143ms

p95 latency · 24H

just now

100.0%

Uptime · 90D

Secure by design
Encryption in transit and at rest, scoped API keys, and privacy-first defaults out of the box.
  • Data encryption

    TLS 1.2+ in transit and AES-256 at rest

  • Privacy-first

    Trophy operates without PII by default

  • Secure API keys

    Rotation and revocation on demand

Reliable at scale
Fault tolerance, rate limits, and idempotent APIs keep gamification logic dependable under load.
  • Fault tolerant

    Automatic failover through redundancy

  • Rate limited

    Per-endpoint limits maintain fair use

  • Idempotent

    Retry requests without side-effects

FAQ

Frequently asked questions

Have a different question and can’t find the answer you’re looking for? Send us an email.

What types of achievements can I build with Trophy?
Trophy's achievements engine supports milestone, streak, and one-off achievements using flexible no-code logic in the dashboard. You can target specific user cohorts and update achievement logic live without shipping a new app release.
How does Trophy decide when an achievement is unlocked?
Trophy evaluates achievement triggers automatically when you send metric events — including metric thresholds, streak milestones, and direct API calls for custom steps. Triggers run in real time without polling or scheduled jobs on your side.
How do badges relate to achievements in Trophy?
In Trophy, an achievement is the milestone a user reaches and each achievement has a badge image that represents it. You configure trigger conditions and badge artwork in the Trophy dashboard, and Trophy hosts badge assets and returns badge URLs for your app UI.
How do I balance achievement difficulty over time?
Trophy achievement analytics show completion rates so you can monitor which achievements are too easily unlocked versus too difficult. You can identify power users completing achievements at a high rate and use that data to inform product decisions.
Can achievements help with onboarding retention?
Yes. Trophy is well suited to onboarding milestones such as completing a profile or a first core action, triggered when users complete each step. Designing an early achievement before users leave the product is one of the highest-leverage retention decisions you can make.