Skip to content
Eden Engine

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.

activeper callv3

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

Instagram

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.

agent
// 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 do

Not 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.

ChargePrice
Per call
$0.0041
Updated
Oct 25, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "keyword"
  ],
  "properties": {
    "keyword": {
      "type": "string",
      "examples": [
        "cat"
      ],
      "description": "Search keyword"
    },
    "pagination_token": {
      "type": "string",
      "description": "Pagination token"
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "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
}