IGPAPI
    Preparing search index...

    Interface RequestFeatures

    Explicit per-request wire capabilities, grouped by the app state they describe. Request builders set them in RequestContext.features; the platform edge derives the rest from the request and session state. A feature says the request may carry a header group; whether it is sent is the platform header resolver's decision, and its value the materializer's.

    interface RequestFeatures {
        analytics?: { apiAnalytics?: boolean; criticalApi?: boolean };
        bloks?: { prismControl?: boolean };
        body?: { gzip?: boolean; present?: boolean };
        experiments?: { saltIds?: boolean };
        graphql?: { prefetch?: boolean; purpose?: boolean };
        identifiers?: {
            familyDevice?: boolean;
            machineId?: boolean;
            metaUsdid?: boolean;
            pigeonSession?: boolean;
        };
        integrity?: { attestation?: boolean };
        navigation?: { chain?: boolean };
        transport?: { friendlyNameDefault?: boolean; tigonRetry?: boolean };
        zero?: { networkInterface?: boolean; rmdMap?: boolean };
    }
    Index

    Properties

    analytics?: { apiAnalytics?: boolean; criticalApi?: boolean }

    How the app classifies the request in x-fb-request-analytics-tags.

    Type Declaration

    • Optional ReadonlyapiAnalytics?: boolean

      Whether the request carries the API-analytics header group (priority, x-fb-friendly-name, x-fb-request-analytics-tags). Defaults to present; false on the launcher/mobileconfig config-sync surface, which the app sends without the group.

    • Optional ReadonlycriticalApi?: boolean

      critical_api request category (feed surfaces).

    bloks?: { prismControl?: boolean }

    Bloks rendering state the request reports.

    Type Declaration

    • Optional ReadonlyprismControl?: boolean

      The neutral control palette of the Bloks prism theme instead of the active (indigo) theme. Set on session-start jobs that the app still issues to the main host (e.g. push/register), which therefore cannot be marked session-start scope without changing their host.

    body?: { gzip?: boolean; present?: boolean }

    Request payload shape; derived by the edge from the request itself.

    experiments?: { saltIds?: boolean }

    Experiment (QE) state the request carries.

    Type Declaration

    • Optional ReadonlysaltIds?: boolean

      x-ig-salt-ids.

    graphql?: { prefetch?: boolean; purpose?: boolean }

    GraphQL request intent.

    Type Declaration

    • Optional Readonlyprefetch?: boolean

      The prefetch analytics purpose of the minimal GraphQL family.

    • Optional Readonlypurpose?: boolean

      x-graphql-request-purpose.

    identifiers?: {
        familyDevice?: boolean;
        machineId?: boolean;
        metaUsdid?: boolean;
        pigeonSession?: boolean;
    }

    Client identifiers the request stamps.

    Type Declaration

    • Optional ReadonlyfamilyDevice?: boolean

      x-ig-family-device-id.

    • Optional ReadonlymachineId?: boolean

      x-mid.

    • Optional ReadonlymetaUsdid?: boolean

      x-meta-usdid.

    • Optional ReadonlypigeonSession?: boolean

      x-pigeon-session-id.

    integrity?: { attestation?: boolean }

    Device integrity proofs the request carries.

    Type Declaration

    • Optional Readonlyattestation?: boolean

      x-ig-attest-params.

    navigation?: { chain?: boolean }

    Navigation state the request reports.

    Type Declaration

    • Optional Readonlychain?: boolean

      x-ig-nav-chain; derived from the recorded navigation when not set.

    transport?: { friendlyNameDefault?: boolean; tigonRetry?: boolean }

    Transport-level capabilities the app toggles per request. These do not produce a TypeScript-materialized header: the native transport owns the header, and the declared flag only opts it out.

    Type Declaration

    • Optional ReadonlyfriendlyNameDefault?: boolean

      The transport's URL-derived default x-fb-friendly-name. The transport emits it for any /api/v1 request the caller does not set one on; false suppresses the default. Wired from the analytics.apiAnalytics facet, so launcher/mobileconfig (which the app sends without a friendly name) opts out through the same feature.

    • Optional ReadonlytigonRetry?: boolean

      x-tigon-is-retry. The transport emits it by default; false suppresses it for requests the app issues without the Tigon retry marker — currently the Direct pending-requests preview poll in the 448 Android capture.

    zero?: { networkInterface?: boolean; rmdMap?: boolean }

    Zero-rating / routing-map state the request reports.

    Type Declaration

    • Optional ReadonlynetworkInterface?: boolean

      zero-http-network-interface; derived from the zero-campaign state when not set. A later, separate state from the routing map: the 448 capture carries x-fb-rmd before the interface appears.

    • Optional ReadonlyrmdMap?: boolean

      x-fb-rmd; derived from routing-map state when not set.