{
  "openapi": "3.0.1",
  "info": {
    "title": "X Tweet Sentiment Analysis with AI | $0.0003/Tweet",
    "description": "Analyze tweet sentiment with AI, AI costs included. Rate each tweet's attitude as positive, negative, mixed or neutral, with intensity & sarcasm, from $0.0003 per analyzed tweet on every Apify plan. World's fastest & cheapest X (Twitter) scraper service. Not affiliated with X Corp.",
    "version": "0.1",
    "x-build-id": "5SSc6bova5iGkend4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/xquik~x-tweet-sentiment-analysis/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-xquik-x-tweet-sentiment-analysis",
        "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/xquik~x-tweet-sentiment-analysis/runs": {
      "post": {
        "operationId": "runs-sync-xquik-x-tweet-sentiment-analysis",
        "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/xquik~x-tweet-sentiment-analysis/run-sync": {
      "post": {
        "operationId": "run-sync-xquik-x-tweet-sentiment-analysis",
        "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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Add Tweet, profile, search, or List URLs as strings or {\"url\":\"...\"} objects. Profile URLs may use /with_replies, /media, or best-effort /likes. For example, [\"https://x.com/elonmusk\", \"https://x.com/search?q=AI\"]."
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Run multiple searches in one Actor run. Max Items applies across the run. Every result matches the date and Unix time operators in its term. For example, from:elonmusk AI, #bitcoin lang:en.",
            "items": {
              "type": "string"
            }
          },
          "texts": {
            "title": "Your own texts",
            "type": "array",
            "description": "Your own texts to analyze, such as draft tweets, replies or notes. The Actor fetches nothing from X for them. Each text becomes 1 row and costs the same as 1 analyzed tweet. When you set this field, the run analyzes only these texts.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Optional result cap across the whole run. Leave empty to use your Apify max total charge as the result limit when set. Without a spend cap, Xquik uses its built-in default. The Apify pricing box shows the current per-result price before the run starts. Diagnostic rows count toward this cap. The form starts at 1,000. A run can return 100,000 rows & more, so raise it for a full export.",
            "default": 100000
          },
          "analysis": {
            "title": "Sentiment targets & analysis",
            "type": "object",
            "description": "Optional targets focus the attitude on named subjects. Leave them empty to judge the main subject of each post. Default questions return sentiment, intensity & sarcasm probability. Custom questions replace defaults. Up to 8 questions. maxContextBytes defaults to 64000. The Actor cuts longer posts to fit. Concurrency defaults to 16, with a maximum of 16."
          },
          "monitor": {
            "title": "Compare with an earlier run",
            "type": "object",
            "description": "Optional baselineDatasetId identifies a completed dataset from an earlier run of this Actor. Omit it for a first run. maxBaselineRows defaults to 100000, range 1-100000. Unreadable, changing or oversized baselines stop the run before collection. Keep analysis settings unchanged for comparable answers."
          },
          "twitterContent": {
            "title": "Search query",
            "type": "string",
            "description": "Search query using X advanced search syntax. Supports keywords, hashtags, exact phrases, boolean operators, and date or Unix time windows. Every returned tweet falls inside your dates. For example, web scraping OR #datascience."
          },
          "twitterHandles": {
            "title": "X handles",
            "type": "array",
            "description": "X usernames whose posts to collect. Profile Tweets matches the Posts tab on X, with posts, reposts & the author's replies to their own posts. Add Exclude replies under Tweet type filters for original posts only. Profile With Replies keeps target-authored posts and replies. Add usernames with or without @. For example, elonmusk, @nasa.",
            "items": {
              "type": "string"
            }
          },
          "profileUrls": {
            "title": "Profile URLs",
            "type": "array",
            "description": "Alias for Start URLs. Add profile URL strings or {\"url\":\"...\"} objects."
          },
          "tweetIds": {
            "title": "Tweet IDs",
            "type": "array",
            "description": "Tweet IDs to look up directly. Other sources in the same input run too, and Max Items applies across the run. Process up to 10,000 tweet IDs per run. For example, 20.",
            "items": {
              "type": "string"
            }
          },
          "listIds": {
            "title": "List IDs",
            "type": "array",
            "description": "X List IDs whose posts to collect. It is usually much faster than List URLs or the List ID filter below. For example, 1748648376080666720.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "legacy",
              "tweet",
              "tweets",
              "search",
              "profileTweets",
              "profileReplies",
              "profileMedia",
              "profileLikes",
              "listTweets",
              "replies",
              "quotes",
              "thread"
            ],
            "type": "string",
            "description": "Choose which tweets to collect. Tweet classification excludes standalone article extraction & user lists.",
            "default": "legacy"
          },
          "maxItemsPerTarget": {
            "title": "Max items per target",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap for each target in multi-target modes."
          },
          "queryType": {
            "title": "Sort by",
            "enum": [
              "Latest",
              "Top",
              "Latest + Top"
            ],
            "type": "string",
            "description": "Latest returns newest first. Top is ranked by relevance and is not exhaustive. Latest + Top returns both without duplicates and fills your limit from either. Account timelines ignore this setting.",
            "default": "Latest"
          },
          "content": {
            "title": "Structured content filters",
            "type": "object",
            "description": "Build content filters without writing X search syntax.",
            "properties": {
              "allWords": {
                "type": "string",
                "title": "All words",
                "description": "Words that should appear in the tweet text."
              },
              "exactPhrase": {
                "type": "string",
                "title": "Exact phrase",
                "description": "Exact phrase to search for."
              },
              "anyWords": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "title": "Any words",
                "description": "Any of these words may appear.",
                "editor": "stringList"
              },
              "excludeWords": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "title": "Exclude words",
                "description": "Words to exclude from results.",
                "editor": "stringList"
              },
              "hashtags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "title": "Hashtags",
                "description": "Hashtags to include.",
                "editor": "stringList"
              },
              "cashtags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "title": "Cashtags",
                "description": "Cashtags to include.",
                "editor": "stringList"
              }
            }
          },
          "users": {
            "title": "Structured user filters",
            "type": "object",
            "description": "Optional structured author, reply, mention, and list filters.",
            "properties": {
              "from": {
                "type": "string",
                "title": "From user",
                "description": "Only include tweets from this username."
              },
              "to": {
                "type": "string",
                "title": "To user",
                "description": "Only include replies to this username."
              },
              "mention": {
                "type": "string",
                "title": "Mention user",
                "description": "Only include tweets mentioning this username."
              },
              "list": {
                "type": "string",
                "title": "List ID",
                "description": "Only include tweets from members of this list."
              }
            }
          },
          "time": {
            "title": "Date range",
            "type": "object",
            "description": "Keep posts from a date window. Use dates, Unix times, a recent window such as 2d, or post IDs.",
            "properties": {
              "since": {
                "type": "string",
                "title": "Since date",
                "description": "Only include tweets on or after this date. Write YYYY-MM-DD, such as 2026-01-31. 31/01/2026 & 01/31/2026 also work. A date that fits both orders reads month first, so 04/01/2026 is 1 April. The Actor verifies each result."
              },
              "until": {
                "type": "string",
                "title": "Until date",
                "description": "Only include tweets before this date. It takes the same date forms as Since date. The Actor verifies each result."
              },
              "sinceTime": {
                "type": "string",
                "title": "Since Unix time",
                "description": "Only include tweets on or after this time. Write Unix seconds, such as 1767225600. An ISO 8601 time such as 2026-01-01T00:00:00Z works too, & so do the date forms of Since date. The Actor verifies each result."
              },
              "untilTime": {
                "type": "string",
                "title": "Until Unix time",
                "description": "Only include tweets before this time. It takes the same forms as Since Unix time. The Actor verifies each result."
              },
              "sinceId": {
                "type": "string",
                "title": "Since Tweet ID",
                "description": "Only include tweets newer than this ID."
              },
              "maxId": {
                "type": "string",
                "title": "Max Tweet ID",
                "description": "Only include tweets older than this ID."
              },
              "withinTime": {
                "type": "string",
                "title": "Within time",
                "description": "Only include tweets from the last time window."
              }
            }
          },
          "engagement": {
            "title": "Structured engagement filters",
            "type": "object",
            "description": "Optional structured engagement filters.",
            "properties": {
              "minRetweets": {
                "type": "integer",
                "title": "Minimum retweets",
                "description": "Minimum retweet count.",
                "minimum": 0,
                "editor": "number"
              },
              "minLikes": {
                "type": "integer",
                "title": "Minimum likes",
                "description": "Minimum like count.",
                "minimum": 0,
                "editor": "number"
              },
              "minReplies": {
                "type": "integer",
                "title": "Minimum replies",
                "description": "Minimum reply count.",
                "minimum": 0,
                "editor": "number"
              },
              "maxRetweets": {
                "type": "integer",
                "title": "Maximum retweets",
                "description": "Only include tweets with at most this many retweets.",
                "minimum": 0,
                "editor": "number"
              },
              "maxLikes": {
                "type": "integer",
                "title": "Maximum likes",
                "description": "Only include tweets with at most this many likes.",
                "minimum": 0,
                "editor": "number"
              },
              "maxReplies": {
                "type": "integer",
                "title": "Maximum replies",
                "description": "Only include tweets with at most this many replies.",
                "minimum": 0,
                "editor": "number"
              }
            }
          },
          "media": {
            "title": "Structured media filters",
            "type": "object",
            "description": "Optional structured media filters.",
            "properties": {
              "media": {
                "type": "boolean",
                "title": "Has media",
                "description": "Apply X's media search operator. Results usually include attached media, but X can also match media-like card content."
              },
              "images": {
                "type": "boolean",
                "title": "Has images",
                "description": "Apply X's image search operator. Results usually include image media. X can also match card or link image content."
              },
              "videos": {
                "type": "boolean",
                "title": "Has videos",
                "description": "Apply X's video search operator. Results usually include native video media."
              },
              "links": {
                "type": "boolean",
                "title": "Has links",
                "description": "Apply X's link search operator."
              }
            }
          },
          "lang": {
            "title": "Language",
            "type": "string",
            "description": "Filter tweets by language using a 2-letter ISO 639-1 code. Every returned tweet matches this language."
          },
          "tweetTypes": {
            "title": "Structured Tweet type filters",
            "type": "object",
            "description": "Optional tweet type filters. Include only one type, or exclude replies, reposts or quote tweets.",
            "properties": {
              "replies": {
                "type": "boolean",
                "title": "Replies",
                "description": "Only include replies."
              },
              "quotes": {
                "type": "boolean",
                "title": "Quotes",
                "description": "Only include quote tweets."
              },
              "nativeRetweets": {
                "type": "boolean",
                "title": "Native retweets",
                "description": "Only include native retweets."
              },
              "blueVerified": {
                "type": "boolean",
                "title": "Blue verified",
                "description": "Only include Blue verified authors."
              },
              "safe": {
                "type": "boolean",
                "title": "Safe",
                "description": "Only include safe search results."
              },
              "news": {
                "type": "boolean",
                "title": "News",
                "description": "X no longer supports this filter. A search with it ends with a free diagnostic."
              },
              "excludeReplies": {
                "type": "boolean",
                "title": "Exclude replies",
                "description": "Drop replies, including the author's replies to their own posts. Use it with a profile to get original posts only."
              },
              "excludeRetweets": {
                "type": "boolean",
                "title": "Exclude reposts",
                "description": "Drop reposts (retweets)."
              },
              "excludeQuotes": {
                "type": "boolean",
                "title": "Exclude quote tweets",
                "description": "Drop quote tweets."
              }
            }
          },
          "geo": {
            "title": "Structured geo filters",
            "type": "object",
            "description": "Optional structured location filters.",
            "properties": {
              "near": {
                "type": "string",
                "title": "Near place",
                "description": "A country, such as United States, keeps tweets with a location tag there. Few tweets have one, so expect fewer rows. A city, such as San Francisco, keeps tweets about it."
              },
              "within": {
                "type": "string",
                "title": "Within radius",
                "description": "X search no longer supports this filter. A run with it stops at once & says so. Use Near place alone."
              },
              "geocode": {
                "type": "string",
                "title": "Geocode",
                "description": "X search no longer supports this filter. A run with it stops at once & says so."
              }
            }
          },
          "cards": {
            "title": "Structured card filters",
            "type": "object",
            "description": "Optional structured card filters.",
            "properties": {
              "name": {
                "type": "string",
                "title": "Card name",
                "description": "Keeps only tweets with this card type, such as poll2choice_text_only. The Actor checks each tweet."
              },
              "url": {
                "type": "string",
                "title": "URL",
                "description": "Only include tweets containing this URL or domain."
              }
            }
          },
          "sources": {
            "title": "Structured source filters",
            "type": "object",
            "description": "Optional structured source filters.",
            "properties": {
              "source": {
                "type": "string",
                "title": "Source app",
                "description": "X search no longer supports this filter. A run with it stops at once & says so."
              },
              "excludeSource": {
                "type": "string",
                "title": "Exclude source app",
                "description": "X search no longer supports this filter. A run with it stops at once & says so."
              }
            }
          },
          "conversation_id": {
            "title": "Conversation ID",
            "type": "string",
            "description": "Only include tweets belonging to this conversation thread. Use the first tweet's ID in the thread."
          },
          "conversationIds": {
            "title": "Conversation IDs",
            "type": "array",
            "description": "Alias for one or more conversation_id searches.",
            "items": {
              "type": "string"
            }
          },
          "quoted_tweet_id": {
            "title": "Quoted Tweet ID",
            "type": "string",
            "description": "Only include tweets that quote this specific tweet ID."
          },
          "quoted_user_id": {
            "title": "Quoted user ID",
            "type": "string",
            "description": "Only include tweets that quote any tweet from this user ID."
          },
          "filter:has_engagement": {
            "title": "Has engagement",
            "type": "boolean",
            "description": "Only include tweets with at least one like, retweet, or reply.",
            "default": false
          },
          "include:nativeretweets": {
            "title": "Include native retweets",
            "type": "boolean",
            "description": "Include native retweets in results (excluded by default).",
            "default": false
          },
          "filter:twimg": {
            "title": "Has twimg",
            "type": "boolean",
            "description": "Only include tweets containing twimg.com images.",
            "default": false
          },
          "filter:native_video": {
            "title": "Has native video",
            "type": "boolean",
            "description": "Only include tweets with natively uploaded video.",
            "default": false
          },
          "filter:vine": {
            "title": "Has vine",
            "type": "boolean",
            "description": "X no longer supports this filter. A search with it ends with a free diagnostic.",
            "default": false
          },
          "filter:consumer_video": {
            "title": "Has consumer video",
            "type": "boolean",
            "description": "X no longer supports this filter. A search with it ends with a free diagnostic.",
            "default": false
          },
          "filter:pro_video": {
            "title": "Has pro video",
            "type": "boolean",
            "description": "X no longer supports this filter. A search with it ends with a free diagnostic.",
            "default": false
          },
          "filter:spaces": {
            "title": "Has spaces",
            "type": "boolean",
            "description": "Only include tweets containing a Spaces link.",
            "default": false
          },
          "filter:mentions": {
            "title": "Has mentions",
            "type": "boolean",
            "description": "Only include tweets containing @mentions.",
            "default": false
          },
          "filter:hashtags": {
            "title": "Has hashtags",
            "type": "boolean",
            "description": "Only include tweets containing hashtags.",
            "default": false
          },
          "includeSearchTerms": {
            "title": "Tag each result with its search term",
            "type": "boolean",
            "description": "Attach the first matching search term as `searchTerm` on each unique Tweet. Use it to identify which query produced each deduplicated result.",
            "default": false
          },
          "respectProfileSubpages": {
            "title": "Respect profile subpages",
            "type": "boolean",
            "description": "Honor profile subpage paths such as /with_replies, /media, and /likes in profile URLs. /with_replies returns target-authored posts and replies. The Actor excludes conversation context from other authors.",
            "default": false
          },
          "replyTweetIds": {
            "title": "Reply Tweet IDs",
            "type": "array",
            "description": "Tweet IDs whose direct replies to collect. Nested replies never count as direct. If replies look incomplete, the Actor adds a diagnostic when your limit allows. Real replies always come first.",
            "items": {
              "type": "string"
            }
          },
          "quoteTweetIds": {
            "title": "Quote Tweet IDs",
            "type": "array",
            "description": "Tweet IDs to read with mode quotes.",
            "items": {
              "type": "string"
            }
          },
          "threadTweetIds": {
            "title": "Thread Tweet IDs",
            "type": "array",
            "description": "Tweet IDs to read with mode thread.",
            "items": {
              "type": "string"
            }
          },
          "from": {
            "title": "From user",
            "type": "string",
            "description": "Only include tweets sent by this username (without the @ symbol). For example, elonmusk."
          },
          "to": {
            "title": "To user",
            "type": "string",
            "description": "Only include tweets that are replies to this username (without @). For example, OpenAI."
          },
          "@": {
            "title": "Mentioned user (@)",
            "type": "string",
            "description": "Only include tweets that mention this username (without @). For example, Google."
          },
          "since": {
            "title": "Since date",
            "type": "string",
            "description": "Keep posts from this date onward. Write YYYY-MM-DD, or YYYY-MM-DD_HH:MM:SS_UTC for a time of day. 31/01/2026 & 01/31/2026 also work. A date that fits both orders reads month first, so 04/01/2026 is 1 April. The Actor checks each post's date. For example, 2026-01-01_00:00:00_UTC."
          },
          "until": {
            "title": "Until date",
            "type": "string",
            "description": "Keep posts from before this date. It takes the same date forms as Since date. The Actor checks each post's date. For example, 2026-04-01_00:00:00_UTC."
          },
          "since_time": {
            "title": "Since time",
            "type": "string",
            "description": "Keep posts from this Unix time onward, in seconds. An ISO 8601 time such as 2024-01-01T00:00:00Z works too. The Actor checks each post's time. For example, 1704067200."
          },
          "until_time": {
            "title": "Until time",
            "type": "string",
            "description": "Keep posts from before this Unix time, in seconds. An ISO 8601 time such as 2024-04-01T00:00:00Z works too. The Actor checks each post's time. For example, 1711929600."
          },
          "within_time": {
            "title": "Within time",
            "type": "string",
            "description": "Only include tweets from the last N days, hours, minutes or seconds. Put d, h, m or s after the number. For example, 12h."
          },
          "since_id": {
            "title": "Since ID",
            "type": "string",
            "description": "Only include tweets with an ID greater than (posted after) this tweet ID."
          },
          "max_id": {
            "title": "Max ID",
            "type": "string",
            "description": "Only include tweets with an ID less than (posted before) this tweet ID."
          },
          "min_faves": {
            "title": "Minimum likes",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with at least this many likes. Set to 0 to disable.",
            "default": 0
          },
          "-min_faves": {
            "title": "Fewer likes than",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with fewer than this many likes. Set to 0 to disable.",
            "default": 0
          },
          "min_retweets": {
            "title": "Minimum retweets",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with at least this many retweets. Set to 0 to disable.",
            "default": 0
          },
          "-min_retweets": {
            "title": "Fewer retweets than",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with fewer than this many retweets. Set to 0 to disable.",
            "default": 0
          },
          "min_replies": {
            "title": "Minimum replies",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with at least this many replies. Set to 0 to disable.",
            "default": 0
          },
          "-min_replies": {
            "title": "Fewer replies than",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with fewer than this many replies. Set to 0 to disable.",
            "default": 0
          },
          "filter:blue_verified": {
            "title": "Blue verified only",
            "type": "boolean",
            "description": "Only include tweets from X Premium (Blue) verified accounts.",
            "default": false
          },
          "filter:nativeretweets": {
            "title": "Native retweets only",
            "type": "boolean",
            "description": "Only include native retweets.",
            "default": false
          },
          "filter:replies": {
            "title": "Replies only",
            "type": "boolean",
            "description": "Only include reply tweets.",
            "default": false
          },
          "filter:quote": {
            "title": "Quote tweets only",
            "type": "boolean",
            "description": "Only include quote tweets.",
            "default": false
          },
          "filter:media": {
            "title": "Has media",
            "type": "boolean",
            "description": "Apply X's media search operator. Results usually include attached media, but X can also match media-like card content.",
            "default": false
          },
          "filter:images": {
            "title": "Has images",
            "type": "boolean",
            "description": "Apply X's image search operator. Results usually include image media. X can also match card or link image content.",
            "default": false
          },
          "filter:videos": {
            "title": "Has videos",
            "type": "boolean",
            "description": "Apply X's video search operator. Results usually include native video media.",
            "default": false
          },
          "filter:links": {
            "title": "Has links",
            "type": "boolean",
            "description": "Only include tweets containing external links.",
            "default": false
          },
          "filter:news": {
            "title": "Has news",
            "type": "boolean",
            "description": "X no longer supports this filter. A search with it ends with a free diagnostic.",
            "default": false
          },
          "filter:safe": {
            "title": "Safe content only",
            "type": "boolean",
            "description": "Only include tweets marked as safe (excludes sensitive content).",
            "default": false
          },
          "near": {
            "title": "Near place",
            "type": "string",
            "description": "A country, such as United States, keeps tweets with a location tag there. Few tweets have one, so expect fewer rows. A city, such as San Francisco, keeps tweets about it."
          },
          "within": {
            "title": "Within radius",
            "type": "string",
            "description": "X search no longer supports this filter. A run with it stops at once & says so. Use Near place alone."
          },
          "geocode": {
            "title": "Geocode",
            "type": "string",
            "description": "X search no longer supports this filter. A run with it stops at once & says so."
          },
          "list": {
            "title": "List ID (search-operator)",
            "type": "string",
            "description": "Filter search results to Tweets from members of this X List. Use List IDs unless you need to combine this filter with other search operators."
          },
          "url": {
            "title": "URL",
            "type": "string",
            "description": "Only include tweets containing this URL or domain. For example, github.com."
          },
          "card_name": {
            "title": "Card name",
            "type": "string",
            "description": "Keeps only tweets with this poll or card type. The Actor checks each tweet. Common values are poll2choice_text_only, poll3choice_text_only, poll4choice_text_only, poll2choice_image, poll3choice_image, poll4choice_image."
          },
          "alwaysSaveRunRecords": {
            "title": "Always save run records",
            "type": "boolean",
            "description": "Save run-report & analysis-summary on every run. When off, small runs that go well skip them & cost less.",
            "default": false
          },
          "includeRaw": {
            "title": "Include raw",
            "type": "boolean",
            "description": "API alias for Output Variant raw.",
            "default": false
          },
          "includeArticles": {
            "title": "Include articles",
            "type": "boolean",
            "description": "Deprecated compatibility input. Article data is already included when X provides it.",
            "default": false
          },
          "includeUnavailableFields": {
            "title": "Include unavailable fields",
            "type": "boolean",
            "description": "Deprecated compatibility input. Safe availability fields are already included when X provides them.",
            "default": false
          },
          "includeOriginalTweet": {
            "title": "Include original Tweet",
            "type": "boolean",
            "description": "Deprecated compatibility input. Look up source tweets separately with Tweet IDs.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}