Meta · Schema

Meta Graph API Media

Represents media objects across Meta platforms including Facebook photos/videos and Instagram media (images, videos, carousels, reels, stories). Covers the Instagram Media node and Facebook Photo/Video nodes.

AdvertisingAnalyticsArtificial IntelligenceMessagingSocialSocial MediaVirtual Reality

Properties

Name Type Description
id string The unique identifier for the media object.
media_type string The type of media. IMAGE, VIDEO, and CAROUSEL_ALBUM are standard Instagram types; REEL and STORY are additional Instagram media types.
media_product_type string The surface where the media is published (Instagram-specific).
media_url string The URL of the media content. For videos this is the video URL; for images this is the image URL. Not returned for carousel albums.
thumbnail_url string The URL of the media thumbnail. Only available for VIDEO media types.
permalink string The permanent URL to the media on its platform (Instagram or Facebook).
shortcode string The shortcode identifier for the Instagram media (the code in the Instagram URL).
caption string The caption/description text of the media.
timestamp string The publication timestamp of the media in ISO 8601 format.
username string The username of the media owner (Instagram-specific).
owner object The owner of the media.
is_shared_to_feed boolean For Reels, whether the reel was also shared to the main feed.
like_count integer The number of likes on the media.
comments_count integer The number of comments on the media.
insights object Engagement insights for the media (Instagram Graph API).
children object Child media objects for CAROUSEL_ALBUM media types.
width integer The width of the media in pixels (Facebook photos/videos).
height integer The height of the media in pixels (Facebook photos/videos).
source string The source URL for the media file (Facebook video source URL).
images array Different size renditions of the image (Facebook Photo node).
format array Different format renditions of the video (Facebook Video node).
album object The album the photo belongs to (Facebook Photo node).
place object The location tagged in the media.
tags object Users tagged in the media.
created_time string The time the media was created (Facebook Photo/Video nodes), in ISO 8601 format.
updated_time string The time the media was last updated, in ISO 8601 format.
View JSON Schema on GitHub

JSON Schema

media.json Raw ↑
{
  "$id": "https://meta.com/schemas/graph-api/media.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Meta Graph API Media",
  "description": "Represents media objects across Meta platforms including Facebook photos/videos and Instagram media (images, videos, carousels, reels, stories). Covers the Instagram Media node and Facebook Photo/Video nodes.",
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier for the media object."
    },
    "media_type": {
      "type": "string",
      "enum": [
        "IMAGE",
        "VIDEO",
        "CAROUSEL_ALBUM",
        "REEL",
        "STORY"
      ],
      "description": "The type of media. IMAGE, VIDEO, and CAROUSEL_ALBUM are standard Instagram types; REEL and STORY are additional Instagram media types."
    },
    "media_product_type": {
      "type": "string",
      "enum": [
        "AD",
        "FEED",
        "STORY",
        "REELS"
      ],
      "description": "The surface where the media is published (Instagram-specific)."
    },
    "media_url": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the media content. For videos this is the video URL; for images this is the image URL. Not returned for carousel albums."
    },
    "thumbnail_url": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the media thumbnail. Only available for VIDEO media types."
    },
    "permalink": {
      "type": "string",
      "format": "uri",
      "description": "The permanent URL to the media on its platform (Instagram or Facebook)."
    },
    "shortcode": {
      "type": "string",
      "description": "The shortcode identifier for the Instagram media (the code in the Instagram URL)."
    },
    "caption": {
      "type": "string",
      "description": "The caption/description text of the media."
    },
    "timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "The publication timestamp of the media in ISO 8601 format."
    },
    "username": {
      "type": "string",
      "description": "The username of the media owner (Instagram-specific)."
    },
    "owner": {
      "type": "object",
      "description": "The owner of the media.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The user/page ID of the media owner."
        },
        "name": {
          "type": "string",
          "description": "The name of the media owner (Facebook)."
        },
        "username": {
          "type": "string",
          "description": "The username of the media owner (Instagram)."
        }
      }
    },
    "is_shared_to_feed": {
      "type": "boolean",
      "description": "For Reels, whether the reel was also shared to the main feed."
    },
    "like_count": {
      "type": "integer",
      "description": "The number of likes on the media."
    },
    "comments_count": {
      "type": "integer",
      "description": "The number of comments on the media."
    },
    "insights": {
      "type": "object",
      "description": "Engagement insights for the media (Instagram Graph API).",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The metric name (e.g. impressions, reach, engagement, saved, video_views)."
              },
              "period": {
                "type": "string",
                "description": "The aggregation period (e.g. lifetime)."
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "value": {
                      "type": "integer"
                    }
                  }
                }
              },
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "children": {
      "type": "object",
      "description": "Child media objects for CAROUSEL_ALBUM media types.",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "media_type": {
                "type": "string",
                "enum": [
                  "IMAGE",
                  "VIDEO"
                ]
              },
              "media_url": {
                "type": "string",
                "format": "uri"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      }
    },
    "width": {
      "type": "integer",
      "description": "The width of the media in pixels (Facebook photos/videos)."
    },
    "height": {
      "type": "integer",
      "description": "The height of the media in pixels (Facebook photos/videos)."
    },
    "source": {
      "type": "string",
      "format": "uri",
      "description": "The source URL for the media file (Facebook video source URL)."
    },
    "images": {
      "type": "array",
      "description": "Different size renditions of the image (Facebook Photo node).",
      "items": {
        "type": "object",
        "properties": {
          "height": {
            "type": "integer"
          },
          "width": {
            "type": "integer"
          },
          "source": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    },
    "format": {
      "type": "array",
      "description": "Different format renditions of the video (Facebook Video node).",
      "items": {
        "type": "object",
        "properties": {
          "embed_html": {
            "type": "string"
          },
          "filter": {
            "type": "string"
          },
          "height": {
            "type": "integer"
          },
          "width": {
            "type": "integer"
          },
          "picture": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    },
    "album": {
      "type": "object",
      "description": "The album the photo belongs to (Facebook Photo node).",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "place": {
      "type": "object",
      "description": "The location tagged in the media.",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "location": {
          "type": "object",
          "properties": {
            "latitude": {
              "type": "number"
            },
            "longitude": {
              "type": "number"
            },
            "city": {
              "type": "string"
            },
            "country": {
              "type": "string"
            }
          }
        }
      }
    },
    "tags": {
      "type": "object",
      "description": "Users tagged in the media.",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "x": {
                "type": "number",
                "description": "X-coordinate of the tag as a percentage of the image width (0-100)."
              },
              "y": {
                "type": "number",
                "description": "Y-coordinate of the tag as a percentage of the image height (0-100)."
              }
            }
          }
        }
      }
    },
    "created_time": {
      "type": "string",
      "format": "date-time",
      "description": "The time the media was created (Facebook Photo/Video nodes), in ISO 8601 format."
    },
    "updated_time": {
      "type": "string",
      "format": "date-time",
      "description": "The time the media was last updated, in ISO 8601 format."
    }
  },
  "additionalProperties": true,
  "examples": [
    {
      "id": "17895695668004550",
      "media_type": "IMAGE",
      "media_product_type": "FEED",
      "media_url": "https://scontent.cdninstagram.com/v/example-image.jpg",
      "permalink": "https://www.instagram.com/p/ABC123xyz/",
      "shortcode": "ABC123xyz",
      "caption": "Beautiful sunset at the beach #photography #nature",
      "timestamp": "2025-07-10T18:30:00+0000",
      "username": "examplephotographer",
      "like_count": 342,
      "comments_count": 15,
      "owner": {
        "id": "17841400123456789",
        "username": "examplephotographer"
      }
    },
    {
      "id": "17895695668009999",
      "media_type": "CAROUSEL_ALBUM",
      "media_product_type": "FEED",
      "permalink": "https://www.instagram.com/p/DEF456abc/",
      "shortcode": "DEF456abc",
      "caption": "Product launch highlights",
      "timestamp": "2025-08-01T12:00:00+0000",
      "username": "examplebrand",
      "like_count": 1580,
      "comments_count": 92,
      "children": {
        "data": [
          {
            "id": "17895695668010001",
            "media_type": "IMAGE",
            "media_url": "https://scontent.cdninstagram.com/v/carousel-1.jpg"
          },
          {
            "id": "17895695668010002",
            "media_type": "VIDEO",
            "media_url": "https://scontent.cdninstagram.com/v/carousel-2.mp4"
          }
        ]
      }
    }
  ]
}