{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram API Scraper With Reel Views & Audio Tracks",
    "description": "Scrape Instagram data through a powerful Instagram API, including profiles, posts, Reel views, audio tracks, captions, hashtags, comments, and engagement metrics. Export structured JSON for analytics, automation, lead generation, content research, and social media monitoring.",
    "version": "0.1",
    "x-build-id": "XeJW61CYPhajZF358"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~instagram-api-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-instagram-api-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/scrapier~instagram-api-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-instagram-api-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/scrapier~instagram-api-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-instagram-api-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",
        "properties": {
          "videoSources": {
            "title": "🎬 Creator profiles to pull reels from",
            "type": "array",
            "description": "One or more public Instagram profiles. Paste a profile URL (`https://www.instagram.com/natgeo/`) or just the handle (`natgeo`).\n\n📊 View counts, watch length and audio attribution come from the profile feed, so **profile targets are what this actor is built for**. Single-post URLs and hashtag URLs are still accepted for backward compatibility, but Instagram login-walls those surfaces logged-out and they return an accounting row explaining why — not silent emptiness.",
            "items": {
              "type": "string"
            }
          },
          "contentFeed": {
            "title": "📥 Which feed to read",
            "enum": [
              "reels",
              "posts",
              "comments",
              "details",
              "mentions",
              "stories"
            ],
            "type": "string",
            "description": "• 🎬 **Reels feed** — the creator's reels tab. Every row is a video, so every row carries a view count.\n• 📷 **Main post feed** — all posts. Videos get the full view/audio column set; photos and carousels return them as `null` (Instagram publishes no view metric for a photo).\n\nDefault is the reels feed.",
            "default": "reels"
          },
          "maxVideosPerAccount": {
            "title": "🔢 Max videos per account",
            "minimum": 1,
            "maximum": 2400,
            "type": "integer",
            "description": "How many items to pull per profile before moving to the next one.\n\n⚠️ The engine pages 12 items at a time up to 200 pages, so **2400 is the real hard ceiling** — anything higher is clamped and logged. Default is 20.",
            "default": 20
          },
          "videoPostsOnly": {
            "title": "📺 Keep video rows only",
            "type": "boolean",
            "description": "Drop photos and photo-carousels, keeping only rows that actually have a view count. Useful on the main post feed; on the reels feed everything is already a video.\n\nDefault is off.",
            "default": false
          },
          "minViewCount": {
            "title": "👁️ Minimum view count",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep videos with at least this many views. Example: `100000` returns only six-figure reels.\n\nA video whose view counter Instagram withholds is excluded rather than assumed to pass. Set `0` to keep everything. Default is 0.",
            "default": 0
          },
          "postedAfter": {
            "title": "📆 Only videos posted after",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
            "type": "string",
            "description": "Stop paging once posts get older than this. Absolute (`2026-01-31`) or relative (`7 days`, `2 months`, `1 year`). Leave empty for no cutoff. Times are UTC."
          },
          "includeAudioTracks": {
            "title": "🔊 Include audio track attribution",
            "type": "boolean",
            "description": "Adds the sound behind each reel: `audioType` (original / licensed), `audioId`, `audioOwnerUsername`, `audioTitle`, `audioDurationSec`, `audioIsExplicit`, `audioDownloadUrl` and `remixesAllowed`.\n\n📈 Measured on 127 real videos across 22 public profiles: `audioId` and `audioType` are present on **100%**, the audio owner on **99.2%**. A creator-chosen track title exists on only **11%** — the other 88% carry Instagram's generic \"Original audio\" placeholder, which this actor reports as `null` rather than passing it off as a track name.\n\nDefault is on.",
            "default": true
          },
          "videoQuality": {
            "title": "🎞️ Video file links",
            "enum": [
              "highest",
              "all",
              "none"
            ],
            "type": "string",
            "description": "How much of Instagram's MP4 rendition list to return. Every video ships exactly 3 renditions (measured 127/127).\n\n• 🥇 **Best quality only** — one `videoUrl` at the highest resolution\n• 📚 **All renditions** — `videoUrl` plus a `videoVariants` array with width/height/bandwidth per rendition\n• 🚫 **No file links** — metrics only, smaller rows\n\n⏳ Instagram's MP4 links are signed and expire within hours — download promptly.",
            "default": "highest"
          },
          "attachSourceProfile": {
            "title": "🧷 Attach source profile to each row",
            "type": "boolean",
            "description": "Adds a `parentData` object naming the profile each row came from. Handy when scraping many creators into one dataset.\n\nDefault is off.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy",
            "type": "object",
            "description": "🌐 Default: **no proxy**. This actor was verified pulling real view and audio data over a direct connection from the Apify container — residential is not required.\n\nIf Instagram pushes back, it escalates automatically: shared datacenter → residential (3 sticky retries).",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}