{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reels Search Scraper: Reels by Keyword",
    "description": "Instagram reels search by keyword, no login: the public reels Instagram lists for each phrase, #hashtag or Boolean keyword, plus related searches. Rows carry plays, likes, comments, date, length, music, location and creator. Filters on plays and dates. JSON, CSV or API; pay per reel.",
    "version": "0.1",
    "x-build-id": "XEATZxU7uZh8EcY4w"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~instagram-reels-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-instagram-reels-search-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/automation_craft~instagram-reels-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-instagram-reels-search-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/automation_craft~instagram-reels-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-instagram-reels-search-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "What to search, one keyword per line (up to 500). A phrase (\"nail art\", \"home bakery\"), a #hashtag (searched as its word), a link to an instagram.com/popular/ or instagram.com/explore/tags/ page, or a Boolean keyword with AND, OR, NOT in capitals, parentheses, \"quoted phrases\" or -word, for example (\"latte art\" OR barista) -giveaway. Each OR branch is searched and every reel must match the whole expression. Specific phrases find more reels than single broad words.",
            "items": {
              "type": "string"
            }
          },
          "maxReelsPerKeyword": {
            "title": "Max reels per keyword",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The most reels delivered for one keyword, its related searches, variants and creator reels included. Instagram lists about 96 reels for one search at most; related searches find more.",
            "default": 50
          },
          "maxReels": {
            "title": "Max reels in the run",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stops the run once this many reels were delivered across all keywords (keywords are read in the order given). Empty means no run limit."
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "relevance",
              "newest",
              "mostPlayed"
            ],
            "type": "string",
            "description": "Most relevant keeps Instagram's own order for the keyword. Newest first and Most played first list every search of the keyword before delivering, then deliver in that order (newest by the reel's creation time).",
            "default": "relevance"
          },
          "searchRelatedKeywords": {
            "title": "Related searches per keyword",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Also search this many of the related keywords Instagram lists next to your keyword (0 to 10). Their reels are delivered under your keyword with foundVia \"related\". 0 searches only your keyword.",
            "default": 0
          },
          "tryVariantsWhenEmpty": {
            "title": "Try variants for keywords without reels",
            "type": "boolean",
            "description": "Instagram lists no reels for some broad single words (\"coffee\", \"fitness\"). When on, such a keyword is searched again as \"<keyword> ideas\", then \"tips\", then \"inspiration\", and the first that lists reels is read (foundVia \"variant\").",
            "default": false
          },
          "includeCreatorReels": {
            "title": "Add more reels from the creators found",
            "type": "boolean",
            "description": "After a keyword's reels are delivered, read the newest reels of each creator found and add those whose caption, hashtags or username match the keyword (foundVia \"creator\"), up to the number below per creator. Needs the reel details.",
            "default": false
          },
          "maxReelsPerCreator": {
            "title": "Max reels per creator",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "With creator reels on: the most reels added from one creator's newest reels (1 to 12).",
            "default": 2
          },
          "requireKeywordMatch": {
            "title": "Only reels that mention the keyword",
            "type": "boolean",
            "description": "Keep only reels whose caption, hashtags or creator username hold every word of the keyword (or the words run together, as in #nailart). Off delivers every reel Instagram lists for the keyword. Boolean keywords always apply their expression.",
            "default": false
          },
          "postedSince": {
            "title": "Posted since",
            "type": "string",
            "description": "Keep only reels posted on or after this day (UTC), as 2026-10-01, or in the last N days, as \"30 days\" (counted back from the run's start). Needs the reel details."
          },
          "postedUntil": {
            "title": "Posted until",
            "type": "string",
            "description": "Keep only reels posted on or before this day (UTC), as 2026-10-20. Needs the reel details."
          },
          "minPlays": {
            "title": "Minimum plays",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only reels with at least this many plays."
          },
          "minLikes": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only reels with at least this many likes. Reels whose creator hides the like count are left out. Needs the reel details."
          },
          "minComments": {
            "title": "Minimum comments",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only reels with at least this many comments. Needs the reel details."
          },
          "captionLanguages": {
            "title": "Caption languages",
            "type": "array",
            "description": "Keep only reels whose caption is in one of these languages, as estimated from the caption text (a caption is read only with 40 letters or more and a clear result; other reels have no language and are left out). Empty keeps every language.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "pt",
                "fr",
                "de",
                "it",
                "nl",
                "pl",
                "tr",
                "ru",
                "uk",
                "ar",
                "fa",
                "ur",
                "hi",
                "bn",
                "mr",
                "ta",
                "te",
                "gu",
                "kn",
                "ml",
                "pa",
                "ne",
                "id",
                "ms",
                "tl",
                "vi",
                "th",
                "ja",
                "ko",
                "zh",
                "sw",
                "ro",
                "hu",
                "cs",
                "sv",
                "el",
                "bg",
                "sr",
                "hr",
                "az",
                "uz",
                "kk"
              ],
              "enumTitles": [
                "English",
                "Spanish",
                "Portuguese",
                "French",
                "German",
                "Italian",
                "Dutch",
                "Polish",
                "Turkish",
                "Russian",
                "Ukrainian",
                "Arabic",
                "Persian",
                "Urdu",
                "Hindi",
                "Bengali",
                "Marathi",
                "Tamil",
                "Telugu",
                "Gujarati",
                "Kannada",
                "Malayalam",
                "Punjabi",
                "Nepali",
                "Indonesian",
                "Malay",
                "Tagalog",
                "Vietnamese",
                "Thai",
                "Japanese",
                "Korean",
                "Chinese",
                "Swahili",
                "Romanian",
                "Hungarian",
                "Czech",
                "Swedish",
                "Greek",
                "Bulgarian",
                "Serbian",
                "Croatian",
                "Azerbaijani",
                "Uzbek",
                "Kazakh"
              ]
            }
          },
          "includeDetails": {
            "title": "Reel details",
            "type": "boolean",
            "description": "On (default): each reel also carries its likes, comments, posting time, length, music, location, collaborators, the paid partnership label and audio link, read from the reel's own page data. Off: only what the search lists (code, caption, plays, creator, video and cover links), faster.",
            "default": true
          },
          "includeCreatorDetails": {
            "title": "Creator details (add-on)",
            "type": "boolean",
            "description": "Add each creator's followers, following, post count, category, account type, links and bio to their reels. Billed once per creator per run as a Creator profile event.",
            "default": false
          },
          "maxCommentsPerReel": {
            "title": "Comments per reel (add-on)",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Add up to this many of each reel's public comments (text, time, likes, author) to its row, in the order Instagram shows them. Each comment delivered is billed as one Comment event. 0 adds none.",
            "default": 0
          },
          "includeViewCount": {
            "title": "View count",
            "type": "boolean",
            "description": "Add each reel's view count as its own embed page shows it (viewCount), a separate counter from plays. One more page read per reel, included in the Reel price.",
            "default": false
          },
          "includePersonalData": {
            "title": "Include personal data",
            "type": "boolean",
            "description": "Off (default): the dedicated fields that name other people are empty: taggedUsers (accounts tagged in the reel) and mentions (usernames written with @ in the caption), and links to Instagram, Facebook, Messenger, Threads or WhatsApp are left out of the creator's website and bio links and of the keyword description's sources. On: they are filled. Captions, bios and comments are always delivered as Instagram serves them. You are responsible for a lawful use of personal data, GDPR included.",
            "default": false
          },
          "maxRunSeconds": {
            "title": "Time limit (seconds)",
            "minimum": 30,
            "maximum": 86400,
            "type": "integer",
            "description": "Stop starting new work after this many seconds from the run's start and end with the summary (30 to 86400). Empty means the run's own timeout."
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 60,
            "type": "integer",
            "description": "How long one request may take before it is retried (5 to 60).",
            "default": 30
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "How often a failed request is tried again on a fresh connection (0 to 5).",
            "default": 2
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Default: Apify Proxy without a group or country, which reads from the run's own address first and moves a request type to Apify's datacenter proxy when Instagram refuses that address. Choose a group or a country to read only through Apify Proxy, or give your own proxy links. A residential group is read through the datacenter pool instead (no extra cost); a country is used as given.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}