Skip to content

Variable: mediaSchema ​

ts
const mediaSchema: ZodObject<{
  caption: ZodOptional<ZodNullable<ZodObject<{
     text: ZodOptional<ZodString>;
  }, $loose>>>;
  code: ZodOptional<ZodString>;
  comment_count: ZodOptional<ZodNullable<ZodNumber>>;
  id: ZodOptional<ZodString>;
  image_versions2: ZodOptional<ZodObject<{
     candidates: ZodOptional<ZodArray<ZodObject<{
        height: ZodOptional<ZodNumber>;
        url: ZodOptional<ZodString>;
        width: ZodOptional<ZodNumber>;
     }, $loose>>>;
  }, $loose>>;
  like_count: ZodOptional<ZodNullable<ZodNumber>>;
  media_type: ZodOptional<ZodNumber>;
  pk: ZodOptional<ZodCoercedString<unknown>>;
  taken_at: ZodOptional<ZodNumber>;
  user: ZodOptional<ZodObject<{
     biography: ZodOptional<ZodString>;
     external_url: ZodOptional<ZodNullable<ZodString>>;
     follower_count: ZodOptional<ZodNullable<ZodNumber>>;
     following_count: ZodOptional<ZodNullable<ZodNumber>>;
     full_name: ZodOptional<ZodString>;
     is_private: ZodOptional<ZodBoolean>;
     is_verified: ZodOptional<ZodBoolean>;
     media_count: ZodOptional<ZodNullable<ZodNumber>>;
     pk: ZodOptional<ZodCoercedString<unknown>>;
     profile_pic_url: ZodOptional<ZodNullable<ZodString>>;
     username: ZodOptional<ZodString>;
  }, $loose>>;
  usertags: ZodOptional<ZodNullable<ZodObject<{
     in: ZodOptional<ZodArray<ZodObject<{
        position: ZodOptional<...>;
        user: ZodOptional<...>;
     }, $loose>>>;
  }, $loose>>>;
  video_versions: ZodOptional<ZodNullable<ZodArray<ZodObject<{
     height: ZodOptional<ZodNumber>;
     url: ZodOptional<ZodString>;
     width: ZodOptional<ZodNumber>;
  }, $loose>>>>;
}, $loose>;

A media post as the feed endpoints return it. A lean first cut: only the fields the SDK exposes are typed, the rest pass through, and each is optional/nullable because the API's shape varies by media type (photo/video/carousel) and context. media_type is 1 = photo, 2 = video, 8 = carousel. The author is the shared User model.

MIT License. Not affiliated with, endorsed or sponsored by Meta or Instagram.