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

    Variable TypeaheadRowSchemaConst

    TypeaheadRowSchema: Union<
        readonly [
            Struct<
                {
                    __typename: Literal<"unknown">;
                    item: Struct<
                        {
                            kind: Literal<"unknown">;
                            kindKey: optionalKey<String>;
                            raw: Codec<Json, Json, never, never>;
                        },
                    >;
                    key: String;
                },
            >,
            Struct<
                {
                    __typename: Literal<"XDTTypeaheadSearchKeyword">;
                    key: String;
                    keyword_lazified: Struct<
                        {
                            id: String;
                            name: String;
                            user: optional<
                                NullOr<
                                    Struct<
                                        {
                                            full_name: optional<(...)>;
                                            id: String;
                                            is_private: optional<(...)>;
                                            is_verified: optional<(...)>;
                                            latest_reel_media: optional<(...)>;
                                            profile_pic_url: optional<(...)>;
                                            search_serp_type: optional<(...)>;
                                            username: String;
                                        },
                                    >,
                                >,
                            >;
                        },
                    >;
                },
            >,
            Struct<
                {
                    __typename: Literal<"XDTTypeaheadSearchUser">;
                    key: String;
                    rank_token: optional<String>;
                    user: Struct<
                        {
                            full_name: optional<String>;
                            id: String;
                            is_private: optional<Boolean>;
                            is_verified: optional<Boolean>;
                            latest_reel_media: optional<NullOr<Number>>;
                            profile_pic_url: optional<String>;
                            search_serp_type: optional<NullOr<Number>>;
                            username: String;
                        },
                    >;
                },
            >,
            Struct<
                {
                    __typename: Literal<"XDTTypeaheadSearchHashtag">;
                    hashtag: Struct<
                        { id: String; media_count: optional<Number>; name: String },
                    >;
                    key: String;
                },
            >,
            Struct<
                {
                    __typename: Literal<"XDTTypeaheadSearchOverfetchedKeywords">;
                    key: String;
                    keywords: $Array<
                        Struct<
                            {
                                id: String;
                                name: String;
                                user: optional<
                                    NullOr<
                                        Struct<
                                            {
                                                full_name: ...;
                                                id: ...;
                                                is_private: ...;
                                                is_verified: ...;
                                                latest_reel_media: ...;
                                                profile_pic_url: ...;
                                                search_serp_type: ...;
                                                username: ...;
                                            },
                                        >,
                                    >,
                                >;
                            },
                        >,
                    >;
                    num_keywords_to_show: optional<Number>;
                    query_text: String;
                },
            >,
        ],
    > = ...

    One row of the field's typeahead list: the stream's result and the identity the list keys it by. The stream's results nest their id under the kind's own member (user.id, keyword_lazified.id, hashtag.id, an overfetched entry's query_text), so the row carries a key: the kind and the id, with the occurrence number among the rows of the same kind and id — never the row's position, so a retrace over a re-ordered answer still finds the row.