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

    Variable FeedTimelineScreenConst

    FeedTimelineScreen: SwipeableFeedScreen<
        "FeedTimeline",
        "tab",
        { opening?: "cold_start"
        | "tab_open" },
        {
            lastTakenAt?: number;
            nextMaxId?: string;
            position?: number;
            reason: TimelineFeedReason;
            requestId?: string;
        },
        {
            entries: readonly (
                | {
                    key: string;
                    media: {
                        carousel_media?: readonly { pk: string }[];
                        code: string;
                        id: string;
                        injected?: { ad_id?: string } | null;
                        inventory_source?: string;
                        logging_info_token?: string;
                        media_type: number;
                        mezql_token?: string;
                        pk?: string;
                        product_type?: string;
                        taken_at?: number;
                        user?: { pk: string; username: string };
                    };
                    position: number;
                    slide?: number;
                    type: "post";
                }
                | {
                    key: string;
                    media: {
                        carousel_media?: readonly { pk: string }[];
                        code: string;
                        id: string;
                        injected?: { ad_id?: string } | null;
                        inventory_source?: string;
                        logging_info_token?: string;
                        media_type: number;
                        mezql_token?: string;
                        pk?: string;
                        product_type?: string;
                        taken_at?: number;
                        user?: { pk: string; username: string };
                    };
                    position: number;
                    type: "reel";
                }
                | {
                    key: string;
                    media: {
                        carousel_media?: readonly { pk: string }[];
                        code: string;
                        id: string;
                        injected?: { ad_id?: string } | null;
                        inventory_source?: string;
                        logging_info_token?: string;
                        media_type: number;
                        mezql_token?: string;
                        pk?: string;
                        product_type?: string;
                        taken_at?: number;
                        user?: { pk: string; username: string };
                    };
                    position: number;
                    type: "ad";
                }
                | {
                    key: string;
                    media: {
                        carousel_media?: readonly { pk: string }[];
                        code: string;
                        id: string;
                        injected?: { ad_id?: string } | null;
                        inventory_source?: string;
                        logging_info_token?: string;
                        media_type: number;
                        mezql_token?: string;
                        pk?: string;
                        product_type?: string;
                        taken_at?: number;
                        user?: { pk: string; username: string };
                    };
                    position: number;
                    source: string;
                    type: "explore_story";
                }
                | {
                    key: string;
                    position: number;
                    subtitle: string;
                    title: string;
                    type: "caught-up";
                }
                | {
                    key: string;
                    position: number;
                    posts: readonly {
                        id?: string;
                        media_type?: number;
                        user?: { pk: string; username: string };
                    }[];
                    title: string;
                    type: "threads";
                }
                | {
                    key: string;
                    position: number;
                    reels: readonly {
                        id?: string;
                        is_eof?: boolean
                        | null;
                        media_type?: number;
                        pk?: string;
                        user?: { pk: string; username: string };
                    }[];
                    title: string;
                    type: "suggested-reels";
                }
                | {
                    item: { kind: "unknown"; kindKey?: string; raw: Json };
                    key: string;
                    position: number;
                    type: "unknown";
                }
            )[];
            more_available: boolean;
            next_max_id?: string;
            requestId: string;
        },
        IgApiError
        | RequestError
        | ParseError
        | TransportError
        | ScreenDataError,

            | PlainJsonApiHttp
            | MobileSession
            | MobileDevice
            | MobileApplication
            | NavigationWire
            | MobileUserFlows
            | MobileProcessMobileConfig,
        IgApiError
        | RequestError
        | ParseError
        | TransportError
        | ScreenDataError,

            | PlainJsonApiHttp
            | MobileSession
            | MobileDevice
            | MobileApplication
            | NavigationWire
            | MobileNavigation
            | MobileUserFlows
            | MobileProcessMobileConfig,
        FeedTimelineActions,
        {
            at: "entries";
            by: "type";
            key: "key";
            source: ScreenItemNodes;
            variants: {
                ad: ScreenItemDefinition<
                    "FeedTimelineAd",
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        type: "ad";
                    },
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        type: "ad";
                    },
                    Record<never, never>,
                    never,
                    never,
                    {},
                    undefined,
                    never,
                >;
                "caught-up": ScreenItemDefinition<
                    "FeedTimelineCaughtUp",
                    {
                        key: string;
                        position: number;
                        subtitle: string;
                        title: string;
                        type: "caught-up";
                    },
                    {
                        key: string;
                        position: number;
                        subtitle: string;
                        title: string;
                        type: "caught-up";
                    },
                    Record<never, never>,
                    never,
                    never,
                    {},
                    undefined,
                    never,
                >;
                explore_story: ScreenItemDefinition<
                    "FeedTimelineExploreStory",
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        source: string;
                        type: "explore_story";
                    },
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        source: string;
                        type: "explore_story";
                    },
                    Record<never, never>,
                    never,
                    never,
                    {},
                    undefined,
                    never,
                >;
                post: ScreenItemDefinition<
                    "FeedTimelinePost",
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        slide?: number;
                        type: "post";
                    },
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        slide?: number;
                        type: "post";
                    },
                    FeedTimelinePostItemState,
                    never,
                    never,
                    {
                        like: (
                            self: ScreenHandle,
                            state: FeedTimelinePostState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            { data: ... } & { raw: ... }
                            | MediaLikeRestResponse & { raw: ... },

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | MobileUserFlows
                            | ScreenStack,
                        >;
                        likeCarouselChild: (
                            self: ScreenHandle,
                            state: FeedTimelinePostItemState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            { data: ... } & { raw: ... }
                            | MediaLikeRestResponse & { raw: ... },

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | SchemaError
                                | GraphqlRootFieldMissingError
                                | ScreenEnterConcurrentError
                                | CarouselSlideNotFoundError
                                | CarouselSlidesNotLoadedError,
                            | PlainJsonApiHttp
                            | Signature
                            | MobileSession
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | MobileUserFlows
                            | ScreenStack,
                        >;
                        open: (
                            self: ScreenHandle,
                            state: FeedTimelinePostState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ScreenDefinition<
                                    "PostOpenedFromLink",
                                    "screen",
                                    {
                                        feedPosition?: (...)
                                        | (...)
                                        | (...);
                                        loggingInfoToken?: (...) | (...);
                                        mediaId: string;
                                    },
                                    { carousel?: (...)
                                    | (...); mediaId: string; trackingToken: string },
                                    PostOpenedFromLinkState,

                                        | IgApiError
                                        | RequestError
                                        | ParseError
                                        | TransportError
                                        | ScreenDataError,
                                    PlainJsonApiHttp
                                    | MobileNavigation
                                    | AndroidThrottlingDetector,
                                    {
                                        like: (self: ..., state: ...) => ...;
                                        openComments: (self: ..., state: ...) => ...;
                                        repost: (self: ..., state: ...) => ...;
                                        swipeToSlide: (self: ..., state: ...) => ...;
                                    },
                                    Record<never, never>,
                                    never,
                                    "mediaId",
                                >,
                                [],
                                "button",
                                AndroidScreens,
                            >,
                            (
                                ...args: [],
                            ) => Effect<
                                AssembledHandle<
                                    "PostOpenedFromLink",
                                    "screen",
                                    { carousel?: ...; mediaId: ...; trackingToken: ... },
                                    { like: ...; openComments: ...; repost: ...; swipeToSlide: ... },
                                    Record<(...), (...)>,
                                    ScreenHandle,
                                    "required",
                                    true,
                                    "mediaId",
                                    AndroidScreens,
                                >,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenDataError
                                    | ScreenEnterConcurrentError
                                    | ScreenEdgeInputError,
                                | PlainJsonApiHttp
                                | MobileNavigation
                                | ScreenStack
                                | AndroidThrottlingDetector
                                | ScreenCatalog,
                            >,
                        >;
                        swipeToSlide: (
                            self: ScreenHandle,
                            state: FeedTimelinePostItemState,
                        ) => ScreenDataMember<
                            ScreenDataShape,
                            (
                                ...args: [index: number],
                            ) => Effect<
                                ScreenHandle,
                                ScreenDataActionFailure<(...) | (...)>,
                                MobileNavigation | ScreenStack,
                            >,
                        >;
                        unlikeCarouselChild: (
                            self: ScreenHandle,
                            state: FeedTimelinePostItemState,
                        ) => (
                            ...args: [],
                        ) => Effect<
                            ActionValue<string>,

                                | IgApiError
                                | RequestError
                                | ParseError
                                | TransportError
                                | ScreenEnterConcurrentError
                                | CarouselSlideNotFoundError
                                | CarouselSlidesNotLoadedError,
                            | MobileDevice
                            | GraphqlJsonHttp
                            | MobileApplication
                            | NavigationWire
                            | MobileNavigation
                            | ScreenStack,
                        >;
                    },
                    undefined,
                    never,
                >;
                reel: ScreenItemDefinition<
                    "FeedTimelineReel",
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        type: "reel";
                    },
                    {
                        key: string;
                        media: {
                            carousel_media?: readonly { pk: string }[];
                            code: string;
                            id: string;
                            injected?: { ad_id?: string } | null;
                            inventory_source?: string;
                            logging_info_token?: string;
                            media_type: number;
                            mezql_token?: string;
                            pk?: string;
                            product_type?: string;
                            taken_at?: number;
                            user?: { pk: string; username: string };
                        };
                        position: number;
                        type: "reel";
                    },
                    FeedTimelinePostState,
                    never,
                    never,
                    {
                        open: (
                            self: ScreenHandle,
                            state: FeedTimelinePostState,
                        ) => ScreenEdgeBound<
                            ScreenEdgeShape<
                                ReelsViewerScreenDefinition,
                                readonly [
                                    {
                                        chainingPosition?: (...)
                                        | (...)
                                        | (...);
                                        chainingSeedMediaId?: (...) | (...);
                                        chainingSessionId?: (...) | (...);
                                        clientPosition?: (...) | (...) | (...);
                                        mediaPctWatched?: (...) | (...) | (...);
                                        rankingSessionId?: (...) | (...);
                                        storyRankingToken?: (...) | (...);
                                    },
                                ],
                                "warm_start",
                                AndroidScreens,
                            >,
                            (
                                ...args: readonly [
                                    {
                                        chainingPosition?: (...)
                                        | (...)
                                        | (...);
                                        chainingSeedMediaId?: (...) | (...);
                                        chainingSessionId?: (...) | (...);
                                        clientPosition?: (...) | (...) | (...);
                                        mediaPctWatched?: (...) | (...) | (...);
                                        rankingSessionId?: (...) | (...);
                                        storyRankingToken?: (...) | (...);
                                    },
                                ],
                            ) => Effect<
                                AssembledHandle<
                                    "ReelsViewer",
                                    "tab",
                                    { entries: ...; next?: ...; opensOnOneReel?: ... },
                                    (...) & (...) & (...),
                                    ScreenFeedItems<(...)>,
                                    ScreenHandle,
                                    "required",
                                    true,
                                    never,
                                    AndroidScreens,
                                >,

                                    | IgApiError
                                    | RequestError
                                    | ParseError
                                    | TransportError
                                    | ScreenDataError
                                    | ScreenEnterConcurrentError
                                    | ScreenEdgeInputError,
                                | PlainJsonApiHttp
                                | Signature
                                | MobileSession
                                | MobileDevice
                                | GraphqlJsonHttp
                                | MobileApplication
                                | NavigationWire
                                | MobileNavigation
                                | MobileUserFlows
                                | ScreenStack
                                | AndroidThrottlingDetector
                                | AndroidClientAddress
                                | ScreenCatalog,
                            >,
                        >;
                    },
                    undefined,
                    never,
                >;
                "suggested-reels": ScreenItemDefinition<
                    "FeedTimelineSuggestedReels",
                    {
                        key: string;
                        position: number;
                        reels: readonly {
                            id?: string;
                            is_eof?: boolean
                            | null;
                            media_type?: number;
                            pk?: string;
                            user?: { pk: string; username: string };
                        }[];
                        title: string;
                        type: "suggested-reels";
                    },
                    {
                        key: string;
                        position: number;
                        reels: readonly {
                            id?: string;
                            is_eof?: boolean
                            | null;
                            media_type?: number;
                            pk?: string;
                            user?: { pk: string; username: string };
                        }[];
                        title: string;
                        type: "suggested-reels";
                    },
                    Record<never, never>,
                    never,
                    never,
                    {},
                    undefined,
                    never,
                >;
                threads: ScreenItemDefinition<
                    "FeedTimelineThreads",
                    {
                        key: string;
                        position: number;
                        posts: readonly {
                            id?: string;
                            media_type?: number;
                            user?: { pk: string; username: string };
                        }[];
                        title: string;
                        type: "threads";
                    },
                    {
                        key: string;
                        position: number;
                        posts: readonly {
                            id?: string;
                            media_type?: number;
                            user?: { pk: string; username: string };
                        }[];
                        title: string;
                        type: "threads";
                    },
                    Record<never, never>,
                    never,
                    never,
                    {},
                    undefined,
                    never,
                >;
                unknown: ScreenItemDefinition<
                    "FeedTimelineUnknown",
                    {
                        item: { kind: "unknown"; kindKey?: string; raw: Json };
                        key: string;
                        position: number;
                        type: "unknown";
                    },
                    {
                        item: { kind: "unknown"; kindKey?: string; raw: Json };
                        key: string;
                        position: number;
                        type: "unknown";
                    },
                    Record<never, never>,
                    never,
                    never,
                    {},
                    undefined,
                    never,
                >;
            };
        },
        never,
        never,
        never,
    > = ...

    FeedTimeline, the main feed (Android): the posts, reels, ads and Explore stories of the home tab. Its one request is the feed/timeline wire of the @igpapi/mobile brick — POST api/v1/feed/timeline/ with its form and headers — sent once per page: by enter, by nextPage and by a swipeToNext that ran out of loaded items.

    Visible: one page — items, that page's posts, reels, ads and Explore stories — and current, the post in focus. Actions: nextPage (the instance of the next page, the feed's raw pagination; undefined at the end), swipeToNext (the next item in focus across pages; undefined at the end); an item's open leads where the item kind opens — a post to the post screen, a reel to the reels viewer — and a post's like is the feed-surface like.

    The app keeps one post in focus, so this is a swipeable feed: an item enters when it comes in front and leaves when the next swipe moves it away. The timeline's items have no enter or leave of their own yet, so both send nothing.

    The opening is the screen's input: the launch declaration passes cold_start (an absent opening means the same) and a later tab open passes tab_open. The cold start is the app's fetch: reason=cold_start_fetch with is_pull_to_refresh=0, and the brick adds x-ig-app-start-request, x-ig-accept-hint and the connection measurements only to that opening; a later tab open reports a warm start. A page after the opening is reason=pagination with max_id and carries none of those headers, although the cursor keeps the opening's reason. The request id is made by the first answer's request and rides on the answer into the state, so every later page keeps it; start only names the reason. The first answer goes out before the screen comes to front. The state is only the cursor of the next page, continued by next_max_id.

    The items' enter and leave send nothing: the app logs Pigeon impression and view-time events for the post in focus, but the Simulator does not decode them into a preset yet. The screen emits no telemetry of its own.