{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Posts Scraper & Instagram Reels Scraper, No Login",
    "description": "Scrape Instagram profile posts and reels, no login: an Instagram post scraper and reels scraper for usernames, profile links or post URLs. Caption, hashtags, exact time, likes, comments, reel plays, owner, coauthors, the real pinned flag, paid flag, location, alt text, carousel images, video URLs.",
    "version": "0.1",
    "x-build-id": "l77x2XhXO6hzaGTQN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hyperbach~instagram-posts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hyperbach-instagram-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/hyperbach~instagram-posts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-hyperbach-instagram-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/hyperbach~instagram-posts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-hyperbach-instagram-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",
        "properties": {
          "profiles": {
            "title": "Profiles",
            "maxItems": 5000,
            "type": "array",
            "description": "Instagram profiles, one per line: a username (`natgeo`, `@natgeo`), a profile link (`https://www.instagram.com/natgeo/`, any `?igsh=` or other parameter is dropped), a profile's reels tab (`instagram.com/natgeo/reels/`: that profile's reels only) or a numeric profile id (`787132`). Each gives its newest `maxPostsPerProfile` posts and reels. A post link pasted here is read as a post. A private, missing or age-gated profile, or a value that names nothing, is a free row that says why.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postUrls": {
            "title": "Post and reel links",
            "maxItems": 5000,
            "type": "array",
            "description": "Posts and reels, one per line, in any form: `https://www.instagram.com/p/DeuOR-CjKE9/`, a `/reel/`, `/reels/` or `/tv/` link, a link with the owner's username in it, a link with `?img_index=`, or a bare shortcode (`DeuOR-CjKE9`). Each gives one row with the post's latest comments. The same post given twice, or also in a profile's posts, is one row. A share link (`instagram.com/share/…`) is not read in this version: open it and paste the link it lands on.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxPostsPerProfile": {
            "title": "Max posts per profile",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "How many of each profile's newest posts and reels, by date; 0 = every post to the end of the profile's list. A pinned post counts at its own date: an old pin never takes the place of a newer post. A post left out by a filter does not count. The profile's summary row says whether the list ended (COMPLETE) or this cap came first (CAPPED).",
            "default": 12
          },
          "contentType": {
            "title": "Posts, reels or both",
            "enum": [
              "all",
              "posts",
              "reels"
            ],
            "type": "string",
            "description": "All posts and reels as the profile's grid lists them, posts only (photos, carousels and long videos, no reels), or reels only (the profile's reels tab: every reel with its plays, the tab's own pinned reels at their dates). A profile link that ends in `/reels/` reads reels only whatever this says.",
            "default": "all"
          },
          "newerThan": {
            "title": "Posted on or after",
            "pattern": "^(|[0-9]{4}-[0-9]{2}-[0-9]{2}([T ][0-9:.]+(Z|[+-][0-9]{2}:?[0-9]{2})?)?|[0-9]{1,4} *(hour|hours|day|days|week|weeks|month|months|year|years)?)$",
            "type": "string",
            "description": "Only posts published on or after this date: `2026-09-01`, a date and time (`2026-09-01T12:00:00Z`), or a span back from now in lower case (`7 days`, `12 hours`, `2 weeks`, `3 months`). The walk stops at the first unpinned post older than this; a pinned post older than it is skipped.",
            "default": ""
          },
          "olderThan": {
            "title": "Posted on or before",
            "pattern": "^(|[0-9]{4}-[0-9]{2}-[0-9]{2}([T ][0-9:.]+(Z|[+-][0-9]{2}:?[0-9]{2})?)?|[0-9]{1,4} *(hour|hours|day|days|week|weeks|month|months|year|years)?)$",
            "type": "string",
            "description": "Only posts published on or before this date (a date includes its whole day), in the same forms as `newerThan`. Newer posts are skipped and do not count toward `maxPostsPerProfile`.",
            "default": ""
          },
          "skipPinned": {
            "title": "Skip pinned posts",
            "type": "boolean",
            "description": "Leave out the posts the owner pinned to the top of the profile. Off = a pinned post is delivered at its own date, flagged `is_pinned`.",
            "default": false
          },
          "minLikes": {
            "title": "Min likes",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Keep a post only with at least this many likes (a post whose owner hides the likes is left out when this is above 0). A post left out is free and does not count toward `maxPostsPerProfile`. 0 = every post.",
            "default": 0
          },
          "minComments": {
            "title": "Min comments",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Keep a post only with at least this many comments. Free when it leaves a post out. 0 = every post.",
            "default": 0
          },
          "minPlays": {
            "title": "Min plays",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Keep a reel only with at least this many plays; a photo, a carousel or a reel whose plays are not read is left out when this is above 0. Free when it leaves a post out. 0 = every post.",
            "default": 0
          },
          "includeComments": {
            "title": "Latest comments on profile posts",
            "type": "boolean",
            "description": "Add each post's latest comments (`latest_comments`: text, time, likes, author) to the rows of a profile, up to `maxComments` a post, with the location's coordinates and the edited flag. It reads each post once more, so a run is slower. A post link's row always carries the post's latest comments (up to 15); with this on, up to `maxComments`.",
            "default": false
          },
          "maxComments": {
            "title": "Max comments per post",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "The latest comments read a post when `includeComments` is on: the first 15 come with the post, the rest 14 a call. Replies to comments are not shown to logged-out viewers.",
            "default": 15
          },
          "onlyNewPosts": {
            "title": "Only new posts (memory between runs)",
            "type": "boolean",
            "description": "Deliver only the posts that appeared since an earlier run with the same memory: the walk stops at the newest post that run delivered (the profile's verdict NO_NEW_POSTS; a pinned post it knows is skipped free). For a scheduled task.",
            "default": false
          },
          "stateStoreName": {
            "title": "Memory name",
            "pattern": "^([a-zA-Z0-9][a-zA-Z0-9._-]{0,63})?$",
            "type": "string",
            "description": "The name of the memory `onlyNewPosts` keeps (letters, digits, '.', '_', '-'); empty = a name derived from the inputs.",
            "default": ""
          },
          "maxItems": {
            "title": "Max posts (whole run)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "The most charged rows (posts and reels) of the whole run, over every profile and link; 0 = no cap beyond `maxPostsPerProfile` and your charge limit.",
            "default": 0
          },
          "proxyUrl": {
            "title": "Proxy URL",
            "type": "string",
            "description": "Your own proxy (scheme://user:pass@host:port) for every call instead of ours. Leave empty: the Actor brings its own connections at no cost to you."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}