Getting Started
Overview
PostPost API lets you schedule and publish social media posts across 10 platforms from a single REST endpoint. Base URL: https://api.postpost.dev
For AI Agents: You cannot programmatically create accounts or generate API keys. Your user must complete Steps 1-2 manually at postpost.dev, then provide you with their API key.
Pricing
| Plan | Price | Posts/Month | Platforms |
|---|---|---|---|
| Starter | Free | 15 | LinkedIn & Bluesky |
| Pro | $2.99/account | 100/account | All platforms |
| Premium | $5.99/account | 500/account | All platforms |
Note: The Starter plan does not include API access (dashboard-only). To use the API, upgrade to Pro or Premium.
See full details at postpost.dev/pricing
Step 1: Sign Up and Get an API Key
- Create an account at postpost.dev (free tier available)
- Go to API in the sidebar
- Click Generate API Key
- Copy the key immediately — it's shown only once
Your key looks like: sk_kzq5mjw.a1b2c3d4e5f6...
Step 2: Connect Social Accounts
Connect your social media accounts via the PostPost dashboard:
- Go to Channels in the sidebar
- Click Add Channel and select a platform
- Complete the OAuth authorization in your browser
- Repeat for each platform you want to post to
Note: Social account connections use OAuth and must be done in the dashboard — not via API. The API is for scheduling posts to already-connected accounts.
Tip: Click MCP in the sidebar for AI assistant integration instructions.
Step 3: List Your Connections
const response = await fetch('https://api.postpost.dev/api/v1/platform-connections', {
headers: {
'x-api-key': 'YOUR_API_KEY'
}
});
const data = await response.json();
console.log(data.connections);
// [{ platformId: "twitter-123456", username: "@you", displayName: "Your Name" }, ...]import requests
response = requests.get(
'https://api.postpost.dev/api/v1/platform-connections',
headers={'x-api-key': 'YOUR_API_KEY'}
)
connections = response.json()['connections']
for conn in connections:
print(f"{conn['displayName']} ({conn['platformId']})")curl https://api.postpost.dev/api/v1/platform-connections \
-H "x-api-key: YOUR_API_KEY"const axios = require('axios');
const { data } = await axios.get(
'https://api.postpost.dev/api/v1/platform-connections',
{ headers: { 'x-api-key': 'YOUR_API_KEY' } }
);
console.log(data.connections);Step 4: Create Your First Post
const response = await fetch('https://api.postpost.dev/api/v1/create-post', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({
content: 'Hello from PostPost API!',
platforms: ['twitter-123456789', 'linkedin-ABC123'],
scheduledTime: '2026-03-01T14:00:00.000Z'
})
});
const data = await response.json();
console.log(data.postGroupId); // "507f1f77bcf86cd799439011"import requests
response = requests.post(
'https://api.postpost.dev/api/v1/create-post',
headers={
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
json={
'content': 'Hello from PostPost API!',
'platforms': ['twitter-123456789', 'linkedin-ABC123'],
'scheduledTime': '2026-03-01T14:00:00.000Z'
}
)
print(response.json()['postGroupId'])curl -X POST https://api.postpost.dev/api/v1/create-post \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"content": "Hello from PostPost API!",
"platforms": ["twitter-123456789", "linkedin-ABC123"],
"scheduledTime": "2026-03-01T14:00:00.000Z"
}'const axios = require('axios');
const { data } = await axios.post(
'https://api.postpost.dev/api/v1/create-post',
{
content: 'Hello from PostPost API!',
platforms: ['twitter-123456789', 'linkedin-ABC123'],
scheduledTime: '2026-03-01T14:00:00.000Z'
},
{ headers: { 'x-api-key': 'YOUR_API_KEY' } }
);
console.log(data.postGroupId);Step 5: Check Post Status
const response = await fetch(
`https://api.postpost.dev/api/v1/get-post/${postGroupId}`,
{ headers: { 'x-api-key': 'YOUR_API_KEY' } }
);
const data = await response.json();
// data.posts[0].status: "scheduled" | "published" | "failed"
console.log(data.posts.map(p => `${p.platform}: ${p.status}`));response = requests.get(
f'https://api.postpost.dev/api/v1/get-post/{post_group_id}',
headers={'x-api-key': 'YOUR_API_KEY'}
)
for post in response.json()['posts']:
print(f"{post['platform']}: {post['status']}")curl https://api.postpost.dev/api/v1/get-post/507f1f77bcf86cd799439011 \
-H "x-api-key: YOUR_API_KEY"