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. |
JSON Schema
{
"$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"
}
]
}
}
]
}