Authentication
Boring uses a two-layer authentication system:
- Google OAuth for dashboard access and account management
- API Keys for programmatic API access
Dashboard Authentication
Sign In with Google
- Visit the Boring Dashboard
- Click the "Sign in with Google" button
- Choose your Google account
- Authorize Boring to access your basic profile information
- You'll be redirected back to the dashboard
Once authenticated, your session is valid for 30 days using a JWT token stored in a secure HTTPOnly cookie.
User Profile
After signing in, you'll see your profile information in the top-right corner:
- Profile picture
- Name
- Email address
This confirms you're successfully authenticated.
Social Platform Authentication
To publish content, you need to connect your social media accounts.
Connect Facebook Page
- Click "Connect Facebook Page" button
- Log in to Facebook (if not already logged in)
- Select the Facebook Pages you want to connect
- Grant the required permissions:
pages_show_list- View your pagespages_read_engagement- Read engagement datapages_manage_posts- Publish and manage postspages_read_user_content- Read page content
- Click "Done"
Your Facebook Page token is now stored and never expires.
Connect Instagram Account
- Click "Connect Instagram" button
- Log in to Instagram (if not already logged in)
- Authorize Boring to access your Instagram Business account
- Grant the required permissions:
instagram_business_basic- Basic account infoinstagram_business_content_publish- Publish contentinstagram_business_manage_comments- Manage commentsinstagram_business_manage_messages- Manage DMs
- Click "Authorize"
Your Instagram token is valid for 60 days and is automatically converted from short-lived to long-lived.
Note: Instagram requires a Business or Creator account. Personal accounts are not supported.
Connect Threads Account
- Click "Connect Threads" button
- Log in to Threads (if not already logged in)
- Authorize Boring to access your Threads account
- Grant the required permissions:
threads_basic- Basic account infothreads_content_publish- Publish contentthreads_manage_replies- Create thread repliesthreads_manage_insights- Access analyticsthreads_read_replies- Read replies
- Click "Authorize"
Your Threads token is valid for 60 days and automatically refreshes 5 days before expiry.
API Authentication
Using API Keys
All API requests require an API key in the request header:
boring-api-key: boring_xxxxxxxxxxxxx
Generate an API Key
- Sign in to the dashboard
- Navigate to Settings page
- Click "Generate New API Key"
- Provide a descriptive name (e.g., "Production Server", "Test Environment")
- Copy the generated key (it starts with
boring_) - Store it securely - you won't be able to see it again!
Using the API Key
Include the API key in every API request header:
Python Example:
import requests
headers = {
"boring-api-key": "boring_xxxxxxxxxxxxx",
"Content-Type": "application/json"
}
response = requests.post(
"https://boring.aiagent-me.com/v2/posts",
headers=headers,
json=data
)
JavaScript Example:
fetch("https://boring.aiagent-me.com/v2/posts", {
method: "POST",
headers: {
"boring-api-key": "boring_xxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify(data)
});
cURL Example:
curl -X POST https://boring.aiagent-me.com/v2/posts \
-H "boring-api-key: boring_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"post": {...}}'
Account IDs
After connecting your social accounts, each account receives a unique Account ID (UUID format).
Finding Your Account ID
- Sign in to the dashboard
- View your connected accounts list
- Click the "Copy ID" button next to any account
- Use this ID in API requests to specify which account to publish to
Example Account ID: a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6
Token Expiration
| Platform | Token Validity | Auto-Refresh |
|---|---|---|
| Never expires | N/A | |
| 60 days | Manual re-authorization | |
| Threads | 60 days | Auto-refresh 5 days before expiry |
When a token expires or becomes invalid, you'll need to reconnect the account through the dashboard.
Security Best Practices
- Never commit API keys to version control - Use environment variables
- Rotate API keys regularly - Generate new keys and delete old ones
- Use different keys for different environments - Separate production and testing
- Monitor API key usage - Check "Last Used" timestamp in Settings
- Deactivate compromised keys immediately - Delete from Settings page
Next Steps
Now that you understand authentication, proceed to:
- API Keys - Learn more about API key management
- Publishing - Start publishing content
- Examples - See code examples