Skip to main content
Glama
subzeroid

HikerAPI — Instagram MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HIKERAPI_KEYYesYour HikerAPI access key (sent as x-access-key header)
HIKERAPI_URLNoBase URL. Default: https://api.hikerapi.com (alias https://api.instagrapi.com)
HIKERAPI_TAGSNoWhitelist: only include operations with these tags (comma-separated)
HIKERAPI_SPEC_URLNoOpenAPI spec URL. Default: ${HIKERAPI_URL}/openapi.json
HIKERAPI_TIMEOUT_MSNoPer-request timeout for API calls. Default: 30000
HIKERAPI_EXCLUDE_TAGSNoBlacklist: additional tags to exclude (on top of default Legacy,System)
HIKERAPI_MAX_SPEC_BYTESNoMax bytes read from the OpenAPI spec. Default: 8388608 (8 MB)
HIKERAPI_SPEC_TIMEOUT_MSNoTimeout for the startup spec fetch. Default: 60000
HIKERAPI_MAX_RESPONSE_BYTESNoMax bytes read from each API response. Default: 10485760 (10 MB)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_v2_fbsearch_topsearchA

Search Instagram for top content by keyword. Use it for a broad first look; use get_v2_fbsearch_accounts to search only accounts, get_v2_fbsearch_reels only reels and get_v1_search_hashtags only hashtags. Paginate with next_max_id from the previous response. Live request to Instagram, billed per call. (GET /v2/fbsearch/topsearch)

get_v2_media_commentsA

Get comments on an Instagram post, about 15 per call. Pass the media id; for the next page pass the page id from the previous response as page_id. Use get_v2_media_comments_replies for replies under one comment and get_v2_media_likers for users who liked the post. Live request to Instagram, one billed request per page. (GET /v2/media/comments)

get_v2_user_by_usernameA

Get an Instagram profile by username (without @). Use it when you have a handle; use get_v2_user_by_id when you already know the numeric user id (faster), and get_gql_user_about for the "About this account" panel. Returns the user object; pass its pk as the user id to the other user tools. Live request to Instagram, one billed request per call. (GET /v2/user/by/username)

get_gql_user_mediasA

List an Instagram user's posts, one page per call. Use it to read an account's feed; use get_v2_user_clips for reels only and get_v2_user_tag_medias for posts the user is tagged in. Pass user_id; for the next page pass the cursor from the previous response as profile_grid_items_cursor. flat=true flattens nested media objects into a single list. Live request to Instagram, billed per call. (GET /gql/user/medias)

get_v2_user_storiesA

Get an Instagram user's active stories by user id. Use it when you have the id; use get_v2_user_stories_by_username when you only have a handle and get_v2_user_highlights for saved highlight collections. force=true skips the account privacy check. Live request to Instagram, billed as 2 requests per call. (GET /v2/user/stories)

get_v2_user_by_idA

Get an Instagram profile by numeric user id. Use it when you already have the id from another tool; use get_v2_user_by_username when you only have a handle. Returns the same user object. Live request to Instagram, billed per call. (GET /v2/user/by/id)

get_v2_user_clipsA

List an Instagram user's reels (short videos), one page per call. Use it for reels only; use get_gql_user_medias for all posts. Pass user_id; for the next page pass next_page_id from the previous response as page_id. Live request to Instagram, billed per call. (GET /v2/user/clips)

get_gql_user_repostsA

List content an Instagram user has reposted, one page per call. Use get_gql_user_medias for the user's own posts. Pass user_id; for the next page pass the cursor from the previous response as repost_next_max_id. flat=true returns a simple items list. Live request to Instagram, billed per call. (GET /gql/user/reposts)

get_v2_user_stories_by_usernameA

Get an Instagram user's active stories by username. Use it only when you have a handle and not the user id: it is slower than get_v2_user_stories and billed as 3 requests per call instead of 2. Live request to Instagram. (GET /v2/user/stories/by/username)

get_v2_user_tag_mediasA

List posts in which an Instagram user is tagged, one page per call. Use it to see who features an account; use get_gql_user_medias for the user's own posts. Pass user_id; for the next page pass next_page_id from the previous response as page_id. Live request to Instagram, billed per call. (GET /v2/user/tag/medias)

get_v2_user_highlightsA

List an Instagram user's story highlights (saved story collections) by user id, one page per call. Use get_v2_highlight_by_id to open one highlight and get_v2_user_highlights_by_username when you only have a handle. For the next page pass next_page_id from the previous response as page_id (amount is ignored). Live request to Instagram, billed as 2 requests per call. (GET /v2/user/highlights)

get_v2_user_highlights_by_usernameA

List an Instagram user's story highlights by username, one page per call. Use it only when you have a handle and not the user id: it is slower than get_v2_user_highlights and billed as 3 requests per call instead of 2. For the next page pass next_page_id from the previous response as page_id. Live request to Instagram. (GET /v2/user/highlights/by/username)

get_v1_user_search_followingA

Search within the accounts an Instagram user follows by name or username. Use it to check whether a user follows specific accounts; use get_g2_user_following to list all of them. Pass user_id and query; force=true skips the account privacy check. Live request to Instagram, billed per call. (GET /v1/user/search/following)

get_v1_user_search_followersA

Search within an Instagram user's followers by name or username. Use it to check whether specific accounts follow a user; use get_g2_user_followers to list all followers. Pass user_id and query; force=true skips the account privacy check. Live request to Instagram, billed per call. (GET /v1/user/search/followers)

get_g2_user_followersA

List accounts that follow an Instagram user, one page per call. Use it to page through the follower list; use get_v1_user_search_followers to look for specific names among them and get_g2_user_following for accounts the user follows. Pass user_id; for the next page pass the cursor from the previous response as page_id. Live request to Instagram, one billed request per page. (GET /g2/user/followers)

get_g2_user_followingA

List accounts an Instagram user follows, one page per call. Use it to page through the following list; use get_v1_user_search_following to look for specific names in it and get_g2_user_followers for the user's followers. Pass user_id; for the next page pass the cursor from the previous response as page_id. Live request to Instagram, one billed request per page. (GET /g2/user/following)

get_v2_user_suggested_profilesA

Get the accounts Instagram suggests as related to a given user. Use it to find similar accounts; use get_v2_fbsearch_accounts to search accounts by keyword instead. Pass user_id; expand_suggestion=true returns more detail per account. Live request to Instagram, billed per call. (GET /v2/user/suggested/profiles)

get_gql_user_aboutA

Get the "About this account" panel for an Instagram user id: verified status, country of registration, account creation date and former usernames. Use it for account provenance checks; use get_v2_user_by_id for the regular profile. Live request to Instagram, billed per call. (GET /gql/user/about)

get_v2_media_info_by_codeA

Get an Instagram post or reel by its shortcode (the part after /p/ or /reel/ in the link). Use get_v2_media_info_by_url when you have a full link and get_v2_media_info_by_id for a numeric media id. Returns the media object, or 404 for deleted or unavailable posts; promoted (ad) posts may also return 404. User tags are not included for videos, use get_gql_media_usertags for those. Live request to Instagram, billed per call. (GET /v2/media/info/by/code)

get_v2_media_comments_repliesA

Get replies under one comment of an Instagram post. Use it to read a thread; use get_v2_media_comments for the top-level comments. Pass media_id and comment_id (both from the comments tool); paginate with min_id from the previous response. Live request to Instagram, billed per call. (GET /v2/media/comments/replies)

get_v2_media_likersA

Get users who liked an Instagram post, by media id. Use get_gql_comment_likers_chunk for likers of a single comment and get_v2_media_comments for commenters. Live request to Instagram, billed per call. (GET /v2/media/likers)

get_v2_media_info_by_urlA

Get an Instagram post or reel by its link (instagram.com/p/... or /reel/...). Use get_v2_media_info_by_code for a bare shortcode. Returns the media object, 404 for deleted or unavailable posts and 400 for links that are not posts: use get_v2_story_by_url for story links and get_v1_share_by_url for /s/ share links. Promoted (ad) posts may also return 404. Live request to Instagram, billed per call. (GET /v2/media/info/by/url)

get_v2_media_info_by_idA

Get an Instagram post or reel by numeric media id. Use get_v2_media_info_by_code for a shortcode and get_v2_media_info_by_url for a full link. Returns the media object, or 404 for deleted or unavailable posts; promoted (ad) posts may also return 404. User tags are not included for videos, use get_gql_media_usertags for those. Live request to Instagram, billed per call. (GET /v2/media/info/by/id)

get_gql_media_usertagsA

Get the users tagged in Instagram videos; pass up to 10 media ids in media_ids. Use it for reels and videos, because the get_v2_media_info_* tools do not return user tags for video. Live request to Instagram, billed per call. (GET /gql/media/usertags)

get_gql_comment_likers_chunkA

Get users who liked one comment on an Instagram post, one page per call. Pass comment_id and media_id; paginate with end_cursor from the previous response. Use get_v2_media_likers for likers of the post itself. Live request to Instagram, billed per call. (GET /gql/comment/likers/chunk)

get_v1_search_hashtagsA

Search Instagram hashtags by keyword. Use it when unsure of the exact tag; use get_v1_hashtag_by_name for one known hashtag. Live request to Instagram, billed per call. (GET /v1/search/hashtags)

get_v2_fbsearch_reelsA

Search Instagram reels by keyword. Use it to find short videos about a topic; use get_v1_hashtag_medias_clips_chunk for reels under one specific hashtag. Paginate with reels_max_id and rank_token from the previous response. Live request to Instagram, billed per call. (GET /v2/fbsearch/reels)

get_v2_fbsearch_accountsA

Search Instagram accounts by keyword. Use it to find a profile when you do not know the exact handle; use get_v2_user_by_username for an exact handle. Paginate with page_token from the previous response. Live request to Instagram, billed per call. (GET /v2/fbsearch/accounts)

get_v1_fbsearch_placesA

Search Instagram places by name (query), optionally with lat and lng. Use it to find a location id for get_g2_location_by_id and the location media tools; use get_v1_location_search when you only have coordinates. Live request to Instagram, billed per call. (GET /v1/fbsearch/places)

get_v1_search_musicA

Search Instagram music tracks by keyword (song or artist). Use get_v2_track_by_id for one known track. Live request to Instagram, billed per call. (GET /v1/search/music)

get_v2_hashtag_medias_topA

List top posts under an Instagram hashtag, one page per call. Use get_v2_hashtag_medias_recent for the newest posts and get_v1_hashtag_medias_clips_chunk for reels only. Pass name without #; for the next page pass next_page_id from the previous response as page_id. Live request to Instagram, billed per call. (GET /v2/hashtag/medias/top)

get_v2_hashtag_medias_recentA

List recent posts under an Instagram hashtag, one page per call. Use get_v2_hashtag_medias_top for top posts and get_v1_hashtag_medias_clips_chunk for reels only. Pass name without #; for the next page pass next_page_id from the previous response as page_id. Live request to Instagram, billed per call. (GET /v2/hashtag/medias/recent)

get_v1_hashtag_by_nameA

Get an Instagram hashtag by exact name (no # and no special characters). Use it for the hashtag's own info; use get_v2_hashtag_medias_top or get_v2_hashtag_medias_recent for its posts and get_v1_search_hashtags when unsure of the exact tag. Live request to Instagram, billed per call. (GET /v1/hashtag/by/name)

get_v1_hashtag_medias_clips_chunkA

List reels under an Instagram hashtag, one page per call. Use get_v2_hashtag_medias_top or get_v2_hashtag_medias_recent for all post types and get_v2_fbsearch_reels to search reels by free text. Pass name without #; paginate with max_id from the previous response. Live request to Instagram, billed per call. (GET /v1/hashtag/medias/clips/chunk)

get_v2_track_by_idA

Get an Instagram music track by track_id. Use get_v1_search_music to find tracks by keyword. For the next page pass next_page_id from the previous response as page_id. Live request to Instagram, billed per call. (GET /v2/track/by/id)

get_g2_location_by_idA

Get an Instagram location by id: name, latitude/longitude, category and description. Use get_v1_fbsearch_places or get_v1_location_search to find the id first, and the location media tools for posts made there. Live request to Instagram, billed per call. (GET /g2/location/by/id)

get_v1_location_medias_recent_chunkA

List recent posts made at an Instagram location, one page per call. Pass location_pk; paginate with max_id from the previous response. Use get_v1_location_medias_top_chunk for top posts. Live request to Instagram, billed per call. (GET /v1/location/medias/recent/chunk)

get_v1_location_searchA

Find Instagram locations at a coordinate: pass lat and lng. Use get_v1_fbsearch_places to search places by name instead. Live request to Instagram, billed per call. (GET /v1/location/search)

get_v1_location_medias_top_chunkA

List top posts made at an Instagram location, one page per call. Pass location_pk; paginate with max_id from the previous response. Use get_v1_location_medias_recent_chunk for the newest posts. Live request to Instagram, billed per call. (GET /v1/location/medias/top/chunk)

get_v2_story_by_urlA

Get one Instagram story by its link. For share links that contain /s/, call get_v1_share_by_url first to resolve them. Use get_v2_story_by_id when you have the id. Live request to Instagram, billed per call. (GET /v2/story/by/url)

get_v2_story_by_idA

Get one Instagram story by its id. Use get_v2_story_by_url when you have a story link and get_v2_user_stories to list a user's active stories. Live request to Instagram, billed per call. (GET /v2/story/by/id)

get_v2_highlight_by_idA

Get one Instagram story highlight by id. Use get_v2_user_highlights to list a user's highlights and get_v1_highlight_by_url when you have a link. Live request to Instagram, billed per call. (GET /v2/highlight/by/id)

get_v1_highlight_by_urlA

Get one Instagram story highlight by its link. For share links that contain /s/, call get_v1_share_by_url first to resolve them. Use get_v2_highlight_by_id when you have the id. Live request to Instagram, billed per call. (GET /v1/highlight/by/url)

get_v1_share_by_urlA

Resolve an Instagram share link (a URL that contains /s/) to the object it points to: returns its id (pk) and type. Works for stories and highlights only; then call get_v2_story_by_id or get_v2_highlight_by_id with the id. For post links use get_v2_media_info_by_url. Live request to Instagram, billed per call. (GET /v1/share/by/url)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 44 tools

Disambiguation4/5

The tools cover many distinct Instagram resources and actions, and descriptions explicitly cross-reference alternatives such as by id vs username vs URL vs shortcode, or top vs recent vs clips. While no two tools are truly interchangeable, the sheer number of near-variants increases cognitive load and misselection risk.

Naming Consistency4/5

All tools use a get_ + lowercase snake_case convention, making the pattern predictable. Minor inconsistency comes from mixed API-version prefixes (v1, v2, gql, g2) and compound tokens like fbsearch, usertags, and clips_chunk, but the naming remains readable and largely consistent.

Tool Count2/5

44 tools far exceeds the typical 3-15 range and includes many access-method variants that could be consolidated into fewer flexible tools. While each maps to a real endpoint, the set is heavy and likely to overwhelm tool selection.

Completeness4/5

The surface covers users, media, comments, likes, stories, highlights, search, hashtags, locations, music, followers/following, suggestions, and account provenance, giving broad read-only Instagram coverage. Gaps exist for less common data such as live videos, saved media, or media by music track, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues