Xentree Docs
My Xentree
My Xentree
  1. Documentation
  • Documentation
    • Introduction
    • Quickstart
    • Authentication
    • Conversations
    • Knowledge Base
    • Organizations
    • Profile & Analytics
    • Xentree English
    • Xentree Live
    • Errors and Limits
  • API Reference
    • Authentication
      • Register a new user
      • Log in and get an access token
      • Refresh an access token
      • Log out the current user
      • Get the current authenticated user
      • Update the current authenticated user
    • Conversations
      • List available AI providers
      • Generate an AI response
      • List conversations for the current user
      • Create a conversation
      • Get messages for a conversation
      • Search indexed user content
    • Knowledge Base
      • Search the knowledge base
    • Organizations
      • List organizations for the current user
      • Create an organization
      • Get organization details
      • Update organization details
      • Delete an organization
      • List organization members
      • Add a member to an organization
    • Profile & Analytics
      • Get my XP profile
      • Get a user's public profile
      • Get streak status
      • Get weekly XP activity
      • Get learning pulse (365-day heatmap)
      • Get daily quests
      • Get learning time analytics
    • Xentree English
      • List XEL modules with user progress
      • Get XEL module details
      • Submit a learning task response
      • Run AI evaluation for speaking or writing
      • Get the XEL dashboard overview
    • Xentree Live
      • Get remaining Xentree Live quota
      • Start a live session
      • Update an active live session heartbeat
      • End a live session
      • Update the user nickname used in Xentree Live
      • List live transcripts for the current user
      • Save live session transcripts
      • Get a single live transcript
    • Integrations
      • List active integrations for the current user
      • Start the Google Calendar OAuth flow
    • API Keys
      • List API keys
      • Create an API key
      • Delete an API key
  • Schemas
    • Error
    • TokenResponse
    • UserProfile
    • ChatRequest
    • ChatResponse
    • ConversationCreateRequest
    • ConversationResponse
    • KnowledgeSearchRequest
    • LiveStartSessionRequest
    • LiveSessionResponse
    • LiveQuotaResponse
    • TranscriptTurn
    • SaveLiveTranscriptsRequest
    • OrganizationCreateRequest
    • OrganizationResponse
    • MemberResponse
    • XELModuleSummary
    • XELTaskSubmissionRequest
    • APIKeyCreateRequest
    • XPProfileResponse
    • APIKeyResponse
    • PublicXPProfileResponse
    • StreakStatusResponse
    • WeeklyActivityResponse
    • LearningPulseDayEntry
    • LearningPulseResponse
    • QuestItem
    • QuestsResponse
    • LearningTimeAnalyticsResponse
  1. Documentation

Profile & Analytics

The Xentree Profile & Analytics APIs expose user learning data — XP, streaks, token balance, daily quests, and detailed activity history. These are the core data points organizations need to track learner engagement and progress.

Core capabilities#

retrieve full XP profile including level, streak, and token balance
access any user's public profile without authentication
fetch daily quest progress
query streak status and saver inventory
retrieve weekly XP activity for dashboards
pull 365-day learning pulse (heatmap) data
get aggregated learning time analytics with optional date filter

Authentication and scopes#

Most endpoints require a Bearer token or API key.
GET /api/xp/public-profile/{username} is the only unauthenticated endpoint.
Recommended API key scopes:
conversations:read — needed by the analytics endpoint (it reads session data)

Main endpoints#

My XP profile#

GET /api/xp/profile
Returns the authenticated user's complete XP profile, including:
level and XP progress to next level
current and longest streak
token balance
active XP booster (multiplier and end time)
today's combined XP (segments + quizzes)
last 10 XP transactions
active daily quests

Public profile#

GET /api/xp/public-profile/{username}
No authentication required. Returns public-safe data only (no email, tokens, or internal IDs). Useful for embedding learner cards in external dashboards or LMS integrations.

Streak status#

GET /api/xp/streak-status
Returns detailed streak information:
current_streak and longest_streak
freezes_available / freezes_used — streak saver inventory
last_activity — last date the user earned XP
days_since_activity
streak_at_risk — true if the streak will break unless the user learns today

Weekly activity#

GET /api/xp/weekly-activity
XP earned per day for the current week (Sunday–Saturday), resolved to the user's local timezone. Also includes freeze_covered_dates — dates where streak was preserved by a streak saver.
Use this to build a weekly progress widget.

Learning pulse (365-day heatmap)#

GET /api/xp/learning-pulse
Returns an entry for each of the past 365 days. Each day includes:
FieldDescription
xp_earnedXP earned that day
learning_timeLearning time in seconds
sessionsNumber of learning sessions
quizzesTotal quizzes attempted
quizzes_passedQuizzes passed
levelIntensity level for heatmap display (0–4)
Also returns totals: total_learning_time, total_sessions, total_quizzes, total_quizzes_passed.

Daily quests#

GET /api/xp/quests
Returns today's active daily quests with current progress and status (active, ready_to_complete, completed). Quests reset daily in the user's local timezone.

Learning time analytics#

GET /api/analytics/learning-time
Aggregated learning time with optional date range filter:
GET /api/analytics/learning-time?from=2026-01-01&to=2026-04-23
Query parameters:
ParameterTypeDescription
fromdateStart date (inclusive), format YYYY-MM-DD. Omit for all-time.
todateEnd date (inclusive), format YYYY-MM-DD. Omit for all-time.
Response includes totalLearningTime (seconds), totalSessions, avgSessionLength, and a dailyBreakdown array.
Modified at 2026-04-23 02:03:01
Previous
Organizations
Next
Xentree English
Built with