{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Tagged & Mentions Scraper: Scrape Comments & Replies",
    "description": "Instagram Tagged Mentions Posts Scraper collects posts where profiles are tagged or mentioned. Capture captions, media, hashtags, timestamps, and engagement data. Ideal for brand monitoring, influencer analysis, and structured insights from tagged Instagram content.",
    "version": "1.0",
    "x-build-id": "16eVmMyaaezUOT0Ax"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~instagram-tagged-mentions-posts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-instagram-tagged-mentions-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/api-empire~instagram-tagged-mentions-posts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-instagram-tagged-mentions-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/api-empire~instagram-tagged-mentions-posts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-instagram-tagged-mentions-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "usernames"
        ],
        "properties": {
          "usernames": {
            "title": "👤 Usernames or Profile URLs",
            "type": "array",
            "description": "Target Instagram accounts. Enter usernames (e.g. nike) or full profile URLs (https://www.instagram.com/nike/). Example: [\"nike\", \"https://www.instagram.com/nasa/\"].",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "🎯 Scrape Mode",
            "enum": [
              "tagged",
              "profile-posts",
              "mentions"
            ],
            "type": "string",
            "description": "tagged = posts where OTHER accounts tagged the target (the real usertags feed — needs a sessionid). profile-posts = the target's own timeline posts. mentions = a clearly-labeled best-effort approximation (Instagram has NO global mentions index) built by scanning candidate profiles / hashtags for @target in captions or tags.",
            "default": "tagged"
          },
          "maxPosts": {
            "title": "🔢 Max Posts per Target",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of TOP-LEVEL posts to collect per target. Comments (if enabled) are additional and do NOT count against this limit. 0 = unlimited. Default 40.",
            "default": 40
          },
          "sessionId": {
            "title": "🔑 Instagram sessionid Cookie",
            "type": "string",
            "description": "Instagram `sessionid` cookie value from a logged-in browser session. REQUIRED for the tagged feed and for comments (both are login-walled). Leave empty only for profile-posts on public accounts. Use a sticky residential proxy with one session to avoid checkpoints."
          },
          "includeComments": {
            "title": "💬 Include Comments",
            "type": "boolean",
            "description": "Fetch comments for each post via the real numeric-media_pk endpoint (needs sessionid). Comments are emitted as separate child rows (type=comment) linked by parentPostId and mirrored to a per-run child dataset. Billed under the comment_result event.",
            "default": false
          },
          "maxCommentsPerPost": {
            "title": "💬 Max Comments per Post",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on PARENT comments fetched per post (replies are additional). 0 = unlimited. Example: maxCommentsPerPost=20. Default 20.",
            "default": 20
          },
          "includeReplies": {
            "title": "↩️ Include Comment Replies",
            "type": "boolean",
            "description": "Also fetch child replies (child_comments) for each parent comment. Emitted as child rows with isChild=true and parentCommentId.",
            "default": false
          },
          "onlyPostsNewerThan": {
            "title": "📅 Only Posts Newer Than",
            "type": "string",
            "description": "Keep only posts published on/after this date. Absolute (2024-01-31) or relative (30 days, 6 months). Leave empty for no date filter."
          },
          "minLikes": {
            "title": "👍 Minimum Likes",
            "minimum": 0,
            "type": "integer",
            "description": "Drop posts with fewer likes than this. 0 = no minimum.",
            "default": 0
          },
          "minComments": {
            "title": "💬 Minimum Comments",
            "minimum": 0,
            "type": "integer",
            "description": "Drop posts with fewer comments than this. 0 = no minimum.",
            "default": 0
          },
          "mediaType": {
            "title": "🖼️ Media Type Filter",
            "enum": [
              "all",
              "image",
              "video",
              "carousel"
            ],
            "type": "string",
            "description": "Keep only posts of this media type. 'all' keeps everything.",
            "default": "all"
          },
          "keywordInCaption": {
            "title": "🔤 Keyword in Caption",
            "type": "array",
            "description": "Keep only posts whose caption contains at least one of these keywords/phrases (case-insensitive). Empty = no keyword filter.",
            "items": {
              "type": "string"
            }
          },
          "mentionsCandidates": {
            "title": "📣 Mentions: Candidate Accounts",
            "type": "array",
            "description": "For mode=mentions only. Usernames of accounts to scan for posts that @-mention or tag the target. A genuine but bounded approximation — Instagram has no global mentions index.",
            "items": {
              "type": "string"
            }
          },
          "mentionsHashtags": {
            "title": "📣 Mentions: Hashtags to Scan",
            "type": "array",
            "description": "For mode=mentions only. Hashtags (without #) to scan; posts whose caption @-mentions or tags the target are kept. Best-effort only.",
            "items": {
              "type": "string"
            }
          },
          "aiEnhancement": {
            "title": "🤖 Enable AI Enrichment",
            "type": "boolean",
            "description": "OPTIONAL, OFF by default. When on, adds caption/comment sentiment and brand-mention detection using the model + key below. Adds latency and LLM cost; disabled unless you provide a key.",
            "default": false
          },
          "aiModel": {
            "title": "🤖 AI Model / Provider",
            "enum": [
              "claude-haiku-4-5",
              "claude-sonnet-5",
              "claude-opus-4-8",
              "claude-fable-5",
              "gpt-4o-mini",
              "gpt-4o",
              "gpt-4.1-mini",
              "gpt-4.1",
              "o3-mini",
              "gemini-2.0-flash-lite",
              "gemini-2.0-flash",
              "gemini-2.5-flash",
              "gemini-2.5-pro",
              "grok-3-mini",
              "grok-3",
              "deepseek-chat",
              "sonar",
              "mistral-small-latest",
              "mistral-large-latest"
            ],
            "type": "string",
            "description": "Provider auto-detected from the name: claude-*=Anthropic, gpt-*/o1/o3=OpenAI, gemini-*=Google, grok-*=xAI, deepseek-*=DeepSeek, sonar*=Perplexity, mistral-*=Mistral. Cheaper mini/flash/haiku/lite models are recommended for classification.",
            "default": "claude-haiku-4-5"
          },
          "aiApiKey": {
            "title": "🔑 AI API Key",
            "type": "string",
            "description": "API key for the selected AI provider. Falls back to env vars (ANTHROPIC_API_KEY / OPENAI_API_KEY / GEMINI_API_KEY / XAI_API_KEY / DEEPSEEK_API_KEY / PERPLEXITY_API_KEY / MISTRAL_API_KEY). Required only when AI enrichment is on."
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Residential proxies are strongly recommended for all Instagram traffic and are used by default. A sticky session is used automatically when a sessionId is supplied.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}