igpapi — Instagram private API Simulator for Node.js (API reference) 4.14.0
    Preparing search index...

    Interface AndroidHeaderSessionState

    The state the edge reads to derive request features: session state, the rendered navigation chain from NavigationWire, the process fact and the one app-profile wire fact the resolver takes. The resolver itself never sees raw state — only the normalized inputs this produces.

    interface AndroidHeaderSessionState {
        adaptiveUi?: boolean;
        msgrRegion?: string;
        navChain?: string;
        processStartedWithSession?: boolean;
        radioNetwork?: boolean;
        rmd?: MobileRmdState;
        saltIds?: string;
        sessionStartPhase?: "starting";
        zeroDeviceIds?: boolean;
        zeroInterface?: boolean;
        zeroRating?: boolean;
    }

    Hierarchy

    • Pick<MobileSessionState, "zeroInterface" | "sessionStartPhase" | "msgrRegion">
      • AndroidHeaderSessionState
    Index

    Properties

    adaptiveUi?: boolean

    Whether the presented app profile sends x-ig-is-adaptive-ui (MobileApplicationState.adaptiveUi): a profile fact, not request state.

    msgrRegion?: string

    The Direct message region the app learned from an IGRealtimeRegionHintQuery answer (data.xdt_igd_msg_region.region, e.g. FRC). The app persists it per account and reports it as x-msgr-region on its Direct-surface requests, in later processes too (the 451 warm launches carry FRC with no query of their own). Absent until an answer sets it; an empty stored value is a region the answer left empty and renders as the empty header on the Direct GraphQL requests only. See "Direct message region (x-msgr-region)" (packages/core/src/android/spec/direct-message-region-x-msgr-region.md).

    navChain?: string

    The rendered navigation chain; present once the session has a screen in front.

    processStartedWithSession?: boolean

    Whether this app process began with a stored session (MobileProcessStart).

    radioNetwork?: boolean

    Whether the device's network reports a radio (androidRadioNetworkOf); the radio half of the tasos family rides on it.

    The routing-map state the process reports (rmdReportedOf: the install's map once the process started evaluating it); absent until then.

    saltIds?: string

    The rendered x-ig-salt-ids of the flows running now (MobileUserFlows, saltIdsOf); absent when the app would send none.

    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 build 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.

    zeroDeviceIds?: boolean

    Device state: the device holds an uploaded zero-campaign attestation key and the presented build carries the zero-rating table. The ids (x-zero-a/d/f-device-id) ride with both facts; a request cannot declare them.

    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.rmdEvaluationStarted: the 448 build 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).

    zeroRating?: boolean

    Build wire fact: the presented profile carries the zero-rating table (MobileApplicationState.ZERO_HEADERS), so it sends x-zero-balance / x-zero-eh. A request cannot declare it.