Instagram Post & Reel Search (by Keyword)
omnial/instagram-general-search
Given a search keyword, returns matching public Instagram posts: caption text and hashtags, engagement counts (likes, comments, plays, shares), post timing, video details, and the public account that posted each one. A returned pagination token can be passed back in to fetch the next page of matches.
Price
Up to $0.0041 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Data from Instagram.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/instagram-general-search" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/instagram-general-search" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/instagram-general-search", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/instagram-general-search", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0041 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"keyword"
],
"properties": {
"keyword": {
"type": "string",
"examples": [
"cat"
],
"description": "Search keyword"
},
"pagination_token": {
"type": "string",
"description": "Pagination token"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"count": {
"type": "number",
"description": "Number of items in this page of results."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The post's internal Instagram media ID."
},
"code": {
"type": "string",
"description": "The post's shortcode, as used in an instagram.com/p/ or /reel/ URL."
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The account's numeric Instagram user ID."
},
"username": {
"type": "string"
},
"full_name": {
"type": "string"
},
"is_private": {
"type": "boolean"
},
"is_verified": {
"type": "boolean"
},
"follower_count": {
"type": "number"
}
},
"description": "The public account that posted this item.",
"additionalProperties": true
},
"caption": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"hashtags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"is_video": {
"type": "boolean"
},
"taken_at": {
"type": "number",
"description": "Unix seconds."
},
"video_url": {
"type": [
"string",
"null"
],
"description": "Playable video URL, withheld the same way as `thumbnail_url`. Present (as `null`, the value withheld) on video/reel items. This field is absent rather than `null` on a photo/feed post."
},
"like_count": {
"type": [
"number",
"null"
],
"description": "`null` on some items."
},
"media_type": {
"type": "number",
"description": "Instagram's internal media-type enum, e.g. 2 for video/reel."
},
"play_count": {
"type": [
"number",
"null"
],
"description": "Observed `null` on at least one item."
},
"view_count": {
"type": [
"number",
"null"
],
"description": "Usually `null` on every item -- treat as effectively always null on this endpoint."
},
"share_count": {
"type": [
"number",
"null"
],
"description": "Observed `null` on at least one item."
},
"product_type": {
"type": "string",
"description": "e.g. 'clips' for a video/reel or 'feed' for a photo post. Results mix media types: most items are typically 'clips', with occasional 'feed' (photo) items."
},
"repost_count": {
"type": [
"number",
"null"
],
"description": "`null` on some items."
},
"comment_count": {
"type": "number"
},
"taken_at_date": {
"type": "string",
"description": "ISO 8601."
},
"thumbnail_url": {
"type": [
"string",
"null"
],
"description": "Cover-image URL. Value withheld (returned as `null`) -- only whether a thumbnail exists is observable, not the image itself."
},
"original_width": {
"type": "number"
},
"video_duration": {
"type": [
"number",
"null"
],
"description": "Seconds. `null` on at least one item observed."
},
"original_height": {
"type": "number"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
},
"pagination_token": {
"type": [
"string",
"null"
],
"description": "Pass back into `pagination_token` on the next call to fetch the next page. `null` on the last/only page."
}
},
"description": "The search result document. Typically a populated `data.items` array (e.g. 8 or 5 entries) -- the shape of a genuinely empty search result is not documented.",
"additionalProperties": true
}