{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Profile Scraper – Posts & Followers",
    "description": "Scrape any public Instagram profile for its latest posts — caption, likes, comments, images, video URLs and carousels — plus the account record with follower count and bio. No login, no cookies, no API key. Built for polling many accounts often: 12 posts per profile. Unofficial.",
    "version": "0.1",
    "x-build-id": "arEJMZ3r9yV3Ilc5f"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simple.actor~instagram-profile-posts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simple.actor-instagram-profile-posts",
        "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/simple.actor~instagram-profile-posts/runs": {
      "post": {
        "operationId": "runs-sync-simple.actor-instagram-profile-posts",
        "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/simple.actor~instagram-profile-posts/run-sync": {
      "post": {
        "operationId": "run-sync-simple.actor-instagram-profile-posts",
        "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": {
          "startUrls": {
            "title": "Instagram profile URLs",
            "type": "array",
            "description": "Public Instagram accounts to read, as links: https://www.instagram.com/nasa/. For bare usernames use \"Usernames\" below, which the platform accepts as plain text. Private accounts cannot be read without a login and are reported as such.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "usernames": {
            "title": "Instagram usernames (no link needed)",
            "type": "array",
            "description": "Accounts given as usernames rather than links — \"nasa\", \"@nasa\" or \"NASA\" all work. Use this when you have a column of usernames. Both lists are read as one.",
            "items": {
              "type": "string"
            }
          },
          "outputFormat": {
            "title": "Row shape: one per post, or one per account",
            "enum": [
              "posts",
              "profile"
            ],
            "type": "string",
            "description": "**One row per post** (default) gives every post its own row, with the full profile repeated on each — the shape to pipe into a warehouse, and what existing code reading this Actor expects. **One row per account** gives each account a single row: the profile at the top level, and its latest posts under `posts` with all 21 of these fields — id, type, shortCode, url, caption, hashtags, mentions, timestamp, timestampUnix, likesCount, commentsCount, isVideo, videoUrl, videoViewCount, **displayUrl** (the full-size image, so you do not need the other format for pictures), alt, locationName, isPinned, childPostCount, ownerUsername and source. It drops only the long tail: the smaller image renditions, per-slide carousel detail, tag coordinates, music credits and streaming-manifest fields. Same price either way; the row is a fraction of the size, and it is the one to pick when you are looking at accounts rather than collecting posts.",
            "default": "posts"
          },
          "maxPosts": {
            "title": "Number of posts per account (max 12, or 24 with the video tab)",
            "minimum": 1,
            "maximum": 24,
            "type": "integer",
            "description": "How many of the latest posts to return per account, newest first. Instagram returns 12 from the grid, and 12 more from the video tab if you turn that on — so the ceiling is 12, or 24 with the video tab. Leave it unset to take everything available."
          },
          "includeVideoTab": {
            "title": "Also read the video tab (doubles output, same cost)",
            "type": "boolean",
            "description": "Instagram serves a second timeline alongside the grid — the account's long-form and IGTV videos — in the same request, and it shares no posts with the grid. Turn this on to include it and roughly double what a run returns at no extra cost. Off by default because that tab reaches years further back, which would change what \"latest\" means; every item says which timeline it came from in `source`.",
            "default": false
          },
          "includeRelatedProfiles": {
            "title": "Include related accounts Instagram suggests",
            "type": "boolean",
            "description": "Attach the accounts Instagram suggests alongside this one (up to fifty, already included in the same request) under `owner.relatedProfiles`. Off by default because the owner record rides on every post, so this multiplies the size of a run's output.",
            "default": false
          },
          "proxy": {
            "title": "Proxy (residential required)",
            "type": "object",
            "description": "Defaults to Apify residential proxy, which this Actor needs. Instagram allows an address about nineteen requests before refusing it for far longer than it says, so every attempt goes out from a different IP. A datacenter pool is too small for that and a run on one comes back with rate_limited error rows.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "includeRaw": {
            "title": "Include raw post data",
            "type": "boolean",
            "description": "Attach Instagram's untouched post object under `raw`. Turn this on when you need a detail that has no named field; it makes each item much larger, so leave it off otherwise.",
            "default": false
          },
          "onlyPostsNewerThan": {
            "title": "Only posts newer than (window or ISO date)",
            "type": "string",
            "description": "Keep only posts published after this point. Takes a window like \"20 hours\", \"last 3 days\" or an ISO date such as 2026-08-01. Because a run reads only an account's latest posts, the run reports the account rather than returning a partial answer if the window reaches further back than those posts do — so an empty result always means \"nothing new\", never \"we did not look\"."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}