Authentication Configuration
Postiz supports OAuth authentication for 28+ social media platforms and generic OAuth 2.0 providers like Authentik, Keycloak, and others.Overview
Postiz uses official, platform-approved OAuth flows for authentication:Postiz Compliance:
- Uses official OAuth flows approved by each platform
- Never stores or proxies API keys
- Users authenticate directly with social platforms
- No automation or scraping of platform content
User Authentication
By default, Postiz uses JWT-based authentication with email/password registration.Disable Public Registration
To prevent new user signups:.env
Email Verification
Enable email verification with Resend:.env
When
RESEND_API_KEY is set, user activation emails are required. If omitted, users are activated automatically.Generic OAuth Provider
Postiz supports generic OAuth 2.0 providers for user authentication (SSO).Supported Providers
- Authentik
- Keycloak
- Auth0
- Okta
- Any OpenID Connect compatible provider
Configuration
Authentik Example
Keycloak Example
.env
Social Media OAuth
Configure OAuth credentials for each social media platform you want to integrate.Redirect URI Format
All OAuth providers need this redirect URI:{platform} with: twitter, linkedin, facebook, instagram, youtube, tiktok, pinterest, reddit, github, discord, slack, mastodon, dribbble, threads
Platform Setup Guides
X (Twitter)
Create Twitter App
- Go to Twitter Developer Portal
- Create a new App
- Enable OAuth 2.0
- Add redirect URI:
https://yourdomain.com/api/integrations/social/twitter/callback
Create LinkedIn App
- Go to LinkedIn Developers
- Create a new App
- Add redirect URL:
https://yourdomain.com/api/integrations/social/linkedin/callback - Request access to required products:
- Sign In with LinkedIn
- Share on LinkedIn
Facebook & Instagram
Create Facebook App
- Go to Meta for Developers
- Create a new App
- Add Facebook Login product
- Add redirect URI:
https://yourdomain.com/api/integrations/social/facebook/callback - Request permissions:
pages_manage_postspages_read_engagementinstagram_basicinstagram_content_publish
Facebook and Instagram share the same app credentials.
Threads
Create Threads App
- Use the same Facebook App (Threads uses Meta’s platform)
- Add redirect URI:
https://yourdomain.com/api/integrations/social/threads/callback - Request Threads-specific permissions
YouTube
Create Google Cloud Project
- Go to Google Cloud Console
- Create a new Project
- Enable YouTube Data API v3
- Create OAuth 2.0 credentials
- Add redirect URI:
https://yourdomain.com/api/integrations/social/youtube/callback
TikTok
Create TikTok App
- Go to TikTok Developers
- Create a new App
- Add redirect URI:
https://yourdomain.com/api/integrations/social/tiktok/callback - Request permissions:
user.info.basicvideo.publish
Create Pinterest App
- Go to Pinterest Developers
- Create a new App
- Add redirect URI:
https://yourdomain.com/api/integrations/social/pinterest/callback - Request scopes:
pins:readpins:writeboards:read
Create Reddit App
- Go to Reddit App Preferences
- Create a new App (web app)
- Add redirect URI:
https://yourdomain.com/api/integrations/social/reddit/callback - Note your Client ID and Secret
Discord
Create Discord App
- Go to Discord Developer Portal
- Create a new Application
- Add redirect URI in OAuth2 settings:
https://yourdomain.com/api/integrations/social/discord/callback - Create a Bot and get the token
- Enable required bot permissions:
- Send Messages
- Embed Links
- Attach Files
Slack
Create Slack App
- Go to Slack API
- Create a new App
- Add redirect URL:
https://yourdomain.com/api/integrations/social/slack/callback - Add OAuth scopes:
chat:writefiles:writechannels:read
- Get signing secret from Basic Information
Mastodon
Configure Mastodon Instance
Mastodon requires per-instance OAuth apps. Users will authenticate with their specific instance.
Mastodon apps are instance-specific. The default is
mastodon.social, but users can connect to any instance.GitHub
Create GitHub OAuth App
- Go to GitHub Developer Settings
- Create a new OAuth App
- Add callback URL:
https://yourdomain.com/api/integrations/social/github/callback
Dribbble
Create Dribbble App
- Go to Dribbble Developers
- Register a new application
- Add callback URL:
https://yourdomain.com/api/integrations/social/dribbble/callback
Newsletter Integrations
Beehiiv
.env
Listmonk
.env
Cookie-Based Integrations
Chrome Extension Setup
Some platforms (like Skool) require cookie-based authentication via a Chrome extension:.env
The Chrome extension allows users to authenticate with platforms that don’t provide official APIs.
Testing OAuth Configuration
Test Each Platform
- Start Postiz
- Go to Settings > Integrations
- Click “Connect” for each platform
- Complete the OAuth flow
- Verify the connection succeeds
Troubleshooting
Common Issues
Redirect URI Mismatch
Invalid Client Credentials
OAuth App Not Approved
Some platforms require app review before going live:- Facebook/Instagram: Submit for App Review
- TikTok: Request production access
- YouTube: Verify domain ownership
- LinkedIn: Request product access
Scope Permissions Denied
Ensure your OAuth app requests the correct scopes:Debug Mode
Enable verbose OAuth logging:.env
Security Best Practices
Rate Limits
Be aware of platform API rate limits:| Platform | Rate Limit | Notes |
|---|---|---|
| X (Twitter) | 300 posts/3h | Per user |
| 100 posts/day | Per user | |
| 200 posts/h | Per page | |
| 25 posts/day | Per account | |
| YouTube | 10,000 units/day | Quota based |
| TikTok | 30 posts/day | Per user |
Next Steps
Configure Storage
Set up storage configuration for media uploads
Review Environment Variables
Check the complete environment variables reference