{
  "openapi": "3.0.1",
  "info": {
    "title": "Threads Search Scraper",
    "description": "Search Threads by keyword, phrase or hashtag and get posts with text, author, likes, replies, reposts, media and links. Date range, author filter, newest or most popular first. No login, fast HTTP scraper.",
    "version": "1.0",
    "x-build-id": "274ardfMei8o37D5M"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/outspoken_strategy~threads-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-outspoken_strategy-threads-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/outspoken_strategy~threads-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-outspoken_strategy-threads-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/outspoken_strategy~threads-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-outspoken_strategy-threads-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",
        "required": [
          "searchQueries"
        ],
        "properties": {
          "searchQueries": {
            "title": "Searches",
            "type": "array",
            "description": "Words, phrases or hashtags to search for on Threads, one search per line — e.g. \"openai\", \"world cup\" or \"#photography\". Several words are matched as a phrase. Each search is scraped separately.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum posts per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many posts to return for each search. The scraper keeps going back in time until it has this many or runs out of posts.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "recent",
              "top"
            ],
            "type": "string",
            "description": "\"Newest first\" walks back in time from now (or from the end date) — best for monitoring. \"Most popular first\" starts with the posts Threads ranks highest for the whole period.",
            "default": "recent"
          },
          "startDate": {
            "title": "Posted after",
            "type": "string",
            "description": "Only posts published on or after this date (yyyy-mm-dd, UTC), or within a period such as \"7 days\". Leave empty for no limit."
          },
          "endDate": {
            "title": "Posted before",
            "type": "string",
            "description": "Only posts published on or before this date (yyyy-mm-dd, UTC), or at least this long ago, such as \"2 days\". Leave empty to search up to now."
          },
          "fromUsername": {
            "title": "Only posts by this account",
            "type": "string",
            "description": "Limit every search to posts written by one Threads account, e.g. \"zuck\". Leave empty to search all accounts."
          },
          "minLikes": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Only posts with at least this many likes. Most posts on Threads have none, so even a small number cuts the noise sharply.",
            "default": 0
          },
          "minReplies": {
            "title": "Minimum replies",
            "minimum": 0,
            "type": "integer",
            "description": "Only posts with at least this many replies.",
            "default": 0
          },
          "minReposts": {
            "title": "Minimum reposts",
            "minimum": 0,
            "type": "integer",
            "description": "Only posts with at least this many reposts.",
            "default": 0
          },
          "replies": {
            "title": "Replies",
            "enum": [
              "include",
              "exclude",
              "only"
            ],
            "type": "string",
            "description": "Whether to keep posts that are replies to other posts.",
            "default": "include"
          },
          "media": {
            "title": "Media",
            "enum": [
              "any",
              "text",
              "media",
              "image",
              "video"
            ],
            "type": "string",
            "description": "Keep only posts with, or without, photos and videos.",
            "default": "any"
          },
          "verifiedOnly": {
            "title": "Verified authors only",
            "type": "boolean",
            "description": "Only posts from accounts with a verified badge. A quick way to leave out spam and throwaway accounts.",
            "default": false
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Only posts written in these languages. The language is worked out from the text, so very short posts, or posts that mix languages, may be left out.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "pt",
                "fr",
                "de",
                "it",
                "nl",
                "pl",
                "tr",
                "id",
                "vi",
                "ru",
                "uk",
                "ar",
                "fa",
                "he",
                "hi",
                "bn",
                "th",
                "el",
                "ja",
                "ko",
                "zh"
              ],
              "enumTitles": [
                "English",
                "Spanish",
                "Portuguese",
                "French",
                "German",
                "Italian",
                "Dutch",
                "Polish",
                "Turkish",
                "Indonesian / Malay",
                "Vietnamese",
                "Russian",
                "Ukrainian",
                "Arabic",
                "Persian",
                "Hebrew",
                "Hindi",
                "Bengali",
                "Thai",
                "Greek",
                "Japanese",
                "Korean",
                "Chinese"
              ]
            },
            "default": []
          },
          "excludeWords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Leave out posts that contain any of these words or phrases, one per line — e.g. search \"apple\" and exclude \"recipe\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyNewPosts": {
            "title": "Only posts not returned before (monitor mode)",
            "type": "boolean",
            "description": "Each run returns only posts that earlier runs with the same search have not already returned. Ideal for a scheduled run that follows a topic: you get, and pay for, each post once.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy used to reach Threads. With the default setting the scraper starts on Apify datacenter proxies and moves to residential proxies by itself if Threads begins limiting requests. Pick a proxy group here only if you want to force one.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}