Gamification badges

Pre-built achievements system for consumer apps

Configure achievements that unlock based on in-app events from a dashboard without custom achievements code. Make changes and add new achievements without a new app release.

Powering gamification experiences for 1M+ users

CampfireRevisionDojoLexiooOnePrepLealCyberPatientBohemian ResearchMaths GenieRitmo

Read our customer stories

Achievements engine

A pre-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 based on custom user properties.
Update logic without new releases
Modify achievement logic in the dashboard and push live instantly.

Achievement analytics

See completion rates and difficulty

Track completion rates and monitor unlock difficulty to maintain fairness and balance in your achievements.

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
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

208ms

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 I use achievements for onboarding milestones?
Yes. Trophy can unlock achievements when users complete a profile, a first core action, or any other metric-triggered step. You configure those milestone triggers in the dashboard and update them without a new app release.