Fields
userUser!accountDeletionPreviewAccountDeletionPreview!Counts used by account settings before deleting the viewer's account. Mirrors the server-side deletion resolver so the warning describes the active purchases and recurring membership billing that deletion will affect.
passkeys[Passkey!]!sessions[UserSession!]!The viewer's active sign-in sessions, most-recently-used first. Viewer-owned.
teams[Team!]!businesses[Business!]!participatingBusinesses[Business!]!Businesses the viewer has a participant record with (has registered or purchased from), as opposed to ones they own or staff. Used to surface per-business email-marketing consent controls on the account page; clients filter to those with emailMarketing.collecting.
organizations[Organization!]!Organizations the current user staffs or owns.
purchasesProductPurchaseConnection!Every product purchase owned by the viewer, across all the participants linked to their account. Cursor-paginated; default page size 50, clamped to [1, 100]. Sort order is purchasedAt DESC, id ASC. Each ProductPurchase carries its business via purchase.participant.business, so consumers that want to group client-side can do so without a separate field.
availableProductsByBusiness[BusinessAvailableProducts!]!giftCards[ProductPurchase!]!Gift cards the current user owns with balanceRemaining > 0 — either ones they bought for themselves or ones gifted to and redeemed by them. Used by the customer "My gift cards" page. Cards belong to one business each; the balance can be applied at checkout for that business.
registrationsActivityRegistrationConnection!Activity registrations that belong on the viewer's account schedule — the union of registrations attended by one of the viewer's participants and registrations the viewer booked on someone else's behalf (bookedByUserId === viewer). Cursor-paginated; default page size 50, clamped to [1, 100]. Sort order depends on the time filter:
upcoming: sessions in chronological order (startAt ASC, id ASC).past/all(default): most recent first (startAt DESC, id ASC).
The cursor encodes {startAt, id} so paging always advances through the user-visible chronological order rather than the registration's creation time. The upcoming filter also restricts to non-cancelled registrations whose session has yet to start; past returns cancelled registrations alongside sessions whose startAt is in the past.
When payment: paidOnly is passed (typically without a time filter), the feed switches to a session-optional view ordered by COALESCE(session.startAt, registration.createdAt) DESC so the activity-level "league registration" (which has no session) surfaces alongside any individually-paid session drop-ins, with the free per-match comp spots dropped.
Arguments (8)
afterStringstatus[ActivitySessionStatus!]Session-status filter shared with the admin session lists so the account schedule reads the same way: scheduled / active / completed refer to the session's own status and only match registrations the viewer did not cancel; cancelled matches rows where the session OR the registration is cancelled. Supersedes the legacy time argument — when both are passed, status wins. Ignored when empty.
businesses[ID!]Restrict to registrations at any of the listed businesses (GraphQL business IDs). Null or empty means "no business constraint".
activityTypes[ActivityType!]Restrict to registrations whose activity has any of the listed types. Null or empty means "no type constraint".
Explicit ordering. startAsc/startDesc order by the session's start time; createdAsc/createdDesc by when the registration was booked. When unset, falls back to the legacy time-derived order (upcoming ascending, everything else most-recent-first).
registrationBusinesses[Business!]!Businesses the viewer has at least one registration with — the stable option list for the account schedule's business filter. Unlike deriving options from the current registrations page, this set does not shrink as filters or pagination narrow the list. Excludes demo tenants on the shared account surface (mirroring registrations) and is ordered by business name.
registrationActivityTypes[ActivityType!]!Activity types appearing across the viewer's registrations — the stable option list for the account schedule's activity-type filter. Same demo-tenant scoping as registrationBusinesses; alphabetical.
challengeRegistrationsChallengeRegistrationConnection!Challenge registrations that belong to the viewer through linked participant records. Cursor-paginated; default page size 50, clamped to [1, 100]. Newest registrations are returned first.
registrationActivityRegistrationLook up a single activity registration by ID. Returns null when the registration doesn't exist or doesn't belong to a participant linked to the current user.
Arguments (1)
idID!calendarCalendarUrl!paymentMethods[SavedPaymentMethod!]!Saved Stripe PaymentMethods attached to the viewer's customer record. Card-only for v1 — bank accounts, Apple/Google Pay surfaces are out of scope. The default-flagged entry is what off-session charges (waitlist auto-promote, future subscription dunning) fall back to when no per-flow card is reserved.
observerUserIf the current session was initiated by an admin observer, the admin user. Null for normal sessions.
accountUrlString!URL for the user's account page, on the accounts subdomain.
internalAdminBoolean!Whether the current user holds the InternalPermission.Admin flag — the gate for the entire internal subdomain and platform-admin actions.
features[Feature!]!User-scoped platform feature flags currently enabled for the viewer. Only enabled flags appear; absence means the feature is off. Business- scoped features (e.g. leagues) are read from Business.features, not here.
families[Family!]!Households the viewer belongs to (as a manager, guardian, or — in principle — child, though children can't sign in). Empty until the viewer creates or is invited to a family.
managedChildren[FamilyMember!]!Every child the viewer manages, across all the families they're a manager or guardian of. The convenience list behind the booking participant picker.