{
  "openapi": "3.0.1",
  "info": {
    "title": "Tweet Scraper|$0.25/1K Tweets | Pay-Per Result | No Rate Limits",
    "description": "Only $0.25/1000 tweets for Twitter scraping,  100% reliability, swift data retrieval.This incredible low price is almost too good to be true.Thanks to our large-scale operations and efficient servers, we can offer you rock-bottom prices that no competitors can match. Don't miss this opportunity !",
    "version": "1.0",
    "x-build-id": "8NhBRHn8ivPlRLQy9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kaitoeasyapi~twitter-x-data-tweet-scraper-pay-per-result-cheapest/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kaitoeasyapi-twitter-x-data-tweet-scraper-pay-per-result-cheapest",
        "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/kaitoeasyapi~twitter-x-data-tweet-scraper-pay-per-result-cheapest/runs": {
      "post": {
        "operationId": "runs-sync-kaitoeasyapi-twitter-x-data-tweet-scraper-pay-per-result-cheapest",
        "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/kaitoeasyapi~twitter-x-data-tweet-scraper-pay-per-result-cheapest/run-sync": {
      "post": {
        "operationId": "run-sync-kaitoeasyapi-twitter-x-data-tweet-scraper-pay-per-result-cheapest",
        "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": [
          "maxItems"
        ],
        "properties": {
          "tweetIDs": {
            "title": "Tweet IDs",
            "type": "array",
            "description": "Enter the tweet ids you want to scrape. Case1: 1846987139428634858,1858743654778892784. Note: When this field has a value, all other filter conditions will be ignored.",
            "items": {
              "type": "string"
            }
          },
          "twitterContent": {
            "title": "Tweet Content",
            "type": "string",
            "description": "Enter the content of the tweet you want to scrape.eg \"from:same  since:2021-02-17_00:00:00_UTC until:2021-03-03_23:59:59_UTC\" .please ref:https://github.com/igorbrigadir/twitter-advanced-search for more use case"
          },
          "searchTerms": {
            "title": "Search Terms",
            "type": "array",
            "description": "Enter the search terms you want to scrape. Each term should follow Twitter's search syntax. Multiple terms will be processed separately. If set, this field will override the twitterContent field,and the field 'Maximum number of items on output' means the maximum number of items for each search term.please ref:https://github.com/igorbrigadir/twitter-advanced-search for more use case",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum number of items on output",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of items that you want as output. When searchTerms is set, this field means the maximum number of items for each search term.The minimum value is 20.",
            "default": 200
          },
          "queryType": {
            "title": "Query Type, support Latest,Top,Photos,Videos",
            "enum": [
              "Latest",
              "Top",
              "Photos",
              "Videos"
            ],
            "type": "string",
            "description": "This field determines the type of Twitter search to be performed. The options are 'Latest', 'Top', 'Photos', 'Photos', Videos'. 'Latest' will return the most recent tweets. 'Top' will return the most popular or relevant tweets according to Twitter's algorithm. 'Photos' will return tweets containing photos. 'Videos' will return tweets  containing photos videos.",
            "default": "Latest"
          },
          "lang": {
            "title": "Language",
            "enum": [
              "am",
              "ar",
              "bg",
              "bn",
              "bo",
              "ca",
              "ch`",
              "cs",
              "da",
              "de",
              "dv",
              "el",
              "en",
              "es",
              "et",
              "fa",
              "fi",
              "fr",
              "gu",
              "hi",
              "ht",
              "hu",
              "hy",
              "in",
              "is",
              "it",
              "iu",
              "iw",
              "ja",
              "ka",
              "km",
              "kn",
              "ko",
              "lo",
              "lt",
              "lv",
              "ml",
              "my",
              "ne",
              "nl",
              "no",
              "or",
              "pa",
              "pl",
              "pt",
              "ro",
              "ru",
              "si",
              "sk",
              "sl",
              "sv",
              "ta",
              "te",
              "th",
              "tl",
              "tr",
              "uk",
              "ur",
              "vi",
              "zh"
            ],
            "type": "string",
            "description": "Search for tweets in specified language, not always accurate.Language is specified as https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes."
          },
          "from": {
            "title": "From User",
            "type": "string",
            "description": "Sent by a particular @username e.g. \"NASA\" .https://twitter.com/search?q=dogs%20from%3Anasa&src=typed_query&f=live"
          },
          "to": {
            "title": "To User",
            "type": "string",
            "description": "Replying to a particular @username. eg. \"NASA\".https://twitter.com/search?q=%23MoonTunes%20to%3Anasa&src=typed_query&f=live"
          },
          "@": {
            "title": "Mention User",
            "type": "string",
            "description": "Mentioning a particular @username. Combine with -from:username to get only mentions.Eg.https://twitter.com/search?q=%40cern%20-from%3Acern&src=typed_query&f=live"
          },
          "list": {
            "title": "List",
            "type": "string",
            "description": "Tweets from members of this public list. Use the list ID from the API or with urls like twitter.com/i/lists/715919216927322112. List slug is for old list urls like twitter.com/esa/lists/astronauts."
          },
          "filter:blue_verified": {
            "title": "Filter Blue Verified",
            "type": "boolean",
            "description": "Filter tweets from blue verified users only.However, I found that using filter:blue_verified alone causes issues and needs to be used together with filter:verified, possibly due to a Twitter bug.Eg.https://twitter.com/search?q=filter%3Ablue_verified%20-filter%3Averified&src=typed_query&f=live",
            "default": false
          },
          "near": {
            "title": "Near",
            "type": "string",
            "description": "Geotagged in this place. Also supports Phrases, eg: near:\"The Hague\" . eg https://twitter.com/search?q=near%3A%22The%20Hague%22&src=typed_query&f=live"
          },
          "within": {
            "title": "Within",
            "type": "string",
            "description": "Within specific radius of the \"near\" operator, to apply a limit. Can use km or mi. e.g. fire near:san-francisco within:10km.eg:https://twitter.com/search?q=fire%20near%3Asan-francisco%20within%3A10km&src=typed_query&f=live"
          },
          "geocode": {
            "title": "Geo Code",
            "type": "string",
            "description": "Search within a specific radius of a coordinate. E.g. to get tweets 10km around twitters hq, use geocode:37.7764685,-122.4172004,10km.Eg.https://twitter.com/search?q=geocode%3A37.7764685%2C-122.4172004%2C10km&src=typed_query&f=live"
          },
          "since_time": {
            "title": "Since Time",
            "type": "string",
            "description": "On or after a specified unix timestamp in seconds. Combine with the \"Until Time\" operator for dates between. Maybe easier to use than since_id below.Eg.https://twitter.com/search?q=since_time%3A1561720321%20until_time%3A1562198400%20%23nasamoontunes&src=typed_query&f=live"
          },
          "until_time": {
            "title": "Until Time",
            "type": "string",
            "description": "Before a specified unix timestamp in seconds. Combine with a \"Since Time\" operator for dates between. Maybe easier to use than max_id below.Eg.https://twitter.com/search?q=since_time%3A1561720321%20until_time%3A1562198400%20%23nasamoontunes&src=typed_query&f=live"
          },
          "since_id": {
            "title": "Since ID",
            "type": "string",
            "description": "On or after a specified tweet ID. Combine with the \"Until ID\" operator for dates between. Maybe easier to use than since_time above.Eg.https://twitter.com/search?q=since_id%3A1138872932887924737%20max_id%3A1144730280353247233%20%23nasamoontunes&src=typed_query&f=live"
          },
          "max_id": {
            "title": "Max ID    ",
            "type": "string",
            "description": "Before a specified tweet ID. Combine with a \"Since ID\" operator for dates between. Maybe easier to use than until_time above.Eg.https://twitter.com/search?q=since_id%3A1138872932887924737%20max_id%3A1144730280353247233%20%23nasamoontunes&src=typed_query&f=live"
          },
          "filter:nativeretweets": {
            "title": "Filter Native Retweets",
            "type": "boolean",
            "description": "Only retweets created using the retweet button. Works well combined with from: to show only retweets. Only works within the last 7-10 days or so.Eg.https://twitter.com/search?q=from%3Anasa%20filter%3Anativeretweets&src=typed_query&f=live",
            "default": false
          },
          "include:nativeretweets": {
            "title": "Include Native Retweets",
            "type": "boolean",
            "description": "Native retweets are excluded by default. This shows them. In contrast to filter:, which shows only retweets, this includes retweets in addition to other tweets. Only works within the last 7-10 days or so.Eg.https://twitter.com/search?q=from%3Anasa%20include%3Anativeretweets%20&src=typed_query&f=live",
            "default": false
          },
          "filter:replies": {
            "title": "Filter Retweets",
            "type": "boolean",
            "description": "Tweet is a reply to another Tweet. good for finding conversations, or threads if you add or remove to:user.eg.https://twitter.com/search?q=from%3Anasa%20filter%3Areplies%20-to%3Anasa&src=typed_query&f=live",
            "default": false
          },
          "conversation_id": {
            "title": "Conversation ID",
            "type": "string",
            "description": "Tweets that are part of a thread (direct replies and other replies).Eg.https://twitter.com/search?q=conversation_id%3A1140437409710116865%20lang%3Aen&src=typed_query&f=live"
          },
          "filter:quote": {
            "title": "Filter Quote",
            "type": "boolean",
            "description": "Contain Quote Tweets.Eg.https://twitter.com/search?q=from%3Anasa%20filter%3Aquote&src=typed_query&f=live",
            "default": false
          },
          "quoted_tweet_id": {
            "title": "Quoted Tweet ID",
            "type": "string",
            "description": "Search for quotes of a specific tweet.Eg.https://twitter.com/search?q=quoted_user_id%3A11348282&src=typed_query&f=live"
          },
          "quoted_user_id": {
            "title": "Quoted User ID",
            "type": "string",
            "description": "Search for all quotes of a specific user, by numeric User ID.Eg.https://twitter.com/search?q=quoted_user_id%3A11348282&src=typed_query&f=live"
          },
          "card_name": {
            "title": "Tweets containing polls type",
            "enum": [
              "poll2choice_text_only",
              "poll3choice_text_only",
              "poll4choice_text_only",
              "poll2choice_image",
              "poll3choice_image",
              "poll4choice_image"
            ],
            "type": "string",
            "description": "Tweets containing polls. For polls containing 2, 3, 4 choices, or image Polls.Eg.https://twitter.com/search?q=lang%3Aen%20card_name%3Apoll4choice_text_only%20OR%20card_name%3Apoll3choice_text_only%20OR%20card_name%3Apoll2choice_text_only&src=typed_query&f=live"
          },
          "filter:has_engagement": {
            "title": "Filter Has Engagement",
            "type": "boolean",
            "description": "Has some engagement (replies, likes, retweets). Can be negated to find tweets with no engagement. Note all of these are mutually exclusive with filter:nativeretweets or include:nativeretweets, as they apply to the retweet, not the original tweet, so they won't work as expected.Eg.https://twitter.com/search?q=breaking%20filter%3Anews%20-filter%3Ahas_engagement&src=typed_query&f=live",
            "default": false
          },
          "min_retweets": {
            "title": "Minimum Retweets",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of retweets.Eg.https://twitter.com/search?q=min_retweets%3A5000%20nasa&src=typed_query&f=live",
            "default": 0
          },
          "min_faves": {
            "title": "Minimum Faves",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of favorites.Eg.https://twitter.com/search?q=min_faves%3A5000%20nasa&src=typed_query&f=live",
            "default": 0
          },
          "min_replies": {
            "title": "Minimum Replies",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum number of replies.Eg.https://twitter.com/search?q=min_replies%3A5000%20nasa&src=typed_query&f=live",
            "default": 0
          },
          "-min_retweets": {
            "title": "Maximum Retweets",
            "minimum": 0,
            "type": "integer",
            "description": "A maximum number of Retweets.Eg.https://twitter.com/search?q=-min_retweets%3A5000%20nasa&src=typed_query&f=live",
            "default": 0
          },
          "-min_faves": {
            "title": "Minimum Faves",
            "minimum": 0,
            "type": "integer",
            "description": "A maximum number of Faves.Eg.https://twitter.com/search?q=-min_faves%3A5000%20nasa&src=typed_query&f=live",
            "default": 0
          },
          "-min_replies": {
            "title": "Minimum Replies",
            "minimum": 0,
            "type": "integer",
            "description": "A maximum number of Replies.Eg.https://twitter.com/search?q=-min_replies%3A5000%20nasa&src=typed_query&f=live",
            "default": 0
          },
          "filter:media": {
            "title": "Filter Media",
            "type": "boolean",
            "description": "Filter tweets with media,All media types.Eg.https://twitter.com/search?q=filter%3Amedia%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:twimg": {
            "title": "Filter twimg",
            "type": "boolean",
            "description": "Native Twitter images (pic.twitter.com links).Eg.https://twitter.com/search?q=filter%3Atwimg%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:images": {
            "title": "Filter Images",
            "type": "boolean",
            "description": "Filter tweets with images.Eg.https://twitter.com/search?q=filter%3Aimages%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:videos": {
            "title": "Filter Videos",
            "type": "boolean",
            "description": "All video types, including native Twitter video and external sources such as Youtube.Eg.https://twitter.com/search?q=filter%3Avideos%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:native_video": {
            "title": "Filter Native Video",
            "type": "boolean",
            "description": "All Twitter-owned video types (native video, vine, periscope).Eg.https://twitter.com/search?q=filter%3Anative_video%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:vine": {
            "title": "Vines (RIP)",
            "type": "boolean",
            "description": "Vine videos.Eg.https://twitter.com/search?q=filter%3Avine%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:consumer_video": {
            "title": "Consumer Video",
            "type": "boolean",
            "description": "Twitter native video only.Eg.https://twitter.com/search?q=filter%3Aconsumer_video%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:pro_video": {
            "title": "Pro Video",
            "type": "boolean",
            "description": "Twitter pro video (Amplify) only.Eg.https://twitter.com/search?q=filter%3Apro_video%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:spaces": {
            "title": "Twitter Spaces only",
            "type": "boolean",
            "description": "Twitter Spaces only.Eg.https://twitter.com/search?q=filter%3Aspaces%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:links": {
            "title": "Filter Links",
            "type": "boolean",
            "description": "Only containing some URL, includes media. use -filter:media for urls that aren't media.Eg.https://twitter.com/search?q=filter%3Alinks%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:mentions": {
            "title": "Filter Mentions",
            "type": "boolean",
            "description": "Containing any sort of @mentions.Eg.https://twitter.com/search?q=filter%3Amentions%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "filter:news": {
            "title": "Filter News",
            "type": "boolean",
            "description": "Containing link to a news story. Combine with a list operator to narrow the user set down further. Matches on a list of Domains.(See Note for full list :https://github.com/igorbrigadir/twitter-advanced-search?tab=readme-ov-file#news-sites)",
            "default": false
          },
          "filter:safe": {
            "title": "Filter Videos",
            "type": "boolean",
            "description": "Excluding NSFW content. Excludes content that users have marked as \"Potentially Sensitive\". Doesn't always guarantee SFW results.",
            "default": false
          },
          "filter:hashtags": {
            "title": "Filter Hashtags",
            "type": "boolean",
            "description": "Containing any sort of hashtags.Eg.https://twitter.com/search?q=filter%3Ahashtags%20%23nasamoontunes&src=typed_query&f=live",
            "default": false
          },
          "url": {
            "title": "Search for Tweets Containing Specific URLs.",
            "type": "string",
            "description": "urls are tokenized and matched, works very well for subdomains and domains, not so well for long urls, depends on url. Youtube ids work well. Works for both shortened and canonical urls, eg: gu.com shortener for theguardian.com. When searching for Domains with hyphens in it, you have to replace the hyphen by an underscore (like url:t_mobile.com) but underscores _ are also tokenized out, and may not match.Eg. https://twitter.com/search?q=url%3Agu.com&src=typed_query&f=live"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}