OptionalbloksOptionaldirectThe mode the app's Direct inbox snapshot sends (direct_v2/inbox/).
Version-bound like the app version and capabilities: the presented Android
profile sets 2, and a profile that does not set it sends no mode.
OptionaldirectThe num_ai_bots the Direct search surface requests (direct_v2/search_gen_ai_bots/); absent renders 50.
OptionalFACEBOOK_OptionalGRAPHQL_GraphQL client doc ids keyed by friendly name. When an entry matches the
call's friendly name it overrides that call's literal clientDocId.
OptionalGRAPHQL_When true, GraphQL forms omit the pretty field (Instagram Android 448+).
OptionalGRAPHQL_Value of the GraphQL form server_timestamps field. Instagram Android 448+
sends the literal true; older traffic sent a unix timestamp. Undefined
keeps the legacy timestamp.
OptionallaunchThe launch wire the app build sends, as one fact: '451' for the 451
build's Android launch. It carries the feed/timeline block (the
personalization flag, is_non_feed_surface and the extended
session_level_signals), the appnetsession pair on the two feeds, the
shared launch additions, the inbox tray's graphql_www form, the
save-credentials placement and the full content-filter dictionary fan-out;
a profile without it sends the 448 launch wire (the 448 form, the feeds'
pair opt-out, five dictionaries, the graphql/query tray and the
after-feed prompt). One value, so a mixture cannot be represented.
Version-bound like the app version: the presented Android 451 profile
carries it and withDefaultVersionBoundFields fills it on a same-version
restore. The iOS 451 app sends a different feed form, so an iOS profile
does not carry it: the shared feed brick renders the Android form only.
OptionalRMD_The two trailing numbers of the no-valid-map x-fb-rmd value. They are
an app-internal constant, not derived from the routing-map fetch (see
RmdNoValidMapTimes).
OptionalshoppingThe shopping experiments the app's launch checks, one
IGShoppingExperimentCheckBool each, in this order. Version-bound: a
profile that does not set it sends the one default check
(shops_bau_impact).
OptionalZERO_Zero-rating header values per MobileZeroPhase. When absent the platform keeps its phase-independent zero-rating headers.
The build's active Bloks prism extended palette, once the app has read it: the
x-bloks-prism-extended-palette-grayand-polish-enabledflags. They are one configuration read, not two independent switches, but each has its own captured value per build, so each is declared: bothtrueon the 448 build1073357578of the client scenes, both 450 recordings and both 451 builds; both absent (renderedfalse) on the 448 fresh-2026-09-25 build1073357425; and the 429 archive'sclient-direct-themecaptures show a third combination (grayon,polishoff) that this profile cannot hold for the replay — seeMobileProcessBloksPrismStateand the palette section of AGENTS.md. The neutral control palette sendsfalsefor both on every build.