Public Instagram profiles and post feeds by handle, with hashtags and mentions parsed.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get Instagram Comments Fetches the comments on a public Instagram post or reel from its URL (`/p/`, `/reel/` or `/tv/` links, with or without the username segment). The first page returns the post (id, shortcode, caption, hashtags, mentions, likes and comments counts, owner, display image, images, video URL, DASH manifest, hasAudio flag, tagged location, and every carousel item as childPosts) plus the first comments; with includeMusic=true the post also carries music (audioId, artistName, songName) for the reel's licensed track or original sound; later pages return comments only. Each comment has text, timestamp, like count, reply count, and owner (username, verified flag, profile picture, hasdataLink to the profile endpoint). Supports token-based pagination via nextPageToken. Instagram sizes pages server-side (about 10 to 15 comments). Use for sentiment analysis, engagement research, or building comment datasets from posts discovered via the posts API, whose items carry a hasdataLink to this endpoint.
The URL of the Instagram post or reel, for example `https://www.instagram.com/p/Ddjis3vETcP/` or `https://www.instagram.com/instagram/reel/DcymgItMFao/`.
Also return the reel's sound (audio ID, artist and song title) in `post.music`, for both licensed tracks and original audio. This takes an extra request to Instagram on the first page and is ignored when `nextPageToken` is set. Default is false.
Defines the next page token. Use the `nextPageToken` value returned by the previous response. Omit it to fetch the first page.
Get Instagram Comments Fetches the comments on a public Instagram post or reel from its URL (`/p/`, `/reel/` or `/tv/` links, with or without the username segment). The first page returns the post (id, shortcode, caption, hashtags, mentions, likes and comments counts, owner, display image, images, video URL, DASH manifest, hasAudio flag, tagged location, and every carousel item as childPosts) plus the first comments; with includeMusic=true the post also carries music (audioId, artistName, songName) for the reel's licensed track or original sound; later pages return comments only. Each comment has text, timestamp, like count, reply count, and owner (username, verified flag, profile picture, hasdataLink to the profile endpoint). Supports token-based pagination via nextPageToken. Instagram sizes pages server-side (about 10 to 15 comments). Use for sentiment analysis, engagement research, or building comment datasets from posts discovered via the posts API, whose items carry a hasdataLink to this endpoint.
| Argument | Type | Description |
|---|---|---|
| url* | string | The URL of the Instagram post or reel, for example `https://www.instagram.com/p/Ddjis3vETcP/` or `https://www.instagram.com/instagram/reel/DcymgItMFao/`. |
| includeMusic | boolean | Also return the reel's sound (audio ID, artist and song title) in `post.music`, for both licensed tracks and original audio. This takes an extra request to Instagram on the first page and is ignored when `nextPageToken` is set. Default is false. |
| nextPageToken | string | Defines the next page token. Use the `nextPageToken` value returned by the previous response. Omit it to fetch the first page. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The URL of the Instagram post or reel, for example `https://www.instagram.com/p/Ddjis3vETcP/` or `https://www.instagram.com/instagram/reel/DcymgItMFao/`."
},
"includeMusic": {
"type": "boolean",
"description": "Also return the reel's sound (audio ID, artist and song title) in `post.music`, for both licensed tracks and original audio. This takes an extra request to Instagram on the first page and is ignored when `nextPageToken` is set. Default is false."
},
"nextPageToken": {
"type": "string",
"description": "Defines the next page token. Use the `nextPageToken` value returned by the previous response. Omit it to fetch the first page."
}
},
"additionalProperties": false
}Get Instagram Posts Fetches the latest posts of a public Instagram account by username (handle) and returns each post with caption, hashtags, mentions, like and comment counts, play counts on videos and Reels, image and video URLs, and timestamp. Supports token-based pagination via nextPageToken to walk older posts. Private accounts and handles that do not exist or are hidden from logged-out viewers return an error field instead of posts. Use to monitor competitor content, track engagement of creator posts, or build datasets of account content for vetting and analytics.
| Argument | Type | Description |
|---|---|---|
| limit | number | The maximum number of posts to retrieve per request. Defaults to 12. |
| handle* | string | The Instagram username of the account whose posts you want to scrape, without the `@` symbol. |
| nextPageToken | string | Defines the next page token. It is used for retrieving the next page results. Use the `nextPageToken` value returned by the previous response. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"handle"
],
"properties": {
"limit": {
"type": "number",
"description": "The maximum number of posts to retrieve per request. Defaults to 12."
},
"handle": {
"type": "string",
"description": "The Instagram username of the account whose posts you want to scrape, without the `@` symbol."
},
"nextPageToken": {
"type": "string",
"description": "Defines the next page token. It is used for retrieving the next page results. Use the `nextPageToken` value returned by the previous response."
}
},
"additionalProperties": false
}Get Instagram Profile Fetches a public Instagram profile by username (handle) and returns full name, biography, external link, profile picture URL, followers count, following count, and verified/private flags. Use to enrich CRM/lead records, verify influencer reach before outreach, monitor competitor accounts, or build datasets of creator metadata for vetting and analytics.
| Argument | Type | Description |
|---|---|---|
| handle* | string | The Instagram username of the profile you want to scrape, without the `@` symbol. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"handle"
],
"properties": {
"handle": {
"type": "string",
"description": "The Instagram username of the profile you want to scrape, without the `@` symbol."
}
},
"additionalProperties": false
}