{
  "openapi": "3.0.1",
  "info": {
    "title": "Instagram Reels Finder & Downloader",
    "description": "Finds Instagram Reels by hashtag, filters them by likes, comments, shares, views, and engagement score, then sorts and stores the results. Matching videos can also be downloaded automatically to Apify storage.",
    "version": "0.0",
    "x-build-id": "5arXsmtdhZUewdJDB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/viet_tt~instagram-reels-finder-downloader/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-viet_tt-instagram-reels-finder-downloader",
        "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/viet_tt~instagram-reels-finder-downloader/runs": {
      "post": {
        "operationId": "runs-sync-viet_tt-instagram-reels-finder-downloader",
        "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/viet_tt~instagram-reels-finder-downloader/run-sync": {
      "post": {
        "operationId": "run-sync-viet_tt-instagram-reels-finder-downloader",
        "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": [
          "hashtags"
        ],
        "properties": {
          "hashtags": {
            "title": "Hashtags",
            "minItems": 1,
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Enter one or more Instagram hashtags without the # symbol.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "resultsLimitPerHashtag": {
            "title": "Results per hashtag",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of Reels requested for each hashtag. The actual number may be lower.",
            "default": 20
          },
          "maximumResults": {
            "title": "Maximum matching results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of filtered Reels stored in the final dataset and downloaded when video downloads are enabled.",
            "default": 10
          },
          "minimumLikes": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with at least this number of likes. Set to 0 to disable.",
            "default": 0
          },
          "maximumLikes": {
            "title": "Maximum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with no more than this number of likes. Leave empty for no maximum."
          },
          "minimumComments": {
            "title": "Minimum comments",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with at least this number of comments. Set to 0 to disable.",
            "default": 0
          },
          "maximumComments": {
            "title": "Maximum comments",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with no more than this number of comments. Leave empty for no maximum."
          },
          "minimumShares": {
            "title": "Minimum shares or reposts",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with at least this number of shares or reposts. Set to 0 to disable. This metric may be unavailable.",
            "default": 0
          },
          "maximumShares": {
            "title": "Maximum shares or reposts",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with no more than this number of shares or reposts. Leave empty for no maximum."
          },
          "minimumViews": {
            "title": "Minimum views or plays",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with at least this number of views or plays. Set to 0 to disable.",
            "default": 0
          },
          "maximumViews": {
            "title": "Maximum views or plays",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only Reels with no more than this number of views or plays. Leave empty for no maximum."
          },
          "minimumScore": {
            "title": "Minimum engagement score",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Keep only Reels with at least this calculated engagement score. Set to 0 to disable.",
            "default": 0
          },
          "ignoreMissingMetrics": {
            "title": "Keep Reels with missing metrics",
            "type": "boolean",
            "description": "Do not reject a Reel only because Instagram did not return a requested metric.",
            "default": true
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "likes",
              "comments",
              "shares",
              "views",
              "engagementScore"
            ],
            "type": "string",
            "description": "Select the metric used to order the final results.",
            "default": "likes"
          },
          "descending": {
            "title": "Highest values first",
            "type": "boolean",
            "description": "Show Reels with the highest selected metric first.",
            "default": true
          },
          "downloadVideos": {
            "title": "Download matching videos",
            "type": "boolean",
            "description": "Download matching Reel video files to the run's default key-value store.",
            "default": false
          },
          "concurrentDownloads": {
            "title": "Concurrent downloads",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum number of videos downloaded simultaneously.",
            "default": 2
          },
          "maximumVideoSizeMb": {
            "title": "Maximum video size",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum accepted size in MB for each video. Larger files are skipped.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}