{
  "openapi": "3.0.1",
  "info": {
    "title": "X (Twitter) Scraper: Posts, Followers, Emails | No Login",
    "description": "All-in-one X (Twitter) scraper: search posts, profiles, followers, following, replies, likers, reposters, quotes, lists, communities, leads and trends. Advanced search filters, e-mail finder and deep pagination. Pay per result. Export to JSON, CSV or Excel.",
    "version": "1.0",
    "x-build-id": "VOYijFboSxqv5sdwT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pro100chok~x-twitter-all-in-one-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pro100chok-x-twitter-all-in-one-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/pro100chok~x-twitter-all-in-one-scraper/runs": {
      "post": {
        "operationId": "runs-sync-pro100chok-x-twitter-all-in-one-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/pro100chok~x-twitter-all-in-one-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-pro100chok-x-twitter-all-in-one-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": [
          "scrapeType"
        ],
        "properties": {
          "scrapeType": {
            "title": "What to scrape",
            "enum": [
              "search",
              "profile",
              "userPosts",
              "postDetail",
              "postEngagement",
              "connections",
              "list",
              "community",
              "trends"
            ],
            "type": "string",
            "description": "Pick what you want. This also decides what goes into the list below.\n\n- **Search posts** — posts matching a keyword or a full advanced-search query\n- **Profiles** — one row per account, with bio, counts, links and e-mails\n- **Posts from profiles** — a profile's posts, replies, media, likes, highlights or articles\n- **Post + replies** — one post and the reply thread under it\n- **Post engagement** — who reposted, liked or quoted a post\n- **Followers / following** — the people around an account\n- **List** — posts or members of an X list\n- **Community** — posts or members of an X community\n- **Trends** — trending topics",
            "default": "search"
          },
          "targets": {
            "title": "What to scrape (keywords, profiles, post URLs…)",
            "type": "array",
            "description": "One list for every mode — what you put in it depends on the choice above:\n\n- **Search posts** → keywords or full queries, e.g. `apify`, `\"web scraping\" min_faves:10`\n- **Profiles**, **Posts from profiles**, **Followers / following** → usernames or profile URLs, e.g. `apify`, `@apify`, `https://x.com/apify`\n- **Post + replies**, **Post engagement** → post URLs or ids, e.g. `https://x.com/apify/status/1234567890`\n- **List** → `https://x.com/i/lists/<id>`\n- **Community** → `https://x.com/i/communities/<id>`\n- **Trends** → a location such as `worldwide`, `news`, `sports` (leave empty for your region)",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results per entry",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of results for each entry in the list above — per keyword, per profile or per post. Set 0 for no limit (the run then stops when X runs out of results).",
            "default": 100
          },
          "searchType": {
            "title": "Search: sort and result type",
            "enum": [
              "latest",
              "top",
              "media",
              "people"
            ],
            "type": "string",
            "description": "For Scrape Type: Search posts. `Latest` returns newest first and goes deepest, `Top` returns what X ranks highest, `People` returns accounts instead of posts.",
            "default": "latest"
          },
          "postsFrom": {
            "title": "Profiles: which tab",
            "enum": [
              "posts",
              "replies",
              "media",
              "likes",
              "highlights",
              "articles"
            ],
            "type": "string",
            "description": "For Scrape Type: Posts from profiles. Which tab of the profile to read.",
            "default": "posts"
          },
          "connectionType": {
            "title": "Followers: which connection",
            "enum": [
              "followers",
              "following",
              "verifiedFollowers",
              "mutuals",
              "subscribers"
            ],
            "type": "string",
            "description": "For Scrape Type: Followers / following. Which set of accounts to collect.",
            "default": "followers"
          },
          "engagementType": {
            "title": "Engagement: which action",
            "enum": [
              "reposters",
              "likers",
              "quotes"
            ],
            "type": "string",
            "description": "For Scrape Type: Post engagement. Reposters and likers come back as accounts; quotes come back as posts. Note: X shows the likers of a post only to its author, so Likers comes back empty for other people's posts — use Reposters or Quote posts there.",
            "default": "reposters"
          },
          "listContent": {
            "title": "List: posts or members",
            "enum": [
              "posts",
              "members"
            ],
            "type": "string",
            "description": "For Scrape Type: List. Whether to return the list's posts or the accounts on it.",
            "default": "posts"
          },
          "communityContent": {
            "title": "Community: posts or members",
            "enum": [
              "posts",
              "members"
            ],
            "type": "string",
            "description": "For Scrape Type: Community. Whether to return the community's posts or its members.",
            "default": "posts"
          },
          "fromUsers": {
            "title": "Only posts from these accounts",
            "type": "array",
            "description": "Restrict a search to posts written by these usernames. Adds `from:` to the query.",
            "items": {
              "type": "string"
            }
          },
          "toUsers": {
            "title": "Only replies to these accounts",
            "type": "array",
            "description": "Restrict a search to replies addressed to these usernames. Adds `to:` to the query.",
            "items": {
              "type": "string"
            }
          },
          "mentioningUsers": {
            "title": "Only posts mentioning these accounts",
            "type": "array",
            "description": "Restrict a search to posts that mention these usernames.",
            "items": {
              "type": "string"
            }
          },
          "start": {
            "title": "Posted after",
            "type": "string",
            "description": "Only posts published on or after this date, as YYYY-MM-DD."
          },
          "end": {
            "title": "Posted before",
            "type": "string",
            "description": "Only posts published before this date, as YYYY-MM-DD."
          },
          "tweetLanguage": {
            "title": "Language",
            "enum": [
              "",
              "en",
              "ar",
              "bn",
              "bg",
              "ca",
              "cs",
              "da",
              "de",
              "el",
              "es",
              "et",
              "eu",
              "fa",
              "fi",
              "fr",
              "gu",
              "he",
              "hi",
              "hr",
              "ht",
              "hu",
              "hy",
              "id",
              "is",
              "it",
              "ja",
              "ka",
              "km",
              "kn",
              "ko",
              "lo",
              "lt",
              "lv",
              "ml",
              "mr",
              "my",
              "ne",
              "nl",
              "no",
              "pa",
              "pl",
              "ps",
              "pt",
              "ro",
              "ru",
              "si",
              "sk",
              "sl",
              "sr",
              "sv",
              "ta",
              "te",
              "th",
              "tl",
              "tr",
              "uk",
              "ur",
              "vi",
              "zh"
            ],
            "type": "string",
            "description": "For Scrape Type: Search posts. Keeps only posts X detected as written in this language."
          },
          "minLikes": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Only posts with at least this many likes."
          },
          "minRetweets": {
            "title": "Minimum reposts",
            "minimum": 0,
            "type": "integer",
            "description": "Only posts with at least this many reposts."
          },
          "minReplies": {
            "title": "Minimum replies",
            "minimum": 0,
            "type": "integer",
            "description": "Only posts with at least this many replies."
          },
          "onlyVerifiedUsers": {
            "title": "Only verified accounts",
            "type": "boolean",
            "description": "Only posts from accounts with a verification badge.",
            "default": false
          },
          "onlyTwitterBlue": {
            "title": "Only X Premium accounts",
            "type": "boolean",
            "description": "Only posts from accounts subscribed to X Premium.",
            "default": false
          },
          "onlyMedia": {
            "title": "Only posts with media",
            "type": "boolean",
            "description": "Only posts that carry an image, a video or a GIF.",
            "default": false
          },
          "onlyImage": {
            "title": "Only posts with images",
            "type": "boolean",
            "description": "Only posts that carry at least one image.",
            "default": false
          },
          "onlyVideo": {
            "title": "Only posts with video",
            "type": "boolean",
            "description": "Only posts that carry a video.",
            "default": false
          },
          "onlyLinks": {
            "title": "Only posts with links",
            "type": "boolean",
            "description": "Only posts that link out to another site.",
            "default": false
          },
          "onlyQuote": {
            "title": "Only quote posts",
            "type": "boolean",
            "description": "Only posts that quote another post.",
            "default": false
          },
          "excludeReplies": {
            "title": "Exclude replies",
            "type": "boolean",
            "description": "Drop replies from the results and keep standalone posts only.",
            "default": false
          },
          "excludeReposts": {
            "title": "Exclude reposts",
            "type": "boolean",
            "description": "Drop reposts from the results and keep original posts only.",
            "default": false
          },
          "geoNear": {
            "title": "Near this place",
            "type": "string",
            "description": "Only posts sent near a place, e.g. `London`. Combine with the radius below."
          },
          "geoWithin": {
            "title": "Within this radius",
            "type": "string",
            "description": "Radius around the place above, e.g. `15mi` or `25km`."
          },
          "inList": {
            "title": "Only posts from this list",
            "type": "string",
            "description": "Restrict a search to the members of an X list, given as the list id."
          },
          "includeAbout": {
            "title": "Include \"About this account\"",
            "type": "boolean",
            "description": "Adds the panel X shows under the profile: the country the account is based in, where it signed up from, how many times the username changed and when it was verified. One extra request per profile.",
            "default": true
          },
          "findEmails": {
            "title": "Find e-mail addresses",
            "type": "boolean",
            "description": "Reads contact addresses out of the bio and, when the profile links to a site, off that page too. Addresses written as `name (at) domain.com` are picked up as well.",
            "default": true
          },
          "includeReplies": {
            "title": "Include replies under the post",
            "type": "boolean",
            "description": "For Scrape Type: Post + replies. Off returns just the post itself, which is one request instead of many.",
            "default": true
          },
          "includeSearchTerms": {
            "title": "Tag rows with the search term",
            "type": "boolean",
            "description": "For Scrape Type: Search posts. Adds the keyword and the compiled query to every row, which makes multi-keyword runs easy to split afterwards.",
            "default": true
          },
          "language": {
            "title": "Result language",
            "enum": [
              "en",
              "en-GB",
              "ar",
              "ar-x-fm",
              "bg",
              "bn",
              "ca",
              "cs",
              "da",
              "de",
              "el",
              "es",
              "eu",
              "fa",
              "fi",
              "fil",
              "fr",
              "ga",
              "gl",
              "gu",
              "he",
              "hi",
              "hr",
              "hu",
              "id",
              "ig",
              "it",
              "ja",
              "kn",
              "ko",
              "mr",
              "ms",
              "nb",
              "nl",
              "pl",
              "pt",
              "ro",
              "ru",
              "sk",
              "sr",
              "sv",
              "ta",
              "th",
              "tr",
              "uk",
              "ur",
              "vi",
              "yo",
              "zh",
              "zh-Hant"
            ],
            "type": "string",
            "description": "Language X answers in. It shows up in labels, in the trends region and in anything X writes itself; the posts come back in whatever language they were written.",
            "default": "en"
          },
          "useOurAccounts": {
            "title": "Use our X accounts",
            "type": "boolean",
            "description": "Run with a logged-in X session from our own account pool — no cookies needed from you. Each account is leased to one run at a time and returned to the pool afterwards. Your own cookies below always take priority.",
            "default": true
          },
          "cookies": {
            "title": "Your X cookies",
            "type": "string",
            "description": "Optional — only needed if you prefer your own session over ours (it takes priority when set). Paste it in any shape: the JSON array from a cookie-export extension, a `name=value; name=value` cookie header, or just the `auth_token` value on its own. Everything else is worked out from it."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}