PostPro
PostPro (registered with TikTok for Developers, with Meta, with Google, with LinkedIn, and with X as CLDNRDZ-PostPro) is a self-hosted instance of the open-source Postiz scheduling platform, operated by CloudNerdz LLC. We use it to plan, queue, and publish TikTok, YouTube, Meta (Facebook, Instagram, and Threads), LinkedIn, and X content for the CloudNerdz LLC brand accounts (e.g. @cloudnerdz.io) and for clients and collaborators who have engaged us to manage their social posting.
What PostPro does
PostPro lets a CloudNerdz LLC operator (or an invited collaborator or client) draft a post, schedule it for a future timeslot, and publish it to a connected TikTok account, YouTube channel, Facebook Page, Instagram account, Threads profile, LinkedIn profile or Company Page, or X account. It also surfaces basic account statistics for the connected account inside an analytics dashboard so the team can see how recent posts performed without leaving the scheduler.
TikTok products we use
- Login Kit — used by the connected operator to authorize PostPro against the CloudNerdz brand account.
- Content Posting API — used to upload drafts and directly post scheduled content to the authorized account.
YouTube API Services we use
PostPro uses YouTube API Services via Google OAuth to publish to connected YouTube channels:
- YouTube Data API v3 — used to upload scheduled videos to the authorized channel and to read the channel’s existing videos so operators can reference past posts and avoid duplicates.
- YouTube Analytics API — used read-only to show aggregate channel and video statistics inside PostPro’s analytics dashboard.
- Google account profile (OAuth userinfo) — used to label the connected account inside the scheduler UI so the operator can confirm which channel they are about to post to.
Meta products we use
PostPro uses the Meta Graph API via OAuth to publish to connected Meta accounts:
- Facebook Login for Business — used by the connected operator to authorize PostPro against a Facebook Page and its linked Instagram professional account.
- Facebook Pages API — used to publish scheduled posts to the authorized Facebook Page, read the Page’s existing posts to avoid duplicates, and read aggregate Page insights.
- Instagram Graph API — used to publish scheduled photos, videos, and Reels to the authorized Instagram professional account, and to read aggregate media insights.
- Threads API — used to publish scheduled Threads posts to the authorized profile and read aggregate post insights (authorized separately from Facebook/Instagram).
LinkedIn products/API we use
PostPro uses the LinkedIn API via OAuth to publish to connected LinkedIn accounts. These correspond to the scopes requested by the upstream Postiz LinkedIn provider, which PostPro runs unmodified:
- Sign In with LinkedIn using OpenID Connect — used to authenticate the connecting member and label the connected account in the scheduler UI.
- Share on LinkedIn — used to publish scheduled posts to the authorizing member’s LinkedIn profile.
- Community Management API — used to list the member’s Company Pages and publish scheduled posts to an authorized Company Page. PostPro’s access to this product is pending approval by LinkedIn; until it is granted, PostPro publishes only to the member’s own profile.
X (Twitter) API we use
PostPro uses the X API via OAuth 1.0a to publish to connected X accounts. Because X uses OAuth 1.0a, PostPro’s application holds a single Read-and-write permission rather than granular scopes:
- OAuth 1.0a user authentication (three-legged) — used by the connecting operator to authorize PostPro against an X account and to label the connected account in the scheduler UI.
- Post creation (X API v2,
POST /2/tweets) — used to publish scheduled posts to the authorized X account at the operator’s chosen time. - Media upload — used to attach images or video to a scheduled post before publishing.
Scopes we request and why
TikTok (Login Kit & Content Posting API)
| Scope | How PostPro uses it |
|---|---|
user.info.basic |
Returns open_id, display name, and avatar for the connected-account label in the scheduler UI so the operator can confirm which TikTok account they are about to post to. Connected accounts are owned by CloudNerdz LLC or by clients and collaborators who have authorized PostPro through TikTok’s OAuth flow. |
user.info.profile |
Returns username, bio_description, profile_web_link, profile_deep_link, and is_verified for the account panel inside PostPro. |
user.info.stats |
Returns follower count, likes count, following count, and video count for the in-app analytics dashboard. |
video.list |
Reads the list of videos already published on the authorized account so operators can avoid duplicate posts and reference past content from the scheduler. |
video.upload |
Uploads a video file to TikTok as an unpublished draft for an operator to review and post inside the TikTok app. |
video.publish |
Directly posts scheduled content to the authorized TikTok profile at the time the operator selected. |
Google (YouTube integration)
These are the Google OAuth scopes requested when an operator connects a YouTube channel. They are requested by the upstream Postiz platform’s YouTube provider, which PostPro runs unmodified.
| Scope | How PostPro uses it |
|---|---|
userinfo.profile |
Returns the Google account’s name and avatar for the connected-account label in the scheduler UI so the operator can confirm which channel they are about to post to. |
userinfo.email |
Returns the email address of the authorizing Google account, shown alongside the account label so the operator can verify the connection identity. |
youtube |
Manages the connected YouTube channel on the operator’s behalf: creating and updating the video posts the operator schedules, including titles, descriptions, tags, and thumbnails. |
youtube.force-ssl |
The SSL-enforced variant of the channel-management scope, requested by the Postiz provider alongside youtube for the same scheduling and publishing actions. |
youtube.readonly |
Reads channel and video metadata so operators can see what is already published, avoid duplicate posts, and reference past content from the scheduler. |
youtube.upload |
Uploads the scheduled video files to the authorized YouTube channel at the time the operator selected. |
youtubepartner |
Requested by the upstream Postiz YouTube provider as part of its fixed scope set. PostPro does not use YouTube partner/CMS features; no partner data is read or stored. |
yt-analytics.readonly |
Reads aggregate channel and video statistics for the in-app analytics dashboard so the team can see how recent posts performed. |
Meta — Facebook
Requested via Facebook Login for Business when an operator connects a Facebook Page.
| Scope | How PostPro uses it |
|---|---|
pages_show_list |
Lists the Facebook Pages the authorizing user manages so the operator can select which Page a scheduled post will publish to. |
business_management |
Confirms the operator is authorized to act on the selected Page so PostPro can publish on its behalf. |
pages_manage_posts |
Creates and publishes the scheduled posts to the authorized Facebook Page at the operator’s chosen time. |
pages_manage_engagement |
Manages engagement (e.g. replying to comments) on posts PostPro publishes, on the operator’s behalf. |
pages_read_engagement |
Reads the Page’s existing posts and engagement so operators can reference past content and avoid duplicates. |
read_insights |
Reads aggregate Page and post insights for the in-app analytics dashboard. |
Meta — Instagram
Requested via Facebook Login for Business when an operator connects an Instagram professional account (linked to a Facebook Page).
| Scope | How PostPro uses it |
|---|---|
instagram_basic |
Returns the Instagram account’s id, username, and profile details for the connected-account label in the scheduler UI. |
pages_show_list |
Lists the Facebook Pages linked to the Instagram professional account so the operator can select the correct account. |
pages_read_engagement |
Reads the linked Page’s content so PostPro can resolve the account and let operators reference past posts. |
business_management |
Confirms the Business relationship that authorizes the operator to publish to the connected Instagram account. |
instagram_content_publish |
Publishes the scheduled photos, videos, and Reels to the authorized Instagram account at the operator’s chosen time. |
instagram_manage_comments |
Reads and manages comments on media PostPro publishes, on the operator’s behalf. |
instagram_manage_insights |
Reads aggregate account and media insights for the in-app analytics dashboard. |
Meta — Threads
Requested via the Threads API when an operator connects a Threads profile.
| Scope | How PostPro uses it |
|---|---|
threads_basic |
Returns the Threads profile’s basic identity for the connected-account label in the scheduler UI. |
threads_content_publish |
Publishes the scheduled Threads posts to the authorized profile at the operator’s chosen time. |
threads_manage_replies |
Reads and manages replies to posts PostPro publishes, on the operator’s behalf. |
threads_manage_insights |
Reads aggregate post and profile insights for the in-app analytics dashboard. |
Requested by the upstream Postiz LinkedIn provider when an operator connects a LinkedIn member profile or Company Page. The organization scopes below are part of LinkedIn’s Community Management API, for which PostPro’s access is pending approval.
| Scope | How PostPro uses it |
|---|---|
openid |
Part of Sign In with LinkedIn (OpenID Connect); establishes which member authorized PostPro. |
profile |
Returns the member’s basic profile (name, headline, avatar) for the connected-account label in the scheduler UI. |
w_member_social |
Publishes the scheduled posts to the authorizing member’s LinkedIn profile (Share on LinkedIn). |
r_basicprofile |
Reads basic profile fields, including the member’s vanity name, shown in PostPro’s account panel. Requested by the upstream Postiz provider. |
rw_organization_admin |
Lists the Company Pages the member administers so the operator can select an organization to publish to (Community Management API — pending approval). |
w_organization_social |
Publishes the scheduled posts to an authorized LinkedIn Company Page (Community Management API — pending approval). |
r_organization_social |
Reads a Company Page’s existing posts so operators can reference past content and avoid duplicates (Community Management API — pending approval). |
X (Twitter)
X authorizes PostPro through OAuth 1.0a, which does not use granular permission scopes. Instead PostPro’s X application holds a single application-level permission, granted when an operator connects an X account. PostPro’s in-app analytics reads on X are disabled, so it reads only the connected account’s basic profile and publishes on its behalf.
| App permission | How PostPro uses it |
|---|---|
Read and write |
Reads the connected account’s basic profile (user id, @handle, display name, avatar, verified status) for the connected-account label in the scheduler UI, and publishes the scheduled posts to that account at the operator’s chosen time. OAuth 1.0a grants this as a single Read-and-write permission rather than a per-scope list. |
How data flows
When an authorized user connects an account — a TikTok account (via TikTok Login Kit), a YouTube channel (via Google OAuth), a Facebook Page, Instagram account, or Threads profile (via Meta), a LinkedIn profile or Company Page (via LinkedIn OAuth), or an X account (via X OAuth 1.0a) — to PostPro, PostPro receives only the fields covered by the scopes and permissions above. That data is stored on the self-hosted PostPro instance, which runs on infrastructure operated by CloudNerdz LLC in the United States, and used exclusively inside the scheduler UI and analytics dashboard. When the connected account is owned by a client or collaborator rather than CloudNerdz LLC, CloudNerdz LLC acts as a data processor for that account owner and uses the data solely to perform the scheduling and publishing the owner has authorized. PostPro does not sell, share, or transfer TikTok, Google, Meta, LinkedIn, or X user data to third parties. See our Privacy Policy for full details on storage, retention, and deletion.
Who operates PostPro
PostPro is operated by CloudNerdz LLC, a Wisconsin limited liability company doing business as CLDNRDZ. Day-to-day operators are members and authorized agents of CloudNerdz LLC; invited collaborators and clients of CloudNerdz LLC may also be granted access to schedule and publish to accounts they own across TikTok, YouTube, Meta, LinkedIn, and X.
Contact
For questions about PostPro, its TikTok, YouTube, Meta, LinkedIn, or X integrations, or to request information about data we hold, email hello@cloudnerdz.io.