{
  "openapi": "3.0.1",
  "info": {
    "title": "Twitter X Profile Scraper",
    "description": "Twitter/X Profile & Tweet Scraper without search functionality. Extract complete profile information, tweets, replies, and media from public accounts with advanced filtering by date range, engagement metrics, and content type. UserName Thats All You Need!",
    "version": "0.0",
    "x-build-id": "yf1EXabmoIThAAPUI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api402~twitter-x-profile-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api402-twitter-x-profile-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/api402~twitter-x-profile-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api402-twitter-x-profile-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/api402~twitter-x-profile-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api402-twitter-x-profile-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "twitterHandles": {
            "title": "🐦 Twitter Usernames / Handles (Bulk)",
            "type": "array",
            "description": "Twitter usernames to extract in bulk (e.g. <code>elonmusk</code>, <code>@figma</code>, <code>apify</code>).",
            "items": {
              "type": "string"
            }
          },
          "twitterUrls": {
            "title": "🔗 Profile URLs (Bulk)",
            "type": "array",
            "description": "Direct profile URLs to Twitter/X accounts in bulk (e.g. <code>https://x.com/elonmusk</code> or <code>https://twitter.com/apify</code>).",
            "items": {
              "type": "string"
            }
          },
          "scrapeProfileInfo": {
            "title": "👤 Scrape Profile Metadata",
            "type": "boolean",
            "description": "Extract full profile bio, follower count, following count, verified badge, creation date, website, and avatar/banner URLs.",
            "default": true
          },
          "maxItems": {
            "title": "📦 Max Tweets to Scrape",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum tweets to collect per target. Set to <code>0</code> for unlimited (up to 5,000 tweets per target).",
            "default": 20
          },
          "email": {
            "title": "📧 Email for Guaranteed Data Delivery",
            "type": "string",
            "description": "✨ <b>Zero-Risk Guarantee:</b> If live extraction ever yields 0 items, your dataset will be delivered to your inbox within 10–30 minutes with <b>zero compute charges</b> and an instant <b>10% discount</b> on result fees."
          },
          "searchTerms": {
            "title": "🔍 Search Keywords",
            "type": "array",
            "description": "Keywords or search operators to filter tweets (e.g. <code>AI research</code>, <code>launch</code>).",
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "📅 Start Date (Since)",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$|^$",
            "type": "string",
            "description": "Only collect tweets published on or after this date. Format: <code>YYYY-MM-DD</code>."
          },
          "endDate": {
            "title": "📅 End Date (Until)",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$|^$",
            "type": "string",
            "description": "Only collect tweets published on or before this date. Format: <code>YYYY-MM-DD</code>."
          },
          "location": {
            "title": "📍 Location Filter",
            "type": "string",
            "description": "Filter tweets geocoded near a specific city or region (e.g. <code>San Francisco</code>, <code>London</code>)."
          },
          "minLikes": {
            "title": "❤️ Minimum Likes",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with at least this many likes. Set to <code>0</code> to disable.",
            "default": 0
          },
          "minRetweets": {
            "title": "🔁 Minimum Retweets",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with at least this many retweets. Set to <code>0</code> to disable.",
            "default": 0
          },
          "minReplies": {
            "title": "💬 Minimum Replies",
            "minimum": 0,
            "type": "integer",
            "description": "Only include tweets with at least this many replies. Set to <code>0</code> to disable.",
            "default": 0
          },
          "includeReplies": {
            "title": "💬 Include Reply Tweets",
            "type": "boolean",
            "description": "Include author's reply tweets in the timeline results. Disabled by default to focus on original posts.",
            "default": false
          },
          "includeRetweets": {
            "title": "🔁 Include Retweets",
            "type": "boolean",
            "description": "Include posts retweeted by this user. Enabled by default.",
            "default": true
          },
          "mediaOnly": {
            "title": "📸 Media Only",
            "type": "boolean",
            "description": "Only collect tweets containing photos, videos, or animated GIFs.",
            "default": false
          },
          "contentInclude": {
            "title": "Include Only: Media (Images/Videos)",
            "type": "boolean",
            "description": "Filter to only collect tweets containing media attachments.",
            "default": false
          },
          "onlyVerified": {
            "title": "Include Only: Verified Accounts",
            "type": "boolean",
            "description": "Only collect tweets from accounts with verified badges.",
            "default": false
          },
          "onlyLinks": {
            "title": "Include Only: Tweets with Links",
            "type": "boolean",
            "description": "Only collect tweets that contain external web URLs.",
            "default": false
          },
          "onlyQuotes": {
            "title": "Include Only: Quote Tweets",
            "type": "boolean",
            "description": "Only collect quote tweets.",
            "default": false
          },
          "excludeReplies": {
            "title": "Exclude Replies",
            "type": "boolean",
            "description": "Explicitly exclude any reply tweets.",
            "default": false
          },
          "excludeRetweets": {
            "title": "Exclude Retweets",
            "type": "boolean",
            "description": "Explicitly exclude shared retweets.",
            "default": false
          },
          "excludeMedia": {
            "title": "Exclude Media Tweets",
            "type": "boolean",
            "description": "Exclude tweets that have images or videos attached.",
            "default": false
          },
          "excludeLinks": {
            "title": "Exclude Tweets with Links",
            "type": "boolean",
            "description": "Exclude tweets containing external hyperlinks.",
            "default": false
          },
          "nsfwContent": {
            "title": "Enable NSFW / Sensitive Content",
            "type": "boolean",
            "description": "Enable extraction of age-restricted or sensitive media.",
            "default": true
          },
          "useResidentialProxy": {
            "title": "Use Residential Proxy",
            "type": "boolean",
            "description": "Automatically routes requests through premium Apify residential proxies for unblocked scraping.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Apify Proxy Configuration",
            "type": "object",
            "description": "Residential proxy settings configured for maximum anti-blocking.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "customProxyUrl": {
            "title": "Custom Proxy URL (Optional)",
            "type": "string",
            "description": "Optional external HTTP/HTTPS proxy to route requests (e.g. <code>http://username:password@proxy.example.com:8000</code>)."
          },
          "maxRetries": {
            "title": "Max Retries",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum retry attempts per request. Internal failover automatically kicks in with session and proxy rotation.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}