Objectuve API Reference

Internal API documentation — access restricted

Objectuve API Reference

Objectuve API

The Objectuve API is a single GraphQL endpoint with real-time WebSocket subscriptions.

GraphQL endpoint: POST /graphql WebSocket: WS /cable


Authentication

Objectuve uses Clerk for authentication. Clerk issues RS256 JWTs verified via JWKS on the backend.

Include the Clerk session token in every authenticated request using the SessionToken header:

SessionToken: <clerk-jwt-token>

Obtain a token via Clerk.session.getToken() on the client.

Important: The header name is SessionToken (PascalCase). It is not Authorization or Bearer.

On first sign-in, call the syncUser mutation to create or sync the local user record. This returns firstSignIn: true for new users who need onboarding.


Key Features

  • User Management — Sync Clerk profiles, manage usernames, photos, and showcased achievements
  • Goal Tracking — Create goals with milestones, log progress events, track streaks and XP
  • Habit Check-ins — One-tap daily check-ins with streak tracking and freeze tokens
  • Communities — Create and join interest groups, share goals, post updates, view feeds
  • Mood Logging — Daily check-ins (amazing / happy / calm / meh / tired / low) with optional goal linkage
  • Coach Features — Generate milestones, refine descriptions, request advice, and receive personalized insights
  • Gamification — XP, levels, ranks (Novice Explorer → Legendary Hero), badges (Common / Rare / Epic / Legendary)
  • Real-time — Subscribe to live notification and action updates via WebSocket (ActionCable)

ID Convention

All record IDs exposed by this API are public_id values — URL-safe base64 tokens. Internal integer IDs are never returned. Use public_id values for all lookups and references.


API Endpoints
# Production:
https://api.objectuve.com/graphql
# Staging:
https://staging.api.objectuve.com/graphql
# Local Development:
http://localhost:3000/graphql
Version

1.0.0

Queries

adminStats

Description

Returns platform-wide statistics for the admin dashboard. Admin only.

Response

Returns an AdminStats

Arguments
Name Description
daysBack - Int Number of days to look back for time-series metrics. Defaults to 90. Default = 90

Example

Query
query adminStats($daysBack: Int) {
  adminStats(daysBack: $daysBack) {
    completedGoals
    goalCategories {
      ...CategoryStatsFragment
    }
    goalsLast7Days
    growthData {
      ...GrowthDataPointFragment
    }
    publicGoals
    recentActivity {
      ...ActivityItemFragment
    }
    totalEncouragements
    totalEvents
    totalGoals
    totalMilestones
    totalUpdates
    totalUsers
    usersLast30Days
    usersLast7Days
  }
}
Variables
{"daysBack": 90}
Response
{
  "data": {
    "adminStats": {
      "completedGoals": 987,
      "goalCategories": [CategoryStats],
      "goalsLast7Days": 987,
      "growthData": [GrowthDataPoint],
      "publicGoals": 123,
      "recentActivity": [ActivityItem],
      "totalEncouragements": 987,
      "totalEvents": 987,
      "totalGoals": 123,
      "totalMilestones": 987,
      "totalUpdates": 123,
      "totalUsers": 987,
      "usersLast30Days": 123,
      "usersLast7Days": 123
    }
  }
}

allyActivityFeed

Description

Returns recent progress events from the current user's accepted allies.

Response

Returns [AllyActivity!]

Arguments
Name Description
limit - Int Maximum number of events to return. Defaults to 10.
userId - ID! public_id of the user whose ally feed to retrieve.

Example

Query
query allyActivityFeed(
  $limit: Int,
  $userId: ID!
) {
  allyActivityFeed(
    limit: $limit,
    userId: $userId
  ) {
    action
    allyId
    allyName
    allyPhoto
    communityId
    communityName
    id
    target
    timestamp
  }
}
Variables
{"limit": 123, "userId": "4"}
Response
{
  "data": {
    "allyActivityFeed": [
      {
        "action": "xyz789",
        "allyId": 4,
        "allyName": "abc123",
        "allyPhoto": "abc123",
        "communityId": "4",
        "communityName": "abc123",
        "id": 4,
        "target": "abc123",
        "timestamp": "xyz789"
      }
    ]
  }
}

authzCheck

Description

Checks whether the current user has a specific permission (e.g. admin).

Response

Returns a Result

Arguments
Name Description
concern - String! Permission name to check (e.g. "admin").
id - ID! public_id of the user to check authorization for.

Example

Query
query authzCheck(
  $concern: String!,
  $id: ID!
) {
  authzCheck(
    concern: $concern,
    id: $id
  ) {
    success
  }
}
Variables
{
  "concern": "abc123",
  "id": "4"
}
Response
{"data": {"authzCheck": {"success": true}}}

badgeStats

Description

Returns the unlock percentage for each badge across all users. Cached for 1 hour.

Response

Returns [BadgeStat!]

Example

Query
query badgeStats {
  badgeStats {
    badgeKey
    percentage
  }
}
Response
{
  "data": {
    "badgeStats": [
      {
        "badgeKey": "xyz789",
        "percentage": 123.45
      }
    ]
  }
}

communities

Description

Lists communities, optionally filtered by user membership or goal category.

Response

Returns [Community!]

Arguments
Name Description
goalCategoryIds - [ID!] Array of goal category IDs to filter communities by.
userId - ID public_id of a user to return only communities they are a member of.

Example

Query
query communities(
  $goalCategoryIds: [ID!],
  $userId: ID
) {
  communities(
    goalCategoryIds: $goalCategoryIds,
    userId: $userId
  ) {
    activeMembers
    badges {
      ...CommunityBadgesFragment
    }
    category
    coverImage
    createdAt
    createdAtTime
    description
    feedItems {
      ...CommunityFeedItemFragment
    }
    goalCategory {
      ...GoalCategoryFragment
    }
    goals {
      ...GoalFragment
    }
    growthRate
    guidelines
    healthScore
    imageUrl
    isFeatured
    isVerified
    members {
      ...CommunityMemberFragment
    }
    name
    privacy
    private
    publicId
    totalGoals
    updatedAtTime
  }
}
Variables
{
  "goalCategoryIds": ["4"],
  "userId": "4"
}
Response
{
  "data": {
    "communities": [
      {
        "activeMembers": 987,
        "badges": CommunityBadges,
        "category": "xyz789",
        "coverImage": "abc123",
        "createdAt": ISO8601DateTime,
        "createdAtTime": "xyz789",
        "description": "xyz789",
        "feedItems": [CommunityFeedItem],
        "goalCategory": GoalCategory,
        "goals": [Goal],
        "growthRate": 987.65,
        "guidelines": "abc123",
        "healthScore": 987,
        "imageUrl": "abc123",
        "isFeatured": true,
        "isVerified": false,
        "members": [CommunityMember],
        "name": "xyz789",
        "privacy": "xyz789",
        "private": true,
        "publicId": "4",
        "totalGoals": 123,
        "updatedAtTime": "xyz789"
      }
    ]
  }
}

community

Description

Fetches a community by its public_id.

Response

Returns a Community

Arguments
Name Description
id - ID! public_id of the community to retrieve.

Example

Query
query community($id: ID!) {
  community(id: $id) {
    activeMembers
    badges {
      ...CommunityBadgesFragment
    }
    category
    coverImage
    createdAt
    createdAtTime
    description
    feedItems {
      ...CommunityFeedItemFragment
    }
    goalCategory {
      ...GoalCategoryFragment
    }
    goals {
      ...GoalFragment
    }
    growthRate
    guidelines
    healthScore
    imageUrl
    isFeatured
    isVerified
    members {
      ...CommunityMemberFragment
    }
    name
    privacy
    private
    publicId
    totalGoals
    updatedAtTime
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "community": {
      "activeMembers": 987,
      "badges": CommunityBadges,
      "category": "abc123",
      "coverImage": "abc123",
      "createdAt": ISO8601DateTime,
      "createdAtTime": "xyz789",
      "description": "abc123",
      "feedItems": [CommunityFeedItem],
      "goalCategory": GoalCategory,
      "goals": [Goal],
      "growthRate": 987.65,
      "guidelines": "xyz789",
      "healthScore": 987,
      "imageUrl": "abc123",
      "isFeatured": false,
      "isVerified": true,
      "members": [CommunityMember],
      "name": "abc123",
      "privacy": "xyz789",
      "private": false,
      "publicId": "4",
      "totalGoals": 123,
      "updatedAtTime": "xyz789"
    }
  }
}

communityBadges

Description

Returns the achievement badges earned by a community.

Response

Returns a CommunityBadges

Arguments
Name Description
communityId - ID! public_id of the community.

Example

Query
query communityBadges($communityId: ID!) {
  communityBadges(communityId: $communityId) {
    allyMagnet
    club1k
    earlySupporter
    featured
    perfectMonth
    streak100
    topActive
    topContributor
    verified
    wins500
  }
}
Variables
{"communityId": 4}
Response
{
  "data": {
    "communityBadges": {
      "allyMagnet": true,
      "club1k": true,
      "earlySupporter": true,
      "featured": true,
      "perfectMonth": false,
      "streak100": false,
      "topActive": false,
      "topContributor": true,
      "verified": true,
      "wins500": true
    }
  }
}

communityFeed

Description

Returns the paginated post feed for a community, ordered by most recent.

Response

Returns [CommunityPost!]

Arguments
Name Description
communityId - ID! public_id of the community whose feed to retrieve.
limit - Int Number of posts to return per page. Defaults to 20.
offset - Int Number of posts to skip for pagination. Defaults to 0.

Example

Query
query communityFeed(
  $communityId: ID!,
  $limit: Int,
  $offset: Int
) {
  communityFeed(
    communityId: $communityId,
    limit: $limit,
    offset: $offset
  ) {
    comments {
      ...PostCommentFragment
    }
    communityId
    content
    goalId
    goalName
    id
    likes
    timestamp
    type
    userId
    userName
    userPhoto
  }
}
Variables
{
  "communityId": "4",
  "limit": 987,
  "offset": 123
}
Response
{
  "data": {
    "communityFeed": [
      {
        "comments": [PostComment],
        "communityId": 4,
        "content": "xyz789",
        "goalId": "4",
        "goalName": "xyz789",
        "id": "4",
        "likes": 123,
        "timestamp": "xyz789",
        "type": "xyz789",
        "userId": 4,
        "userName": "abc123",
        "userPhoto": "xyz789"
      }
    ]
  }
}

communityGoals

Description

Returns all goals shared into a community.

Response

Returns [Goal!]

Arguments
Name Description
communityId - ID! public_id of the community.

Example

Query
query communityGoals($communityId: ID!) {
  communityGoals(communityId: $communityId) {
    allEvents {
      ...GoalEventFragment
    }
    category {
      ...GoalCategoryFragment
    }
    checkedInToday
    comments {
      ...GoalEventCommentFragment
    }
    completed
    completedAtTime
    completionRate
    content
    createdAtTime
    currentAmount
    daysToUpdate
    dueToday
    encouragements {
      ...GoalEventEncouragementFragment
    }
    events {
      ...GoalEventFragment
    }
    habitCompletions {
      ...HabitCompletionFragment
    }
    habitStreak
    imageUrl
    kind {
      ...GoalTypeFragment
    }
    lastCheckedInDate
    longestHabitStreak
    milestones {
      ...GoalFragment
    }
    name
    parentGoalId
    private
    publicId
    recurrenceDays
    recurrenceInterval
    recurrenceType
    streakFreezesAvailable
    streakFreezesUsed
    targetAmount
    targetDateTime
    unit
    updatedAtTime
    user {
      ...UserFragment
    }
  }
}
Variables
{"communityId": 4}
Response
{
  "data": {
    "communityGoals": [
      {
        "allEvents": [GoalEvent],
        "category": GoalCategory,
        "checkedInToday": false,
        "comments": [GoalEventComment],
        "completed": true,
        "completedAtTime": "xyz789",
        "completionRate": 123.45,
        "content": "abc123",
        "createdAtTime": "xyz789",
        "currentAmount": 123.45,
        "daysToUpdate": 123,
        "dueToday": false,
        "encouragements": [GoalEventEncouragement],
        "events": [GoalEvent],
        "habitCompletions": [HabitCompletion],
        "habitStreak": 123,
        "imageUrl": "abc123",
        "kind": GoalType,
        "lastCheckedInDate": "abc123",
        "longestHabitStreak": 123,
        "milestones": [Goal],
        "name": "abc123",
        "parentGoalId": "xyz789",
        "private": true,
        "publicId": "4",
        "recurrenceDays": ["xyz789"],
        "recurrenceInterval": 123,
        "recurrenceType": "abc123",
        "streakFreezesAvailable": 123,
        "streakFreezesUsed": 123,
        "targetAmount": 987.65,
        "targetDateTime": "xyz789",
        "unit": "xyz789",
        "updatedAtTime": "abc123",
        "user": User
      }
    ]
  }
}

communityInsights

Description

Returns community engagement insights and recommendations for a user.

Response

Returns a CommunityInsights

Arguments
Name Description
userId - ID! public_id of the user to generate insights for.

Example

Query
query communityInsights($userId: ID!) {
  communityInsights(userId: $userId) {
    achievementsUnlocked
    communitiesJoined
    postsThisWeek
    suggestedCommunities {
      ...SuggestedCommunityFragment
    }
    totalEngagement
    trendingCommunities {
      ...TrendingCommunityFragment
    }
    upcomingEvents {
      ...CommunityEventFragment
    }
    yourActivity {
      ...UserActivityFragment
    }
  }
}
Variables
{"userId": 4}
Response
{
  "data": {
    "communityInsights": {
      "achievementsUnlocked": 987,
      "communitiesJoined": 123,
      "postsThisWeek": 123,
      "suggestedCommunities": [SuggestedCommunity],
      "totalEngagement": 987,
      "trendingCommunities": [TrendingCommunity],
      "upcomingEvents": [CommunityEvent],
      "yourActivity": [UserActivity]
    }
  }
}

communityMemberCheck

Description

Checks whether a given user is a member of a community.

Response

Returns a Result

Arguments
Name Description
cid - ID! public_id of the community to check membership for.
id - ID public_id of the user to check. Defaults to the authenticated user.

Example

Query
query communityMemberCheck(
  $cid: ID!,
  $id: ID
) {
  communityMemberCheck(
    cid: $cid,
    id: $id
  ) {
    success
  }
}
Variables
{
  "cid": "4",
  "id": "4"
}
Response
{"data": {"communityMemberCheck": {"success": true}}}

communityMembers

Description

Returns all members of a community.

Response

Returns [CommunityMember!]

Arguments
Name Description
communityId - ID! public_id of the community.

Example

Query
query communityMembers($communityId: ID!) {
  communityMembers(communityId: $communityId) {
    createdAtTime
    goalsCompleted
    helpfulCount
    id
    joinedDate
    points
    postsCount
    rank
    role
    updatedAtTime
    user {
      ...UserFragment
    }
  }
}
Variables
{"communityId": "4"}
Response
{
  "data": {
    "communityMembers": [
      {
        "createdAtTime": "abc123",
        "goalsCompleted": 123,
        "helpfulCount": 123,
        "id": "4",
        "joinedDate": "abc123",
        "points": 987,
        "postsCount": 123,
        "rank": 123,
        "role": "xyz789",
        "updatedAtTime": "abc123",
        "user": User
      }
    ]
  }
}

communitySuggestions

Description

Returns communities suggested for a user based on their goals and interests.

Response

Returns [CommunitySuggestion!]

Arguments
Name Description
userId - ID public_id of the user to generate suggestions for. Defaults to the current user.

Example

Query
query communitySuggestions($userId: ID) {
  communitySuggestions(userId: $userId) {
    content
    goalCategory {
      ...GoalCategoryFragment
    }
    goalKind {
      ...GoalTypeFragment
    }
    id
  }
}
Variables
{"userId": 4}
Response
{
  "data": {
    "communitySuggestions": [
      {
        "content": "abc123",
        "goalCategory": GoalCategory,
        "goalKind": GoalType,
        "id": 4
      }
    ]
  }
}

goal

Description

Fetches a private goal owned by the authenticated user.

Response

Returns a Goal

Arguments
Name Description
id - ID! public_id of the goal to retrieve.

Example

Query
query goal($id: ID!) {
  goal(id: $id) {
    allEvents {
      ...GoalEventFragment
    }
    category {
      ...GoalCategoryFragment
    }
    checkedInToday
    comments {
      ...GoalEventCommentFragment
    }
    completed
    completedAtTime
    completionRate
    content
    createdAtTime
    currentAmount
    daysToUpdate
    dueToday
    encouragements {
      ...GoalEventEncouragementFragment
    }
    events {
      ...GoalEventFragment
    }
    habitCompletions {
      ...HabitCompletionFragment
    }
    habitStreak
    imageUrl
    kind {
      ...GoalTypeFragment
    }
    lastCheckedInDate
    longestHabitStreak
    milestones {
      ...GoalFragment
    }
    name
    parentGoalId
    private
    publicId
    recurrenceDays
    recurrenceInterval
    recurrenceType
    streakFreezesAvailable
    streakFreezesUsed
    targetAmount
    targetDateTime
    unit
    updatedAtTime
    user {
      ...UserFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "goal": {
      "allEvents": [GoalEvent],
      "category": GoalCategory,
      "checkedInToday": false,
      "comments": [GoalEventComment],
      "completed": false,
      "completedAtTime": "xyz789",
      "completionRate": 123.45,
      "content": "xyz789",
      "createdAtTime": "xyz789",
      "currentAmount": 987.65,
      "daysToUpdate": 987,
      "dueToday": true,
      "encouragements": [GoalEventEncouragement],
      "events": [GoalEvent],
      "habitCompletions": [HabitCompletion],
      "habitStreak": 987,
      "imageUrl": "xyz789",
      "kind": GoalType,
      "lastCheckedInDate": "abc123",
      "longestHabitStreak": 123,
      "milestones": [Goal],
      "name": "xyz789",
      "parentGoalId": "xyz789",
      "private": true,
      "publicId": 4,
      "recurrenceDays": ["abc123"],
      "recurrenceInterval": 987,
      "recurrenceType": "abc123",
      "streakFreezesAvailable": 987,
      "streakFreezesUsed": 987,
      "targetAmount": 987.65,
      "targetDateTime": "xyz789",
      "unit": "abc123",
      "updatedAtTime": "xyz789",
      "user": User
    }
  }
}

goalCategories

Description

Returns all available goal categories (fitness, learning, personal, etc.).

Response

Returns [GoalCategory!]

Example

Query
query goalCategories {
  goalCategories {
    id
    name
  }
}
Response
{
  "data": {
    "goalCategories": [
      {"id": 4, "name": "abc123"}
    ]
  }
}

goalEvent

Description

Fetches a single goal progress event by public_id.

Response

Returns a GoalEvent

Arguments
Name Description
id - ID! public_id of the goal event to retrieve.

Example

Query
query goalEvent($id: ID!) {
  goalEvent(id: $id) {
    comments {
      ...GoalEventCommentFragment
    }
    content
    createdAtTime
    encouragements {
      ...GoalEventEncouragementFragment
    }
    goal {
      ...GoalFragment
    }
    id
    media {
      ...GoalMediaFragment
    }
    milestoneName
    mood
    publicId
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "goalEvent": {
      "comments": [GoalEventComment],
      "content": "xyz789",
      "createdAtTime": "abc123",
      "encouragements": [GoalEventEncouragement],
      "goal": Goal,
      "id": 4,
      "media": GoalMedia,
      "milestoneName": "abc123",
      "mood": "abc123",
      "publicId": 4
    }
  }
}

goalKinds

Description

Returns all available goal types/kinds (habit, milestone, quantity, etc.).

Response

Returns [GoalType!]

Example

Query
query goalKinds {
  goalKinds {
    description
    displayNumber
    id
    name
  }
}
Response
{
  "data": {
    "goalKinds": [
      {
        "description": "xyz789",
        "displayNumber": 123,
        "id": 4,
        "name": "xyz789"
      }
    ]
  }
}

goalProgressData

Description

Returns progress visualization data for a goal.

Response

Returns a GoalProgressData

Arguments
Name Description
id - ID! public_id of the goal to get progress data for.
lookbackDays - Int Number of days to look back. Defaults to 90.
period - String Grouping period: day, week, or month. Defaults to week.

Example

Query
query goalProgressData(
  $id: ID!,
  $lookbackDays: Int,
  $period: String
) {
  goalProgressData(
    id: $id,
    lookbackDays: $lookbackDays,
    period: $period
  ) {
    averagePerWeek
    dataPoints {
      ...ProgressDataPointFragment
    }
    pace
    streakData {
      ...ProgressDataPointFragment
    }
    totalEvents
  }
}
Variables
{
  "id": 4,
  "lookbackDays": 123,
  "period": "abc123"
}
Response
{
  "data": {
    "goalProgressData": {
      "averagePerWeek": 987.65,
      "dataPoints": [ProgressDataPoint],
      "pace": "xyz789",
      "streakData": [ProgressDataPoint],
      "totalEvents": 987
    }
  }
}

goals

Description

Lists top-level goals (no parent) for the authenticated user or a specified user (admin only).

Response

Returns [Goal!]

Arguments
Name Description
userId - ID public_id of the user whose goals to retrieve. Omit to use the current user.

Example

Query
query goals($userId: ID) {
  goals(userId: $userId) {
    allEvents {
      ...GoalEventFragment
    }
    category {
      ...GoalCategoryFragment
    }
    checkedInToday
    comments {
      ...GoalEventCommentFragment
    }
    completed
    completedAtTime
    completionRate
    content
    createdAtTime
    currentAmount
    daysToUpdate
    dueToday
    encouragements {
      ...GoalEventEncouragementFragment
    }
    events {
      ...GoalEventFragment
    }
    habitCompletions {
      ...HabitCompletionFragment
    }
    habitStreak
    imageUrl
    kind {
      ...GoalTypeFragment
    }
    lastCheckedInDate
    longestHabitStreak
    milestones {
      ...GoalFragment
    }
    name
    parentGoalId
    private
    publicId
    recurrenceDays
    recurrenceInterval
    recurrenceType
    streakFreezesAvailable
    streakFreezesUsed
    targetAmount
    targetDateTime
    unit
    updatedAtTime
    user {
      ...UserFragment
    }
  }
}
Variables
{"userId": "4"}
Response
{
  "data": {
    "goals": [
      {
        "allEvents": [GoalEvent],
        "category": GoalCategory,
        "checkedInToday": true,
        "comments": [GoalEventComment],
        "completed": false,
        "completedAtTime": "abc123",
        "completionRate": 123.45,
        "content": "xyz789",
        "createdAtTime": "xyz789",
        "currentAmount": 987.65,
        "daysToUpdate": 123,
        "dueToday": true,
        "encouragements": [GoalEventEncouragement],
        "events": [GoalEvent],
        "habitCompletions": [HabitCompletion],
        "habitStreak": 123,
        "imageUrl": "xyz789",
        "kind": GoalType,
        "lastCheckedInDate": "abc123",
        "longestHabitStreak": 123,
        "milestones": [Goal],
        "name": "abc123",
        "parentGoalId": "xyz789",
        "private": false,
        "publicId": 4,
        "recurrenceDays": ["abc123"],
        "recurrenceInterval": 123,
        "recurrenceType": "abc123",
        "streakFreezesAvailable": 123,
        "streakFreezesUsed": 987,
        "targetAmount": 987.65,
        "targetDateTime": "abc123",
        "unit": "xyz789",
        "updatedAtTime": "abc123",
        "user": User
      }
    ]
  }
}

isFollowingGoal

Description

Checks whether the authenticated user is currently following a goal.

Response

Returns a Result

Arguments
Name Description
id - ID! public_id of the goal to check.

Example

Query
query isFollowingGoal($id: ID!) {
  isFollowingGoal(id: $id) {
    success
  }
}
Variables
{"id": "4"}
Response
{"data": {"isFollowingGoal": {"success": true}}}

publicGoal

Description

Fetches a publicly visible goal by public_id. Returns an error if the goal is private.

Response

Returns a Goal

Arguments
Name Description
id - ID! public_id of the goal to retrieve.

Example

Query
query publicGoal($id: ID!) {
  publicGoal(id: $id) {
    allEvents {
      ...GoalEventFragment
    }
    category {
      ...GoalCategoryFragment
    }
    checkedInToday
    comments {
      ...GoalEventCommentFragment
    }
    completed
    completedAtTime
    completionRate
    content
    createdAtTime
    currentAmount
    daysToUpdate
    dueToday
    encouragements {
      ...GoalEventEncouragementFragment
    }
    events {
      ...GoalEventFragment
    }
    habitCompletions {
      ...HabitCompletionFragment
    }
    habitStreak
    imageUrl
    kind {
      ...GoalTypeFragment
    }
    lastCheckedInDate
    longestHabitStreak
    milestones {
      ...GoalFragment
    }
    name
    parentGoalId
    private
    publicId
    recurrenceDays
    recurrenceInterval
    recurrenceType
    streakFreezesAvailable
    streakFreezesUsed
    targetAmount
    targetDateTime
    unit
    updatedAtTime
    user {
      ...UserFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "publicGoal": {
      "allEvents": [GoalEvent],
      "category": GoalCategory,
      "checkedInToday": false,
      "comments": [GoalEventComment],
      "completed": false,
      "completedAtTime": "abc123",
      "completionRate": 987.65,
      "content": "abc123",
      "createdAtTime": "abc123",
      "currentAmount": 123.45,
      "daysToUpdate": 987,
      "dueToday": false,
      "encouragements": [GoalEventEncouragement],
      "events": [GoalEvent],
      "habitCompletions": [HabitCompletion],
      "habitStreak": 123,
      "imageUrl": "abc123",
      "kind": GoalType,
      "lastCheckedInDate": "xyz789",
      "longestHabitStreak": 987,
      "milestones": [Goal],
      "name": "abc123",
      "parentGoalId": "xyz789",
      "private": false,
      "publicId": 4,
      "recurrenceDays": ["xyz789"],
      "recurrenceInterval": 123,
      "recurrenceType": "abc123",
      "streakFreezesAvailable": 123,
      "streakFreezesUsed": 123,
      "targetAmount": 123.45,
      "targetDateTime": "abc123",
      "unit": "xyz789",
      "updatedAtTime": "xyz789",
      "user": User
    }
  }
}

recommendedCommunities

Description

Returns communities recommended for a user based on their goal interests.

Response

Returns [SuggestedCommunity!]

Arguments
Name Description
limit - Int Maximum number of recommendations to return. Defaults to 5.
userId - ID! public_id of the user to generate recommendations for.

Example

Query
query recommendedCommunities(
  $limit: Int,
  $userId: ID!
) {
  recommendedCommunities(
    limit: $limit,
    userId: $userId
  ) {
    activeMembers
    category
    coverImage
    description
    isRecommended
    matchScore
    members {
      ...UserFragment
    }
    mutualAllies
    name
    publicId
  }
}
Variables
{"limit": 123, "userId": 4}
Response
{
  "data": {
    "recommendedCommunities": [
      {
        "activeMembers": 123,
        "category": "abc123",
        "coverImage": "xyz789",
        "description": "xyz789",
        "isRecommended": true,
        "matchScore": 987,
        "members": [User],
        "mutualAllies": 987,
        "name": "xyz789",
        "publicId": "4"
      }
    ]
  }
}

trendingCommunities

Description

Returns communities with the highest recent growth or activity.

Response

Returns [TrendingCommunity!]

Arguments
Name Description
limit - Int Maximum number of trending communities to return. Defaults to 5.

Example

Query
query trendingCommunities($limit: Int) {
  trendingCommunities(limit: $limit) {
    activeMembers
    category
    coverImage
    description
    growthRate
    isTrending
    name
    publicId
    totalGoals
    totalMembers
  }
}
Variables
{"limit": 123}
Response
{
  "data": {
    "trendingCommunities": [
      {
        "activeMembers": 987,
        "category": "abc123",
        "coverImage": "abc123",
        "description": "abc123",
        "growthRate": 987.65,
        "isTrending": true,
        "name": "xyz789",
        "publicId": "4",
        "totalGoals": 987,
        "totalMembers": 987
      }
    ]
  }
}

user

Description

Fetches a user by public_id. Requires authentication; admins can fetch any user.

Response

Returns a User

Arguments
Name Description
id - ID! public_id of the user to retrieve.

Example

Query
query user($id: ID!) {
  user(id: $id) {
    actions {
      ...UserActionFragment
    }
    admin
    createdAtTime
    details {
      ...UserDetailFragment
    }
    email
    emailVerified
    feedItems {
      ...UserFeedItemFragment
    }
    firstName
    goals {
      ...GoalFragment
    }
    lastName
    level
    longestStreak
    nextLevelThreshold
    notifications {
      ...UserNotificationFragment
    }
    photo {
      ...UserPhotoFragment
    }
    progressToNextLevel
    publicId
    showcasedAchievements
    signInDates
    stats {
      ...UserStatsFragment
    }
    streak
    updatedAtTime
    username
    xp
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "user": {
      "actions": [UserAction],
      "admin": true,
      "createdAtTime": "xyz789",
      "details": UserDetail,
      "email": "xyz789",
      "emailVerified": true,
      "feedItems": [UserFeedItem],
      "firstName": "abc123",
      "goals": [Goal],
      "lastName": "xyz789",
      "level": 123,
      "longestStreak": 987,
      "nextLevelThreshold": 123,
      "notifications": [UserNotification],
      "photo": UserPhoto,
      "progressToNextLevel": 123.45,
      "publicId": "4",
      "showcasedAchievements": ["abc123"],
      "signInDates": ["abc123"],
      "stats": UserStats,
      "streak": 987,
      "updatedAtTime": "abc123",
      "username": "abc123",
      "xp": 123
    }
  }
}

userAllies

Description

Returns a user's accepted ally (friend) connections.

Response

Returns [UserAlly!]

Arguments
Name Description
userId - ID! public_id of the user whose allies to retrieve.

Example

Query
query userAllies($userId: ID!) {
  userAllies(userId: $userId) {
    firstName
    id
    lastName
    mutualCount
    photo {
      ...UserPhotoFragment
    }
    publicId
    username
  }
}
Variables
{"userId": 4}
Response
{
  "data": {
    "userAllies": [
      {
        "firstName": "xyz789",
        "id": 4,
        "lastName": "xyz789",
        "mutualCount": 123,
        "photo": UserPhoto,
        "publicId": "xyz789",
        "username": "abc123"
      }
    ]
  }
}

users

Description

Returns all users. Admin only.

Response

Returns [User!]

Example

Query
query users {
  users {
    actions {
      ...UserActionFragment
    }
    admin
    createdAtTime
    details {
      ...UserDetailFragment
    }
    email
    emailVerified
    feedItems {
      ...UserFeedItemFragment
    }
    firstName
    goals {
      ...GoalFragment
    }
    lastName
    level
    longestStreak
    nextLevelThreshold
    notifications {
      ...UserNotificationFragment
    }
    photo {
      ...UserPhotoFragment
    }
    progressToNextLevel
    publicId
    showcasedAchievements
    signInDates
    stats {
      ...UserStatsFragment
    }
    streak
    updatedAtTime
    username
    xp
  }
}
Response
{
  "data": {
    "users": [
      {
        "actions": [UserAction],
        "admin": true,
        "createdAtTime": "abc123",
        "details": UserDetail,
        "email": "abc123",
        "emailVerified": false,
        "feedItems": [UserFeedItem],
        "firstName": "abc123",
        "goals": [Goal],
        "lastName": "abc123",
        "level": 123,
        "longestStreak": 123,
        "nextLevelThreshold": 987,
        "notifications": [UserNotification],
        "photo": UserPhoto,
        "progressToNextLevel": 987.65,
        "publicId": 4,
        "showcasedAchievements": ["abc123"],
        "signInDates": ["xyz789"],
        "stats": UserStats,
        "streak": 123,
        "updatedAtTime": "abc123",
        "username": "xyz789",
        "xp": 987
      }
    ]
  }
}

wordCloud

Description

Generates word frequency data from a model column for admin analytics.

Response

Returns [WordCloud!]

Arguments
Name Description
column - String! Column name to analyze for word frequency (e.g. "name").
model - String! ActiveRecord model name to query (e.g. "Goal").

Example

Query
query wordCloud(
  $column: String!,
  $model: String!
) {
  wordCloud(
    column: $column,
    model: $model
  ) {
    name
    value
  }
}
Variables
{
  "column": "abc123",
  "model": "xyz789"
}
Response
{
  "data": {
    "wordCloud": [
      {"name": "abc123", "value": 987}
    ]
  }
}

Mutations

acknowledgeAction

Description

Marks a gamification action as acknowledged, clearing it from the user action queue.

Response

Returns an AcknowledgeActionPayload!

Arguments
Name Description
id - ID! The public ID of the user action to acknowledge.

Example

Query
mutation acknowledgeAction($id: ID!) {
  acknowledgeAction(id: $id) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "acknowledgeAction": {
      "errors": ["xyz789"],
      "result": Result
    }
  }
}

acknowledgeNotification

Description

Marks a notification as acknowledged (read/dismissed) for the authenticated user.

Response

Returns an AcknowledgeNotificationPayload!

Arguments
Name Description
id - ID! The public ID of the notification to acknowledge.

Example

Query
mutation acknowledgeNotification($id: ID!) {
  acknowledgeNotification(id: $id) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "acknowledgeNotification": {
      "errors": ["xyz789"],
      "result": Result
    }
  }
}

addCommunitySuggestion

Description

Submits a suggestion for a new community topic or interest area.

Response

Returns an AddCommunitySuggestionPayload!

Arguments
Name Description
content - String! A description of the suggested community topic or interest area.
goalCategoryId - ID Optional public ID of a goal category to associate with the suggestion.
goalTypeId - ID Optional public ID of a goal type that best represents the suggested community.

Example

Query
mutation addCommunitySuggestion(
  $content: String!,
  $goalCategoryId: ID,
  $goalTypeId: ID
) {
  addCommunitySuggestion(
    content: $content,
    goalCategoryId: $goalCategoryId,
    goalTypeId: $goalTypeId
  ) {
    communitySuggestion {
      ...CommunitySuggestionFragment
    }
    errors
  }
}
Variables
{
  "content": "abc123",
  "goalCategoryId": 4,
  "goalTypeId": "4"
}
Response
{
  "data": {
    "addCommunitySuggestion": {
      "communitySuggestion": CommunitySuggestion,
      "errors": ["xyz789"]
    }
  }
}

addGoal

Description

Creates a new goal for the authenticated user.

Response

Returns an AddGoalPayload!

Arguments
Name Description
content - String Optional longer description or motivation note.
daysToUpdate - Int How frequently in days the user plans to log progress.
goalCategoryId - ID ID of the goal category (fitness, learning, etc.). Fetch options via goalCategories query.
goalTypeId - ID ID of the goal type (habit, milestone, quantity). Fetch options via goalKinds query.
imageUrl - String URL of a cover image for the goal.
name - String! Display name of the goal (e.g. "Run a 5K").
parentGoalId - ID public_id of a parent goal to nest this under as a milestone.
private - Boolean When true, the goal is visible only to the owner. Defaults to false.
recurrenceDays - [String!] Days for weekly/custom_days recurrence (e.g. ["mon", "wed", "fri"]).
recurrenceInterval - Int Number of days between check-ins for interval recurrence.
recurrenceType - String Recurrence pattern for habits: daily, weekly, custom_days, or interval.
targetDate - String ISO date string for the target completion date (e.g. "2026-12-31").
userId - ID! public_id of the user creating the goal. Must match the authenticated user.

Example

Query
mutation addGoal(
  $content: String,
  $daysToUpdate: Int,
  $goalCategoryId: ID,
  $goalTypeId: ID,
  $imageUrl: String,
  $name: String!,
  $parentGoalId: ID,
  $private: Boolean,
  $recurrenceDays: [String!],
  $recurrenceInterval: Int,
  $recurrenceType: String,
  $targetDate: String,
  $userId: ID!
) {
  addGoal(
    content: $content,
    daysToUpdate: $daysToUpdate,
    goalCategoryId: $goalCategoryId,
    goalTypeId: $goalTypeId,
    imageUrl: $imageUrl,
    name: $name,
    parentGoalId: $parentGoalId,
    private: $private,
    recurrenceDays: $recurrenceDays,
    recurrenceInterval: $recurrenceInterval,
    recurrenceType: $recurrenceType,
    targetDate: $targetDate,
    userId: $userId
  ) {
    errors
    goal {
      ...GoalFragment
    }
  }
}
Variables
{
  "content": "abc123",
  "daysToUpdate": 987,
  "goalCategoryId": 4,
  "goalTypeId": "4",
  "imageUrl": "xyz789",
  "name": "abc123",
  "parentGoalId": "4",
  "private": true,
  "recurrenceDays": ["abc123"],
  "recurrenceInterval": 123,
  "recurrenceType": "abc123",
  "targetDate": "xyz789",
  "userId": 4
}
Response
{
  "data": {
    "addGoal": {
      "errors": ["abc123"],
      "goal": Goal
    }
  }
}

addGoalEvent

Description

Logs a progress event for a goal. Each event is immutable once created.

Response

Returns an AddGoalEventPayload!

Arguments
Name Description
content - String! The progress update text describing what was accomplished.
goalId - ID! public_id of the goal this progress event belongs to.
imageUrl - String Optional URL of an image to attach to the progress event.
mood - String Optional mood at the time of logging (e.g. amazing, happy, calm, meh, tired, low).

Example

Query
mutation addGoalEvent(
  $content: String!,
  $goalId: ID!,
  $imageUrl: String,
  $mood: String
) {
  addGoalEvent(
    content: $content,
    goalId: $goalId,
    imageUrl: $imageUrl,
    mood: $mood
  ) {
    errors
    goalEvent {
      ...GoalEventFragment
    }
  }
}
Variables
{
  "content": "xyz789",
  "goalId": 4,
  "imageUrl": "xyz789",
  "mood": "xyz789"
}
Response
{
  "data": {
    "addGoalEvent": {
      "errors": ["abc123"],
      "goalEvent": GoalEvent
    }
  }
}

addGoalEventComment

Description

Adds a comment to a goal progress event.

Response

Returns an AddGoalEventCommentPayload!

Arguments
Name Description
content - String The text body of the comment.
goalEventId - ID! public_id of the goal event to comment on.

Example

Query
mutation addGoalEventComment(
  $content: String,
  $goalEventId: ID!
) {
  addGoalEventComment(
    content: $content,
    goalEventId: $goalEventId
  ) {
    errors
    goalEventComment {
      ...GoalEventCommentFragment
    }
  }
}
Variables
{
  "content": "abc123",
  "goalEventId": "4"
}
Response
{
  "data": {
    "addGoalEventComment": {
      "errors": ["xyz789"],
      "goalEventComment": GoalEventComment
    }
  }
}

addGoalToCommunity

Description

Shares an existing goal into a community feed.

Response

Returns an AddGoalToCommunityPayload!

Arguments
Name Description
communityId - ID! public_id of the community to share the goal into.
goalId - ID! public_id of the goal to share into the community.

Example

Query
mutation addGoalToCommunity(
  $communityId: ID!,
  $goalId: ID!
) {
  addGoalToCommunity(
    communityId: $communityId,
    goalId: $goalId
  ) {
    communityGoal {
      ...CommunityGoalFragment
    }
    errors
  }
}
Variables
{"communityId": "4", "goalId": 4}
Response
{
  "data": {
    "addGoalToCommunity": {
      "communityGoal": CommunityGoal,
      "errors": ["xyz789"]
    }
  }
}

addMoodLog

Description

Records a mood check-in for the authenticated user. Mood options: amazing, happy, calm, meh, tired, low.

Response

Returns an AddMoodLogPayload!

Arguments
Name Description
goalId - ID Optional public ID of a goal to associate with this mood check-in.
mood - String! The mood value for this check-in. Accepted values: amazing, happy, calm, meh, tired, low.
note - String An optional free-text note accompanying the mood entry (max 300 characters).

Example

Query
mutation addMoodLog(
  $goalId: ID,
  $mood: String!,
  $note: String
) {
  addMoodLog(
    goalId: $goalId,
    mood: $mood,
    note: $note
  ) {
    errors
    moodLog {
      ...MoodLogFragment
    }
  }
}
Variables
{
  "goalId": "4",
  "mood": "abc123",
  "note": "xyz789"
}
Response
{
  "data": {
    "addMoodLog": {
      "errors": ["abc123"],
      "moodLog": MoodLog
    }
  }
}

checkInHabit

Description

Records a one-tap check-in for a habit goal.

Response

Returns a CheckInHabitPayload!

Arguments
Name Description
goalId - ID! public_id of the habit goal to check in.

Example

Query
mutation checkInHabit($goalId: ID!) {
  checkInHabit(goalId: $goalId) {
    errors
    goal {
      ...GoalFragment
    }
    goalEvent {
      ...GoalEventFragment
    }
  }
}
Variables
{"goalId": 4}
Response
{
  "data": {
    "checkInHabit": {
      "errors": ["xyz789"],
      "goal": Goal,
      "goalEvent": GoalEvent
    }
  }
}

checkValidUsername

Description

Checks whether a username is available and meets formatting requirements.

Response

Returns a CheckValidUsernamePayload!

Arguments
Name Description
username - String! The username to check for availability and format validity.

Example

Query
mutation checkValidUsername($username: String!) {
  checkValidUsername(username: $username) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{"username": "abc123"}
Response
{
  "data": {
    "checkValidUsername": {
      "errors": ["abc123"],
      "result": Result
    }
  }
}

createCommunity

Description

Creates a new community that users can join to share goals and support each other.

Response

Returns a CreateCommunityPayload!

Arguments
Name Description
category - String! The interest category that best represents this community (e.g. fitness, learning, wellness).
coverImageUrl - String Optional URL for the community cover or banner image.
description - String! A short description of the community purpose and focus.
guidelines - String Optional community rules or participation guidelines shown to members.
name - String! The display name of the community.
privacy - String! Visibility setting for the community. Accepted values: public or private.

Example

Query
mutation createCommunity(
  $category: String!,
  $coverImageUrl: String,
  $description: String!,
  $guidelines: String,
  $name: String!,
  $privacy: String!
) {
  createCommunity(
    category: $category,
    coverImageUrl: $coverImageUrl,
    description: $description,
    guidelines: $guidelines,
    name: $name,
    privacy: $privacy
  ) {
    community {
      ...CommunityFragment
    }
    errors
  }
}
Variables
{
  "category": "abc123",
  "coverImageUrl": "xyz789",
  "description": "xyz789",
  "guidelines": "abc123",
  "name": "abc123",
  "privacy": "abc123"
}
Response
{
  "data": {
    "createCommunity": {
      "community": Community,
      "errors": ["xyz789"]
    }
  }
}

createCommunityPost

Description

Creates a post in a community. Supports text updates and goal shares.

Response

Returns a CreateCommunityPostPayload!

Arguments
Name Description
communityId - ID! The public ID of the community in which to create the post.
content - String! The text body of the post.
type - String! The post type. Accepted values: update (text post) or goal_share (sharing a goal with the community).
userId - ID! The public ID of the user authoring the post.

Example

Query
mutation createCommunityPost(
  $communityId: ID!,
  $content: String!,
  $type: String!,
  $userId: ID!
) {
  createCommunityPost(
    communityId: $communityId,
    content: $content,
    type: $type,
    userId: $userId
  ) {
    errors
    post {
      ...CommunityPostFragment
    }
  }
}
Variables
{
  "communityId": "4",
  "content": "abc123",
  "type": "xyz789",
  "userId": "4"
}
Response
{
  "data": {
    "createCommunityPost": {
      "errors": ["xyz789"],
      "post": CommunityPost
    }
  }
}

deleteNotification

Description

Permanently deletes a notification record for the authenticated user.

Response

Returns a DeleteNotificationPayload!

Arguments
Name Description
id - ID! The public ID of the notification to delete.

Example

Query
mutation deleteNotification($id: ID!) {
  deleteNotification(id: $id) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteNotification": {
      "errors": ["abc123"],
      "result": Result
    }
  }
}

followCommunity

Description

Follows a community to receive updates without becoming a full member.

Response

Returns a FollowCommunityPayload!

Arguments
Name Description
communityId - ID! The public ID of the community to follow.
userId - ID! The public ID of the user following the community.

Example

Query
mutation followCommunity(
  $communityId: ID!,
  $userId: ID!
) {
  followCommunity(
    communityId: $communityId,
    userId: $userId
  ) {
    result {
      ...ResultFragment
    }
  }
}
Variables
{"communityId": 4, "userId": 4}
Response
{"data": {"followCommunity": {"result": Result}}}

generateMilestones

Description

Uses AI to generate a suggested list of milestone sub-goals for a given goal.

Response

Returns a GenerateMilestonesPayload!

Arguments
Name Description
goalContext - String Optional additional context about the goal (e.g. timeframe, current progress, constraints) to improve milestone relevance.
goalName - String! The name or title of the goal for which milestones should be generated.

Example

Query
mutation generateMilestones(
  $goalContext: String,
  $goalName: String!
) {
  generateMilestones(
    goalContext: $goalContext,
    goalName: $goalName
  ) {
    milestones
  }
}
Variables
{
  "goalContext": "abc123",
  "goalName": "abc123"
}
Response
{
  "data": {
    "generateMilestones": {
      "milestones": ["xyz789"]
    }
  }
}

getAdvice

Description

Uses AI to provide personalized advice and tips for making progress on a goal.

Response

Returns a GetAdvicePayload!

Arguments
Name Description
userContext - String! A description of the user current situation, goal, or challenge for which advice is requested.

Example

Query
mutation getAdvice($userContext: String!) {
  getAdvice(userContext: $userContext) {
    advice
  }
}
Variables
{"userContext": "xyz789"}
Response
{
  "data": {
    "getAdvice": {"advice": "abc123"}
  }
}

getInsight

Description

Uses AI to generate insights about the user progress, patterns, and trends across their goals.

Response

Returns a GetInsightPayload!

Arguments
Name Description
pageContext - String! A string describing the current page or view the user is on, used to tailor the insight to what they are looking at (e.g. "goals dashboard", "mood log history").

Example

Query
mutation getInsight($pageContext: String!) {
  getInsight(pageContext: $pageContext) {
    ctaLabel
    insightId
    insightType
    message
    title
  }
}
Variables
{"pageContext": "xyz789"}
Response
{
  "data": {
    "getInsight": {
      "ctaLabel": "xyz789",
      "insightId": "abc123",
      "insightType": "abc123",
      "message": "abc123",
      "title": "xyz789"
    }
  }
}

joinCommunity

Description

Joins the authenticated user to an existing community.

Response

Returns a JoinCommunityPayload!

Arguments
Name Description
communityId - ID! The public ID of the community to join.
userId - ID! The public ID of the user joining the community.

Example

Query
mutation joinCommunity(
  $communityId: ID!,
  $userId: ID!
) {
  joinCommunity(
    communityId: $communityId,
    userId: $userId
  ) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{"communityId": 4, "userId": 4}
Response
{
  "data": {
    "joinCommunity": {
      "errors": ["abc123"],
      "result": Result
    }
  }
}

leaveCommunity

Description

Removes the authenticated user from a community they are a member of.

Response

Returns a LeaveCommunityPayload!

Arguments
Name Description
communityId - ID! The public ID of the community to leave.
userId - ID! The public ID of the user leaving the community.

Example

Query
mutation leaveCommunity(
  $communityId: ID!,
  $userId: ID!
) {
  leaveCommunity(
    communityId: $communityId,
    userId: $userId
  ) {
    result {
      ...ResultFragment
    }
  }
}
Variables
{"communityId": 4, "userId": 4}
Response
{"data": {"leaveCommunity": {"result": Result}}}

refineDescription

Description

Uses AI to refine or generate a compelling goal description.

Response

Returns a RefineDescriptionPayload!

Arguments
Name Description
currentDescription - String Optional existing description to improve upon.
goalName - String! The name or title of the goal.

Example

Query
mutation refineDescription(
  $currentDescription: String,
  $goalName: String!
) {
  refineDescription(
    currentDescription: $currentDescription,
    goalName: $goalName
  ) {
    description
  }
}
Variables
{
  "currentDescription": "xyz789",
  "goalName": "xyz789"
}
Response
{
  "data": {
    "refineDescription": {
      "description": "abc123"
    }
  }
}

storeDeviceToken

Description

Registers a device push notification token for the authenticated user (iOS/Android).

Response

Returns a StoreDeviceTokenPayload!

Arguments
Name Description
deviceToken - ID! The push notification token issued by APNs (iOS) or FCM (Android).
platform - String The device platform. Accepted values: ios or android.
userId - ID The public ID of the user registering the device. Defaults to the authenticated user.

Example

Query
mutation storeDeviceToken(
  $deviceToken: ID!,
  $platform: String,
  $userId: ID
) {
  storeDeviceToken(
    deviceToken: $deviceToken,
    platform: $platform,
    userId: $userId
  ) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{
  "deviceToken": "4",
  "platform": "xyz789",
  "userId": "4"
}
Response
{
  "data": {
    "storeDeviceToken": {
      "errors": ["xyz789"],
      "result": Result
    }
  }
}

storeUserDetails

Description

Stores or updates arbitrary metadata on the user details JSON blob (e.g. onboarding state, preferences).

Response

Returns a StoreUserDetailsPayload!

Arguments
Name Description
appFeedback - String Free-text feedback submitted by the user from within the app.
appVersion - String The current version string of the client app (e.g. "1.4.2").

Example

Query
mutation storeUserDetails(
  $appFeedback: String,
  $appVersion: String
) {
  storeUserDetails(
    appFeedback: $appFeedback,
    appVersion: $appVersion
  ) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{
  "appFeedback": "abc123",
  "appVersion": "xyz789"
}
Response
{
  "data": {
    "storeUserDetails": {
      "errors": ["xyz789"],
      "result": Result
    }
  }
}

syncUser

Description

Syncs the authenticated Clerk user with the local database. Returns first_sign_in for onboarding detection.

Response

Returns a SyncUserPayload!

Example

Query
mutation syncUser {
  syncUser {
    errors
    firstSignIn
    user {
      ...UserFragment
    }
  }
}
Response
{
  "data": {
    "syncUser": {
      "errors": ["xyz789"],
      "firstSignIn": false,
      "user": User
    }
  }
}

toggleFollowGoal

Description

Follows or unfollows a goal. Toggles the follow state for the authenticated user.

Response

Returns a ToggleFollowGoalPayload!

Arguments
Name Description
goalId - ID! public_id of the goal to follow or unfollow.

Example

Query
mutation toggleFollowGoal($goalId: ID!) {
  toggleFollowGoal(goalId: $goalId) {
    errors
    result {
      ...ResultFragment
    }
  }
}
Variables
{"goalId": "4"}
Response
{
  "data": {
    "toggleFollowGoal": {
      "errors": ["abc123"],
      "result": Result
    }
  }
}

toggleGoalEventEncouragement

Description

Toggles an encouragement (like/cheer) reaction on a goal event. Creates one if absent, removes it if present.

Arguments
Name Description
goalEventId - ID! public_id of the goal event to encourage or un-encourage.

Example

Query
mutation toggleGoalEventEncouragement($goalEventId: ID!) {
  toggleGoalEventEncouragement(goalEventId: $goalEventId) {
    errors
    goalEventEncouragement {
      ...GoalEventEncouragementFragment
    }
  }
}
Variables
{"goalEventId": "4"}
Response
{
  "data": {
    "toggleGoalEventEncouragement": {
      "errors": ["xyz789"],
      "goalEventEncouragement": GoalEventEncouragement
    }
  }
}

unfollowCommunity

Description

Unfollows a community the authenticated user is currently following.

Response

Returns an UnfollowCommunityPayload!

Arguments
Name Description
communityId - ID! The public ID of the community to unfollow.
userId - ID! The public ID of the user unfollowing the community.

Example

Query
mutation unfollowCommunity(
  $communityId: ID!,
  $userId: ID!
) {
  unfollowCommunity(
    communityId: $communityId,
    userId: $userId
  ) {
    result {
      ...ResultFragment
    }
  }
}
Variables
{"communityId": "4", "userId": 4}
Response
{"data": {"unfollowCommunity": {"result": Result}}}

updateGoal

Description

Updates an existing goal owned by the authenticated user.

Response

Returns an UpdateGoalPayload!

Arguments
Name Description
completed - Boolean When true, marks the goal as completed.
content - String Updated description or motivation note.
daysToUpdate - Int Updated frequency in days that the user plans to log progress.
deleted - Boolean When true, soft-deletes the goal.
goalCategoryId - ID Updated goal category ID. Fetch options via goalCategories query.
goalId - ID! public_id of the goal to update.
goalTypeId - ID Updated goal type ID. Fetch options via goalKinds query.
imageUrl - String Updated URL of a cover image for the goal.
name - String Updated display name for the goal.
private - Boolean When true, the goal is visible only to the owner.
recurrenceDays - [String!] Updated days for weekly/custom_days recurrence.
recurrenceInterval - Int Updated number of days between check-ins for interval recurrence.
recurrenceType - String Updated recurrence pattern for habits: daily, weekly, custom_days, or interval.
targetDate - String Updated ISO date string for the target completion date (e.g. "2026-12-31").
userId - ID! public_id of the goal owner. Must match the authenticated user.

Example

Query
mutation updateGoal(
  $completed: Boolean,
  $content: String,
  $daysToUpdate: Int,
  $deleted: Boolean,
  $goalCategoryId: ID,
  $goalId: ID!,
  $goalTypeId: ID,
  $imageUrl: String,
  $name: String,
  $private: Boolean,
  $recurrenceDays: [String!],
  $recurrenceInterval: Int,
  $recurrenceType: String,
  $targetDate: String,
  $userId: ID!
) {
  updateGoal(
    completed: $completed,
    content: $content,
    daysToUpdate: $daysToUpdate,
    deleted: $deleted,
    goalCategoryId: $goalCategoryId,
    goalId: $goalId,
    goalTypeId: $goalTypeId,
    imageUrl: $imageUrl,
    name: $name,
    private: $private,
    recurrenceDays: $recurrenceDays,
    recurrenceInterval: $recurrenceInterval,
    recurrenceType: $recurrenceType,
    targetDate: $targetDate,
    userId: $userId
  ) {
    errors
    goal {
      ...GoalFragment
    }
  }
}
Variables
{
  "completed": false,
  "content": "abc123",
  "daysToUpdate": 123,
  "deleted": true,
  "goalCategoryId": "4",
  "goalId": 4,
  "goalTypeId": 4,
  "imageUrl": "xyz789",
  "name": "xyz789",
  "private": true,
  "recurrenceDays": ["xyz789"],
  "recurrenceInterval": 987,
  "recurrenceType": "xyz789",
  "targetDate": "abc123",
  "userId": "4"
}
Response
{
  "data": {
    "updateGoal": {
      "errors": ["abc123"],
      "goal": Goal
    }
  }
}

updateGoalEvent

Description

Updates the content or media of an existing goal progress event.

Response

Returns an UpdateGoalEventPayload!

Arguments
Name Description
content - String Updated progress update text.
deleted - Boolean When true, soft-deletes the goal event.
goalEventId - ID! public_id of the goal event to update.
goalId - ID public_id of the goal this event belongs to.
imageUrl - String Updated URL of an image attached to the progress event.

Example

Query
mutation updateGoalEvent(
  $content: String,
  $deleted: Boolean,
  $goalEventId: ID!,
  $goalId: ID,
  $imageUrl: String
) {
  updateGoalEvent(
    content: $content,
    deleted: $deleted,
    goalEventId: $goalEventId,
    goalId: $goalId,
    imageUrl: $imageUrl
  ) {
    errors
    goalEvent {
      ...GoalEventFragment
    }
  }
}
Variables
{
  "content": "xyz789",
  "deleted": true,
  "goalEventId": 4,
  "goalId": "4",
  "imageUrl": "xyz789"
}
Response
{
  "data": {
    "updateGoalEvent": {
      "errors": ["abc123"],
      "goalEvent": GoalEvent
    }
  }
}

updateShowcasedAchievements

Description

Updates the list of achievement identifiers the user displays on their public profile.

Arguments
Name Description
achievementKeys - [String!]! Ordered list of achievement identifier keys to display on the public profile.
userId - ID! The public ID of the user whose showcased achievements are being updated.

Example

Query
mutation updateShowcasedAchievements(
  $achievementKeys: [String!]!,
  $userId: ID!
) {
  updateShowcasedAchievements(
    achievementKeys: $achievementKeys,
    userId: $userId
  ) {
    errors
    success
  }
}
Variables
{"achievementKeys": ["abc123"], "userId": 4}
Response
{
  "data": {
    "updateShowcasedAchievements": {
      "errors": ["abc123"],
      "success": true
    }
  }
}

updateUser

Description

Updates profile information for the authenticated user.

Response

Returns an UpdateUserPayload!

Arguments
Name Description
deleteUser - Boolean When true, soft-deletes the user account.
email - String A new email address for the user account.
firstName - String The user first name.
lastName - String The user last name.
password - String A new password for the user account.
passwordConfirmation - String Confirmation of the new password. Must match the password argument.
userId - ID The public ID of the user to update. Defaults to the authenticated user.
username - String A new unique username for the user.

Example

Query
mutation updateUser(
  $deleteUser: Boolean,
  $email: String,
  $firstName: String,
  $lastName: String,
  $password: String,
  $passwordConfirmation: String,
  $userId: ID,
  $username: String
) {
  updateUser(
    deleteUser: $deleteUser,
    email: $email,
    firstName: $firstName,
    lastName: $lastName,
    password: $password,
    passwordConfirmation: $passwordConfirmation,
    userId: $userId,
    username: $username
  ) {
    errors
    user {
      ...UserFragment
    }
  }
}
Variables
{
  "deleteUser": true,
  "email": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "password": "xyz789",
  "passwordConfirmation": "xyz789",
  "userId": 4,
  "username": "xyz789"
}
Response
{
  "data": {
    "updateUser": {
      "errors": ["xyz789"],
      "user": User
    }
  }
}

updateUserPhoto

Description

Updates the profile photo for the authenticated user.

Response

Returns an UpdateUserPhotoPayload!

Arguments
Name Description
imageUrl - String Publicly accessible URL of the new profile photo image.
userId - ID The public ID of the user whose photo is being updated. Defaults to the authenticated user.

Example

Query
mutation updateUserPhoto(
  $imageUrl: String,
  $userId: ID
) {
  updateUserPhoto(
    imageUrl: $imageUrl,
    userId: $userId
  ) {
    errors
    userPhoto {
      ...UserPhotoFragment
    }
  }
}
Variables
{"imageUrl": "abc123", "userId": 4}
Response
{
  "data": {
    "updateUserPhoto": {
      "errors": ["abc123"],
      "userPhoto": UserPhoto
    }
  }
}

useStreakFreeze

Description

Uses a streak freeze token to preserve a habit streak on a missed day.

Response

Returns a UseStreakFreezePayload!

Arguments
Name Description
goalId - ID! public_id of the habit goal.
missedDate - String! ISO date string of the missed day to freeze.

Example

Query
mutation useStreakFreeze(
  $goalId: ID!,
  $missedDate: String!
) {
  useStreakFreeze(
    goalId: $goalId,
    missedDate: $missedDate
  ) {
    errors
    goal {
      ...GoalFragment
    }
  }
}
Variables
{"goalId": 4, "missedDate": "abc123"}
Response
{
  "data": {
    "useStreakFreeze": {
      "errors": ["abc123"],
      "goal": Goal
    }
  }
}

Subscriptions

actionUpdate

Description

Streams gamification action updates for a user in real time.

Response

Returns a UserAction!

Arguments
Name Description
userId - ID! public_id of the user to subscribe to actions for.

Example

Query
subscription actionUpdate($userId: ID!) {
  actionUpdate(userId: $userId) {
    acknowledged
    action
    createdAtTime
    id
  }
}
Variables
{"userId": 4}
Response
{
  "data": {
    "actionUpdate": {
      "acknowledged": true,
      "action": "xyz789",
      "createdAtTime": "xyz789",
      "id": 4
    }
  }
}

notificationUpdate

Description

Streams new notifications for a user in real time.

Response

Returns a UserNotification!

Arguments
Name Description
userId - ID! public_id of the user to subscribe to notifications for.

Example

Query
subscription notificationUpdate($userId: ID!) {
  notificationUpdate(userId: $userId) {
    acknowledged
    content
    createdAtTime
    detailsJson
    id
    kind
  }
}
Variables
{"userId": "4"}
Response
{
  "data": {
    "notificationUpdate": {
      "acknowledged": true,
      "content": "xyz789",
      "createdAtTime": "abc123",
      "detailsJson": "xyz789",
      "id": "4",
      "kind": "xyz789"
    }
  }
}

Types

AcknowledgeActionPayload

Description

Autogenerated return type of AcknowledgeAction.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["xyz789"],
  "result": Result
}

AcknowledgeNotificationPayload

Description

Autogenerated return type of AcknowledgeNotification.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["abc123"],
  "result": Result
}

ActivityItem

Description

Recent platform activity item

Fields
Field Name Description
action - String!
id - ID!
timestamp - String!
type - String!
userName - String!
Example
{
  "action": "xyz789",
  "id": 4,
  "timestamp": "abc123",
  "type": "abc123",
  "userName": "xyz789"
}

AddCommunitySuggestionPayload

Description

Autogenerated return type of AddCommunitySuggestion.

Fields
Field Name Description
communitySuggestion - CommunitySuggestion
errors - [String!]!
Example
{
  "communitySuggestion": CommunitySuggestion,
  "errors": ["xyz789"]
}

AddGoalEventCommentPayload

Description

Autogenerated return type of AddGoalEventComment.

Fields
Field Name Description
errors - [String!]!
goalEventComment - GoalEventComment
Example
{
  "errors": ["abc123"],
  "goalEventComment": GoalEventComment
}

AddGoalEventPayload

Description

Autogenerated return type of AddGoalEvent.

Fields
Field Name Description
errors - [String!]!
goalEvent - GoalEvent
Example
{
  "errors": ["abc123"],
  "goalEvent": GoalEvent
}

AddGoalPayload

Description

Autogenerated return type of AddGoal.

Fields
Field Name Description
errors - [String!]!
goal - Goal
Example
{
  "errors": ["abc123"],
  "goal": Goal
}

AddGoalToCommunityPayload

Description

Autogenerated return type of AddGoalToCommunity.

Fields
Field Name Description
communityGoal - CommunityGoal
errors - [String!]!
Example
{
  "communityGoal": CommunityGoal,
  "errors": ["abc123"]
}

AddMoodLogPayload

Description

Autogenerated return type of AddMoodLog.

Fields
Field Name Description
errors - [String!]!
moodLog - MoodLog
Example
{
  "errors": ["abc123"],
  "moodLog": MoodLog
}

AdminStats

Description

Admin statistics for platform monitoring

Fields
Field Name Description
completedGoals - Int!
goalCategories - [CategoryStats!]!
goalsLast7Days - Int!
growthData - [GrowthDataPoint!]!
publicGoals - Int!
recentActivity - [ActivityItem!]!
totalEncouragements - Int!
totalEvents - Int!
totalGoals - Int!
totalMilestones - Int!
totalUpdates - Int!
totalUsers - Int!
usersLast30Days - Int!
usersLast7Days - Int!
Example
{
  "completedGoals": 987,
  "goalCategories": [CategoryStats],
  "goalsLast7Days": 987,
  "growthData": [GrowthDataPoint],
  "publicGoals": 123,
  "recentActivity": [ActivityItem],
  "totalEncouragements": 123,
  "totalEvents": 987,
  "totalGoals": 123,
  "totalMilestones": 987,
  "totalUpdates": 987,
  "totalUsers": 123,
  "usersLast30Days": 123,
  "usersLast7Days": 987
}

AllyActivity

Description

A recent progress event from an accepted ally (friend), shown in the ally activity feed.

Fields
Field Name Description
action - String! Verb describing what the ally did (e.g. "checked in on").
allyId - ID! public_id of the ally user who performed the action.
allyName - String! Display name of the ally user.
allyPhoto - String Profile photo URL of the ally user.
communityId - ID public_id of the community involved, if any.
communityName - String Name of the community involved, if any.
id - ID! Public identifier for this activity record.
target - String! Name of the goal the ally acted on.
timestamp - String! Unix timestamp (string) when the activity occurred.
Example
{
  "action": "abc123",
  "allyId": "4",
  "allyName": "abc123",
  "allyPhoto": "xyz789",
  "communityId": 4,
  "communityName": "xyz789",
  "id": 4,
  "target": "abc123",
  "timestamp": "xyz789"
}

BadgeStat

Description

Unlock statistics for a single badge

Fields
Field Name Description
badgeKey - String! The badge key (action name)
percentage - Float! Percentage of users who have unlocked this badge (0-100)
Example
{"badgeKey": "xyz789", "percentage": 123.45}

Boolean

Description

The Boolean scalar type represents true or false.

CategoryStats

Description

Statistics for goal categories

Fields
Field Name Description
count - Int!
name - String!
Example
{"count": 987, "name": "xyz789"}

CheckInHabitPayload

Description

Autogenerated return type of CheckInHabit.

Fields
Field Name Description
errors - [String!]!
goal - Goal
goalEvent - GoalEvent
Example
{
  "errors": ["abc123"],
  "goal": Goal,
  "goalEvent": GoalEvent
}

CheckValidUsernamePayload

Description

Autogenerated return type of CheckValidUsername.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["abc123"],
  "result": Result
}

Community

Description

An interest-based group where users share goals and support each other.

Fields
Field Name Description
activeMembers - Int! Count of members who have been active in the past 30 days.
badges - CommunityBadges! Achievement badges earned by this community.
category - String General category label for the community (e.g. "fitness").
coverImage - String URL of the community banner/cover image.
createdAt - ISO8601DateTime! ISO 8601 datetime when the community was created.
createdAtTime - String! Unix timestamp (string) when the community was created.
description - String Human-readable description of the community purpose.
feedItems - [CommunityFeedItem!] Recent activity feed items for this community.
goalCategory - GoalCategory The primary goal category this community is focused on.
goals - [Goal!] Goals that have been shared into this community.
growthRate - Float! Member growth rate as a percentage over the past 30 days.
guidelines - String Community rules and posting guidelines.
healthScore - Int! Computed health score (0–100) reflecting community engagement.
imageUrl - String URL of the community avatar/icon image.
isFeatured - Boolean! Whether the community is featured on the discovery page.
isVerified - Boolean! Whether the community has been verified by Objectuve admins.
members - [CommunityMember!] All current members of this community.
name - String! Display name of the community.
privacy - String! Privacy level string: "public" or "private".
private - Boolean! When true, membership requires an invite or approval.
publicId - ID! URL-safe public identifier for this community.
totalGoals - Int! Total number of goals shared in this community.
updatedAtTime - String! Unix timestamp (string) when the community was last updated.
Example
{
  "activeMembers": 987,
  "badges": CommunityBadges,
  "category": "abc123",
  "coverImage": "abc123",
  "createdAt": ISO8601DateTime,
  "createdAtTime": "xyz789",
  "description": "abc123",
  "feedItems": [CommunityFeedItem],
  "goalCategory": GoalCategory,
  "goals": [Goal],
  "growthRate": 123.45,
  "guidelines": "xyz789",
  "healthScore": 987,
  "imageUrl": "abc123",
  "isFeatured": false,
  "isVerified": true,
  "members": [CommunityMember],
  "name": "abc123",
  "privacy": "xyz789",
  "private": true,
  "publicId": "4",
  "totalGoals": 987,
  "updatedAtTime": "abc123"
}

CommunityBadges

Description

Achievement badges earned by a community, reflecting its milestones and reputation.

Fields
Field Name Description
allyMagnet - Boolean! Community has attracted a high number of ally connections between members.
club1k - Boolean! Community has reached 1,000 members.
earlySupporter - Boolean! Community was created during the early access period.
featured - Boolean! Community is currently featured on the discovery page.
perfectMonth - Boolean! All active members logged activity every day for a full month.
streak100 - Boolean! Community has collectively maintained a 100-day streak.
topActive - Boolean! Community ranks in the top tier for member activity.
topContributor - Boolean! Community has a high ratio of active contributors.
verified - Boolean! Community has been verified by Objectuve admins.
wins500 - Boolean! Members have collectively completed 500 goals.
Example
{
  "allyMagnet": true,
  "club1k": true,
  "earlySupporter": false,
  "featured": false,
  "perfectMonth": false,
  "streak100": false,
  "topActive": false,
  "topContributor": true,
  "verified": true,
  "wins500": true
}

CommunityEvent

Description

A scheduled event or activity within a community.

Fields
Field Name Description
attendeeCount - Int! Number of community members who have indicated they will attend.
communityId - ID! public_id of the community hosting this event.
communityName - String! Name of the community hosting this event.
date - String! Unix timestamp (string) of when the event takes place.
description - String Optional longer description of what the event involves.
id - ID! Public identifier for this event.
title - String! Title of the community event.
Example
{
  "attendeeCount": 987,
  "communityId": "4",
  "communityName": "abc123",
  "date": "abc123",
  "description": "abc123",
  "id": 4,
  "title": "xyz789"
}

CommunityFeedItem

Description

A single item in a community activity feed (e.g. a goal update or milestone).

Fields
Field Name Description
content - String! Text content of the feed item.
createdAtTime - String! Unix timestamp (string) when this item was created.
id - ID! Public identifier for this feed item.
media - CommunityMedia Optional media attachment for this feed item.
updatedAtTime - String! Unix timestamp (string) when this item was last updated.
Example
{
  "content": "xyz789",
  "createdAtTime": "abc123",
  "id": 4,
  "media": CommunityMedia,
  "updatedAtTime": "xyz789"
}

CommunityGoal

Description

A goal that has been shared into a community, linking the goal to the community feed.

Fields
Field Name Description
community - Community The community the goal was shared into.
createdAtTime - String! Unix timestamp (string) when the goal was shared into the community.
goal - Goal The goal that was shared.
id - ID! Public identifier for this community-goal association.
updatedAtTime - String! Unix timestamp (string) when the association was last updated.
Example
{
  "community": Community,
  "createdAtTime": "xyz789",
  "goal": Goal,
  "id": "4",
  "updatedAtTime": "xyz789"
}

CommunityInsights

Description

Community engagement insights and recommendations for a specific user.

Fields
Field Name Description
achievementsUnlocked - Int! Number of community-related achievements unlocked by the user.
communitiesJoined - Int! Total number of communities the user has joined.
postsThisWeek - Int! Number of posts the user has made in communities this week.
suggestedCommunities - [SuggestedCommunity!]! Communities recommended for the user to join based on their interests.
totalEngagement - Int! Aggregate engagement score across all communities.
trendingCommunities - [TrendingCommunity!]! Currently trending communities across the platform.
upcomingEvents - [CommunityEvent!]! Upcoming events in communities the user belongs to.
yourActivity - [UserActivity!]! Recent activity items for the user across their communities.
Example
{
  "achievementsUnlocked": 123,
  "communitiesJoined": 987,
  "postsThisWeek": 987,
  "suggestedCommunities": [SuggestedCommunity],
  "totalEngagement": 123,
  "trendingCommunities": [TrendingCommunity],
  "upcomingEvents": [CommunityEvent],
  "yourActivity": [UserActivity]
}

CommunityMedia

Description

A media attachment (image) associated with a community feed item or post.

Fields
Field Name Description
id - ID! Public identifier for this media record.
imageUrl - String! URL of the image.
name - String Optional descriptive name or caption for the image.
Example
{
  "id": 4,
  "imageUrl": "xyz789",
  "name": "abc123"
}

CommunityMember

Description

A user membership record within a community, with engagement statistics.

Fields
Field Name Description
createdAtTime - String! Unix timestamp (string) when the user joined the community.
goalsCompleted - Int! Number of goals completed by this user (proxy for community contribution).
helpfulCount - Int! Count of helpful reactions received by this user in the community.
id - ID! Public identifier for this membership record.
joinedDate - String! Unix timestamp (string) alias for created_at_time.
points - Int! Engagement points accumulated by this member in the community.
postsCount - Int! Number of posts this user has made in this community.
rank - Int Leaderboard rank of this member within the community.
role - String! Role within the community (e.g. "member", "moderator", "admin").
updatedAtTime - String! Unix timestamp (string) when the membership record was last updated.
user - User The user who is a member of the community.
Example
{
  "createdAtTime": "abc123",
  "goalsCompleted": 987,
  "helpfulCount": 987,
  "id": 4,
  "joinedDate": "abc123",
  "points": 987,
  "postsCount": 987,
  "rank": 123,
  "role": "xyz789",
  "updatedAtTime": "xyz789",
  "user": User
}

CommunityPost

Description

A discussion post or update made by a user within a community.

Fields
Field Name Description
comments - [PostComment!]! Comments left on this post.
communityId - ID! public_id of the community this post belongs to.
content - String! Body text of the post.
goalId - ID public_id of the goal linked to this post, if any.
goalName - String Name of the linked goal, if any.
id - ID! Public identifier for this post.
likes - Int! Number of like reactions on this post.
timestamp - String! Unix timestamp (string) when the post was created.
type - String! Post type (e.g. "update", "goal_share", "milestone").
userId - ID! public_id of the user who created the post.
userName - String! Username of the post author.
userPhoto - String Profile photo URL of the post author.
Example
{
  "comments": [PostComment],
  "communityId": 4,
  "content": "abc123",
  "goalId": 4,
  "goalName": "xyz789",
  "id": 4,
  "likes": 987,
  "timestamp": "xyz789",
  "type": "abc123",
  "userId": "4",
  "userName": "xyz789",
  "userPhoto": "xyz789"
}

CommunitySuggestion

Description

A user-submitted suggestion for a new community topic or interest area.

Fields
Field Name Description
content - String! Text of the community suggestion.
goalCategory - GoalCategory Goal category the suggested community would belong to, if specified.
goalKind - GoalType Goal type the suggested community would focus on, if specified.
id - ID! Public identifier for this suggestion.
Example
{
  "content": "xyz789",
  "goalCategory": GoalCategory,
  "goalKind": GoalType,
  "id": "4"
}

CreateCommunityPayload

Description

Autogenerated return type of CreateCommunity.

Fields
Field Name Description
community - Community
errors - [String!]!
Example
{
  "community": Community,
  "errors": ["xyz789"]
}

CreateCommunityPostPayload

Description

Autogenerated return type of CreateCommunityPost.

Fields
Field Name Description
errors - [String!]!
post - CommunityPost
Example
{
  "errors": ["xyz789"],
  "post": CommunityPost
}

DeleteNotificationPayload

Description

Autogenerated return type of DeleteNotification.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["xyz789"],
  "result": Result
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

FollowCommunityPayload

Description

Autogenerated return type of FollowCommunity.

Fields
Field Name Description
result - Result
Example
{"result": Result}

GenerateMilestonesPayload

Description

Autogenerated return type of GenerateMilestones.

Fields
Field Name Description
milestones - [String!]
Example
{"milestones": ["abc123"]}

GetAdvicePayload

Description

Autogenerated return type of GetAdvice.

Fields
Field Name Description
advice - String
Example
{"advice": "xyz789"}

GetInsightPayload

Description

Autogenerated return type of GetInsight.

Fields
Field Name Description
ctaLabel - String
insightId - String
insightType - String
message - String
title - String
Example
{
  "ctaLabel": "abc123",
  "insightId": "xyz789",
  "insightType": "abc123",
  "message": "xyz789",
  "title": "xyz789"
}

Goal

Description

A user goal with progress events, milestones, and optional community sharing.

Fields
Field Name Description
allEvents - [GoalEvent!]! All progress events including soft-deleted ones.
category - GoalCategory The goal category (e.g. fitness, learning, personal).
checkedInToday - Boolean! Whether the user has checked in today.
comments - [GoalEventComment!]! Comments left by other users on this goal.
completed - Boolean! Whether the goal has been marked as completed.
completedAtTime - String Unix timestamp (string) when the goal was completed.
completionRate - Float Percentage of expected check-ins completed in the last 30 days.
content - String Optional longer description or motivation note for the goal.
createdAtTime - String Unix timestamp (string) when the goal was created.
currentAmount - Float Current progress value for quantity-based goals (e.g. 3.2 km).
daysToUpdate - Int How frequently (in days) the user intends to log progress events.
dueToday - Boolean! Whether this habit is due for a check-in today.
encouragements - [GoalEventEncouragement!]! Encouragement reactions left by other users on this goal.
events - [GoalEvent!]! Active (non-deleted) progress events logged for this goal.
habitCompletions - [HabitCompletion!]! Check-in records for this habit (last 30 days).
habitStreak - Int! Current consecutive check-in streak for this habit.
imageUrl - String URL of a cover image associated with the goal.
kind - GoalType The goal kind/type (e.g. habit, milestone, quantity).
lastCheckedInDate - String ISO date of the most recent check-in.
longestHabitStreak - Int! All-time longest streak for this habit.
milestones - [Goal!]! Sub-goals (milestones) nested under this goal.
name - String! Display name of the goal (e.g. "Run a 5K").
parentGoalId - String public_id of the parent goal if this is a milestone/sub-goal.
private - Boolean! When true, the goal is visible only to its owner.
publicId - ID! URL-safe public identifier for this goal.
recurrenceDays - [String!] Days of the week for weekly/custom_days recurrence (e.g. ["mon", "wed", "fri"]).
recurrenceInterval - Int Number of days between check-ins for interval recurrence.
recurrenceType - String Recurrence pattern: daily, weekly, custom_days, or interval.
streakFreezesAvailable - Int! Number of streak freeze tokens earned and available.
streakFreezesUsed - Int! Number of streak freeze tokens consumed.
targetAmount - Float Target value for quantity-based goals (e.g. 5.0 km).
targetDateTime - String Unix timestamp (string) of the target completion date.
unit - String Unit label for quantity-based goals (e.g. "km", "pages", "reps").
updatedAtTime - String Unix timestamp (string) when the goal was last updated.
user - User The user who owns this goal.
Example
{
  "allEvents": [GoalEvent],
  "category": GoalCategory,
  "checkedInToday": false,
  "comments": [GoalEventComment],
  "completed": true,
  "completedAtTime": "xyz789",
  "completionRate": 123.45,
  "content": "xyz789",
  "createdAtTime": "abc123",
  "currentAmount": 123.45,
  "daysToUpdate": 987,
  "dueToday": false,
  "encouragements": [GoalEventEncouragement],
  "events": [GoalEvent],
  "habitCompletions": [HabitCompletion],
  "habitStreak": 123,
  "imageUrl": "abc123",
  "kind": GoalType,
  "lastCheckedInDate": "abc123",
  "longestHabitStreak": 987,
  "milestones": [Goal],
  "name": "abc123",
  "parentGoalId": "xyz789",
  "private": true,
  "publicId": "4",
  "recurrenceDays": ["xyz789"],
  "recurrenceInterval": 123,
  "recurrenceType": "xyz789",
  "streakFreezesAvailable": 987,
  "streakFreezesUsed": 123,
  "targetAmount": 123.45,
  "targetDateTime": "xyz789",
  "unit": "xyz789",
  "updatedAtTime": "abc123",
  "user": User
}

GoalCategory

Description

A predefined category for organizing goals (e.g. fitness, learning, personal growth).

Fields
Field Name Description
id - ID! Public identifier for this category.
name - String! Display name of the category.
Example
{
  "id": "4",
  "name": "xyz789"
}

GoalEvent

Description

An immutable progress log entry for a goal. Records what the user did and when.

Fields
Field Name Description
comments - [GoalEventComment!]! Comments from other users on this event.
content - String! Text describing what the user did (e.g. "Ran 3 km in the park").
createdAtTime - String! Unix timestamp (string) when this event was logged.
encouragements - [GoalEventEncouragement!]! Encouragement reactions from other users on this event.
goal - Goal The goal this event belongs to.
id - ID! Alias for public_id. Prefer public_id for new integrations.
media - GoalMedia Optional photo or media attachment for this event.
milestoneName - String Name of the milestone this event was logged against, if any.
mood - String Optional mood snapshot at the time of logging (amazing/happy/calm/meh/tired/low).
publicId - ID! URL-safe public identifier for this event.
Example
{
  "comments": [GoalEventComment],
  "content": "xyz789",
  "createdAtTime": "xyz789",
  "encouragements": [GoalEventEncouragement],
  "goal": Goal,
  "id": "4",
  "media": GoalMedia,
  "milestoneName": "abc123",
  "mood": "abc123",
  "publicId": 4
}

GoalEventComment

Description

A comment left by a user on a goal progress event.

Fields
Field Name Description
content - String Text of the comment.
createdAtTime - String Unix timestamp (string) when the comment was posted.
goal - Goal The goal associated with the event being commented on.
id - ID! Public identifier for this comment.
updatedAtTime - String Unix timestamp (string) when the comment was last edited.
user - User The user who wrote the comment.
Example
{
  "content": "abc123",
  "createdAtTime": "abc123",
  "goal": Goal,
  "id": "4",
  "updatedAtTime": "abc123",
  "user": User
}

GoalEventEncouragement

Description

An encouragement reaction (like/cheer) left on a goal progress event.

Fields
Field Name Description
comment - String Optional short message included with the encouragement.
createdAtTime - String Unix timestamp (string) when the encouragement was given.
goal - Goal The goal associated with the event being encouraged.
id - ID! Public identifier for this encouragement.
updatedAtTime - String Unix timestamp (string) when it was last updated.
user - User The user who left the encouragement.
Example
{
  "comment": "abc123",
  "createdAtTime": "xyz789",
  "goal": Goal,
  "id": "4",
  "updatedAtTime": "abc123",
  "user": User
}

GoalMedia

Description

A media attachment (image) associated with a goal progress event.

Fields
Field Name Description
id - ID! Public identifier for this media record.
imageUrl - String! URL of the attached image.
name - String Optional descriptive name or caption for the image.
Example
{
  "id": "4",
  "imageUrl": "xyz789",
  "name": "abc123"
}

GoalProgressData

Description

Progress visualization data for a goal.

Fields
Field Name Description
averagePerWeek - Float! Average events per week in the lookback period.
dataPoints - [ProgressDataPoint!]! Event frequency data grouped by period.
pace - String! Current pace status: ahead, on_track, or behind.
streakData - [ProgressDataPoint!]! Habit streak completion data (habits only).
totalEvents - Int! Total number of events in the lookback period.
Example
{
  "averagePerWeek": 123.45,
  "dataPoints": [ProgressDataPoint],
  "pace": "abc123",
  "streakData": [ProgressDataPoint],
  "totalEvents": 987
}

GoalType

Description

A goal kind/type that determines how progress is tracked (e.g. habit, milestone, quantity).

Fields
Field Name Description
description - String! Explanation of how goals of this type work.
displayNumber - Int Ordering hint for display in the UI.
id - ID! Public identifier for this goal type.
name - String! Display name of the goal type (e.g. "Habit", "Milestone", "Quantity").
Example
{
  "description": "xyz789",
  "displayNumber": 987,
  "id": 4,
  "name": "xyz789"
}

GrowthDataPoint

Description

Daily growth metrics for users and goals

Fields
Field Name Description
date - String!
goals - Int!
users - Int!
Example
{
  "date": "abc123",
  "goals": 123,
  "users": 123
}

HabitCompletion

Description

A single habit check-in record for a specific date.

Fields
Field Name Description
completedDate - String! ISO date string for the check-in date.
createdAt - String! ISO timestamp when the check-in was recorded.
id - ID! Internal identifier for the completion record.
streakFreezeUsed - Boolean! Whether a streak freeze was used for this date.
Example
{
  "completedDate": "abc123",
  "createdAt": "xyz789",
  "id": 4,
  "streakFreezeUsed": false
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

ISO8601DateTime

Description

An ISO 8601-encoded datetime

Example
ISO8601DateTime

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

JoinCommunityPayload

Description

Autogenerated return type of JoinCommunity.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["xyz789"],
  "result": Result
}

LeaveCommunityPayload

Description

Autogenerated return type of LeaveCommunity.

Fields
Field Name Description
result - Result
Example
{"result": Result}

MoodLog

Description

A daily mood check-in recorded by a user, optionally linked to a goal.

Fields
Field Name Description
createdAtTime - String! Unix timestamp (string) when this mood log was recorded.
goal - Goal Goal the user linked this mood entry to, if any.
mood - String! Mood value at time of check-in. One of: amazing, happy, calm, meh, tired, low.
note - String Optional free-text note (max 300 characters) describing how the user is feeling.
publicId - ID! URL-safe public identifier for this mood log entry.
Example
{
  "createdAtTime": "abc123",
  "goal": Goal,
  "mood": "abc123",
  "note": "abc123",
  "publicId": "4"
}

PostComment

Description

A comment left on a community post.

Fields
Field Name Description
content - String! Text body of the comment.
id - ID! Public identifier for this comment.
timestamp - String! Unix timestamp (string) when the comment was posted.
userId - ID! public_id of the user who wrote the comment.
userName - String! Username of the comment author.
Example
{
  "content": "xyz789",
  "id": "4",
  "timestamp": "xyz789",
  "userId": 4,
  "userName": "xyz789"
}

ProgressDataPoint

Description

A single data point in a progress chart.

Fields
Field Name Description
count - Int! Number of events logged in this period.
date - String! ISO date string for the start of this period.
label - String! Display label for this period (e.g. "Mar 15" or "Mar 15 - Mar 21").
Example
{
  "count": 123,
  "date": "xyz789",
  "label": "xyz789"
}

RefineDescriptionPayload

Description

Autogenerated return type of RefineDescription.

Fields
Field Name Description
description - String
Example
{"description": "xyz789"}

Result

Description

Generic boolean result returned by check queries (e.g. authn_check, is_following_goal).

Fields
Field Name Description
success - Boolean! True if the checked condition is satisfied.
Example
{"success": false}

StoreDeviceTokenPayload

Description

Autogenerated return type of StoreDeviceToken.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["abc123"],
  "result": Result
}

StoreUserDetailsPayload

Description

Autogenerated return type of StoreUserDetails.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["xyz789"],
  "result": Result
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

SuggestedCommunity

Description

A community recommended to a user based on their goals, interests, and ally network.

Fields
Field Name Description
activeMembers - Int! Count of members active in the past 30 days.
category - String! Category label for the community (e.g. "Fitness", "Learning").
coverImage - String URL of the community banner/cover image.
description - String Human-readable description of the community purpose.
isRecommended - Boolean! Always true for suggested communities — indicates this is a curated recommendation.
matchScore - Int! Relevance score (0–100) indicating how well this community matches the user.
members - [User!]! A sample of up to 5 members, useful for showing mutual connections.
mutualAllies - Int! Number of the current user allies who are also members of this community.
name - String! Display name of the community.
publicId - ID! URL-safe public identifier for this community.
Example
{
  "activeMembers": 123,
  "category": "xyz789",
  "coverImage": "xyz789",
  "description": "xyz789",
  "isRecommended": true,
  "matchScore": 987,
  "members": [User],
  "mutualAllies": 987,
  "name": "abc123",
  "publicId": "4"
}

SyncUserPayload

Description

Autogenerated return type of SyncUser.

Fields
Field Name Description
errors - [String!]!
firstSignIn - Boolean!
user - User
Example
{
  "errors": ["xyz789"],
  "firstSignIn": true,
  "user": User
}

ToggleFollowGoalPayload

Description

Autogenerated return type of ToggleFollowGoal.

Fields
Field Name Description
errors - [String!]!
result - Result
Example
{
  "errors": ["abc123"],
  "result": Result
}

ToggleGoalEventEncouragementPayload

Description

Autogenerated return type of ToggleGoalEventEncouragement.

Fields
Field Name Description
errors - [String!]!
goalEventEncouragement - GoalEventEncouragement
Example
{
  "errors": ["xyz789"],
  "goalEventEncouragement": GoalEventEncouragement
}

TrendingCommunity

Description

A community currently trending based on member growth and activity metrics.

Fields
Field Name Description
activeMembers - Int! Count of members active in the past 30 days.
category - String! Category label for the community (e.g. "Fitness", "Learning").
coverImage - String URL of the community banner/cover image.
description - String Human-readable description of the community purpose.
growthRate - Float! Percentage growth in membership over the past 30 days.
isTrending - Boolean! Always true for trending communities — indicates current trending status.
name - String! Display name of the community.
publicId - ID! URL-safe public identifier for this community.
totalGoals - Int! Total number of goals shared in this community.
totalMembers - Int! Total member count.
Example
{
  "activeMembers": 987,
  "category": "xyz789",
  "coverImage": "xyz789",
  "description": "abc123",
  "growthRate": 987.65,
  "isTrending": false,
  "name": "abc123",
  "publicId": "4",
  "totalGoals": 987,
  "totalMembers": 987
}

UnfollowCommunityPayload

Description

Autogenerated return type of UnfollowCommunity.

Fields
Field Name Description
result - Result
Example
{"result": Result}

UpdateGoalEventPayload

Description

Autogenerated return type of UpdateGoalEvent.

Fields
Field Name Description
errors - [String!]!
goalEvent - GoalEvent
Example
{
  "errors": ["xyz789"],
  "goalEvent": GoalEvent
}

UpdateGoalPayload

Description

Autogenerated return type of UpdateGoal.

Fields
Field Name Description
errors - [String!]!
goal - Goal
Example
{
  "errors": ["xyz789"],
  "goal": Goal
}

UpdateShowcasedAchievementsPayload

Description

Autogenerated return type of UpdateShowcasedAchievements.

Fields
Field Name Description
errors - [String!]
success - Boolean!
Example
{"errors": ["abc123"], "success": false}

UpdateUserPayload

Description

Autogenerated return type of UpdateUser.

Fields
Field Name Description
errors - [String!]!
user - User
Example
{
  "errors": ["xyz789"],
  "user": User
}

UpdateUserPhotoPayload

Description

Autogenerated return type of UpdateUserPhoto.

Fields
Field Name Description
errors - [String!]!
userPhoto - UserPhoto
Example
{
  "errors": ["xyz789"],
  "userPhoto": UserPhoto
}

UseStreakFreezePayload

Description

Autogenerated return type of UseStreakFreeze.

Fields
Field Name Description
errors - [String!]!
goal - Goal
Example
{
  "errors": ["abc123"],
  "goal": Goal
}

User

Description

A registered Objectuve user with gamification progress, goals, and social connections.

Fields
Field Name Description
actions - [UserAction!] Gamification action log used to compute badges and achievements.
admin - Boolean! Whether the user has admin privileges.
createdAtTime - String Unix timestamp (string) when the account was created.
details - UserDetail Extended profile metadata stored as JSON (e.g. showcased achievements).
email - String! Primary email address for the account.
emailVerified - Boolean! Whether the user has confirmed their email address.
feedItems - [UserFeedItem!] Personal activity feed items for the user's home timeline.
firstName - String User's given name.
goals - [Goal!]! All goals owned by this user.
lastName - String User's family name.
level - Int! Current gamification level derived from XP.
longestStreak - Int! All-time longest streak of consecutive active days.
nextLevelThreshold - Int! XP required to reach the next level.
notifications - [UserNotification!] In-app notifications for this user, newest first.
photo - UserPhoto Profile photo for the user.
progressToNextLevel - Float! Fraction (0.0–1.0) representing progress toward the next level.
publicId - ID! URL-safe public identifier. Use this for all lookups — internal integer IDs are never exposed.
showcasedAchievements - [String!] Achievement identifiers the user has chosen to display on their profile.
signInDates - [String!] List of ISO date strings on which the user has signed in.
stats - UserStats Aggregated goal and achievement statistics for the user.
streak - Int! Current number of consecutive days the user has logged activity.
updatedAtTime - String Unix timestamp (string) when the account was last updated.
username - String Unique handle chosen by the user (e.g. "jane.doe").
xp - Int! Total experience points earned through goals, events, and engagement.
Example
{
  "actions": [UserAction],
  "admin": false,
  "createdAtTime": "xyz789",
  "details": UserDetail,
  "email": "xyz789",
  "emailVerified": true,
  "feedItems": [UserFeedItem],
  "firstName": "abc123",
  "goals": [Goal],
  "lastName": "xyz789",
  "level": 123,
  "longestStreak": 987,
  "nextLevelThreshold": 123,
  "notifications": [UserNotification],
  "photo": UserPhoto,
  "progressToNextLevel": 123.45,
  "publicId": 4,
  "showcasedAchievements": ["abc123"],
  "signInDates": ["abc123"],
  "stats": UserStats,
  "streak": 987,
  "updatedAtTime": "xyz789",
  "username": "xyz789",
  "xp": 987
}

UserAction

Description

A gamification action record tracking user behaviour for badges and achievements.

Fields
Field Name Description
acknowledged - Boolean! Whether the user has been shown/dismissed the reward for this action.
action - String! Action identifier (e.g. "goal_created", "streak_7", "encouragement_given").
createdAtTime - String Unix timestamp (string) when this action was recorded.
id - ID! Public identifier for this action record.
Example
{
  "acknowledged": true,
  "action": "xyz789",
  "createdAtTime": "abc123",
  "id": "4"
}

UserActivity

Description

A single activity item in a user activity timeline within a community context.

Fields
Field Name Description
communityId - ID public_id of the community this activity is associated with, if any.
communityName - String Name of the community this activity is associated with, if any.
content - String! Human-readable description of the activity.
id - ID! Public identifier for this activity item.
timestamp - String! Unix timestamp (string) when this activity occurred.
type - String! Activity type (e.g. "goal_event", "community_post", "milestone_completed").
Example
{
  "communityId": "4",
  "communityName": "abc123",
  "content": "abc123",
  "id": "4",
  "timestamp": "abc123",
  "type": "xyz789"
}

UserAlly

Description

A friend/ally connection — another user in the current user allies network.

Fields
Field Name Description
firstName - String The ally user's given name.
id - ID! Public identifier for this ally relationship record.
lastName - String The ally user's family name.
mutualCount - Int! Number of mutual allies shared between the current user and this ally.
photo - UserPhoto The ally user's profile photo.
publicId - String! URL-safe public identifier of the ally user.
username - String The ally user's unique handle.
Example
{
  "firstName": "abc123",
  "id": "4",
  "lastName": "xyz789",
  "mutualCount": 123,
  "photo": UserPhoto,
  "publicId": "xyz789",
  "username": "abc123"
}

UserDetail

Description

Extended profile metadata for a user, stored as a JSON blob.

Fields
Field Name Description
data - String! JSON string containing arbitrary profile metadata (e.g. showcasedAchievements, onboarding state).
id - ID! Public identifier for this detail record.
Example
{
  "data": "xyz789",
  "id": "4"
}

UserFeedItem

Description

A single item in the user personal activity feed (home timeline).

Fields
Field Name Description
content - String! Human-readable text describing the feed event.
createdAtTime - String Unix timestamp (string) when this feed item was created.
detailsJson - String! JSON string with additional event metadata (e.g. related goal ID, user ID).
id - ID! Public identifier for this feed item.
kind - String! Feed item type (e.g. "goal_event", "encouragement_received", "milestone_completed").
Example
{
  "content": "abc123",
  "createdAtTime": "abc123",
  "detailsJson": "abc123",
  "id": 4,
  "kind": "xyz789"
}

UserNotification

Description

An in-app notification delivered to a user.

Fields
Field Name Description
acknowledged - Boolean! Whether the user has dismissed/read this notification.
content - String! Human-readable notification message.
createdAtTime - String Unix timestamp (string) when this notification was created.
detailsJson - String! JSON string with additional metadata (e.g. source user ID, goal ID).
id - ID! Public identifier for this notification.
kind - String! Notification category (e.g. "encouragement", "milestone_completed", "community_post").
Example
{
  "acknowledged": true,
  "content": "xyz789",
  "createdAtTime": "xyz789",
  "detailsJson": "abc123",
  "id": "4",
  "kind": "abc123"
}

UserPhoto

Description

A profile photo associated with a user.

Fields
Field Name Description
id - ID! Public identifier for this photo record.
imageUrl - String! URL of the profile photo image.
Example
{
  "id": "4",
  "imageUrl": "abc123"
}

UserStats

Description

Aggregated goal and achievement statistics for a user.

Fields
Field Name Description
categoriesUsed - [String!]! List of goal category names the user has set goals in.
completedGoals - Int! Number of goals the user has marked as completed.
encouragementsGiven - Int! Number of encouragements the user has sent to other users.
goalsCreatedCount - Int! Count of goals created (may differ from total_goals based on scope).
milestonesCompleted - Int! Number of milestones the user has completed.
milestonesCreated - Int! Number of milestone sub-goals the user has created.
totalGoals - Int! Total number of goals created by the user (including completed and deleted).
typesUsed - [String!]! List of goal type names the user has used.
Example
{
  "categoriesUsed": ["xyz789"],
  "completedGoals": 987,
  "encouragementsGiven": 123,
  "goalsCreatedCount": 987,
  "milestonesCompleted": 987,
  "milestonesCreated": 123,
  "totalGoals": 987,
  "typesUsed": ["xyz789"]
}

WordCloud

Description

A word and its frequency count, used for admin word cloud analytics.

Fields
Field Name Description
name - String! The word or token extracted from the data.
value - Int! Frequency count — how many times this word appears in the dataset.
Example
{"name": "abc123", "value": 123}