Skip to content
Postbert

Privacy

Last updated November 11, 2026

Bartas Urba LLC, a Colorado limited liability company, operates Postbert and is the data controller for personal data processed through the service. Postbert stores only what it needs to sign you in, connect your social accounts, and publish the posts you choose at your request. We never sell your data, never read your private messages, and never post without an action you approve in Postbert or a connected integration.

Account

Sign-in is handled by Clerk. Postbert receives your Clerk user id and uses session cookies from Clerk to keep you signed in. Postbert does not use advertising cookies.

Drafts and account preferences

When you choose Save draft, Postbert encrypts your draft text and settings and stores them under your signed-in account. Drafts include per-network edits, publishing settings, scheduling choices, and a reference to any saved video. Attached videos upload directly to our storage and can be restored on another device after you save the draft. Draft videos are available for eight days; the composer shows their expiry time. Draft text remains until you discard it or successfully submit it. Account selections are remembered separately for your next post. Unsaved edits stay in the open composer. Contact us to request deletion of your saved preferences and other account data.

ChatGPT integration

If you connect Postbert to ChatGPT, Clerk asks you to approve access to your account. Read access lets ChatGPT request your connected account names and identifiers, post text, schedules, and saved publish status. Write access lets it publish or schedule text posts and cancel scheduled posts after your approval. Requested results are sent to OpenAI in your conversation and are subject to OpenAI's policies and your ChatGPT settings. Postbert does not send social access tokens, refresh tokens, or stored video URLs to ChatGPT.

Previews contain the proposed action and expire after 15 minutes. Postbert does not save previews as drafts. Approved posts use the same storage and retention as posts created in Postbert. Disconnect the integration in ChatGPT. Contact support to request revocation of existing access. Posts you already scheduled remain scheduled until you cancel them.

Scheduling assistant

When the in-app scheduling assistant is configured, the text you type in that chat and the account names needed to prepare a preview are sent to the model provider configured for Postbert. The assistant cannot publish. You confirm the preview in the app, and that confirmation uses the same publish path as the studio. Video and image posts stay on New post. If the assistant is not configured, the chat does not call a model.

TikTok

When you connect TikTok, Postbert stores the account id TikTok gives us, your display name, username, avatar link, and encrypted OAuth access and refresh tokens. We use them only to publish videos you submit in Postbert. Disconnect on the Accounts page deletes the tokens immediately. Email privacy@postbert.com to request deletion of all Postbert data.

Instagram (Instagram API with Instagram Login)

When you connect an Instagram Business or Creator account, Postbert stores your Instagram account id, username, display name, encrypted long-lived access token, post ids and status for Reels you publish, and uploaded video files in our storage until publishing finishes or you cancel. We use this to publish and schedule Reels you choose. We also read the like count on media you published through Postbert and the account follower count, for the account card and for a plug you turned on. We do not request Instagram insight permissions, read Instagram Direct messages, or post without your action. A plug repost runs only after you turn that plug on. Disconnect on Accounts removes tokens immediately; scheduled Reels on that account are cancelled. Meta may also send a data-deletion callback — see Data deletion.

Facebook Pages (Facebook Login)

When you connect a Facebook Page for Reels, Postbert stores the Page id, Page name, your Meta user id (to honor Meta deletion callbacks), encrypted Page access token, post ids and status, and uploaded video files in our storage until publishing finishes or you cancel. Scopes include pages_show_list, pages_read_engagement, and pages_manage_posts. We use them to list Pages you manage, publish Page Reels you choose, and show publish status. We also read the Page follower count and the reaction count on posts you published through Postbert, for the account card and for a plug you turned on. We do not read Page messages or post without your action. A plug repost runs only after you turn that plug on. Disconnect on Accounts removes tokens immediately. Meta deletion callbacks are described on Data deletion.

X (Twitter)

When you connect X, Postbert stores your X user id, username, display name, encrypted OAuth access and refresh tokens, media and post ids, and status for posts you publish. Uploaded video files stay in our storage until publishing finishes or you cancel. We use this to publish posts you choose. We also read public like and follower counts for the account card and for a plug you turned on. A still-valid access token is used for those reads. Disconnect on Accounts deletes tokens immediately.

LinkedIn

When you connect your LinkedIn member profile, Postbert stores your LinkedIn member id, display name, profile picture URL when LinkedIn provides it, encrypted OAuth access token and expiry, post and video ids, and publish status for posts you create. Uploaded video files stay in our storage until publishing finishes or you cancel. We use Sign In with LinkedIn (OpenID Connect) and Share on LinkedIn (w_member_social) only to publish content you choose to your profile. LinkedIn access tokens expire after about 60 days; Postbert prompts you to reconnect before they expire. Disconnect on Accounts deletes stored tokens immediately.

Bluesky

When you connect Bluesky, Postbert stores your DID, handle, display name, avatar URL when Bluesky provides it, the PDS address, an encrypted OAuth session (access and refresh material bound to this app), post URIs, and publish status for posts you create. Uploaded video files stay in our storage until publishing finishes or you cancel. Postbert uses AT Protocol OAuth to publish content you choose. Like and follower counts for the account card and for a plug you turned on are read from the public Bluesky app view and do not use your session. Disconnect on Accounts deletes the stored session immediately.

Threads

When you connect Threads, Postbert stores your Threads user id, username, display name, profile picture URL when Threads provides it, an encrypted long-lived access token, container and media ids, and publish status for posts you create. Uploaded video files stay in our storage until publishing finishes or you cancel. Scopes are threads_basic and threads_content_publish. We use them only to publish text and video you choose. Long-lived tokens last about 60 days; Postbert refreshes them before they expire and asks you to reconnect if refresh fails. Disconnect on Accounts removes tokens immediately. Threads may also send uninstall and data-deletion callbacks — see Data deletion.

YouTube API Services

Postbert uses YouTube API Services. By using YouTube features you also agree to the YouTube Terms of Service and Google's Privacy Policy.

What we access. When you connect YouTube, Postbert receives an OAuth access token and refresh token. We also read your Google account id, and your name, email, and profile picture when Google returns them, so we can label the connection. We ask for your YouTube channel id and channel name. If Google does not return them with the permissions we request, we label the connection with your Google account name and email instead. When you post or schedule, we send the video you chose to your own channel, with the title, description, and made-for-kids setting you entered. Posting now also sends the visibility you chose. A scheduled post is uploaded as private and includes the time you picked, so YouTube can publish it then. We keep the YouTube video id and upload status for that video, and the resumable upload address used to send the file. We do not read videos already on your channel, comments, or analytics.

Why we access it. Only to upload videos you start in Postbert to your own YouTube channel when you post or schedule them, and to show status until publishing finishes. We do not upload unless you take that action.

How we protect it. Connections between your browser, Postbert, and Google are encrypted in transit with TLS (HTTPS). OAuth access and refresh tokens are encrypted at rest with AES-256-GCM before they are saved. Each value gets a new random initialization vector and an authentication tag. The encryption key stays in Postbert's server configuration and is not stored with the tokens. The ciphertext is kept in our PlanetScale database. Only the signed-in owner can connect or remove that YouTube account. Tokens are decrypted on the server only to upload a video that person started or to revoke access. We request only openid, email, profile, and https://www.googleapis.com/auth/youtube.upload. We do not request broader YouTube permissions, and we refuse the connection if upload permission was not granted. We do not write access or refresh tokens to logs. A failed connection is recorded as an error code only. Error reports strip authorization headers, cookies, and token fields before they are sent.

Sharing. We do not sell Google user data. We do not share it with advertisers or data brokers, and we do not use it to develop, improve, or train artificial intelligence or machine learning models. Clerk (sign-in), Vercel (hosting), PlanetScale (database), and Cloudflare (the video file until publishing finishes) process data for Postbert. The video is sent to YouTube because you asked us to publish it on your channel. If you connect ChatGPT and ask for your accounts or posts, that integration can return display names, post text, schedules, and publish status. It does not receive video files or Google tokens.

Postbert's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

Retention and deletion. On the calendar, open Accounts and choose Delete on the YouTube channel. Postbert removes the stored tokens immediately, clears the saved channel id, name, and email label, clears any upload still in progress, and asks Google to revoke the refresh token. If that channel has no posts in Postbert, the account row is removed. If it has posts, a blank row stays so past publish status can still be shown, without tokens or your channel name. Videos already published stay on YouTube. To delete everything tied to your Postbert account, email privacy@postbert.com (see Data deletion). We complete those requests within 30 days. You can revoke Postbert's access any time at Google Account permissions. Revoking there stops Postbert from using the token. Use Delete in Accounts, or the email above, to remove the copy we stored.

Notification email

The maintenance cron may send a plain message about a publish failure, an unconfirmed publish, a reconnect prompt, or a scheduled post that went live. Postbert looks up your primary email from Clerk at send time and does not store your email address. Messages link back to the same pages as in-app notifications. Email does not run until Postbert is configured with a transactional email API key and from address. Messages have no tracking pixels.

Video files and retention

Videos upload from your browser to Cloudflare R2. Platforms pull or receive them through official APIs. Postbert deletes publishing copies after the platform confirms publish or when you cancel a scheduled post. Draft videos, replaced videos, and unused publishing copies are removed within about nine days by the storage lifecycle. A separate publishing copy preserves the scheduling window when you submit an older draft. Account tokens are removed when you disconnect or when we complete a deletion request (within 30 days by email). Post history may remain in anonymized form when an account row is kept only to show past publish status after disconnect.

Site measurement

Postbert counts visits with Simple Analytics, which does not use cookies, and with Google Analytics 4 when a measurement id is configured. Google Analytics uses a first-party cookie to recognize a browser between page views. Postbert does not send your name, email, Clerk user id, post text, or access tokens to either service. Postbert does not use advertising cookies.

Contact

Bartas Urba LLC operates Postbert. Privacy questions: b@bartas.co. Deletion requests: privacy@postbert.com (see also Data deletion).