Privacy Policy Plain English

Exported X content is processed locally in your browser. Export requests contact X-owned services. XPorter also keeps limited product diagnostics locally. Opening the uninstall feedback page sends a diagnostic summary; diagnostics are not uploaded during use. These reports exclude exported content, usernames, cookies and request URLs. Written feedback includes whatever you choose to submit.

What the extension accesses

XPorter accesses the following to perform the exports you start and build the local seen-post dataset:

What XPorter does NOT do

Diagnostics and uninstall feedback

Chrome opens a feedback page when you remove XPorter. Its URL carries a compressed diagnostic summary, which the page records through Google Apps Script in a private Google spreadsheet. Compression is not encryption; the summary can be read from that URL and may remain in browser history. The summary contains:

Optional feedback can specify the step that failed and the file formats you wanted. These are your answers, not records of formats you exported. An unfinished answer is temporarily kept in this browser tab so it survives a reload.

Recent details may be omitted to fit Chrome's uninstall URL limit. Reports mark omitted records explicitly. No exported content, X identifiers, file names, cookies, request URLs or full browser user-agent string are included automatically.

During use

Product diagnostics stay local while using the extension. The optional usage-sharing experiment and local report button have been removed.

Diagnostics are pseudonymous, not guaranteed anonymous: the random identifier links reports. Feedback is stored through Google Apps Script in a private Google spreadsheet that only the developer can access; it is not shared publicly or by link. Do not submit secrets or sensitive personal information. If you include contact details, they are stored with your feedback.

Reports help diagnose failures and improve XPorter. Uninstall feedback covers only people whose feedback page loads; it is not a complete count of users.

Permissions explained

cookies

Reads authentication tokens (CSRF token) from your X.com session to make authenticated API requests.

downloads

Saves the exported CSV, JSON, XLSX or TXT file to your Downloads folder when you click download.

storage & unlimitedStorage

Stores preferences, resumable export batches, recent export history, local diagnostic counters, and the deduplicated seen-post dataset locally in Chrome. unlimitedStorage prevents larger local datasets and exports from being truncated by Chrome's normal storage quota.

Host access to x.com

Required to make API calls to X.com to retrieve the data you asked to export, and to read the address of an open X.com tab so the popup can suggest the profile you are viewing.

Data storage

Third-party services

XPorter integrates with no analytics platforms, ad networks or trackers. Normal exports contact X-owned x.com APIs and may read a public abs.twimg.com client asset as text; that asset is never executed, and no authentication or export data is sent to the CDN. The diagnostic and feedback flows described above use Google Apps Script and Google Sheets.

Data security

All communication with X-owned services uses HTTPS. Your own X session cookies and CSRF token are read only when a request is made, are never stored or copied by XPorter, and are sent only to x.com API requests — never to abs.twimg.com or to the feedback service. X's public web-client bearer token, which is the same for every user and identifies no one, may be cached locally in storage.local together with discovered API operation IDs.

Children's privacy

XPorter is not directed at children under 13 and does not knowingly collect information from minors.

Changes to this policy

Updates will be reflected on this page with a new effective date. Significant changes will be noted in the extension's changelog.

Contact

Questions about this policy or the extension? Message me on Telegram (fastest reply), or email art.lemelson@gmail.com (I check it rarely, so I may be slow). You can also find me on GitHub.

Effective date: September 22, 2026