{
  "platform": "X (formerly Twitter)",
  "url": "https://x.com",
  "checked": "2026-10-26",
  "policies": [
    {
      "topic": "automation",
      "status": "prohibited",
      "conditions": "Scripting the X website (browser automation, non-API) is prohibited and may lead to permanent suspension.",
      "quote": "Use non-API-based forms of automation, such as scripting the >x< website. The use of these techniques may result in the permanent suspension of your account.",
      "source": "https://help.x.com/en/rules-and-policies/x-automation",
      "source_updated": "2026-04"
    },
    {
      "topic": "ai_content",
      "status": "allowed_with_conditions",
      "conditions": "Automated posts for entertainment, informational or novelty purposes are allowed if all other rules are met; no automated posting about trending topics; no duplicative posts across accounts.",
      "quote": "you may post automated posts for entertainment, informational, or novelty purposes",
      "source": "https://help.x.com/en/rules-and-policies/x-automation",
      "source_updated": "2026-04"
    },
    {
      "topic": "ai_comments",
      "status": "allowed_with_conditions",
      "conditions": "AI reply bots need prior written approval from X; automated replies/mentions only to users who opted in, one per interaction, with an easy opt-out.",
      "quote": "the deployment or operation of any AI reply bot requires prior written and explicit approval from >x<",
      "source": "https://help.x.com/en/rules-and-policies/x-automation",
      "source_updated": "2026-04"
    },
    {
      "topic": "account_rules",
      "status": "allowed_with_conditions",
      "conditions": "Acting through another user's account needs a clear description of the automated actions, express consent (OAuth alone is not enough), and immediate opt-out.",
      "quote": "A user authorizing your app or service to access their >x< account through OAuth does not by itself constitute sufficient consent to take automated actions through that user's account.",
      "source": "https://help.x.com/en/rules-and-policies/x-automation",
      "source_updated": "2026-04"
    },
    {
      "topic": "promotion",
      "status": "prohibited",
      "conditions": "No unsolicited automated DMs; no automated replies based on keyword searches alone; no misleading links.",
      "quote": "sending automated replies to posts based on keyword searches alone is not permitted",
      "source": "https://help.x.com/en/rules-and-policies/x-automation",
      "source_updated": "2026-04"
    },
    {
      "topic": "disclosure",
      "status": "allowed_with_conditions",
      "conditions": "Automated accounts must display the 'Automated' label and stay connected to the human-run account that manages them (the label shows who's managing it).",
      "quote": "Our Automation rules require these accounts to display labels and remain connected to a human-run account.",
      "source": "https://help.x.com/en/using-x/automated-account-labels",
      "source_updated": null
    },
    {
      "topic": "automation",
      "status": "allowed_with_conditions",
      "conditions": "Automation is sanctioned through the X API, subject to the automation rules (labels, no spam, no trending-topic auto-posts).",
      "quote": "Automation on >x< refers to accounts or apps that take repeated actions without a person actively performing them.",
      "source": "https://help.x.com/en/rules-and-policies/x-automation",
      "source_updated": "2026-04"
    }
  ],
  "observed": [
    {
      "date": "2026-10-26",
      "note": "help.x.com returned HTTP 403 to a plain HTTP fetch (WebFetch) but rendered in a real browser pane."
    },
    {
      "date": "2026-10-26",
      "note": "For an agent that won't hold API keys, the sanctioned automation route is unavailable; the remaining compliant option is a human posting the agent's text manually."
    },
    {
      "date": "2026-10-27",
      "note": "The label help page's FAQ answers are collapsed; the requirement text only appears after expanding 'How do automated account labels work?'."
    }
  ],
  "domains": [
    "x.com",
    "twitter.com"
  ],
  "browser_agent": {
    "status": "prohibited",
    "reason": "Non-API automation (scripting the website) may lead to permanent suspension."
  },
  "ai_posting": {
    "status": "allowed_with_conditions",
    "reason": "Automated posts via the API for informational/novelty purposes; AI reply bots need approval."
  },
  "boundaries": [
    {
      "action": "automate_browser",
      "decision": "deny",
      "requires": [],
      "evidence": [],
      "policy_ref": 0,
      "checked": "2026-10-27"
    },
    {
      "action": "automate_api",
      "decision": "confirm",
      "requires": [
        "use_official_api",
        "automated_label",
        "linked_human_account"
      ],
      "evidence": [
        "account shows Automated label linked to the managing human account"
      ],
      "policy_ref": 5,
      "checked": "2026-10-27"
    }
  ],
  "legit_route": {
    "summary": "Automate only through the X API, on a labelled automated account linked to its human manager.",
    "steps": [
      "Use the official X API (developer account), not browser scripting.",
      "Turn on the Automated account label, which links the bot to the human-run account managing it.",
      "Follow the automation rules: no trending-topic auto-posts, no duplicate posts across accounts, replies only to users who opted in; AI reply bots need X's prior written approval."
    ],
    "sources": [
      "https://help.x.com/en/rules-and-policies/x-automation",
      "https://help.x.com/en/using-x/automated-account-labels"
    ]
  }
}
