{
 "sources": [
  {
   "id": "twitter-data-2021h2",
   "name": "Twitter Transparency Report #20 data download (Jul-Dec 2021), removal and information request CSVs covering 2012-2021",
   "url": "https://transparency.x.com/content/dam/transparency-twitter/download/2021-jul-dec/Twitter-Transparency-Report-20-Jul-Dec-2021.zip",
   "retrievedAt": "2026-10-10",
   "role": "Primary: official data file for 2012-H1 to 2021-H2",
   "licenseName": "Publisher copyright; figures reproduced as facts",
   "redistribution": "Figures extracted; source files not redistributed",
   "archiveUrl": "https://web.archive.org/web/20261010224422/https://transparency.x.com/content/dam/transparency-twitter/download/2021-jul-dec/Twitter-Transparency-Report-20-Jul-Dec-2021.zip",
   "archivedAt": "2026-10-10T22:44:22Z",
   "contentDigest": "sha256:bbf38aedb86879d1b0afb54b78c39e4b7f8208ee3f9102ff3cf1b70a3ee94aa8"
  },
  {
   "id": "twitter-page-2021h2",
   "name": "Twitter Transparency: Removal requests, July-December 2021",
   "url": "https://transparency.x.com/en/reports/removal-requests/2021-jul-dec",
   "retrievedAt": "2026-10-10",
   "role": "Primary: headline compliance rate and cross-check of totals",
   "licenseName": "Publisher copyright; figures reproduced as facts",
   "redistribution": "Figures extracted; source files not redistributed",
   "archiveUrl": "https://web.archive.org/web/20261010224431/https://transparency.x.com/en/reports/removal-requests/2021-jul-dec",
   "archivedAt": "2026-10-10T22:44:31Z",
   "contentDigest": "sha256:e4ea3cb66004d39fa06b573944cac3e394a738fd9ff939c0cef43b5dc876ffce"
  },
  {
   "id": "x-blog-2023",
   "name": "X blog: An update on Twitter Transparency Reporting (April 25, 2023)",
   "url": "https://blog.x.com/en_us/topics/company/2023/an-update-on-twitter-transparency-reporting",
   "retrievedAt": "2026-10-10",
   "role": "Primary: summary figures for 2022-H1",
   "licenseName": "Publisher copyright; figures reproduced as facts",
   "redistribution": "Figures extracted; source files not redistributed"
  },
  {
   "id": "x-report-2024h1",
   "name": "X Global Transparency Report, H1 2024 (PDF)",
   "url": "https://transparency.x.com/content/dam/transparency-twitter/2024/x-global-transparency-report-h1.pdf",
   "retrievedAt": "2026-10-10",
   "role": "Primary: 2024-H1 figures (p. 13)",
   "licenseName": "Publisher copyright; figures reproduced as facts",
   "redistribution": "Figures extracted; source files not redistributed",
   "archiveUrl": "https://web.archive.org/web/20260929115040/https://transparency.x.com/content/dam/transparency-twitter/2024/x-global-transparency-report-h1.pdf",
   "archivedAt": "2026-09-29T11:50:40Z",
   "contentDigest": "sha256:ff3ef346ea5e5330170e35f0ed861232d0f16a83fc7d67d4081d8d7546bd7419"
  },
  {
   "id": "x-report-2024h2",
   "name": "X Global Transparency Report, H2 2024 (PDF)",
   "url": "https://transparency.x.com/content/dam/transparency-twitter/2025/x-global-transparency-report_h2_2024.pdf",
   "retrievedAt": "2026-10-10",
   "role": "Primary: 2024-H2 figures (p. 13)",
   "licenseName": "Publisher copyright; figures reproduced as facts",
   "redistribution": "Figures extracted; source files not redistributed",
   "archiveUrl": "https://web.archive.org/web/20261010224537/https://transparency.x.com/content/dam/transparency-twitter/2025/x-global-transparency-report_h2_2024.pdf",
   "archivedAt": "2026-10-10T22:45:37Z",
   "contentDigest": "sha256:faf1a08ae38485d577bfbe1f25853702fd482c5380ef060144506aeba94fb531"
  },
  {
   "id": "x-report-2024h2-html",
   "name": "X 2025 Transparency Report (HTML version of the H2 2024 report)",
   "url": "https://transparency.x.com/en/reports/global-reports/2025-transparency-report",
   "retrievedAt": "2026-10-10",
   "role": "Primary: cross-check of 2024-H2 figures; also the latest report linked as of 2026-10-10",
   "licenseName": "Publisher copyright; figures reproduced as facts",
   "redistribution": "Figures extracted; source files not redistributed",
   "archiveUrl": "https://web.archive.org/web/20261009012749/https://transparency.x.com/en/reports/global-reports/2025-transparency-report",
   "archivedAt": "2026-10-09T01:27:49Z"
  },
  {
   "id": "rest-of-world-2023",
   "name": "Rest of World: Twitter is complying with more government demands under Elon Musk (2023)",
   "url": "https://restofworld.org/2023/elon-musk-twitter-government-orders/",
   "retrievedAt": "2026-10-10",
   "role": "Secondary context only: analysis of Lumen database submissions; not part of the series",
   "licenseName": "Publisher copyright; figures reproduced as facts",
   "redistribution": "Figures extracted; source files not redistributed",
   "archiveUrl": "https://web.archive.org/web/20261010224635/https://restofworld.org/2023/elon-musk-twitter-government-orders/",
   "archivedAt": "2026-10-10T22:46:35Z",
   "contentDigest": "sha256:a794a4a6b70780c54c9bd82b6e36aa77905c3bbfc8296cabdf523daed7f44c6b"
  }
 ],
 "tables": [
  {
   "id": "x-removal-demands",
   "title": "Twitter/X legal demands to remove content by half-year",
   "artifactId": "x-removal-demands",
   "unitOfObservation": "One half-year reporting period",
   "description": "Worldwide legal demands to remove content, the share acted on, and related figures, as published by Twitter (2012-2022) and X (2024).",
   "fields": [
    {
     "name": "period",
     "type": "string",
     "description": "Half-year, e.g. 2021-H2 (July-December 2021).",
     "nullable": false,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "period_start",
     "type": "date",
     "description": "First day of the period.",
     "nullable": false,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "period_end",
     "type": "date",
     "description": "Last day of the period.",
     "nullable": false,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "company",
     "type": "string",
     "description": "Twitter, Twitter/X, or X, as the reporting company.",
     "nullable": false,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "report_status",
     "type": "string",
     "description": "published, summary only, or missing (no report published).",
     "nullable": false,
     "valueType": "derived",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "derivation": "FactHub classification of what X published for the period."
    },
    {
     "name": "removal_requests_total",
     "type": "integer",
     "description": "Legal demands to remove content received worldwide. Empty when not published.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "demands"
    },
    {
     "name": "court_orders",
     "type": "integer",
     "description": "Demands that were court orders (2012-2021 only).",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "demands"
    },
    {
     "name": "other_legal_demands",
     "type": "integer",
     "description": "Other legal demands (2012-2021 only).",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "demands"
    },
    {
     "name": "accounts_specified",
     "type": "integer",
     "description": "Accounts named in the demands, where reported.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "accounts"
    },
    {
     "name": "compliance_rate_pct",
     "type": "number",
     "description": "Share of demands acted on. Twitter compliance rate (2019-H2 to 2021-H2) or X action rate (2024); see compliance_metric.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "percent"
    },
    {
     "name": "compliance_metric",
     "type": "string",
     "description": "Definition of compliance_rate_pct for the row.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "us_requests",
     "type": "integer",
     "description": "Removal demands from the United States, where reported.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "demands"
    },
    {
     "name": "us_compliance_pct",
     "type": "number",
     "description": "Compliance rate for US demands, where reported.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "percent"
    },
    {
     "name": "top1_jurisdiction",
     "type": "string",
     "description": "Jurisdiction with the most demands.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "top1_requests",
     "type": "integer",
     "description": "Demands from top1_jurisdiction.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "demands"
    },
    {
     "name": "top1_compliance_pct",
     "type": "number",
     "description": "Compliance or action rate for top1_jurisdiction.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "percent"
    },
    {
     "name": "top2_jurisdiction",
     "type": "string",
     "description": "Second jurisdiction by demands.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "top2_requests",
     "type": "integer",
     "description": "Demands from top2_jurisdiction.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "demands"
    },
    {
     "name": "top2_compliance_pct",
     "type": "number",
     "description": "Compliance or action rate for top2_jurisdiction.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "percent"
    },
    {
     "name": "top3_jurisdiction",
     "type": "string",
     "description": "Third jurisdiction by demands.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "top3_requests",
     "type": "integer",
     "description": "Demands from top3_jurisdiction.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "demands"
    },
    {
     "name": "top3_compliance_pct",
     "type": "number",
     "description": "Compliance or action rate for top3_jurisdiction.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "percent"
    },
    {
     "name": "info_requests_total",
     "type": "integer",
     "description": "Government requests for user account information.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "requests"
    },
    {
     "name": "info_disclosure_pct",
     "type": "number",
     "description": "Share of information requests where some data was disclosed. For 2012-2021, a request-weighted average of published per-country rates (about +/-0.5 points).",
     "nullable": true,
     "valueType": "derived",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "percent",
     "derivation": "Request-weighted mean of per-country disclosure rates for 2012-2021; as published for 2024."
    },
    {
     "name": "us_info_requests",
     "type": "integer",
     "description": "US government information requests, where reported.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "requests"
    },
    {
     "name": "us_info_disclosure_pct",
     "type": "number",
     "description": "Disclosure rate for US information requests, where reported.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ],
     "units": "percent"
    },
    {
     "name": "source_type",
     "type": "string",
     "description": "primary or none.",
     "nullable": false,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "source_url",
     "type": "string",
     "description": "Source for the row.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    },
    {
     "name": "notes",
     "type": "string",
     "description": "Row-level notes and definitional caveats.",
     "nullable": true,
     "valueType": "observed",
     "sourceIds": [
      "twitter-data-2021h2",
      "x-blog-2023",
      "x-report-2024h1",
      "x-report-2024h2"
     ]
    }
   ]
  }
 ],
 "analyses": [
  {
   "id": "removal-demands-series",
   "title": "Legal demands to remove content, by half-year",
   "question": "How many legal demands to remove content did Twitter and X receive in each half-year they reported?",
   "operation": "Select periods with a published removal_requests_total.",
   "scope": "Worldwide, 2012-H1 to 2024-H2; unpublished periods omitted.",
   "resultShape": "timeSeries",
   "structuredResult": {
    "rows": [
     {
      "period": "2012-H1",
      "company": "Twitter",
      "removal_requests": 6,
      "report_status": "published"
     },
     {
      "period": "2012-H2",
      "company": "Twitter",
      "removal_requests": 42,
      "report_status": "published"
     },
     {
      "period": "2013-H1",
      "company": "Twitter",
      "removal_requests": 60,
      "report_status": "published"
     },
     {
      "period": "2013-H2",
      "company": "Twitter",
      "removal_requests": 377,
      "report_status": "published"
     },
     {
      "period": "2014-H1",
      "company": "Twitter",
      "removal_requests": 432,
      "report_status": "published"
     },
     {
      "period": "2014-H2",
      "company": "Twitter",
      "removal_requests": 796,
      "report_status": "published"
     },
     {
      "period": "2015-H1",
      "company": "Twitter",
      "removal_requests": 1003,
      "report_status": "published"
     },
     {
      "period": "2015-H2",
      "company": "Twitter",
      "removal_requests": 4617,
      "report_status": "published"
     },
     {
      "period": "2016-H1",
      "company": "Twitter",
      "removal_requests": 5195,
      "report_status": "published"
     },
     {
      "period": "2016-H2",
      "company": "Twitter",
      "removal_requests": 5925,
      "report_status": "published"
     },
     {
      "period": "2017-H1",
      "company": "Twitter",
      "removal_requests": 6086,
      "report_status": "published"
     },
     {
      "period": "2017-H2",
      "company": "Twitter",
      "removal_requests": 6651,
      "report_status": "published"
     },
     {
      "period": "2018-H1",
      "company": "Twitter",
      "removal_requests": 12244,
      "report_status": "published"
     },
     {
      "period": "2018-H2",
      "company": "Twitter",
      "removal_requests": 11220,
      "report_status": "published"
     },
     {
      "period": "2019-H1",
      "company": "Twitter",
      "removal_requests": 18753,
      "report_status": "published"
     },
     {
      "period": "2019-H2",
      "company": "Twitter",
      "removal_requests": 27538,
      "report_status": "published"
     },
     {
      "period": "2020-H1",
      "company": "Twitter",
      "removal_requests": 42220,
      "report_status": "published"
     },
     {
      "period": "2020-H2",
      "company": "Twitter",
      "removal_requests": 38524,
      "report_status": "published"
     },
     {
      "period": "2021-H1",
      "company": "Twitter",
      "removal_requests": 43387,
      "report_status": "published"
     },
     {
      "period": "2021-H2",
      "company": "Twitter",
      "removal_requests": 47572,
      "report_status": "published"
     },
     {
      "period": "2022-H1",
      "company": "Twitter",
      "removal_requests": 53000,
      "report_status": "summary only"
     },
     {
      "period": "2024-H1",
      "company": "X",
      "removal_requests": 72703,
      "report_status": "published"
     },
     {
      "period": "2024-H2",
      "company": "X",
      "removal_requests": 97006,
      "report_status": "published"
     }
    ]
   },
   "displayResult": "2012-H1: 6; 2012-H2: 42; 2013-H1: 60; 2013-H2: 377; 2014-H1: 432; 2014-H2: 796; 2015-H1: 1,003; 2015-H2: 4,617; 2016-H1: 5,195; 2016-H2: 5,925; 2017-H1: 6,086; 2017-H2: 6,651; 2018-H1: 12,244; 2018-H2: 11,220; 2019-H1: 18,753; 2019-H2: 27,538; 2020-H1: 42,220; 2020-H2: 38,524; 2021-H1: 43,387; 2021-H2: 47,572; 2022-H1: 53,000; 2024-H1: 72,703; 2024-H2: 97,006",
   "methodologicalNotes": [
    "2022-H1 is X's rounded summary figure (\"approximately 53,000\")."
   ],
   "limitations": [
    "Includes demands from private lawyers for 2012-2021.",
    "Periods 2022-H2 to 2023-H2 and after 2024-H2 were not published.",
    "Growth is concentrated in a few countries, especially Japan and Turkey."
   ],
   "executedAt": "2026-10-10T23:30:00Z"
  },
  {
   "id": "compliance-rate-series",
   "title": "Share of removal demands acted on, by half-year",
   "question": "What share of legal demands to remove content did Twitter (2019-2021) and X (2024) act on?",
   "operation": "Select periods with a published global compliance or action rate.",
   "scope": "Worldwide; 2019-H2 to 2021-H2 (Twitter compliance rate) and 2024-H1 to 2024-H2 (X action rate).",
   "resultShape": "timeSeries",
   "structuredResult": {
    "rows": [
     {
      "period": "2019-H2",
      "company": "Twitter",
      "rate_pct": 35,
      "metric": "Twitter compliance rate"
     },
     {
      "period": "2020-H1",
      "company": "Twitter",
      "rate_pct": 31,
      "metric": "Twitter compliance rate"
     },
     {
      "period": "2020-H2",
      "company": "Twitter",
      "rate_pct": 29,
      "metric": "Twitter compliance rate"
     },
     {
      "period": "2021-H1",
      "company": "Twitter",
      "rate_pct": 54,
      "metric": "Twitter compliance rate"
     },
     {
      "period": "2021-H2",
      "company": "Twitter",
      "rate_pct": 51,
      "metric": "Twitter compliance rate"
     },
     {
      "period": "2024-H1",
      "company": "X",
      "rate_pct": 70.82,
      "metric": "X action rate"
     },
     {
      "period": "2024-H2",
      "company": "X",
      "rate_pct": 81.89,
      "metric": "X action rate"
     }
    ]
   },
   "displayResult": "2019-H2: 35% (Twitter compliance rate); 2020-H1: 31% (Twitter compliance rate); 2020-H2: 29% (Twitter compliance rate); 2021-H1: 54% (Twitter compliance rate); 2021-H2: 51% (Twitter compliance rate); 2024-H1: 70.82% (X action rate); 2024-H2: 81.89% (X action rate)",
   "methodologicalNotes": [
    "Twitter compliance rate: share of demands where some or all reported content was withheld or removed, including for breaking Twitter's rules. X action rate: cases actioned divided by total requests."
   ],
   "limitations": [
    "The two metrics are defined differently; the before-and-after comparison is indicative, not exact.",
    "No global rate was published before 2019-H2 or for 2022-H1 to 2023-H2.",
    "A descriptive comparison of periods; it does not show why rates changed."
   ],
   "executedAt": "2026-10-10T23:30:00Z"
  }
 ]
}
