{
  "openapi": "3.0.1",
  "info": {
    "title": "Threads Scraper - Posts, Profiles & Search",
    "description": "Search Threads posts by keyword, or grab any profile's posts, replies and reposts. Export engagement, views when available, and media. No login.",
    "version": "0.0",
    "x-build-id": "TyhoDZGSMi1lxti2K"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/futurizerush~meta-threads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-futurizerush-meta-threads-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/futurizerush~meta-threads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-futurizerush-meta-threads-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/futurizerush~meta-threads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-futurizerush-meta-threads-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "🎯 Scrape Mode",
            "type": "string",
            "description": "Pick one, then fill the matching field below:\n• 👤 User Posts → 👤 Usernames. Public posts from those accounts.\n• 🔁 User Reposts → 👤 Usernames. What they boosted, and when.\n• 💬 User Replies → 👤 Usernames. Replies they wrote, plus the answered post when shown.\n• 🔎 Search → 🏷️ Keywords. Public posts matching your keywords or hashtags, with an optional date range.\n• 👥 Find Profiles → 🏷️ Keywords. Public accounts matching your keywords, up to 10 per keyword.",
            "default": "user"
          },
          "usernames": {
            "title": "👤 Usernames",
            "minItems": 0,
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Required in 👤 User Posts, 🔁 User Reposts and 💬 User Replies modes (ignored in other modes). One or more Threads usernames: bare name (zuck), @-prefixed (@zuck), or full URL (https://threads.com/@zuck or https://threads.net/@zuck). 📺 Not sure how to fill this in? Watch the <a href='https://www.youtube.com/watch?v=51mYc7DJERE' target='_blank' rel='noopener'>User Posts video tutorial</a>.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "🏷️ Keywords",
            "minItems": 0,
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Required in 🔎 Search and 👥 Find Profiles. Optional in 👤 User Posts, 🔁 User Reposts and 💬 User Replies, where matching rows are tagged and nothing is dropped. The # is optional: both 'AI' and '#AI' work. In Find Profiles, adding a place name (e.g. 'austin coffee') helps surface local accounts. 📺 Not sure how to fill this in? Watch the <a href='https://www.youtube.com/watch?v=zMtWu0syfS8' target='_blank' rel='noopener'>Search video tutorial</a>.",
            "items": {
              "type": "string"
            }
          },
          "max_posts": {
            "title": "📦 Max Results",
            "minimum": 10,
            "maximum": 10000,
            "type": "integer",
            "description": "A cap per user or per keyword, not a total for the run. Every input lands in the same dataset.\n• 👤 User Posts / 🔁 Reposts / 💬 Replies: how many you get depends on what that account has posted publicly.\n• 🔎 Search: a cap. The public results available at run time may be fewer.\n• 👥 Find Profiles: up to 10 accounts per keyword, which this setting cannot raise."
          },
          "search_filter": {
            "title": "🔎 Sort Order",
            "type": "string",
            "description": "Only used in 🔎 Search mode. 'Top' returns what Threads surfaces as most relevant for that term; row order is not a popularity ranking. 'Recent' starts with the newest matching public posts and reaches further back in time as the limit grows, so a large limit covers a longer period rather than every newest post; sort exported created_at values for one combined timeline.",
            "default": "top"
          },
          "search_language": {
            "title": "🌐 Preferred Result Language (beta)",
            "type": "string",
            "description": "Optional. Only used in 🔎 Search mode; every other mode ignores it and runs normally.\nSome keywords are used by people writing in more than one language, and the results mix them together. Pick a language here and you get more of the posts written in it, and fewer of the rest.\nLeave it on English to keep the current behaviour. Many keywords will not change at all: a keyword only one language uses already returns that language.",
            "default": "english"
          },
          "start_date": {
            "title": "📅 Start Date",
            "type": "string",
            "description": "Used in 🔎 Search mode to show posts from this date onward. Supports YYYY-MM-DD or relative values such as '7 days' and '1 month'. Dates are counted in UTC. Other modes ignore it and collect posts as usual."
          },
          "end_date": {
            "title": "📅 End Date",
            "type": "string",
            "description": "Used in 🔎 Search mode to show posts up to this date (inclusive). YYYY-MM-DD is recommended for clarity. Relative values such as '7 days' mean that long ago. Dates are counted in UTC. Other modes ignore it and collect posts as usual."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}