{
  "openapi": "3.0.1",
  "info": {
    "title": "Threads Scraper - Posts, Profiles, Replies & Search API",
    "description": "Extract Threads data at scale: user posts, replies, reposts, profiles, post details, comments and search (profiles, recent, top). Bulk timelines with full engagement counts, permalinks and pagination, exported to clean structured JSON or CSV. No login required.",
    "version": "1.0",
    "x-build-id": "3NGErMFxLeYxWwHCe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~threads-meta-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-threads-meta-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/sian.agency~threads-meta-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-threads-meta-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/sian.agency~threads-meta-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-threads-meta-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": [
          "operation"
        ],
        "properties": {
          "operation": {
            "title": "🎯 Operation — what do you want to pull?",
            "enum": [
              "userInfo",
              "userPosts",
              "userReplies",
              "userReposts",
              "postDetail",
              "postComments",
              "searchProfiles",
              "searchRecent",
              "searchTop"
            ],
            "type": "string",
            "description": "🎯 **PICK ONE OPERATION PER RUN.** Each run produces one clean dataset matching the chosen mode.\n\n- **Profiles & timelines** (User Profile · Posts · Replies · Reposts) — need a username or user ID\n- **Posts** (Post Details · Post Comments) — need a post ID\n- **Search** (Profiles · Recent · Top) — need a query\n\n💡 **TIP:** Run **User Profile** first to resolve a handle, then **User Posts** for that account.",
            "default": "userPosts"
          },
          "usernames": {
            "title": "👤 Usernames or profile URLs (User operations)",
            "uniqueItems": true,
            "type": "array",
            "description": "👤 **For User Profile / Posts / Replies / Reposts.** Add one or more Threads handles or profile URLs — each is processed in one run.\n\n✅ **Accepted:** `zuck` · `@zuck` · `https://www.threads.net/@zuck`\n\n💡 **TIP:** Click **Bulk edit** to paste many handles (one per line). The actor resolves each handle to its user ID automatically.\n\n🆓 **FREE users:** up to 5 handles per run. **PAID:** unlimited.",
            "default": [
              "zuck"
            ],
            "items": {
              "type": "string"
            }
          },
          "postIds": {
            "title": "🔢 Post IDs or post URLs (Post operations)",
            "uniqueItems": true,
            "type": "array",
            "description": "🔢 **For Post Details / Post Comments.** Add one or more Threads post IDs or post URLs.\n\n✅ **Accepted:** a numeric post ID (e.g. `3390920896561588969`) or a post URL `https://www.threads.net/@user/post/Cxyz...`\n\n💡 **TIP:** Click **Bulk edit** to paste many IDs (one per line).\n\n🆓 **FREE users:** up to 5 posts per run. **PAID:** unlimited.",
            "default": [
              "3390920896561588969"
            ],
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "🔎 Search query (Search operations)",
            "type": "string",
            "description": "🔎 **For Search Profiles / Search Recent / Search Top.** The keyword or phrase to search Threads for (e.g. `ai`, `nba finals`, a brand or hashtag without the `#`).",
            "default": "ai"
          },
          "maxResults": {
            "title": "🔢 Max results per input",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "🔢 **Cap on the number of posts / comments collected per username or post.** The actor paginates until this many rows are gathered or the timeline ends. Profile and search operations return what the source provides in one page. Leave default for a quick run; raise it to collect deep timelines.\n\n🆓 **FREE users are always capped at 50 rows** regardless of this value.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}