Aprende a usar Trophy para añadir una funcionalidad de rachas a tu aplicación web o móvil.
Esta guía describe el proceso completo para añadir una funcionalidad de rachas a tu aplicación web o móvil usando Trophy.A modo ilustrativo, utilizaremos el ejemplo de una plataforma de estudio que emplea una racha diaria para incentivar y recompensar a los usuarios por ver tarjetas de estudio.
En Trophy, las Métricas son los componentes fundamentales de la gamificación y modelan las diferentes interacciones que los usuarios realizan con tu producto.En esta guía, la interacción que nos interesa es flashcards-viewed, pero puedes crear una métrica que mejor represente la interacción desde la cual quieres generar rachas.En el panel de Trophy, dirígete a la página de métricas y crea una métrica.
Una vez que hayas creado tu métrica, dirígete a la página de rachas y selecciona la frecuencia de racha que deseas (diaria, semanal o mensual).Luego añade tu métrica a las condiciones de racha y establece el umbral que los usuarios deben cumplir (por ejemplo, al menos 1 para extender su racha en cada período).También puedes añadir múltiples métricas y elegir si los usuarios deben cumplir todas o solo una—consulta la documentación de condiciones de racha para más detalles.En Trophy puedes hacer seguimiento de las interacciones de los usuarios enviando Eventos desde tu código a las API de Trophy asociados a una métrica específica.Cuando se registran eventos para un usuario específico, Trophy verificará automáticamente si han cumplido las condiciones de su racha para el período actual y actualizará la racha del usuario en consecuencia.Esto es lo que hace que crear experiencias gamificadas con Trophy sea tan fácil: hace todo el trabajo por ti entre bastidores.
Para interactuar con Trophy desde tu código utilizarás el SDK de Trophy disponible en la mayoría de los principales lenguajes de programación.Instala el SDK de Trophy:
var user = new EventRequestUser { Id = "18", Email = "user@example.com"};var request = new MetricsEventRequest { User = user, Value = 750};await trophy.Metrics.EventAsync("flashcards-flipped", request);
Al incluir la zona horaria del usuario en el atributo tz, Trophy
hará seguimiento automático de las rachas según el reloj local del usuario y gestionará
casos límite complicados donde los usuarios cambian de zona horaria.
La respuesta a esta llamada API es el conjunto completo de cambios a cualquier funcionalidad que hayas creado con Trophy, incluyendo los datos más recientes sobre la racha del usuario.
Podemos usar la respuesta de la API de cambio de métrica para mostrar notificaciones emergentes (o ‘toasts’) cuando el usuario extiende su racha.Aquí hay un ejemplo de esto en acción:
Streak Extended Pop-up
// Sends event to Trophyconst response = await viewFlashcard();if (!response) { return;}// Show toast if user has extended their streakif (response.currentStreak?.extended) { toast({ title: "You're on a roll!", description: `Keep going to keep your ${response.currentStreak.length} day streak!`, });}
var request = new UsersStreakRequest { HistoryPeriods = 14};await trophy.Users.StreaksAsync("user-id", request);
result = client.users.streak( :id => 'user-id', :history_periods => 14)
Esta API no solo devuelve datos sobre la racha actual del usuario como length y expires, sino que también puede devolver datos históricos de rachas que se pueden usar para mostrar cualquier tipo de interfaz de racha que desees a través del parámetro historyPeriods.
Trophy también admite congelación de rachas, lo que puede ayudar a evitar que los usuarios pierdan su racha si accidentalmente se pierden un periodo.Obtén más información sobre la congelación de rachas en la documentación dedicada de congelación de rachas.
Trophy también admite pausas de racha, que protegen la racha de un usuario durante un rango de fechas conocido en lugar de terminarla.Obtén más información sobre las pausas de racha en la documentación dedicada de pausas de racha.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Trophy Docs","colors":{"primary":"#4CC74A","light":"#4CC74A","dark":"#4CC74A"},"logo":{"light":"https://mintcdn.com/trophy-ci-i18n-auto-translations/LOPVA88viP-iZWXu/logo/logo_light.svg?fit=max\u0026auto=format\u0026n=LOPVA88viP-iZWXu\u0026q=85\u0026s=6e5a8f68dd54acfe22ac00691b035350","dark":"https://mintcdn.com/trophy-ci-i18n-auto-translations/LOPVA88viP-iZWXu/logo/logo_dark.svg?fit=max\u0026auto=format\u0026n=LOPVA88viP-iZWXu\u0026q=85\u0026s=0304730912af991c3703cab22953d065","href":"https://trophy.so"},"favicon":{"light":"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_light.svg?fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=6f91e644c139bc21a7c0dd0bf3b98360","dark":"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_dark.svg?fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=8f7412e437e7339250d4d9ab88153f1f"},"api":{"openapi":["openapi/application.json","openapi/admin.json"]},"background":{"color":{"light":"#F9F9FB","dark":"#181818"}},"footer":{"socials":{"x":"https://x.com/trophylabs","github":"https://github.com/trophyso","youtube":"https://youtube.com/@trophylabsinc","linkedin":"https://linkedin.com/company/trophylabs"}},"seo":{"metatags":{"og:description":"Trophy is a developer-friendly platform for building gamified product experiences that retain users in any mobile or web app. Add features like achievements, streaks, points systems and leaderboards plus deliver personalized progress report and reactivation emails with no code.","og:image":"https://trophy.so/opengraph-image"}},"fonts":{"family":"Plus Jakarta Sans"},"icons":{"library":"lucide"},"integrations":{"ga4":{"measurementId":"G-R146N3CQHE"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"navbar":{"links":[{"href":"https://trophy.so/contact-sales?utm_source=docs\u0026utm_medium=navbar-links","label":"Book a call"},{"href":"https://app.trophy.so","label":"Dashboard"}],"primary":{"type":"button","label":"Get started","href":"https://app.trophy.so/sign-up?utm_source=docs\u0026utm_medium=navbar-links"}},"href":"getting-started/introduction"},{"language":"es","navbar":{"links":[{"href":"https://app.trophy.so","label":"Panel"}],"primary":{"type":"button","label":"Comenzar gratis","href":"https://app.trophy.so/sign-up?utm_source=docs\u0026utm_medium=navbar-links"}},"href":"es/getting-started/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"trophy-ci-i18n-auto-translations","hasAudioNarration":false,"actualSubdomain":"trophy-ci-i18n-auto-translations","customDomains":[],"gitSource":{"type":"github","owner":"trophyso","repo":"docs","deployBranch":"ci/i18n/auto-translations","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae48c6039bc6f1b8c4fe65d","collectionId":"9a8b4e7b-1f25-4e1e-98ed-1d748883b80e","liveDeploymentHistoryId":"6ae48c6039bc6f1b8c4fe65d","schemaVersion":"v3"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"}},"buildId":"6ae48c6039bc6f1b8c4fe65d:success","clientVersion":"0.0.4043","preview":{"mainDeploymentId":"6802207f7adb6df074424dfc","changedFiles":[{"path":"admin-api/endpoints/points/archive-boosts-batch.mdx","status":"modified"},{"path":"es/platform/achievements.mdx","status":"modified"},{"path":"es/platform/leaderboards.mdx","status":"modified"},{"path":"platform/achievements.mdx","status":"modified"},{"path":"platform/leaderboards.mdx","status":"modified"},{"path":"admin-api/authentication.mdx","status":"modified"},{"path":"platform/environments.mdx","status":"modified"},{"path":"platform/multi-tenancy.mdx","status":"modified"},{"path":"features/emails.mdx","status":"modified"},{"path":"platform/data-sync.mdx","status":"modified"},{"path":"account/billing.mdx","status":"modified"},{"path":"es/account/billing.mdx","status":"modified"},{"path":"api-reference/authentication.mdx","status":"modified"},{"path":"admin-api/endpoints/application-api-keys/create-application-api-keys.mdx","status":"modified"},{"path":"admin-api/endpoints/application-api-keys/delete-application-api-keys.mdx","status":"modified"},{"path":"admin-api/endpoints/attributes/create-attributes.mdx","status":"modified"},{"path":"admin-api/endpoints/attributes/delete-attributes.mdx","status":"modified"},{"path":"admin-api/endpoints/attributes/get-an-attribute.mdx","status":"modified"},{"path":"admin-api/endpoints/attributes/list-attributes.mdx","status":"modified"},{"path":"admin-api/endpoints/attributes/update-attributes.mdx","status":"modified"},{"path":"admin-api/endpoints/leaderboards/create-leaderboards.mdx","status":"modified"},{"path":"admin-api/endpoints/leaderboards/delete-leaderboards.mdx","status":"modified"},{"path":"admin-api/endpoints/leaderboards/get-a-leaderboard.mdx","status":"modified"},{"path":"admin-api/endpoints/leaderboards/list-leaderboards.mdx","status":"modified"},{"path":"admin-api/endpoints/leaderboards/update-leaderboards.mdx","status":"modified"},{"path":"admin-api/endpoints/metrics/create-metrics.mdx","status":"modified"},{"path":"admin-api/endpoints/metrics/delete-metrics.mdx","status":"modified"},{"path":"admin-api/endpoints/metrics/get-a-metric.mdx","status":"modified"},{"path":"admin-api/endpoints/metrics/list-metrics.mdx","status":"modified"},{"path":"admin-api/endpoints/metrics/update-metrics.mdx","status":"modified"},{"path":"admin-api/endpoints/points/create-boosts.mdx","status":"modified"},{"path":"admin-api/endpoints/points/create-levels.mdx","status":"modified"},{"path":"admin-api/endpoints/points/create-points-systems.mdx","status":"modified"},{"path":"admin-api/endpoints/points/create-points-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/points/delete-boosts.mdx","status":"modified"},{"path":"admin-api/endpoints/points/delete-levels.mdx","status":"modified"},{"path":"admin-api/endpoints/points/delete-points-systems.mdx","status":"modified"},{"path":"admin-api/endpoints/points/delete-points-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/points/get-a-boost.mdx","status":"modified"},{"path":"admin-api/endpoints/points/get-a-level.mdx","status":"modified"},{"path":"admin-api/endpoints/points/get-a-points-system.mdx","status":"modified"},{"path":"admin-api/endpoints/points/get-a-points-trigger.mdx","status":"modified"},{"path":"admin-api/endpoints/points/list-boosts.mdx","status":"modified"},{"path":"admin-api/endpoints/points/list-levels.mdx","status":"modified"},{"path":"admin-api/endpoints/points/list-points-systems.mdx","status":"modified"},{"path":"admin-api/endpoints/points/list-points-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/points/update-boosts.mdx","status":"modified"},{"path":"admin-api/endpoints/points/update-levels.mdx","status":"modified"},{"path":"admin-api/endpoints/points/update-points-systems.mdx","status":"modified"},{"path":"admin-api/endpoints/points/update-points-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/streaks/grant-freezes.mdx","status":"modified"},{"path":"admin-api/endpoints/streaks/restore-streaks.mdx","status":"modified"},{"path":"admin-api/endpoints/tenants/create-tenants.mdx","status":"modified"},{"path":"admin-api/endpoints/tenants/delete-tenants.mdx","status":"modified"},{"path":"admin-api/endpoints/tenants/get-a-tenant.mdx","status":"modified"},{"path":"admin-api/endpoints/tenants/list-tenants.mdx","status":"modified"},{"path":"admin-api/endpoints/tenants/update-tenants.mdx","status":"modified"},{"path":"api-reference/endpoints/achievements/all-achievements.mdx","status":"modified"},{"path":"api-reference/endpoints/achievements/mark-an-achievement-as-completed.mdx","status":"modified"},{"path":"api-reference/endpoints/leaderboards/get-all-active-leaderboards.mdx","status":"modified"},{"path":"api-reference/endpoints/leaderboards/get-leaderboard.mdx","status":"modified"},{"path":"api-reference/endpoints/metrics/send-a-metric-change-event.mdx","status":"modified"},{"path":"api-reference/endpoints/points/get-points-boosts.mdx","status":"modified"},{"path":"api-reference/endpoints/points/get-points-level-summary.mdx","status":"modified"},{"path":"api-reference/endpoints/points/get-points-levels.mdx","status":"modified"},{"path":"api-reference/endpoints/points/get-points-summary.mdx","status":"modified"},{"path":"api-reference/endpoints/points/get-points.mdx","status":"modified"},{"path":"api-reference/endpoints/streaks/get-streaks.mdx","status":"modified"},{"path":"api-reference/endpoints/users/create-a-user.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-single-metric-event-summary-for-a-user.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-single-metric-for-a-user.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-single-user.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-completed-achievements.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-leaderboard.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-points-boosts.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-points-summary.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-points.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-streak.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-wrapped.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-all-metrics-for-a-user.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-user-preferences.mdx","status":"modified"},{"path":"api-reference/endpoints/users/identify-a-user.mdx","status":"modified"},{"path":"api-reference/endpoints/users/update-a-user.mdx","status":"modified"},{"path":"api-reference/endpoints/users/update-user-preferences.mdx","status":"modified"},{"path":"webhooks/events/achievements/achievement-completed.mdx","status":"modified"},{"path":"webhooks/events/emails/achievement-due.mdx","status":"modified"},{"path":"webhooks/events/emails/reactivation-due.mdx","status":"modified"},{"path":"webhooks/events/emails/recap-due.mdx","status":"modified"},{"path":"webhooks/events/emails/streak-reminder-due.mdx","status":"modified"},{"path":"webhooks/events/leaderboards/leaderboard-changed.mdx","status":"modified"},{"path":"webhooks/events/leaderboards/leaderboard-finished.mdx","status":"modified"},{"path":"webhooks/events/leaderboards/leaderboard-rank-changed.mdx","status":"modified"},{"path":"webhooks/events/leaderboards/leaderboard-started.mdx","status":"modified"},{"path":"webhooks/events/points/points-boost-finished.mdx","status":"modified"},{"path":"webhooks/events/points/points-boost-started.mdx","status":"modified"},{"path":"webhooks/events/points/points-changed.mdx","status":"modified"},{"path":"webhooks/events/points/points-level-changed.mdx","status":"modified"},{"path":"webhooks/events/streaks/streak-extended.mdx","status":"modified"},{"path":"webhooks/events/streaks/streak-freeze-consumed.mdx","status":"modified"},{"path":"webhooks/events/streaks/streak-freeze-earned.mdx","status":"modified"},{"path":"webhooks/events/streaks/streak-lost.mdx","status":"modified"},{"path":"webhooks/events/streaks/streak-started.mdx","status":"modified"},{"path":"admin-api/endpoints/events/submit-a-batch-of-metric-events.mdx","status":"modified"},{"path":"api-reference/endpoints/events/submit-a-metric-event.mdx","status":"modified"},{"path":"mcp/account-mcp-server/installation.mdx","status":"modified"},{"path":"mcp/docs-mcp-server/installation.mdx","status":"modified"},{"path":"mcp/docs-mcp-server/introduction.mdx","status":"modified"},{"path":"admin-api/endpoints/streaks/create-pauses.mdx","status":"modified"},{"path":"admin-api/endpoints/streaks/delete-pauses.mdx","status":"modified"},{"path":"admin-api/endpoints/achievements/create-achievements.mdx","status":"modified"},{"path":"admin-api/endpoints/achievements/delete-achievements.mdx","status":"modified"},{"path":"admin-api/endpoints/achievements/get-an-achievement.mdx","status":"modified"},{"path":"admin-api/endpoints/achievements/list-achievements.mdx","status":"modified"},{"path":"admin-api/endpoints/achievements/update-achievements.mdx","status":"modified"},{"path":"admin-api/endpoints/settings/get-organization-settings.mdx","status":"modified"},{"path":"admin-api/endpoints/settings/update-organization-settings.mdx","status":"modified"},{"path":"admin-api/endpoints/streaks/get-streak-settings.mdx","status":"modified"},{"path":"admin-api/endpoints/streaks/update-streak-settings.mdx","status":"modified"},{"path":"es/features/events.mdx","status":"modified"},{"path":"es/features/points.mdx","status":"modified"},{"path":"es/features/users.mdx","status":"modified"},{"path":"features/events.mdx","status":"modified"},{"path":"features/points.mdx","status":"modified"},{"path":"features/users.mdx","status":"modified"},{"path":"api-reference/client-libraries.mdx","status":"modified"},{"path":"api-reference/introduction.mdx","status":"modified"},{"path":"getting-started/introduction.mdx","status":"modified"},{"path":"getting-started/production-checklist.mdx","status":"modified"},{"path":"getting-started/quickstart.mdx","status":"modified"},{"path":"admin-api/endpoints/streaks/reset-streaks.mdx","status":"modified"},{"path":"account/security.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/create-reward-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/create-rewards.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/delete-reward-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/delete-rewards.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/get-a-reward-trigger.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/get-a-reward.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/list-reward-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/list-rewards.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/update-reward-triggers.mdx","status":"modified"},{"path":"admin-api/endpoints/rewards/update-rewards.mdx","status":"modified"},{"path":"api-reference/endpoints/rewards/redeem-a-reward.mdx","status":"modified"},{"path":"api-reference/endpoints/users/get-a-users-rewards.mdx","status":"modified"},{"path":"webhooks/events/rewards/reward-awarded.mdx","status":"modified"},{"path":"webhooks/events/rewards/reward-redeemed.mdx","status":"modified"}],"mainDeployment":{"subdomain":"trophy","customDomains":["docs.trophy.so"],"basePath":""}},"searchFilterCounts":[{"language":"en","tag":"Admin API","count":71},{"language":"es","tag":"API de Administración","count":71},{"language":"en","tag":"Application API","count":35},{"language":"es","tag":"API de Aplicación","count":35},{"language":"en","tag":"Points","count":29},{"language":"es","tag":"Puntos","count":29},{"language":"en","tag":"Webhooks","count":26},{"language":"es","tag":"Webhooks","count":26},{"language":"en","tag":"Home","count":24},{"language":"es","tag":"Inicio","count":24},{"language":"en","tag":"Users","count":17},{"language":"es","tag":"Usuarios","count":17},{"language":"en","tag":"Overview","count":16},{"language":"es","tag":"Resumen","count":16},{"language":"en","tag":"Rewards","count":13},{"language":"en","tag":"Streaks","count":13},{"language":"es","tag":"Recompensas","count":13},{"language":"es","tag":"Rachas","count":13},{"language":"en","tag":"Leaderboards","count":11},{"language":"es","tag":"Clasificaciones","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"preview":{"mainDeploymentId":"6802207f7adb6df074424dfc","changedFiles":[{"path":"getting-started/introduction","rawPath":"getting-started/introduction.mdx","status":"modified","pageMetadata":{"title":"Welcome to Trophy","description":"Trophy is the gamification layer for consumer apps. Build points, achievements, streaks, and leaderboards in minutes with Trophy's pre-built APIs and SDKs.","og:description":"Trophy is the gamification layer for consumer apps. Build points, achievements, streaks, and leaderboards in minutes with Trophy's pre-built APIs and SDKs.","href":"/getting-started/introduction"}},{"path":"getting-started/quickstart","rawPath":"getting-started/quickstart.mdx","status":"modified","pageMetadata":{"title":"Quick Start","description":"Install a Trophy SDK, authenticate, identify a user, and submit your first metric event in about five minutes.","og:description":"Install a Trophy SDK, authenticate, identify a user, and submit your first metric event in about five minutes.","href":"/getting-started/quickstart"}},{"path":"getting-started/production-checklist","rawPath":"getting-started/production-checklist.mdx","status":"modified","pageMetadata":{"title":"Production Checklist","description":"Idempotency, retries, errors, rate limits, webhooks, and environment configuration for production Trophy integrations.","og:description":"Idempotency, retries, errors, rate limits, webhooks, and environment configuration for production Trophy integrations.","href":"/getting-started/production-checklist"}},{"path":"features/events","rawPath":"features/events.mdx","status":"modified","pageMetadata":{"title":"Events","description":"Events are data objects that represent individual user interactions against metrics in Trophy.","og:description":"Events are data objects that represent individual user interactions against metrics in Trophy.","href":"/features/events","icon":"radio"}},{"path":"features/users","rawPath":"features/users.mdx","status":"modified","pageMetadata":{"title":"Users","description":"Learn how to track interactions across your userbase using Trophy.","og:description":"Users are the people that use your platform. Learn how to tell Trophy about them.","href":"/features/users","icon":"users"}},{"path":"features/points","rawPath":"features/points.mdx","status":"modified","pageMetadata":{"title":"Points","description":"Learn how to build points-based systems using Trophy","og:description":"Use points systems to reward users for in-app actions.","href":"/features/points","icon":"sparkle"}},{"path":"features/emails","rawPath":"features/emails.mdx","status":"modified","pageMetadata":{"title":"Emails","description":"Learn how to use emails in a gamified product experience with Trophy.","og:description":"Use automated email flows to extend your gamification experience outside your app and remind users to keep coming back.","href":"/features/emails","icon":"mail"}},{"path":"platform/environments","rawPath":"platform/environments.mdx","status":"modified","pageMetadata":{"title":"Environments","description":"Learn how to use environments to help you test and review changes before releasing to production.","og:description":"Learn how to use environments to help you test and review changes before releasing to production.","href":"/platform/environments","icon":"layers"}},{"path":"platform/multi-tenancy","rawPath":"platform/multi-tenancy.mdx","status":"modified","pageMetadata":{"title":"Multi-Tenancy","description":"Learn how to use multi-tenancy to help you set up and customize gamification features for each of your customers.","og:description":"Learn how to use multi-tenancy to help you set up and customize gamification features for each of your customers.","href":"/platform/multi-tenancy","icon":"building"}},{"path":"platform/data-sync","rawPath":"platform/data-sync.mdx","status":"modified","pageMetadata":{"title":"Data sync","description":"Learn how to sync Trophy data to your warehouse or database for analytics and reporting.","og:description":"Learn how to sync Trophy data to your warehouse or database for analytics and reporting.","href":"/platform/data-sync","icon":"database"}},{"path":"account/security","rawPath":"account/security.mdx","status":"modified","pageMetadata":{"title":"Security","description":"Account security features for your Trophy organization, including single sign-on, multi-factor authentication and role-based access control.","og:description":"Account security features for your Trophy organization, including single sign-on, multi-factor authentication and role-based access control.","href":"/account/security","icon":"shield-check"}},{"path":"account/billing","rawPath":"account/billing.mdx","status":"modified","pageMetadata":{"title":"Billing","description":"Learn how Trophy controls costs by charging based on monthly active users.","og:description":"Learn how Trophy controls costs by charging based on monthly active users.","href":"/account/billing","icon":"gauge"}},{"path":"api-reference/introduction","rawPath":"api-reference/introduction.mdx","status":"modified","pageMetadata":{"title":"Introduction","description":"Authenticate, handle errors and rate limits, use idempotency, and explore Trophy Application API SDKs.","subtitle":"Learn about the Trophy API and get started building your integration.","href":"/api-reference/introduction"}},{"path":"api-reference/authentication","rawPath":"api-reference/authentication.mdx","status":"modified","pageMetadata":{"title":"Authentication","description":"Authenticate with the Application API using user-scoped application API keys transmitted in the `X-API-KEY` header.","og:description":"Authenticate with the Trophy Application API using user-scoped application API keys transmitted in the `X-API-KEY` header.","href":"/api-reference/authentication","icon":"key"}},{"path":"api-reference/client-libraries","rawPath":"api-reference/client-libraries.mdx","status":"modified","pageMetadata":{"title":"Client Libraries","description":"Official Trophy SDKs for Node, Go, Java, .NET, PHP, Python, and Ruby with install commands and GitHub repositories.","og:description":"Official Trophy SDKs for Node, Go, Java, .NET, PHP, Python, and Ruby with install commands and GitHub repositories.","href":"/api-reference/client-libraries","icon":"code-xml"}},{"path":"api-reference/endpoints/achievements/mark-an-achievement-as-completed","rawPath":"api-reference/endpoints/achievements/mark-an-achievement-as-completed.mdx","status":"modified","pageMetadata":{"title":"Mark an achievement as completed","openapi":"openapi/application.json POST /achievements/{key}/complete","description":"Mark an achievement as completed for a user.","href":"/api-reference/endpoints/achievements/mark-an-achievement-as-completed"}},{"path":"api-reference/endpoints/achievements/all-achievements","rawPath":"api-reference/endpoints/achievements/all-achievements.mdx","status":"modified","pageMetadata":{"title":"Get all achievements and their completion stats","openapi":"openapi/application.json GET /achievements","description":"Get all achievements and their completion stats.","href":"/api-reference/endpoints/achievements/all-achievements"}},{"path":"api-reference/endpoints/streaks/get-streaks","rawPath":"api-reference/endpoints/streaks/get-streaks.mdx","status":"modified","pageMetadata":{"title":"Get the streak lengths of a list of users","openapi":"openapi/application.json GET /streaks","description":"Get the streak lengths of a list of users, ranked by streak length from longest to shortest.","href":"/api-reference/endpoints/streaks/get-streaks"}},{"path":"api-reference/endpoints/events/submit-a-metric-event","rawPath":"api-reference/endpoints/events/submit-a-metric-event.mdx","status":"modified","pageMetadata":{"title":"Submit a metric event","openapi":"openapi/application.json POST /metrics/{key}/event","description":"Increment or decrement the value of a metric for a user.","href":"/api-reference/endpoints/events/submit-a-metric-event"}},{"path":"api-reference/endpoints/points/get-points","rawPath":"api-reference/endpoints/points/get-points.mdx","status":"modified","pageMetadata":{"title":"Get a points system with its triggers","openapi":"openapi/application.json GET /points/{key}","description":"Get a points system with its triggers.","href":"/api-reference/endpoints/points/get-points"}},{"path":"api-reference/endpoints/points/get-points-boosts","rawPath":"api-reference/endpoints/points/get-points-boosts.mdx","status":"modified","pageMetadata":{"title":"Get boosts for a points system","openapi":"openapi/application.json GET /points/{key}/boosts","description":"Get all global boosts for a points system. Finished boosts are excluded by default.","href":"/api-reference/endpoints/points/get-points-boosts"}},{"path":"api-reference/endpoints/points/get-points-levels","rawPath":"api-reference/endpoints/points/get-points-levels.mdx","status":"modified","pageMetadata":{"title":"Get levels for a points system","openapi":"openapi/application.json GET /points/{key}/levels","description":"Get all levels for a points system.","href":"/api-reference/endpoints/points/get-points-levels"}},{"path":"api-reference/endpoints/points/get-points-level-summary","rawPath":"api-reference/endpoints/points/get-points-level-summary.mdx","status":"modified","pageMetadata":{"title":"Get level summary for a points system","openapi":"openapi/application.json GET /points/{key}/level-summary","description":"Get a breakdown of the number of users at each level in a points system.","href":"/api-reference/endpoints/points/get-points-level-summary"}},{"path":"api-reference/endpoints/points/get-points-summary","rawPath":"api-reference/endpoints/points/get-points-summary.mdx","status":"modified","pageMetadata":{"title":"Get a breakdown of users by points","openapi":"openapi/application.json GET /points/{key}/summary","description":"Get a breakdown of the number of users with points in each range.","href":"/api-reference/endpoints/points/get-points-summary"}},{"path":"api-reference/endpoints/leaderboards/get-all-active-leaderboards","rawPath":"api-reference/endpoints/leaderboards/get-all-active-leaderboards.mdx","status":"modified","pageMetadata":{"title":"Get all leaderboards","openapi":"openapi/application.json GET /leaderboards","description":"Get all leaderboards for your organization. Finished leaderboards are excluded by default.","href":"/api-reference/endpoints/leaderboards/get-all-active-leaderboards"}},{"path":"api-reference/endpoints/leaderboards/get-leaderboard","rawPath":"api-reference/endpoints/leaderboards/get-leaderboard.mdx","status":"modified","pageMetadata":{"title":"Get a single leaderboard","openapi":"openapi/application.json GET /leaderboards/{key}","description":"Get a specific leaderboard by its key.","href":"/api-reference/endpoints/leaderboards/get-leaderboard"}},{"path":"api-reference/endpoints/rewards/redeem-a-reward","rawPath":"api-reference/endpoints/rewards/redeem-a-reward.mdx","status":"modified","pageMetadata":{"title":"Redeem a reward","openapi":"openapi/application.json POST /rewards/{key}/redeem","description":"Redeem a reward for a user.","href":"/api-reference/endpoints/rewards/redeem-a-reward"}},{"path":"api-reference/endpoints/users/identify-a-user","rawPath":"api-reference/endpoints/users/identify-a-user.mdx","status":"modified","pageMetadata":{"title":"Identify a user","openapi":"openapi/application.json PUT /users/{id}","description":"Identify a user.","href":"/api-reference/endpoints/users/identify-a-user"}},{"path":"api-reference/endpoints/users/create-a-user","rawPath":"api-reference/endpoints/users/create-a-user.mdx","status":"modified","pageMetadata":{"title":"Create a new user","openapi":"openapi/application.json POST /users","description":"Create a new user.","href":"/api-reference/endpoints/users/create-a-user"}},{"path":"api-reference/endpoints/users/get-a-single-user","rawPath":"api-reference/endpoints/users/get-a-single-user.mdx","status":"modified","pageMetadata":{"title":"Get a single user","openapi":"openapi/application.json GET /users/{id}","description":"Get a single user.","href":"/api-reference/endpoints/users/get-a-single-user"}},{"path":"api-reference/endpoints/users/update-a-user","rawPath":"api-reference/endpoints/users/update-a-user.mdx","status":"modified","pageMetadata":{"title":"Update a user","openapi":"openapi/application.json PATCH /users/{id}","description":"Update a user.","href":"/api-reference/endpoints/users/update-a-user"}},{"path":"api-reference/endpoints/users/get-all-metrics-for-a-user","rawPath":"api-reference/endpoints/users/get-all-metrics-for-a-user.mdx","status":"modified","pageMetadata":{"title":"Get all metrics for a user","openapi":"openapi/application.json GET /users/{id}/metrics","description":"Get a single user's progress against all active metrics.","href":"/api-reference/endpoints/users/get-all-metrics-for-a-user"}},{"path":"api-reference/endpoints/users/get-a-single-metric-for-a-user","rawPath":"api-reference/endpoints/users/get-a-single-metric-for-a-user.mdx","status":"modified","pageMetadata":{"title":"Get a single metric for a user","openapi":"openapi/application.json GET /users/{id}/metrics/{key}","description":"Get a user's progress against a single active metric.","href":"/api-reference/endpoints/users/get-a-single-metric-for-a-user"}},{"path":"api-reference/endpoints/users/get-a-single-metric-event-summary-for-a-user","rawPath":"api-reference/endpoints/users/get-a-single-metric-event-summary-for-a-user.mdx","status":"modified","pageMetadata":{"title":"Get a summary of metric events over time","openapi":"openapi/application.json GET /users/{id}/metrics/{key}/event-summary","description":"Get a summary of metric events over time for a user.","href":"/api-reference/endpoints/users/get-a-single-metric-event-summary-for-a-user"}},{"path":"api-reference/endpoints/users/get-a-users-completed-achievements","rawPath":"api-reference/endpoints/users/get-a-users-completed-achievements.mdx","status":"modified","pageMetadata":{"title":"Get a user's achievements","openapi":"openapi/application.json GET /users/{id}/achievements","description":"Get a user's achievements.","href":"/api-reference/endpoints/users/get-a-users-completed-achievements"}},{"path":"api-reference/endpoints/users/get-a-users-streak","rawPath":"api-reference/endpoints/users/get-a-users-streak.mdx","status":"modified","pageMetadata":{"title":"Get a user's streak status","openapi":"openapi/application.json GET /users/{id}/streak","description":"Get a user's streak data.","href":"/api-reference/endpoints/users/get-a-users-streak"}},{"path":"api-reference/endpoints/users/get-a-users-points","rawPath":"api-reference/endpoints/users/get-a-users-points.mdx","status":"modified","pageMetadata":{"title":"Get a user's points data","openapi":"openapi/application.json GET /users/{id}/points/{key}","description":"Get a user's points for a specific points system.","href":"/api-reference/endpoints/users/get-a-users-points"}},{"path":"api-reference/endpoints/users/get-a-users-points-boosts","rawPath":"api-reference/endpoints/users/get-a-users-points-boosts.mdx","status":"modified","pageMetadata":{"title":"Get a user's active points boosts","openapi":"openapi/application.json GET /users/{id}/points/{key}/boosts","description":"Get active points boosts for a user in a specific points system. Returns both global boosts the user is eligible for and user-specific boosts.","href":"/api-reference/endpoints/users/get-a-users-points-boosts"}},{"path":"api-reference/endpoints/users/get-a-users-points-summary","rawPath":"api-reference/endpoints/users/get-a-users-points-summary.mdx","status":"modified","pageMetadata":{"title":"Get a summary of points events over time","openapi":"openapi/application.json GET /users/{id}/points/{key}/event-summary","description":"Get a summary of points awards over time for a user for a specific points system.","href":"/api-reference/endpoints/users/get-a-users-points-summary"}},{"path":"api-reference/endpoints/users/get-a-users-leaderboard","rawPath":"api-reference/endpoints/users/get-a-users-leaderboard.mdx","status":"modified","pageMetadata":{"title":"Get a user's leaderboard data","openapi":"openapi/application.json GET /users/{id}/leaderboards/{key}","description":"Get a user's rank, value, and daily ranking history for a specific leaderboard.","href":"/api-reference/endpoints/users/get-a-users-leaderboard"}},{"path":"api-reference/endpoints/users/get-a-users-rewards","rawPath":"api-reference/endpoints/users/get-a-users-rewards.mdx","status":"modified","pageMetadata":{"title":"Get a user's rewards","openapi":"openapi/application.json GET /users/{id}/rewards","description":"Get rewards awarded to a user. Filter by redeemed state and the date the reward was awarded.","href":"/api-reference/endpoints/users/get-a-users-rewards"}},{"path":"api-reference/endpoints/users/get-a-users-wrapped","rawPath":"api-reference/endpoints/users/get-a-users-wrapped.mdx","status":"modified","pageMetadata":{"title":"Get a user's wrapped data","openapi":"openapi/application.json GET /users/{id}/wrapped","description":"Get a user's year-in-review wrapped data.","href":"/api-reference/endpoints/users/get-a-users-wrapped"}},{"path":"api-reference/endpoints/users/get-user-preferences","rawPath":"api-reference/endpoints/users/get-user-preferences.mdx","status":"modified","pageMetadata":{"title":"Get a user's preferences","openapi":"openapi/application.json GET /users/{id}/preferences","description":"Get a user's notification preferences.","href":"/api-reference/endpoints/users/get-user-preferences"}},{"path":"api-reference/endpoints/users/update-user-preferences","rawPath":"api-reference/endpoints/users/update-user-preferences.mdx","status":"modified","pageMetadata":{"title":"Update a user's preferences","openapi":"openapi/application.json PATCH /users/{id}/preferences","description":"Update a user's notification and streak preferences. Streak preferences other than `streak.enabled` require streak customization to be enabled in your Trophy dashboard settings.","href":"/api-reference/endpoints/users/update-user-preferences"}},{"path":"admin-api/authentication","rawPath":"admin-api/authentication.mdx","status":"modified","pageMetadata":{"title":"Authentication","description":"Integrate securely with the Admin API using account-level admin API keys transmitted in the `X-API-KEY` header.","og:description":"Integrate securely with the Trophy Admin API using account-level admin API keys transmitted in the `X-API-KEY` header.","href":"/admin-api/authentication","icon":"key"}},{"path":"admin-api/endpoints/metrics/list-metrics","rawPath":"admin-api/endpoints/metrics/list-metrics.mdx","status":"modified","pageMetadata":{"title":"List metrics","openapi":"openapi/admin.json GET /metrics","description":"List metrics.","href":"/admin-api/endpoints/metrics/list-metrics"}},{"path":"admin-api/endpoints/metrics/get-a-metric","rawPath":"admin-api/endpoints/metrics/get-a-metric.mdx","status":"modified","pageMetadata":{"title":"Get a metric by ID","openapi":"openapi/admin.json GET /metrics/{id}","description":"Get a metric by ID.","href":"/admin-api/endpoints/metrics/get-a-metric"}},{"path":"admin-api/endpoints/metrics/update-metrics","rawPath":"admin-api/endpoints/metrics/update-metrics.mdx","status":"modified","pageMetadata":{"title":"Update metrics","openapi":"openapi/admin.json PATCH /metrics","description":"Update metrics by ID.","href":"/admin-api/endpoints/metrics/update-metrics"}},{"path":"admin-api/endpoints/metrics/create-metrics","rawPath":"admin-api/endpoints/metrics/create-metrics.mdx","status":"modified","pageMetadata":{"title":"Create metrics","openapi":"openapi/admin.json POST /metrics","description":"Create metrics.","href":"/admin-api/endpoints/metrics/create-metrics"}},{"path":"admin-api/endpoints/metrics/delete-metrics","rawPath":"admin-api/endpoints/metrics/delete-metrics.mdx","status":"modified","pageMetadata":{"title":"Delete metrics","openapi":"openapi/admin.json DELETE /metrics","description":"Delete metrics by ID.","href":"/admin-api/endpoints/metrics/delete-metrics"}},{"path":"admin-api/endpoints/events/submit-a-batch-of-metric-events","rawPath":"admin-api/endpoints/events/submit-a-batch-of-metric-events.mdx","status":"modified","pageMetadata":{"title":"Submit a batch of metric events","openapi":"openapi/admin.json POST /metrics/events","description":"Submit up to 1,000 metric events for asynchronous processing.\n","href":"/admin-api/endpoints/events/submit-a-batch-of-metric-events"}},{"path":"admin-api/endpoints/attributes/list-attributes","rawPath":"admin-api/endpoints/attributes/list-attributes.mdx","status":"modified","pageMetadata":{"title":"List attributes","openapi":"openapi/admin.json GET /attributes","description":"List attributes.","href":"/admin-api/endpoints/attributes/list-attributes"}},{"path":"admin-api/endpoints/attributes/get-an-attribute","rawPath":"admin-api/endpoints/attributes/get-an-attribute.mdx","status":"modified","pageMetadata":{"title":"Get an attribute","openapi":"openapi/admin.json GET /attributes/{id}","description":"Get an attribute by ID.","href":"/admin-api/endpoints/attributes/get-an-attribute"}},{"path":"admin-api/endpoints/attributes/update-attributes","rawPath":"admin-api/endpoints/attributes/update-attributes.mdx","status":"modified","pageMetadata":{"title":"Update attributes","openapi":"openapi/admin.json PATCH /attributes","description":"Update attributes by ID.","href":"/admin-api/endpoints/attributes/update-attributes"}},{"path":"admin-api/endpoints/attributes/create-attributes","rawPath":"admin-api/endpoints/attributes/create-attributes.mdx","status":"modified","pageMetadata":{"title":"Create attributes","openapi":"openapi/admin.json POST /attributes","description":"Create attributes.","href":"/admin-api/endpoints/attributes/create-attributes"}},{"path":"admin-api/endpoints/attributes/delete-attributes","rawPath":"admin-api/endpoints/attributes/delete-attributes.mdx","status":"modified","pageMetadata":{"title":"Delete attributes","openapi":"openapi/admin.json DELETE /attributes","description":"Delete attributes by ID.","href":"/admin-api/endpoints/attributes/delete-attributes"}},{"path":"admin-api/endpoints/achievements/list-achievements","rawPath":"admin-api/endpoints/achievements/list-achievements.mdx","status":"modified","pageMetadata":{"title":"List achievements","openapi":"openapi/admin.json GET /achievements","description":"List achievements.","href":"/admin-api/endpoints/achievements/list-achievements"}},{"path":"admin-api/endpoints/achievements/get-an-achievement","rawPath":"admin-api/endpoints/achievements/get-an-achievement.mdx","status":"modified","pageMetadata":{"title":"Get an achievement by ID","openapi":"openapi/admin.json GET /achievements/{id}","description":"Get an achievement by ID.","href":"/admin-api/endpoints/achievements/get-an-achievement"}},{"path":"admin-api/endpoints/achievements/update-achievements","rawPath":"admin-api/endpoints/achievements/update-achievements.mdx","status":"modified","pageMetadata":{"title":"Update achievements","openapi":"openapi/admin.json PATCH /achievements","description":"Update achievements by ID. Maximum 100 achievements per request. Only provided fields are updated; omitted fields are preserved.","href":"/admin-api/endpoints/achievements/update-achievements"}},{"path":"admin-api/endpoints/achievements/create-achievements","rawPath":"admin-api/endpoints/achievements/create-achievements.mdx","status":"modified","pageMetadata":{"title":"Create achievements","openapi":"openapi/admin.json POST /achievements","description":"Create achievements. Trigger-specific fields are required based on `trigger`.","href":"/admin-api/endpoints/achievements/create-achievements"}},{"path":"admin-api/endpoints/achievements/delete-achievements","rawPath":"admin-api/endpoints/achievements/delete-achievements.mdx","status":"modified","pageMetadata":{"title":"Delete achievements","openapi":"openapi/admin.json DELETE /achievements","description":"Delete achievements by ID.","href":"/admin-api/endpoints/achievements/delete-achievements"}},{"path":"admin-api/endpoints/streaks/get-streak-settings","rawPath":"admin-api/endpoints/streaks/get-streak-settings.mdx","status":"modified","pageMetadata":{"title":"Get streak settings","openapi":"openapi/admin.json GET /streaks/settings","description":"Get the organization's streak configuration.","href":"/admin-api/endpoints/streaks/get-streak-settings"}},{"path":"admin-api/endpoints/streaks/update-streak-settings","rawPath":"admin-api/endpoints/streaks/update-streak-settings.mdx","status":"modified","pageMetadata":{"title":"Update streak settings","openapi":"openapi/admin.json PATCH /streaks/settings","description":"Update the organization's streak configuration.","href":"/admin-api/endpoints/streaks/update-streak-settings"}},{"path":"admin-api/endpoints/streaks/grant-freezes","rawPath":"admin-api/endpoints/streaks/grant-freezes.mdx","status":"modified","pageMetadata":{"title":"Create streak freezes for multiple users","openapi":"openapi/admin.json POST /streaks/freezes","description":"Create streak freezes for multiple users.","href":"/admin-api/endpoints/streaks/grant-freezes"}},{"path":"admin-api/endpoints/streaks/create-pauses","rawPath":"admin-api/endpoints/streaks/create-pauses.mdx","status":"modified","pageMetadata":{"title":"Create streak pauses for multiple users","openapi":"openapi/admin.json POST /streaks/pauses","description":"Create streak pauses for multiple users. A pause covers a specific date range and maintains the user's streak length during that range instead of ending the streak. Start dates in the past are rejected.","href":"/admin-api/endpoints/streaks/create-pauses"}},{"path":"admin-api/endpoints/streaks/delete-pauses","rawPath":"admin-api/endpoints/streaks/delete-pauses.mdx","status":"modified","pageMetadata":{"title":"Delete streak pauses","openapi":"openapi/admin.json DELETE /streaks/pauses","description":"Delete streak pauses by ID.","href":"/admin-api/endpoints/streaks/delete-pauses"}},{"path":"admin-api/endpoints/streaks/restore-streaks","rawPath":"admin-api/endpoints/streaks/restore-streaks.mdx","status":"modified","pageMetadata":{"title":"Restore streaks for multiple users","openapi":"openapi/admin.json POST /streaks/restore","description":"Restore streaks for multiple users to the maximum previously achieved streak length found within the current restore window: the last 90 days for daily streaks, weekly periods starting with the week containing the start of the current calendar year for weekly streaks, and monthly periods starting at the beginning of the previous calendar year for monthly streaks.","href":"/admin-api/endpoints/streaks/restore-streaks"}},{"path":"admin-api/endpoints/streaks/reset-streaks","rawPath":"admin-api/endpoints/streaks/reset-streaks.mdx","status":"modified","pageMetadata":{"title":"Reset streaks to zero for multiple users","openapi":"openapi/admin.json POST /streaks/reset","description":"Reset the current streak to zero for multiple users.","href":"/admin-api/endpoints/streaks/reset-streaks"}},{"path":"admin-api/endpoints/points/list-points-systems","rawPath":"admin-api/endpoints/points/list-points-systems.mdx","status":"modified","pageMetadata":{"title":"List points systems","openapi":"openapi/admin.json GET /points","description":"List points systems.","href":"/admin-api/endpoints/points/list-points-systems"}},{"path":"admin-api/endpoints/points/get-a-points-system","rawPath":"admin-api/endpoints/points/get-a-points-system.mdx","status":"modified","pageMetadata":{"title":"Get a points system by ID","openapi":"openapi/admin.json GET /points/{id}","description":"Get a points system by ID.","href":"/admin-api/endpoints/points/get-a-points-system"}},{"path":"admin-api/endpoints/points/update-points-systems","rawPath":"admin-api/endpoints/points/update-points-systems.mdx","status":"modified","pageMetadata":{"title":"Update points systems","openapi":"openapi/admin.json PATCH /points","description":"Update points systems by ID.","href":"/admin-api/endpoints/points/update-points-systems"}},{"path":"admin-api/endpoints/points/create-points-systems","rawPath":"admin-api/endpoints/points/create-points-systems.mdx","status":"modified","pageMetadata":{"title":"Create points systems","openapi":"openapi/admin.json POST /points","description":"Create points systems. Optionally include sub-entities (levels, boosts, triggers) in each system payload to create them alongside the system.","href":"/admin-api/endpoints/points/create-points-systems"}},{"path":"admin-api/endpoints/points/delete-points-systems","rawPath":"admin-api/endpoints/points/delete-points-systems.mdx","status":"modified","pageMetadata":{"title":"Delete points systems","openapi":"openapi/admin.json DELETE /points","description":"Delete points systems by ID.","href":"/admin-api/endpoints/points/delete-points-systems"}},{"path":"admin-api/endpoints/points/list-points-triggers","rawPath":"admin-api/endpoints/points/list-points-triggers.mdx","status":"modified","pageMetadata":{"title":"List points triggers","openapi":"openapi/admin.json GET /points/{systemId}/triggers","description":"List points triggers for a system.","href":"/admin-api/endpoints/points/list-points-triggers"}},{"path":"admin-api/endpoints/points/get-a-points-trigger","rawPath":"admin-api/endpoints/points/get-a-points-trigger.mdx","status":"modified","pageMetadata":{"title":"Get a points trigger by ID","openapi":"openapi/admin.json GET /points/{systemId}/triggers/{id}","description":"Get a single points trigger by ID.","href":"/admin-api/endpoints/points/get-a-points-trigger"}},{"path":"admin-api/endpoints/points/update-points-triggers","rawPath":"admin-api/endpoints/points/update-points-triggers.mdx","status":"modified","pageMetadata":{"title":"Update points triggers","openapi":"openapi/admin.json PATCH /points/{systemId}/triggers","description":"Update points triggers in bulk. Maximum 100 triggers per request. Only provided fields are updated; omitted fields are preserved.","href":"/admin-api/endpoints/points/update-points-triggers"}},{"path":"admin-api/endpoints/points/create-points-triggers","rawPath":"admin-api/endpoints/points/create-points-triggers.mdx","status":"modified","pageMetadata":{"title":"Create points triggers","openapi":"openapi/admin.json POST /points/{systemId}/triggers","description":"Create points triggers in bulk.","href":"/admin-api/endpoints/points/create-points-triggers"}},{"path":"admin-api/endpoints/points/delete-points-triggers","rawPath":"admin-api/endpoints/points/delete-points-triggers.mdx","status":"modified","pageMetadata":{"title":"Delete points triggers","openapi":"openapi/admin.json DELETE /points/{systemId}/triggers","description":"Delete points triggers by ID. Maximum 100 trigger IDs per request.","href":"/admin-api/endpoints/points/delete-points-triggers"}},{"path":"admin-api/endpoints/points/list-levels","rawPath":"admin-api/endpoints/points/list-levels.mdx","status":"modified","pageMetadata":{"title":"List points levels","openapi":"openapi/admin.json GET /points/{systemId}/levels","description":"List points levels for a system.","href":"/admin-api/endpoints/points/list-levels"}},{"path":"admin-api/endpoints/points/get-a-level","rawPath":"admin-api/endpoints/points/get-a-level.mdx","status":"modified","pageMetadata":{"title":"Get a points level by ID","openapi":"openapi/admin.json GET /points/{systemId}/levels/{id}","description":"Get a single points level by ID.","href":"/admin-api/endpoints/points/get-a-level"}},{"path":"admin-api/endpoints/points/update-levels","rawPath":"admin-api/endpoints/points/update-levels.mdx","status":"modified","pageMetadata":{"title":"Update multiple points levels","openapi":"openapi/admin.json PATCH /points/{systemId}/levels","description":"Update multiple points levels. Each item must include an ID. `key` cannot be changed.","href":"/admin-api/endpoints/points/update-levels"}},{"path":"admin-api/endpoints/points/create-levels","rawPath":"admin-api/endpoints/points/create-levels.mdx","status":"modified","pageMetadata":{"title":"Create points levels","openapi":"openapi/admin.json POST /points/{systemId}/levels","description":"Create points levels.","href":"/admin-api/endpoints/points/create-levels"}},{"path":"admin-api/endpoints/points/delete-levels","rawPath":"admin-api/endpoints/points/delete-levels.mdx","status":"modified","pageMetadata":{"title":"Delete multiple points levels","openapi":"openapi/admin.json DELETE /points/{systemId}/levels","description":"Delete multiple points levels by ID.","href":"/admin-api/endpoints/points/delete-levels"}},{"path":"admin-api/endpoints/points/list-boosts","rawPath":"admin-api/endpoints/points/list-boosts.mdx","status":"modified","pageMetadata":{"title":"List points boosts","openapi":"openapi/admin.json GET /points/{systemId}/boosts","description":"List points boosts for a system.","href":"/admin-api/endpoints/points/list-boosts"}},{"path":"admin-api/endpoints/points/get-a-boost","rawPath":"admin-api/endpoints/points/get-a-boost.mdx","status":"modified","pageMetadata":{"title":"Get a points boost by ID","openapi":"openapi/admin.json GET /points/{systemId}/boosts/{id}","description":"Get a single points boost by ID.","href":"/admin-api/endpoints/points/get-a-boost"}},{"path":"admin-api/endpoints/points/update-boosts","rawPath":"admin-api/endpoints/points/update-boosts.mdx","status":"modified","pageMetadata":{"title":"Update multiple points boosts","openapi":"openapi/admin.json PATCH /points/{systemId}/boosts","description":"Update multiple points boosts.","href":"/admin-api/endpoints/points/update-boosts"}},{"path":"admin-api/endpoints/points/create-boosts","rawPath":"admin-api/endpoints/points/create-boosts.mdx","status":"modified","pageMetadata":{"title":"Create points boosts","openapi":"openapi/admin.json POST /points/{systemId}/boosts","description":"Create points boosts.","href":"/admin-api/endpoints/points/create-boosts"}},{"path":"admin-api/endpoints/points/delete-boosts","rawPath":"admin-api/endpoints/points/delete-boosts.mdx","status":"modified","pageMetadata":{"title":"Delete multiple points boosts","openapi":"openapi/admin.json DELETE /points/{systemId}/boosts","description":"Delete multiple points boosts by ID.","href":"/admin-api/endpoints/points/delete-boosts"}},{"path":"admin-api/endpoints/leaderboards/list-leaderboards","rawPath":"admin-api/endpoints/leaderboards/list-leaderboards.mdx","status":"modified","pageMetadata":{"title":"List leaderboards","openapi":"openapi/admin.json GET /leaderboards","description":"List leaderboards.","href":"/admin-api/endpoints/leaderboards/list-leaderboards"}},{"path":"admin-api/endpoints/leaderboards/get-a-leaderboard","rawPath":"admin-api/endpoints/leaderboards/get-a-leaderboard.mdx","status":"modified","pageMetadata":{"title":"Get a leaderboard","openapi":"openapi/admin.json GET /leaderboards/{id}","description":"Get a leaderboard by ID.","href":"/admin-api/endpoints/leaderboards/get-a-leaderboard"}},{"path":"admin-api/endpoints/leaderboards/update-leaderboards","rawPath":"admin-api/endpoints/leaderboards/update-leaderboards.mdx","status":"modified","pageMetadata":{"title":"Update leaderboards","openapi":"openapi/admin.json PATCH /leaderboards","description":"Update leaderboards by ID. Updating `status` behaves the same as activating, scheduling, deactivating, or finishing a leaderboard in the dashboard.","href":"/admin-api/endpoints/leaderboards/update-leaderboards"}},{"path":"admin-api/endpoints/leaderboards/create-leaderboards","rawPath":"admin-api/endpoints/leaderboards/create-leaderboards.mdx","status":"modified","pageMetadata":{"title":"Create leaderboards","openapi":"openapi/admin.json POST /leaderboards","description":"Create leaderboards.","href":"/admin-api/endpoints/leaderboards/create-leaderboards"}},{"path":"admin-api/endpoints/leaderboards/delete-leaderboards","rawPath":"admin-api/endpoints/leaderboards/delete-leaderboards.mdx","status":"modified","pageMetadata":{"title":"Delete leaderboards","openapi":"openapi/admin.json DELETE /leaderboards","description":"Delete leaderboards by ID.","href":"/admin-api/endpoints/leaderboards/delete-leaderboards"}},{"path":"admin-api/endpoints/rewards/list-rewards","rawPath":"admin-api/endpoints/rewards/list-rewards.mdx","status":"modified","pageMetadata":{"title":"List rewards","openapi":"openapi/admin.json GET /rewards","description":"List rewards.","href":"/admin-api/endpoints/rewards/list-rewards"}},{"path":"admin-api/endpoints/rewards/get-a-reward","rawPath":"admin-api/endpoints/rewards/get-a-reward.mdx","status":"modified","pageMetadata":{"title":"Get a reward by ID","openapi":"openapi/admin.json GET /rewards/{id}","description":"Get a reward by ID.","href":"/admin-api/endpoints/rewards/get-a-reward"}},{"path":"admin-api/endpoints/rewards/update-rewards","rawPath":"admin-api/endpoints/rewards/update-rewards.mdx","status":"modified","pageMetadata":{"title":"Update rewards","openapi":"openapi/admin.json PATCH /rewards","description":"Update rewards by ID. Maximum 100 rewards per request. Only provided fields are updated; omitted fields are preserved. Use the reward triggers endpoints to change a reward's triggers.","href":"/admin-api/endpoints/rewards/update-rewards"}},{"path":"admin-api/endpoints/rewards/create-rewards","rawPath":"admin-api/endpoints/rewards/create-rewards.mdx","status":"modified","pageMetadata":{"title":"Create rewards","openapi":"openapi/admin.json POST /rewards","description":"Create rewards. Optionally include triggers in each reward payload to create them alongside the reward. A reward with any invalid trigger is not created.","href":"/admin-api/endpoints/rewards/create-rewards"}},{"path":"admin-api/endpoints/rewards/delete-rewards","rawPath":"admin-api/endpoints/rewards/delete-rewards.mdx","status":"modified","pageMetadata":{"title":"Delete rewards","openapi":"openapi/admin.json DELETE /rewards","description":"Delete rewards by ID. Maximum 100 reward IDs per request. A deleted reward's triggers are deleted too.","href":"/admin-api/endpoints/rewards/delete-rewards"}},{"path":"admin-api/endpoints/rewards/list-reward-triggers","rawPath":"admin-api/endpoints/rewards/list-reward-triggers.mdx","status":"modified","pageMetadata":{"title":"List reward triggers","openapi":"openapi/admin.json GET /rewards/{rewardId}/triggers","description":"List triggers for a reward. Active triggers are listed first.","href":"/admin-api/endpoints/rewards/list-reward-triggers"}},{"path":"admin-api/endpoints/rewards/get-a-reward-trigger","rawPath":"admin-api/endpoints/rewards/get-a-reward-trigger.mdx","status":"modified","pageMetadata":{"title":"Get a reward trigger by ID","openapi":"openapi/admin.json GET /rewards/{rewardId}/triggers/{id}","description":"Get a single reward trigger by ID.","href":"/admin-api/endpoints/rewards/get-a-reward-trigger"}},{"path":"admin-api/endpoints/rewards/update-reward-triggers","rawPath":"admin-api/endpoints/rewards/update-reward-triggers.mdx","status":"modified","pageMetadata":{"title":"Update reward triggers","openapi":"openapi/admin.json PATCH /rewards/{rewardId}/triggers","description":"Update reward triggers in bulk. Maximum 100 triggers per request. Only provided fields are updated; omitted fields are preserved. A trigger keeps its ID when its criteria change.","href":"/admin-api/endpoints/rewards/update-reward-triggers"}},{"path":"admin-api/endpoints/rewards/create-reward-triggers","rawPath":"admin-api/endpoints/rewards/create-reward-triggers.mdx","status":"modified","pageMetadata":{"title":"Create reward triggers","openapi":"openapi/admin.json POST /rewards/{rewardId}/triggers","description":"Create reward triggers in bulk. Maximum 100 triggers per request.","href":"/admin-api/endpoints/rewards/create-reward-triggers"}},{"path":"admin-api/endpoints/rewards/delete-reward-triggers","rawPath":"admin-api/endpoints/rewards/delete-reward-triggers.mdx","status":"modified","pageMetadata":{"title":"Delete reward triggers","openapi":"openapi/admin.json DELETE /rewards/{rewardId}/triggers","description":"Delete reward triggers by ID. Maximum 100 trigger IDs per request. A reward with no triggers is not awarded until a trigger is added.","href":"/admin-api/endpoints/rewards/delete-reward-triggers"}},{"path":"admin-api/endpoints/tenants/list-tenants","rawPath":"admin-api/endpoints/tenants/list-tenants.mdx","status":"modified","pageMetadata":{"title":"List tenants","openapi":"openapi/admin.json GET /tenants","description":"List tenants in the current environment.","href":"/admin-api/endpoints/tenants/list-tenants"}},{"path":"admin-api/endpoints/tenants/get-a-tenant","rawPath":"admin-api/endpoints/tenants/get-a-tenant.mdx","status":"modified","pageMetadata":{"title":"Get a tenant","openapi":"openapi/admin.json GET /tenants/{id}","description":"Get a tenant by ID.","href":"/admin-api/endpoints/tenants/get-a-tenant"}},{"path":"admin-api/endpoints/tenants/update-tenants","rawPath":"admin-api/endpoints/tenants/update-tenants.mdx","status":"modified","pageMetadata":{"title":"Update tenants","openapi":"openapi/admin.json PATCH /tenants","description":"Update tenants by ID.","href":"/admin-api/endpoints/tenants/update-tenants"}},{"path":"admin-api/endpoints/tenants/create-tenants","rawPath":"admin-api/endpoints/tenants/create-tenants.mdx","status":"modified","pageMetadata":{"title":"Create tenants","openapi":"openapi/admin.json POST /tenants","description":"Create tenants.","href":"/admin-api/endpoints/tenants/create-tenants"}},{"path":"admin-api/endpoints/tenants/delete-tenants","rawPath":"admin-api/endpoints/tenants/delete-tenants.mdx","status":"modified","pageMetadata":{"title":"Delete tenants","openapi":"openapi/admin.json DELETE /tenants","description":"Delete tenants by ID.","href":"/admin-api/endpoints/tenants/delete-tenants"}},{"path":"admin-api/endpoints/application-api-keys/create-application-api-keys","rawPath":"admin-api/endpoints/application-api-keys/create-application-api-keys.mdx","status":"modified","pageMetadata":{"title":"Create application API keys for users","openapi":"openapi/admin.json POST /application-api-keys","description":"Create application API keys scoped to specific users. Each key can only perform operations on behalf of the user it was created for.","href":"/admin-api/endpoints/application-api-keys/create-application-api-keys"}},{"path":"admin-api/endpoints/application-api-keys/delete-application-api-keys","rawPath":"admin-api/endpoints/application-api-keys/delete-application-api-keys.mdx","status":"modified","pageMetadata":{"title":"Delete application API keys","openapi":"openapi/admin.json DELETE /application-api-keys","description":"Delete application API keys by ID.","href":"/admin-api/endpoints/application-api-keys/delete-application-api-keys"}},{"path":"admin-api/endpoints/settings/get-organization-settings","rawPath":"admin-api/endpoints/settings/get-organization-settings.mdx","status":"modified","pageMetadata":{"title":"Get organization settings","openapi":"openapi/admin.json GET /settings","description":"Get branding, experimentation, and aggregation settings.","href":"/admin-api/endpoints/settings/get-organization-settings"}},{"path":"admin-api/endpoints/settings/update-organization-settings","rawPath":"admin-api/endpoints/settings/update-organization-settings.mdx","status":"modified","pageMetadata":{"title":"Update organization settings","openapi":"openapi/admin.json PATCH /settings","description":"Update branding, experimentation, and aggregation settings.","href":"/admin-api/endpoints/settings/update-organization-settings"}},{"path":"webhooks/events/achievements/achievement-completed","rawPath":"webhooks/events/achievements/achievement-completed.mdx","status":"modified","pageMetadata":{"title":"Achievement completed","openapi":"openapi/application.json webhook achievement.completed","description":"Triggered when a user completes an achievement.","href":"/webhooks/events/achievements/achievement-completed"}},{"path":"webhooks/events/streaks/streak-started","rawPath":"webhooks/events/streaks/streak-started.mdx","status":"modified","pageMetadata":{"title":"Streak started","openapi":"openapi/application.json webhook streak.started","description":"Triggered when a user starts a streak.","href":"/webhooks/events/streaks/streak-started"}},{"path":"webhooks/events/streaks/streak-extended","rawPath":"webhooks/events/streaks/streak-extended.mdx","status":"modified","pageMetadata":{"title":"Streak extended","openapi":"openapi/application.json webhook streak.extended","description":"Triggered when a user extends an existing active streak.","href":"/webhooks/events/streaks/streak-extended"}},{"path":"webhooks/events/streaks/streak-lost","rawPath":"webhooks/events/streaks/streak-lost.mdx","status":"modified","pageMetadata":{"title":"Streak lost","openapi":"openapi/application.json webhook streak.lost","description":"Triggered when a user loses their streak.","href":"/webhooks/events/streaks/streak-lost"}},{"path":"webhooks/events/streaks/streak-freeze-consumed","rawPath":"webhooks/events/streaks/streak-freeze-consumed.mdx","status":"modified","pageMetadata":{"title":"Streak freeze consumed","openapi":"openapi/application.json webhook streak.freeze_consumed","description":"Triggered when a user consumes a streak freeze.","href":"/webhooks/events/streaks/streak-freeze-consumed"}},{"path":"webhooks/events/streaks/streak-freeze-earned","rawPath":"webhooks/events/streaks/streak-freeze-earned.mdx","status":"modified","pageMetadata":{"title":"Streak freeze earned","openapi":"openapi/application.json webhook streak.freeze_earned","description":"Triggered when a user earns streak freezes.","href":"/webhooks/events/streaks/streak-freeze-earned"}},{"path":"webhooks/events/points/points-changed","rawPath":"webhooks/events/points/points-changed.mdx","status":"modified","pageMetadata":{"title":"Points changed","openapi":"openapi/application.json webhook points.changed","description":"Triggered when a user is awarded or loses points. This event is fired a maximum of once per user per points system every fifteen minutes.","href":"/webhooks/events/points/points-changed"}},{"path":"webhooks/events/points/points-level-changed","rawPath":"webhooks/events/points/points-level-changed.mdx","status":"modified","pageMetadata":{"title":"Points level changed","openapi":"openapi/application.json webhook points.level_changed","description":"Triggered when a user's level changes within a points system as a result of earning or losing points.","href":"/webhooks/events/points/points-level-changed"}},{"path":"webhooks/events/points/points-boost-started","rawPath":"webhooks/events/points/points-boost-started.mdx","status":"modified","pageMetadata":{"title":"Points boost started","openapi":"openapi/application.json webhook points.boost_started","description":"Triggered when a points boost goes live (its start time has been reached).","href":"/webhooks/events/points/points-boost-started"}},{"path":"webhooks/events/points/points-boost-finished","rawPath":"webhooks/events/points/points-boost-finished.mdx","status":"modified","pageMetadata":{"title":"Points boost finished","openapi":"openapi/application.json webhook points.boost_finished","description":"Triggered when a points boost ends (its end time has been reached).","href":"/webhooks/events/points/points-boost-finished"}},{"path":"webhooks/events/leaderboards/leaderboard-started","rawPath":"webhooks/events/leaderboards/leaderboard-started.mdx","status":"modified","pageMetadata":{"title":"Leaderboard started","openapi":"openapi/application.json webhook leaderboard.started","description":"Triggered when a run of a leaderboard begins.","href":"/webhooks/events/leaderboards/leaderboard-started"}},{"path":"webhooks/events/leaderboards/leaderboard-changed","rawPath":"webhooks/events/leaderboards/leaderboard-changed.mdx","status":"modified","pageMetadata":{"title":"Leaderboard changed","openapi":"openapi/application.json webhook leaderboard.changed","description":"Triggered when leaderboard rankings change. This event is fired a maximum of once per leaderboard every fifteen minutes.","href":"/webhooks/events/leaderboards/leaderboard-changed"}},{"path":"webhooks/events/leaderboards/leaderboard-rank-changed","rawPath":"webhooks/events/leaderboards/leaderboard-rank-changed.mdx","status":"modified","pageMetadata":{"title":"Leaderboard rank changed","openapi":"openapi/application.json webhook leaderboard.rank_changed","description":"Triggered when a user's leaderboard rank changes. This event is fired a maximum of once per user per leaderboard every fifteen minutes.","href":"/webhooks/events/leaderboards/leaderboard-rank-changed"}},{"path":"webhooks/events/leaderboards/leaderboard-finished","rawPath":"webhooks/events/leaderboards/leaderboard-finished.mdx","status":"modified","pageMetadata":{"title":"Leaderboard finished","openapi":"openapi/application.json webhook leaderboard.finished","description":"Triggered when a run of a leaderboard finishes.","href":"/webhooks/events/leaderboards/leaderboard-finished"}},{"path":"webhooks/events/rewards/reward-awarded","rawPath":"webhooks/events/rewards/reward-awarded.mdx","status":"modified","pageMetadata":{"title":"Reward awarded","openapi":"openapi/application.json webhook reward.awarded","description":"Triggered when a reward is awarded to a user. The reward is not fulfilled until it is redeemed.","href":"/webhooks/events/rewards/reward-awarded"}},{"path":"webhooks/events/rewards/reward-redeemed","rawPath":"webhooks/events/rewards/reward-redeemed.mdx","status":"modified","pageMetadata":{"title":"Reward redeemed","openapi":"openapi/application.json webhook reward.redeemed","description":"Triggered when a reward is fulfilled. For points rewards this is when points are granted. For custom rewards the customer handles fulfillment.","href":"/webhooks/events/rewards/reward-redeemed"}},{"path":"webhooks/events/emails/recap-due","rawPath":"webhooks/events/emails/recap-due.mdx","status":"modified","pageMetadata":{"title":"Recap due","openapi":"openapi/application.json webhook emails.recap_due","description":"Triggered when a recap message is due to be sent to a user.","href":"/webhooks/events/emails/recap-due"}},{"path":"webhooks/events/emails/reactivation-due","rawPath":"webhooks/events/emails/reactivation-due.mdx","status":"modified","pageMetadata":{"title":"Reactivation due","openapi":"openapi/application.json webhook emails.reactivation_due","description":"Triggered when a reactivation message is due to be sent to a user.","href":"/webhooks/events/emails/reactivation-due"}},{"path":"webhooks/events/emails/streak-reminder-due","rawPath":"webhooks/events/emails/streak-reminder-due.mdx","status":"modified","pageMetadata":{"title":"Streak reminder due","openapi":"openapi/application.json webhook emails.streak_reminder_due","description":"Triggered when a streak reminder message is due to be sent to a user.","href":"/webhooks/events/emails/streak-reminder-due"}},{"path":"webhooks/events/emails/achievement-due","rawPath":"webhooks/events/emails/achievement-due.mdx","status":"modified","pageMetadata":{"title":"Achievement due","openapi":"openapi/application.json webhook emails.achievement_due","description":"Triggered when an achievement message is due to be sent to a user.","href":"/webhooks/events/emails/achievement-due"}},{"path":"mcp/docs-mcp-server/introduction","rawPath":"mcp/docs-mcp-server/introduction.mdx","status":"modified","pageMetadata":{"title":"Introduction","description":"Learn about the Trophy Docs MCP Server and why agents should use it for live documentation context.","subtitle":"On-demand Trophy docs for any AI coding agent.","href":"/mcp/docs-mcp-server/introduction"}},{"path":"mcp/docs-mcp-server/installation","rawPath":"mcp/docs-mcp-server/installation.mdx","status":"modified","pageMetadata":{"title":"Installation","description":"Install the Trophy Docs MCP Server in Claude, Claude Code, Cursor, VS Code, and other MCP clients.","subtitle":"Connect live Trophy documentation to your coding agent.","href":"/mcp/docs-mcp-server/installation","icon":"download"}},{"path":"mcp/account-mcp-server/installation","rawPath":"mcp/account-mcp-server/installation.mdx","status":"modified","pageMetadata":{"title":"Installation","description":"Install the Account MCP Server in Claude, Claude Code, Cursor, ChatGPT, VS Code, and other MCP clients.","subtitle":"Connect the remote Account MCP Server to your coding agent.","href":"/mcp/account-mcp-server/installation","icon":"download"}},{"path":"es/features/events","rawPath":"es/features/events.mdx","status":"modified","pageMetadata":{"title":"Eventos","description":"Los eventos son objetos de datos que representan interacciones individuales de usuarios contra métricas en Trophy.","og:description":"Los eventos son objetos de datos que representan interacciones individuales de usuarios contra métricas en Trophy.","href":"/es/features/events","icon":"radio"}},{"path":"es/features/users","rawPath":"es/features/users.mdx","status":"modified","pageMetadata":{"title":"Usuarios","description":"Aprende a rastrear las interacciones en tu base de usuarios utilizando Trophy.","og:description":"Los usuarios son las personas que utilizan tu plataforma. Aprende cómo informar a Trophy sobre ellos.","href":"/es/features/users","icon":"users"}},{"path":"es/features/points","rawPath":"es/features/points.mdx","status":"modified","pageMetadata":{"title":"Puntos","description":"Aprende a construir sistemas basados en puntos usando Trophy","og:description":"Usa sistemas de puntos para recompensar a los usuarios por acciones dentro de la aplicación.","href":"/es/features/points","icon":"sparkle"}},{"path":"es/account/billing","rawPath":"es/account/billing.mdx","status":"modified","pageMetadata":{"title":"Facturación","description":"Aprende cómo Trophy controla los costos cobrando según los usuarios activos mensuales.","og:description":"Aprende cómo Trophy controla los costos cobrando según los usuarios activos mensuales.","href":"/es/account/billing","icon":"gauge"}},{"path":"admin-api/endpoints/points/archive-boosts-batch","rawPath":"admin-api/endpoints/points/archive-boosts-batch.mdx","status":"modified"},{"path":"es/platform/achievements","rawPath":"es/platform/achievements.mdx","status":"modified"},{"path":"es/platform/leaderboards","rawPath":"es/platform/leaderboards.mdx","status":"modified"},{"path":"platform/achievements","rawPath":"platform/achievements.mdx","status":"modified"},{"path":"platform/leaderboards","rawPath":"platform/leaderboards.mdx","status":"modified"},{"path":"api-reference/endpoints/metrics/send-a-metric-change-event","rawPath":"api-reference/endpoints/metrics/send-a-metric-change-event.mdx","status":"modified"}],"mainDeployment":{"subdomain":"trophy","customDomains":["docs.trophy.so"],"basePath":""}},"editorBaseUrl":"https://app.mintlify.com/trophy/trophy/editor/ci%2Fi18n%2Fauto-translations/~","googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"a.nav-tabs-item:has(img[src*=\"/icons/mcp.svg\"])::before{content:\"\";display:block;width:1rem;height:1rem;flex-shrink:0;background-color:currentColor;-webkit-mask:url(/icons/mcp.svg) center/contain no-repeat;mask:url(/icons/mcp.svg) center/contain no-repeat}a.nav-tabs-item img[src*=\"/icons/mcp.svg\"]{display:none}"}],"page":{"pagePath":"es/guides/how-to-build-a-streaks-feature","slug":"/es/guides/how-to-build-a-streaks-feature","pageMetadata":{"title":"Cómo Crear una Funcionalidad de Rachas","description":"Aprende a usar Trophy para añadir una funcionalidad de rachas a tu aplicación web o móvil.","subtitle":"Aprende a usar Trophy para añadir una funcionalidad de rachas a tu aplicación web o móvil.","noindex":true,"href":"/es/guides/how-to-build-a-streaks-feature"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Aprende a usar Trophy para añadir una funcionalidad de rachas a tu aplicación web o móvil.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Frame,Heading,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Esta guía describe el proceso completo para añadir una funcionalidad de rachas a tu aplicación web o móvil usando Trophy.`}),`\n`,_jsx(_components.p,{children:`A modo ilustrativo, utilizaremos el ejemplo de una plataforma de estudio que emplea una racha diaria para incentivar y recompensar a los usuarios por ver tarjetas de estudio.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Para ver un ejemplo completamente funcional de esto en la práctica, consulta la `,_jsx(_components.a,{href:`https://examples.trophy.so`,children:`demostración en vivo`}),` o el `,_jsx(_components.a,{href:`https://github.com/trophyso/example-study-platform/tree/demo`,children:`repositorio de github`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`pre-requisites`,children:`Requisitos previos`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Una cuenta de `,_jsx(_components.a,{href:`https://app.trophy.so/sign-up`,children:`Trophy`})]}),`\n`,_jsx(_components.li,{children:`Aproximadamente 10 minutos`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`trophy-setup`,children:`Configuración de Trophy`}),`\n`,_jsxs(_components.p,{children:[`En Trophy, las `,_jsx(_components.a,{href:`/es/features/metrics`,children:`Métricas`}),` son los componentes fundamentales de la gamificación y modelan las diferentes interacciones que los usuarios realizan con tu producto.`]}),`\n`,_jsxs(_components.p,{children:[`En esta guía, la interacción que nos interesa es `,_jsx(_components.code,{children:`flashcards-viewed`}),`, pero puedes crear una métrica que mejor represente la interacción desde la cual quieres generar rachas.`]}),`\n`,_jsxs(_components.p,{children:[`En el panel de Trophy, dirígete a la `,_jsx(_components.a,{href:`https://app.trophy.so/metrics`,children:`página de métricas`}),` y crea una métrica.`]}),`\n`,_jsx(Frame,{children:_jsx(`video`,{autoPlay:true,muted:true,loop:true,playsInline:true,className:`mint-w-full mint-aspect-video`,src:`https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/achievements-feature/create_new_metric.mp4?fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=9c66a4444b21eae410158df64d14f3c6`,\"data-path\":`assets/guides/achievements-feature/create_new_metric.mp4`})}),`\n`,_jsxs(_components.p,{children:[`Una vez que hayas creado tu métrica, dirígete a la `,_jsx(_components.a,{href:`https://app.trophy.so/streaks/configure`,children:`página de rachas`}),` y selecciona la frecuencia de racha que deseas (diaria, semanal o mensual).`]}),`\n`,_jsx(_components.p,{children:`Luego añade tu métrica a las condiciones de racha y establece el umbral que los usuarios deben cumplir (por ejemplo, al menos 1 para extender su racha en cada período).`}),`\n`,_jsxs(_components.p,{children:[`También puedes añadir múltiples métricas y elegir si los usuarios deben cumplir todas o solo una—consulta la `,_jsx(_components.a,{href:`/es/features/streaks#streak-conditions`,children:`documentación de condiciones de racha`}),` para más detalles.`]}),`\n`,_jsxs(_components.p,{children:[`En Trophy puedes hacer seguimiento de las interacciones de los usuarios enviando `,_jsx(_components.a,{href:`/es/features/events`,children:`Eventos`}),` desde tu código a las API de Trophy asociados a una métrica específica.`]}),`\n`,_jsx(_components.p,{children:`Cuando se registran eventos para un usuario específico, Trophy verificará automáticamente si han cumplido las condiciones de su racha para el período actual y actualizará la racha del usuario en consecuencia.`}),`\n`,_jsx(_components.p,{children:`Esto es lo que hace que crear experiencias gamificadas con Trophy sea tan fácil: hace todo el trabajo por ti entre bastidores.`}),`\n`,_jsx(Heading,{level:`2`,id:`installing-trophy-sdk`,children:`Instalación del SDK de Trophy`}),`\n`,_jsxs(_components.p,{children:[`Para interactuar con Trophy desde tu código utilizarás el SDK de Trophy disponible en la mayoría de los principales `,_jsx(_components.a,{href:`/es/api-reference/client-libraries`,children:`lenguajes de programación`}),`.`]}),`\n`,_jsx(_components.p,{children:`Instala el SDK de Trophy:`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Node`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @trophyso/node`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Ruby`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`gem`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trophy_api_client`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trophy`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`PHP`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`composer`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` require`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trophyso/php`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Java (Gradle)`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`implementation`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'so.trophy:trophy-java:1.0.0'`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Java (Maven)`,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`dependency`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`groupId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`so.trophy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c/groupId>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`artifactId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`trophy-java`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c/artifactId>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`version`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`1.0.0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c/version>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/dependency`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`go`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` github.com/trophy-so/trophy-go`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`.NET (C#)`,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`//`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` .NET`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Core`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` CLI`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`dotnet`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` package`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Trophy`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`//`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Nuget`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Package`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Manager`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nuget`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Trophy`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`//`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Visual`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Studio`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`Install-Package`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Trophy`})]}),`\n`]})})})]}),`\n`,_jsxs(_components.p,{children:[`A continuación, obtén tu clave API desde la `,_jsx(_components.a,{href:`https://app.trophy.so/integration`,children:`página de integración`}),` de Trophy y agrégala como una variable de entorno `,_jsx(_components.strong,{children:`solo del lado del servidor`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`TROPHY_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'*******'`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Asegúrate de `,_jsx(_components.strong,{children:`no`}),` exponer tu clave API en código del lado del cliente.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`tracking-user-interactions`,children:`Seguimiento de Interacciones de Usuarios`}),`\n`,_jsxs(_components.p,{children:[`Para hacer seguimiento de un evento (interacción de usuario) asociado a tu métrica, utiliza la `,_jsx(_components.a,{href:`/es/api-reference/endpoints/events/submit-a-metric-event`,children:`API de cambio de métrica`}),`.`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`12`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`12`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.trophy.so/v1/metrics/flashcards-flipped/event`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-API-KEY: \u003capiKey>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Idempotency-Key: flashcard-view-42\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"user\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": \"18\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"email\": \"user@example.com\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tz\": \"Europe/London\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"value\": 750`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node`,numberOfLines:`14`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`EventResponse`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@trophyso/node/api\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` EventResponse`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` trophy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`metrics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"flashcards-flipped\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` user:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` id:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"18\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` email:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"user@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` tz:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Europe/London\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` value:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 750`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` idempotencyKey:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"flashcard-view-42\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`9`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.metrics.event(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"flashcards-flipped\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`EventRequestUser(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"18\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` email`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` tz`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Europe/London\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ),`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` value`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`750.0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`PHP`,numberOfLines:`11`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$user`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` EventRequestUser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'id'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '18'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'email'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'user@example.com'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` MetricsEventRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'user'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'value'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 750`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$trophy`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`metrics`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"flashcards-flipped\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Java`,numberOfLines:`11`,language:`java`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`java`,children:_jsxs(_components.code,{language:`java`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#4EC9B0`},children:`MetricsEventRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` MetricsEventRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`builder`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` EventRequestUser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`builder`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"18\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`email`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`750`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#4EC9B0`},children:`EventResponse`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`metrics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"flashcards-flipped\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, request);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,numberOfLines:`10`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Metrics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"flashcards-flipped\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`api`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`MetricsEventRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` User`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`api`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`EventRequestUser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"18\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Email`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`750`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`C#`,numberOfLines:`11`,language:`csharp`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`var`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` EventRequestUser`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"18\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Email`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"user@example.com\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`var`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` MetricsEventRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` User`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Value`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 750`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` trophy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Metrics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`EventAsync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"flashcards-flipped\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Ruby`,numberOfLines:`8`,language:`ruby`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`ruby`,children:_jsxs(_components.code,{language:`ruby`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`result`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`metrics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` :key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'flashcards-flipped'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` :user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` => {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` :id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'18'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` :email`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'user@example.com'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` :value`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`750`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Al incluir la zona horaria del usuario en el atributo `,_jsx(_components.code,{children:`tz`}),`, Trophy\nhará seguimiento automático de las rachas según el reloj local del usuario y gestionará\ncasos límite complicados donde los usuarios cambian de zona horaria.`]})}),`\n`,_jsx(_components.p,{children:`La respuesta a esta llamada API es el conjunto completo de cambios a cualquier funcionalidad que hayas creado con Trophy, incluyendo los datos más recientes sobre la racha del usuario.`}),`\n`,_jsx(CodeBlock,{filename:`Response`,expandable:`true`,numberOfLines:`15`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"metricId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"d01dcbcb-d51e-4c12-b054-dc811dcdc623\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"eventId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0040fe51-6bce-4b44-b0ad-bddc4e123534\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`750`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:` ...,`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"currentStreak\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"frequency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"daily\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"started\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-02\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-03-31\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-05\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"expires\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-12\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:` ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Valida que esto funciona verificando el `,_jsx(_components.a,{href:`https://app.trophy.so`,children:`panel de control`}),` de Trophy.`]}),`\n`,_jsx(Heading,{level:`2`,id:`displaying-streaks`,children:`Visualización de Rachas`}),`\n`,_jsx(_components.p,{children:`Tienes varias opciones para mostrar rachas en tu aplicación. Aquí veremos las opciones más comunes.`}),`\n`,_jsx(Heading,{level:`3`,id:`pop-up-notifications`,children:`Notificaciones Emergentes`}),`\n`,_jsxs(_components.p,{children:[`Podemos usar la respuesta de la `,_jsx(_components.a,{href:`/es/api-reference/endpoints/events/submit-a-metric-event`,children:`API de cambio de métrica`}),` para mostrar notificaciones emergentes (o ‘toasts’) cuando el usuario extiende su racha.`]}),`\n`,_jsx(_components.p,{children:`Aquí hay un ejemplo de esto en acción:`}),`\n`,_jsx(CodeBlock,{filename:`Streak Extended Pop-up`,numberOfLines:`14`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Sends event to Trophy`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` viewFlashcard`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Show toast if user has extended their streak`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`currentStreak`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`?.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`extended`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` toast`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` title:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"You're on a roll!\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` description:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `Keep going to keep your \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`currentStreak`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" day streak!`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Frame,{children:_jsx(`video`,{autoPlay:true,muted:true,loop:true,playsInline:true,className:`mint-w-full mint-aspect-video`,src:`https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-toasts.mp4?fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=5b68e39f680cbbbb219c871fd5800fb6`,\"data-path\":`assets/guides/streaks-feature/streak-toasts.mp4`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Si quieres reproducir efectos de sonido, usa la `,_jsx(_components.a,{href:`https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API`,children:`API de Audio HTML5`}),` y siéntete libre de usar estos `,_jsx(_components.a,{href:`https://github.com/trophyso/example-study-platform/tree/demo/public/sounds`,children:`archivos de audio`}),` que recomendamos.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`displaying-user-streaks`,children:`Mostrar Rachas de Usuario`}),`\n`,_jsxs(_components.p,{children:[`Para obtener datos sobre la racha de un usuario, usa la `,_jsx(_components.a,{href:`/es/api-reference/endpoints/users/get-a-users-streak`,children:`API de racha de usuario`}),`.`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.trophy.so/v1/users/{id}/streak`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'X-API-KEY: \u003capi-key>'`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node`,numberOfLines:`3`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`trophy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`users`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`streak`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` historyPeriods:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 14`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`4`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.users.streak(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` history_periods`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`PHP`,numberOfLines:`5`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` UsersStreakRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'history_periods'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 14`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$trophy`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`users`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`streak`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Java`,numberOfLines:`5`,language:`java`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`java`,children:_jsxs(_components.code,{language:`java`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#4EC9B0`},children:`UsersStreakRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` UsersStreakRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`builder`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`historyPeriods`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`build`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#4EC9B0`},children:`UsersStreakResponse`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`users`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`streak`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, request);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,numberOfLines:`6`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Users`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Streak`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"user-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`api`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`UsersStreakRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` HistoryPeriods`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`C#`,numberOfLines:`5`,language:`csharp`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`csharp`,children:_jsxs(_components.code,{language:`csharp`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`var`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` UsersStreakRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` HistoryPeriods`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 14`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` trophy`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Users`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`StreaksAsync`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Ruby`,numberOfLines:`4`,language:`ruby`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`ruby`,children:_jsxs(_components.code,{language:`ruby`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`result`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`users`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`streak`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` :id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'user-id'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` :history_periods`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})})]}),`\n`,_jsxs(_components.p,{children:[`Esta API no solo devuelve datos sobre la racha actual del usuario como `,_jsx(_components.code,{children:`length`}),` y `,_jsx(_components.code,{children:`expires`}),`, sino que también puede devolver datos históricos de rachas que se pueden usar para mostrar cualquier tipo de interfaz de racha que desees a través del parámetro `,_jsx(_components.code,{children:`historyPeriods`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:`Response`,expandable:`true`,numberOfLines:`59`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`59`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"frequency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"weekly\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"started\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-02\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-03-31\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-05\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"expires\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-12\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pauses\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"550e8400-e29b-41d4-a716-446655440000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"start\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-08-20\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"end\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-08-27\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"streakHistory\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-03-30\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-05\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usedPause\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-06\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-12\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usedPause\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-13\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-19\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usedPause\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-20\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-26\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usedPause\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-04-27\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-05-03\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usedPause\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-05-04\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-05-10\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usedPause\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodStart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-05-11\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periodEnd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2025-05-17\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"length\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usedPause\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Aquí hay un ejemplo de un calendario de rachas estilo git construido usando los datos de la respuesta anterior:`}),`\n`,_jsx(Frame,{children:_jsx(`img`,{height:`200`,width:`100%`,noZoom:true,src:`https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-calendar.png?fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=7a869d84d939ced031c5414987dc2540`,\"data-og-width\":`946`,\"data-og-height\":`644`,\"data-path\":`assets/guides/streaks-feature/streak-calendar.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-calendar.png?w=280\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=ec1f1ddebc097068432afee48c54b4bc 280w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-calendar.png?w=560\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=2edbd36d153b18a28e8c74ea9e65efa0 560w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-calendar.png?w=840\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=166e3964697e2a4fa9b3df994fd3ba55 840w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-calendar.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=268c410e7568dbfe5677d1ef73d71431 1100w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-calendar.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=c5e97cfbbceafecd0a451d842ddad301 1650w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/streak-calendar.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=9379db7486c75f07c8181c7bcbf86d34 2500w`})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Consulta este `,_jsx(_components.a,{href:`https://github.com/trophyso/example-study-platform/blob/demo/src/app/user-center/study-center/default-view.tsx`,children:`repositorio de ejemplo`}),` para ver un componente React que gestiona esta interfaz usando datos de Trophy.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`analytics`,children:`Analíticas`}),`\n`,_jsxs(_components.p,{children:[`La `,_jsx(_components.a,{href:`https://app.trophy.so/streaks`,children:`página de rachas`}),` en Trophy muestra datos sobre rachas activas, la longitud promedio de las rachas y las rachas más largas.`]}),`\n`,_jsx(Frame,{children:_jsx(`img`,{height:`200`,width:`100%`,noZoom:true,src:`https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/analytics.png?fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=da83f9a3fdf54c00114ddd256bbada94`,\"data-og-width\":`3228`,\"data-og-height\":`1508`,\"data-path\":`assets/guides/streaks-feature/analytics.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/analytics.png?w=280\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=a9e9fafeca25bfb7cd0e4135af17c62b 280w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/analytics.png?w=560\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=8c9bc6284225aac6c2f8f7a71d2beef0 560w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/analytics.png?w=840\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=cc8ef25f81a5816eef01d48f2c3bd0ae 840w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/analytics.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=6fd843882e3ab43f8aed8defbae0c992 1100w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/analytics.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=9f7867633968f6e712b980847047be6b 1650w, https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/guides/streaks-feature/analytics.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kq20NZCpkjuLyTvG\u0026q=85\u0026s=64e89e2543d7c9c089692ffdaf7f942a 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`streak-freezes`,children:`Congelación de Rachas`}),`\n`,_jsx(_components.p,{children:`Trophy también admite congelación de rachas, lo que puede ayudar a evitar que los usuarios pierdan su racha si accidentalmente se pierden un periodo.`}),`\n`,_jsxs(_components.p,{children:[`Obtén más información sobre la congelación de rachas en la `,_jsx(_components.a,{href:`/es/features/streaks#streak-freezes`,children:`documentación dedicada de congelación de rachas`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`streak-pauses`,children:`Pausas de Racha`}),`\n`,_jsx(_components.p,{children:`Trophy también admite pausas de racha, que protegen la racha de un usuario durante un rango de fechas conocido en lugar de terminarla.`}),`\n`,_jsxs(_components.p,{children:[`Obtén más información sobre las pausas de racha en la `,_jsx(_components.a,{href:`/es/features/streaks#streak-pauses`,children:`documentación dedicada de pausas de racha`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`get-support`,children:`Obtener Soporte`}),`\n`,_jsxs(_components.p,{children:[`¿Quieres ponerte en contacto con el equipo de Trophy? Contáctanos por `,_jsx(_components.a,{href:`mailto:support@trophy.so`,children:`correo electrónico`}),`. ¡Estamos aquí para ayudar!`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Cómo Crear una Funcionalidad de Rachas","description":"Aprende a usar Trophy para añadir una funcionalidad de rachas a tu aplicación web o móvil.","subtitle":"Aprende a usar Trophy para añadir una funcionalidad de rachas a tu aplicación web o móvil.","noindex":true,"href":"/es/guides/how-to-build-a-streaks-feature"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Requisitos previos","slug":"pre-requisites","depth":2,"children":[]},{"title":"Configuración de Trophy","slug":"trophy-setup","depth":2,"children":[]},{"title":"Instalación del SDK de Trophy","slug":"installing-trophy-sdk","depth":2,"children":[]},{"title":"Seguimiento de Interacciones de Usuarios","slug":"tracking-user-interactions","depth":2,"children":[]},{"title":"Visualización de Rachas","slug":"displaying-streaks","depth":2,"children":[{"title":"Notificaciones Emergentes","slug":"pop-up-notifications","depth":3,"children":[]},{"title":"Mostrar Rachas de Usuario","slug":"displaying-user-streaks","depth":3,"children":[]}]},{"title":"Analíticas","slug":"analytics","depth":2,"children":[]},{"title":"Congelación de Rachas","slug":"streak-freezes","depth":2,"children":[]},{"title":"Pausas de Racha","slug":"streak-pauses","depth":2,"children":[]},{"title":"Obtener Soporte","slug":"get-support","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"dynamicCss":".mint-aspect-video {\n aspect-ratio: 16 / 9\n}\n.mint-w-full {\n width: 100%\n}","subdomain":"trophy-ci-i18n-auto-translations","siteName":"Trophy Docs","title":"Cómo Crear una Funcionalidad de Rachas - Trophy Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/guides/how-to-build-a-streaks-feature","matchLevel":1,"noindex":true},"es":{"href":"/es/guides/how-to-build-a-streaks-feature","matchLevel":0}}},"lastModified":"2026-10-30T12:24:20.193Z","originalFileLocation":"es/guides/how-to-build-a-streaks-feature.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Aprende a usar Trophy para añadir una funcionalidad de rachas a tu aplicación web o móvil.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Trophy Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_light.svg?fit=max\u0026amp;auto=format\u0026amp;n=kq20NZCpkjuLyTvG\u0026amp;q=85\u0026amp;s=6f91e644c139bc21a7c0dd0bf3b98360\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_light.svg?fit=max\u0026amp;auto=format\u0026amp;n=kq20NZCpkjuLyTvG\u0026amp;q=85\u0026amp;s=6f91e644c139bc21a7c0dd0bf3b98360\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_light.svg?fit=max\u0026amp;auto=format\u0026amp;n=kq20NZCpkjuLyTvG\u0026amp;q=85\u0026amp;s=6f91e644c139bc21a7c0dd0bf3b98360\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_light.svg?fit=max\u0026amp;auto=format\u0026amp;n=kq20NZCpkjuLyTvG\u0026amp;q=85\u0026amp;s=6f91e644c139bc21a7c0dd0bf3b98360\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_dark.svg?fit=max\u0026amp;auto=format\u0026amp;n=kq20NZCpkjuLyTvG\u0026amp;q=85\u0026amp;s=8f7412e437e7339250d4d9ab88153f1f\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_dark.svg?fit=max\u0026amp;auto=format\u0026amp;n=kq20NZCpkjuLyTvG\u0026amp;q=85\u0026amp;s=8f7412e437e7339250d4d9ab88153f1f\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintcdn.com/trophy-ci-i18n-auto-translations/kq20NZCpkjuLyTvG/assets/logomark_dark.svg?fit=max\u0026amp;auto=format\u0026amp;n=kq20NZCpkjuLyTvG\u0026amp;q=85\u0026amp;s=8f7412e437e7339250d4d9ab88153f1f\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Cómo Crear una Funcionalidad de Rachas - Trophy Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Trophy is a developer-friendly platform for building gamified product experiences that retain users in any mobile or web app. Add features like achievements, streaks, points systems and leaderboards plus deliver personalized progress report and reactivation emails with no code.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Trophy Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://trophy-ci-i18n-auto-translations.mintlify.app/es/guides/how-to-build-a-streaks-feature\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://trophy.so/opengraph-image\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Cómo Crear una Funcionalidad de Rachas - Trophy Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Trophy is a developer-friendly platform for building gamified product experiences that retain users in any mobile or web app. Add features like achievements, streaks, points systems and leaderboards plus deliver personalized progress report and reactivation emails with no code.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://trophy.so/opengraph-image\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/trophy-ci-i18n-auto-translations/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Trophy Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4CC74A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://trophy-ci-i18n-auto-translations.mintlify.app/es/guides/how-to-build-a-streaks-feature\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/guides/how-to-build-a-streaks-feature.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Trophy Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Trophy Docs","nav":{"global":null,"languages":[{"language":"en","default":true,"navbar":{"links":[{"href":"https://trophy.so/contact-sales?utm_source=docs\u0026utm_medium=navbar-links","label":"Book a call"},{"href":"https://app.trophy.so","label":"Dashboard"}],"primary":{"type":"button","label":"Get started","href":"https://app.trophy.so/sign-up?utm_source=docs\u0026utm_medium=navbar-links"}},"pages":[{"title":"en","href":"/guides/how-to-build-a-streaks-feature"}]},{"language":"es","navbar":{"links":[{"href":"https://app.trophy.so","label":"Panel"}],"primary":{"type":"button","label":"Comenzar gratis","href":"https://app.trophy.so/sign-up?utm_source=docs\u0026utm_medium=navbar-links"}},"tabs":[{"tab":"Inicio","icon":"house","pages":[{"title":"Inicio","href":"/es/getting-started/introduction"}]},{"tab":"Guías","icon":"rocket","groups":[{"group":"Guías de funcionalidades","pages":[{"title":"Cómo Crear una Funcionalidad de Logros","description":"Aprende a usar Trophy para añadir una funcionalidad de logros a tu aplicación web o móvil.","href":"/es/guides/how-to-build-an-achievements-feature"},{"title":"Cómo Crear una Funcionalidad de Rachas","href":"/es/guides/how-to-build-a-streaks-feature"},{"title":"Cómo construir una función de XP","description":"Aprende a usar Trophy para añadir una función de XP a tu aplicación web o móvil.","href":"/es/guides/how-to-build-an-xp-feature"},{"title":"Cómo crear una función de energía","href":"/es/guides/how-to-build-an-energy-feature"},{"title":"Cómo Crear una Funcionalidad de Clasificaciones","href":"/es/guides/how-to-build-a-leaderboards-feature"}]},{"group":"Casos de uso","pages":[{"title":"Cómo construir una plataforma de estudio gamificada","href":"/es/guides/gamified-study-platform"},{"title":"Cómo Crear un Rastreador de Fitness Gamificado","href":"/es/guides/gamified-fitness-platform"}]}]},{"tab":"API de Aplicación","icon":"globe","pages":[{"title":"API de Aplicación","href":"/es/api-reference/introduction"}]},{"tab":"API de Administración","icon":"globe-lock","pages":[{"title":"API de Administración","href":"/es/admin-api/introduction"}]},{"tab":"Webhooks","icon":"webhook","pages":[{"title":"Webhooks","href":"/es/webhooks/introduction"}]},{"tab":"MCP","icon":"https://mintlify.s3.us-west-1.amazonaws.com/trophy-ci-i18n-auto-translations/icons/mcp.svg","pages":[{"title":"MCP","href":"/es/mcp/overview"}]},{"tab":"Kit de UI","icon":"shapes","pages":[{"title":"Kit de UI","href":"/es/uikit/overview"}]}],"global":{"anchors":[{"anchor":"Seguridad","icon":"shield-check","href":"https://trust.trophy.so"},{"anchor":"Estado","icon":"radio-tower","href":"https://status.trophy.so"},{"anchor":"llms.txt","icon":"bot","href":"https://docs.trophy.so/llms-full.txt"},{"anchor":"Ayuda","icon":"life-buoy","href":"mailto:support@trophy.so"}]}}]},"basePath":"","title":"Cómo Crear una Funcionalidad de Rachas - Trophy Docs","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["07c022d89b","6d89261695"],"chunks":["Frame-Bpq2Z6jK.js","DynamicMarkdown-D5M2At0B.js","preview-widget-Bk0oq5I_.js"]}