IGPAPI
    Preparing search index...

    Interface MobileSessionState

    interface MobileSessionState {
        adsOptOut: boolean;
        appStartPhase?: "cold";
        appStartTimeMs?: number;
        authorization?: string;
        bandwidth?: MobileBandwidthSample;
        challenge?: Record<string, unknown>;
        checkpoint?: Record<string, unknown>;
        clientSessionIdLifetime: number;
        dsUserId?: string;
        familyDeviceIdBound?: boolean;
        igWWWClaim?: string;
        navChain?: string;
        navigation?: MobileNavigationState;
        passwordEncryptionKeyId?: string;
        passwordEncryptionPubKey?: string;
        pigeonSessionIdLifetime: number;
        regionHint?: string;
        rmd?: MobileRmdState;
        rur?: string;
        sessionStartPhase?: "starting";
        shbid?: string;
        shbts?: string;
        thumbnailCacheBustingValue: number;
        xMetaUsdid?: string;
        xMid?: string;
        zeroInterface?: boolean;
        zeroPhase?: MobileZeroPhase;
    }
    Index

    Properties

    adsOptOut: boolean
    appStartPhase?: "cold"

    Set while the app is in its cold-start window; requests created in this window carry the app_start_tag analytics tag.

    appStartTimeMs?: number

    App process start clock in milliseconds, captured when the cold-start window opens. Requests that report the app-start clock (x-ig-app-start-time, the 448 feed/reels_tray) read it from here.

    authorization?: string

    Bandwidth estimator state, accumulated from completed transfers. Absent until the first response; rendered through bandwidthHeaders.

    challenge?: Record<string, unknown>

    Response when challenge data was purposefully fetched from the checkpoint URL. Set by challenge.route().

    checkpoint?: Record<string, unknown>

    Response when a request got a checkpoint error (challenge_required). Set automatically by the error router.

    clientSessionIdLifetime: number

    Random lifetime in ms for clientSessionId rotation (20min–24h). Generated once per device.

    dsUserId?: string
    familyDeviceIdBound?: boolean

    Whether the app has bound the device family id to its FX/switcher session. Absent (false) while the switcher still probes with an empty family_device_id (FxIgXavSwitcherBadgingDataQuery); set by BindFamilyDeviceId at the point the capture flips (the first two post-login probes send "", the later ones the device family id).

    igWWWClaim?: string
    navChain?: string

    Legacy serialized nav chain carried over from pre-Effect snapshots. Never rendered; the wire x-ig-nav-chain comes from navigation.

    App navigation state (screen in front + session back stack), changed by the navigation events below and rendered by the platform header layer. See mobile.navigation.ts.

    passwordEncryptionKeyId?: string
    passwordEncryptionPubKey?: string
    pigeonSessionIdLifetime: number

    Random lifetime in ms for pigeonSessionId rotation (20min–24h). Generated once per device.

    regionHint?: string

    Routing-map (RMD) state reported on every request once the app has started evaluating its routing map. Absent until then.

    rur?: string
    sessionStartPhase?: "starting"

    Set while the app is running the jobs it launches at user-session creation (see RequestScope's session-start). Requests issued in this window omit the x-pigeon-session-id header: the 448 capture carries it on the pre-login and late-session families but not on the post-login session-start burst (sequences 23–35), where it reappears from the request after the burst.

    shbid?: string
    shbts?: string
    thumbnailCacheBustingValue: number
    xMetaUsdid?: string

    Pre-computed x-meta-usdid HTTP header value, reused byte-identical on every request until the next USDID re-register. Filled by postUsdidRegistration after a successful mutation, so the registration request itself carries no header on a fresh install (only a value cached from an earlier accepted registration is ever sent). Not persisted across processes by default (the signature embeds a timestamp).

    xMid?: string
    zeroInterface?: boolean

    Set once the app has started its zero-rating campaign evaluation; the zero-http-network-interface header is reported from then on. A separate concept from MobileSessionState.rmd: the 448 capture carries x-fb-rmd already on the Loom config request but the network interface only from the zero-campaign request that follows it (see StartZeroInterface).

    zeroPhase?: MobileZeroPhase

    Zero-rating phase of the session. Absent (older snapshots) means authenticated when authorization is set and logged-out otherwise; read it through zeroPhaseOf.