{
  "openapi": "3.0.1",
  "info": {
    "title": "X (Twitter) Scraper Unlimited – No Limits",
    "description": "Scrape X (Twitter) posts, profiles, articles and threads with no login or cookies. Get text, likes, views, author, media and profile analytics from links, handles or search terms. Bulk input, advanced filters, auto proxy fallback. Export JSON, CSV or Excel for social listening.",
    "version": "1.0",
    "x-build-id": "mRy0imSl7VxYfqQy3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/data_minds~twitter-x-scraper-unlimited-no-limits/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-data_minds-twitter-x-scraper-unlimited-no-limits",
        "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/data_minds~twitter-x-scraper-unlimited-no-limits/runs": {
      "post": {
        "operationId": "runs-sync-data_minds-twitter-x-scraper-unlimited-no-limits",
        "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/data_minds~twitter-x-scraper-unlimited-no-limits/run-sync": {
      "post": {
        "operationId": "run-sync-data_minds-twitter-x-scraper-unlimited-no-limits",
        "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": {
          "urls": {
            "title": "🔗 X links (bulk)",
            "type": "array",
            "description": "Post links, article links, profile links or search links, one per line. A profile link collects that account's latest posts. Add one link or hundreds in the same run. Handles such as @NASA and plain post ids also work.",
            "items": {
              "type": "string"
            }
          },
          "twitterHandles": {
            "title": "🙋 Profile handles",
            "type": "array",
            "description": "Handles of the profiles to scrape, with or without the @, for example NASA. A shortcut so you do not need to paste full profile links.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "🔍 Search terms",
            "type": "array",
            "description": "Keywords or advanced-search phrases, for example from:NASA filter:media min_faves:100. Supported operators: from: to: lang: since: until: min_faves: min_retweets: min_replies: filter:media, images, videos, links, verified, replies, retweets, quote, hashtags, mentions, quoted phrases, -exclusions, OR, #tags and @mentions. Keyword matches cover the posts that are reachable without an account, not every post on X.",
            "items": {
              "type": "string"
            }
          },
          "profileSearchTerms": {
            "title": "🧲 Find accounts by topic",
            "type": "array",
            "description": "Find accounts instead of posts, for example web3 founder. Each account must really mention the words in its name, handle, bio or location. Set What to output to Profiles or Both to receive the account rows.",
            "items": {
              "type": "string"
            }
          },
          "tweetIds": {
            "title": "🆔 Post ids",
            "type": "array",
            "description": "Plain post ids to read directly, for example 1728108619189874825.",
            "items": {
              "type": "string"
            }
          },
          "conversationIds": {
            "title": "🧶 Conversation ids",
            "type": "array",
            "description": "Ids of conversations whose first post you want. Only the first post of the conversation is returned; replies to it are not available.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "🔢 Maximum rows",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of rows (posts and profiles) saved in total. Use 0 for no cap.",
            "default": 10
          },
          "outputMode": {
            "title": "🧩 What to output",
            "enum": [
              "tweets",
              "profiles",
              "both"
            ],
            "type": "string",
            "description": "Posts returns the posts. Profiles returns one row per account. Both returns accounts and their posts.",
            "default": "tweets"
          },
          "sort": {
            "title": "🔃 Sort",
            "enum": [
              "Latest",
              "Top",
              "Latest + Top"
            ],
            "type": "string",
            "description": "Latest keeps each batch of rows newest first. Top keeps each batch ordered by likes and reposts. Latest + Top is accepted too and behaves like Latest.",
            "default": "Latest"
          },
          "timelineKind": {
            "title": "📌 Profile tab",
            "enum": [
              "posts",
              "highlights"
            ],
            "type": "string",
            "description": "Which tab of a profile to read: its posts or its highlights.",
            "default": "posts"
          },
          "maxItemsPerSource": {
            "title": "📏 Maximum posts per input",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum posts taken from each profile, link or search term. Use 0 to share the total of Maximum rows across all inputs.",
            "default": 0
          },
          "start": {
            "title": "📅 Posts from this date",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only keep posts on or after this date (YYYY-MM-DD)."
          },
          "end": {
            "title": "📆 Posts until this date",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only keep posts before this date (YYYY-MM-DD, this day excluded)."
          },
          "sinceId": {
            "title": "🔔 Only posts newer than this id",
            "pattern": "^\\d{5,25}$",
            "type": "string",
            "description": "For monitoring: keep only posts with an id above this post id, for example the last id from your previous run."
          },
          "tweetLanguage": {
            "title": "🔤 Post language",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "pt",
              "it",
              "nl",
              "ru",
              "ja",
              "ko",
              "zh",
              "ar",
              "hi",
              "tr",
              "id",
              "pl",
              "sv",
              "th",
              "vi",
              "uk",
              "fa",
              "he",
              "ur",
              "bn",
              "fi",
              "da",
              "no",
              "cs",
              "ro",
              "el",
              "hu",
              "ca",
              "und"
            ],
            "type": "string",
            "description": "Only keep posts written in this language. Leave empty for all languages."
          },
          "minimumFavorites": {
            "title": "👍 Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep posts with at least this many likes."
          },
          "minimumRetweets": {
            "title": "🔁 Minimum reposts",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep posts with at least this many reposts."
          },
          "minimumReplies": {
            "title": "💭 Minimum replies",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep posts with at least this many replies."
          },
          "minimumViews": {
            "title": "👀 Minimum views",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep posts with at least this many views."
          },
          "onlyVerifiedUsers": {
            "title": "✅ Only verified authors",
            "type": "boolean",
            "description": "Only keep posts from verified accounts.",
            "default": false
          },
          "onlyTwitterBlue": {
            "title": "💎 Only Blue subscribers",
            "type": "boolean",
            "description": "Only keep posts from authors with a Blue subscription.",
            "default": false
          },
          "onlyImage": {
            "title": "📷 Only posts with images",
            "type": "boolean",
            "description": "Only keep posts that contain an image.",
            "default": false
          },
          "onlyVideo": {
            "title": "🎥 Only posts with video",
            "type": "boolean",
            "description": "Only keep posts that contain a video.",
            "default": false
          },
          "onlyQuote": {
            "title": "💬 Only quote posts",
            "type": "boolean",
            "description": "Only keep posts that quote another post.",
            "default": false
          },
          "excludeRetweets": {
            "title": "🙅 Skip reposts",
            "type": "boolean",
            "description": "Leave out reposts of other people's posts.",
            "default": false
          },
          "excludeReplies": {
            "title": "🚫 Skip replies",
            "type": "boolean",
            "description": "Leave out posts that are replies.",
            "default": false
          },
          "author": {
            "title": "🔖 Posts written by",
            "type": "string",
            "description": "Added to every search term as a from: filter, or run as its own search when there are no search terms. Links and handles are not filtered by it. Example: NASA."
          },
          "inReplyTo": {
            "title": "📩 Replies to",
            "type": "string",
            "description": "Added to every search term as a to: filter, or run as its own search when there are no search terms. Links and handles are not filtered by it. Example: NASA."
          },
          "mentioning": {
            "title": "📣 Posts mentioning",
            "type": "string",
            "description": "Added to every search term as an @ mention filter, or run as its own search when there are no search terms. Links and handles are not filtered by it. Example: NASA."
          },
          "minFollowers": {
            "title": "👥 Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep accounts with at least this many followers. Used for profile rows and for Find accounts by topic."
          },
          "maxFollowers": {
            "title": "🐜 Maximum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep accounts with at most this many followers."
          },
          "profileBioContains": {
            "title": "📝 Bio contains",
            "type": "array",
            "description": "Keep accounts whose bio contains at least one of these words.",
            "items": {
              "type": "string"
            }
          },
          "profileLocationContains": {
            "title": "📍 Location contains",
            "type": "array",
            "description": "Keep accounts whose location contains at least one of these words.",
            "items": {
              "type": "string"
            }
          },
          "onlyVerifiedProfiles": {
            "title": "🏅 Only verified accounts",
            "type": "boolean",
            "description": "Only keep verified accounts.",
            "default": false
          },
          "profileMatch": {
            "title": "🧪 Topic match",
            "enum": [
              "all",
              "any",
              "off"
            ],
            "type": "string",
            "description": "How strictly an account found by topic must match your words. All needs every word in the name, handle, bio or location. Any needs one word. Off keeps every account found.",
            "default": "all"
          },
          "includeAuthorProfile": {
            "title": "🧾 Full author details",
            "type": "boolean",
            "description": "Add the author's bio, location, website and creation date to every post.",
            "default": true
          },
          "includeArticles": {
            "title": "📰 Full article text",
            "type": "boolean",
            "description": "Add the full text of X Articles when a post contains one.",
            "default": true
          },
          "includeThreadAncestors": {
            "title": "🧵 Reply chain above a post",
            "type": "boolean",
            "description": "For posts that are replies, add the chain of posts above them (up to 10).",
            "default": false
          },
          "includeSearchTerms": {
            "title": "🔠 Add the matching search term",
            "type": "boolean",
            "description": "Add a field to each post that shows which search term found it.",
            "default": false
          },
          "includeProfileStats": {
            "title": "📈 Analytics row per profile",
            "type": "boolean",
            "description": "Add one analytics row for each profile: posting pace, engagement averages, top hashtags, links and best posting hour, based on the posts collected.",
            "default": false
          },
          "includeErrorRows": {
            "title": "🧯 Error rows",
            "type": "boolean",
            "description": "Add a row that explains why an input gave no result. Error rows are never billed.",
            "default": true
          },
          "outputFields": {
            "title": "📋 Only these fields",
            "type": "array",
            "description": "Limit post rows to these fields, for example text, likeCount, author. Leave empty for all fields.",
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Optional network setting. Leave the default unless you need requests to leave from a specific network or country.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}