{
  "openapi": "3.0.1",
  "info": {
    "title": "Threads Scraper — Posts, Profiles, Replies, No Login",
    "description": "Public Threads data without login or cookies: profiles, latest posts, single posts with replies, keyword or hashtag samples, and only-new-posts alerts. Clean JSON, CSV or Excel. $1.50 per 1,000 results.",
    "version": "0.1",
    "x-build-id": "fKewPgOQaPLhAmoLO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dottti~threads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dottti-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/dottti~threads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dottti-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/dottti~threads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dottti-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",
        "properties": {
          "profiles": {
            "title": "Profiles",
            "type": "array",
            "description": "Threads usernames or profile links. Examples: nasa, @zuck, https://www.threads.com/@natgeo, https://www.threads.net/@mosseri. You get the profile and its latest posts.",
            "items": {
              "type": "string"
            }
          },
          "postUrls": {
            "title": "Post links (with replies)",
            "type": "array",
            "description": "Links to single Threads posts. Examples: https://www.threads.com/@zuck/post/Ddt7cL5EfUG or a short https://www.threads.com/t/CODE link. You get the post, the author's own follow-up posts, the parent posts if it is a reply, and its replies.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords or hashtags",
            "type": "array",
            "description": "Optional. Keywords or hashtags such as climate or #nasa. Logged out, Threads shows only its first page of Top results (about 15 posts per keyword) and no Recent tab, so this is for quick sampling. For full coverage, list the accounts you want to follow in Profiles.",
            "items": {
              "type": "string"
            }
          },
          "maxPostsPerProfile": {
            "title": "Max posts per profile",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Newest posts to fetch per profile. A post and the author's follow-ups in the same thread each count as one post. 0 = profile details only. Logged out, Threads shows about the latest 150 threads per profile (190 to 230 posts in our tests).",
            "default": 20
          },
          "includeProfileDetails": {
            "title": "Include profile details row",
            "type": "boolean",
            "description": "Adds one row per profile with name, bio, follower count, verified flag, bio links and profile picture.",
            "default": true
          },
          "maxReplies": {
            "title": "Max replies per post link",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Replies to fetch for each post link. 0 = no replies. Threads shows logged-out visitors the top replies first.",
            "default": 20
          },
          "includeParentPosts": {
            "title": "Include parent posts for replies",
            "type": "boolean",
            "description": "When a post link is itself a reply, also return the posts above it in the conversation.",
            "default": true
          },
          "maxPostsPerSearch": {
            "title": "Max posts per search keyword",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Cap per keyword. Logged out, Threads returns about 15.",
            "default": 15
          },
          "postedAfter": {
            "title": "Only posts after",
            "type": "string",
            "description": "Optional. A date (2026-10-01) or a relative time (24 hours, 7 days, 2 weeks). Older posts are skipped and paging stops once a whole page is older."
          },
          "onlyNew": {
            "title": "Only new posts (alert mode)",
            "type": "boolean",
            "description": "Remembers what each profile, post and keyword returned last time and delivers only new posts and replies on the next run. Schedule the actor to get alerts. The first run delivers everything and saves the baseline. You pay only for new rows.",
            "default": false
          },
          "stateName": {
            "title": "Alert state name",
            "type": "string",
            "description": "Name of the saved state for Only new posts. Use a different name for each watchlist or schedule.",
            "default": "default"
          },
          "maxConcurrency": {
            "title": "Parallel inputs",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many profiles or posts to fetch at once.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave empty for the automatic ladder: no proxy first, then Apify datacenter, then residential only if Threads blocks. Set a proxy here to force it."
          },
          "autoProxyFallback": {
            "title": "Automatic proxy fallback",
            "type": "boolean",
            "description": "Move to a proxy when Threads blocks direct requests.",
            "default": true
          },
          "allowResidentialFallback": {
            "title": "Allow residential proxy as last step",
            "type": "boolean",
            "description": "Residential proxy costs more platform credit. Turn off to stop at datacenter.",
            "default": true
          },
          "maxRetries": {
            "title": "Max retries per request",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Retries per request with exponential backoff when Threads answers 429 or 5xx.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}