Quick Start
Publish your first post via the PostBoost API in under 5 minutes. New to PostBoost? Read Core Concepts first to understand Workspaces, Accounts, and the API structure.
1. Get your API key
- Create a free account
- Go to Settings → Access Tokens
- Click Create Token and copy the token
2. Connect a social account
In the PostBoost dashboard, go to Accounts and connect at least one social media account. PostBoost handles OAuth — your users authorize via PostBoost's built-in OAuth flow.
3. Find your account ID
After connecting an account in the dashboard, retrieve its numeric ID via the Accounts API. You'll need this when creating posts.
curl https://postboost.co/app/api/{workspaceUuid}/accounts \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"data": [
{
"id": 42,
"name": "My Page",
"provider": "instagram",
"username": "@myaccount"
}
]
}
Use the id value (e.g. 42) in the accounts array when creating posts.
4. Find your workspace UUID
Every API call is scoped to a workspace. Find your UUID in two ways:
From the dashboard URL (works for all users):
Open the PostBoost dashboard — your workspace UUID appears in the URL:
https://postboost.co/app/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/posts
Via the API (admin users only):
curl https://postboost.co/app/api/panel/workspaces \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"data": [
{
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "My Workspace"
}
]
}
GET /panel/workspaces requires an admin token. If you receive a 403 Forbidden, use the dashboard URL method instead.
5. Publish a post
Replace {workspaceUuid} with your workspace UUID and YOUR_ACCOUNT_ID with the account id from Step 3:
curl -X POST https://postboost.co/app/api/{workspaceUuid}/posts \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accounts": [YOUR_ACCOUNT_ID],
"versions": [
{
"account_id": 0,
"is_original": true,
"content": [{ "body": "Hello from the PostBoost API! 🚀" }]
}
],
"schedule_now": true
}'
{
"uuid": "01234567-89ab-cdef-0123-456789abcdef",
"status": "published",
"scheduled_at": null
}
versionsThe versions array lets you customize content per platform. A version with is_original: true and account_id: 0 is the default — its content is sent to all accounts listed in accounts. To override content for a specific account, add another version entry with that account's numeric id.
6. Schedule for later
Instead of schedule_now, use schedule: true with a date and time:
curl -X POST https://postboost.co/app/api/{workspaceUuid}/posts \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accounts": [YOUR_ACCOUNT_ID],
"versions": [
{
"account_id": 0,
"is_original": true,
"content": [{ "body": "Scheduled post via API." }]
}
],
"schedule": true,
"date": "YYYY-MM-DD",
"time": "10:00",
"timezone": "America/New_York"
}'
{
"uuid": "01234567-89ab-cdef-0123-456789abcdef",
"status": "scheduled",
"scheduled_at": "2026-06-01T10:00:00-04:00"
}
Code examples
- Python
- Node.js
- PHP
- Go
import requests
API_TOKEN = "YOUR_API_TOKEN"
WORKSPACE = "your-workspace-uuid"
ACCOUNT_ID = 42 # from GET /{workspaceUuid}/accounts
response = requests.post(
f"https://postboost.co/app/api/{WORKSPACE}/posts",
headers={"Authorization": f"Bearer {API_TOKEN}"},
json={
"accounts": [ACCOUNT_ID],
"versions": [{
"account_id": 0,
"is_original": True,
"content": [{"body": "Hello from Python!"}]
}],
"schedule_now": True,
}
)
post = response.json()
print(post["uuid"])
const response = await fetch(
`https://postboost.co/app/api/${WORKSPACE}/posts`,
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.POSTBOOST_API_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
accounts: [ACCOUNT_ID], // from GET /{workspaceUuid}/accounts
versions: [{
account_id: 0,
is_original: true,
content: [{ body: "Hello from Node.js!" }],
}],
schedule_now: true,
}),
}
);
const post = await response.json();
console.log(post.uuid);
use Illuminate\Support\Facades\Http;
$response = Http::withToken(config('services.postboost.key'))
->post("https://postboost.co/app/api/{$workspace}/posts", [
'accounts' => [$accountId], // from GET /{workspaceUuid}/accounts
'versions' => [[
'account_id' => 0,
'is_original' => true,
'content' => [['body' => 'Hello from PHP!']],
]],
'schedule_now' => true,
]);
$post = $response->json();
// $post['uuid'] => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
import (
"bytes"
"encoding/json"
"net/http"
)
body, _ := json.Marshal(map[string]any{
"accounts": []int{accountID}, // from GET /{workspaceUuid}/accounts
"versions": []map[string]any{{
"account_id": 0,
"is_original": true,
"content": []map[string]string{{"body": "Hello from Go!"}},
}},
"schedule_now": true,
})
req, _ := http.NewRequest("POST",
"https://postboost.co/app/api/"+workspace+"/posts",
bytes.NewBuffer(body),
)
req.Header.Set("Authorization", "Bearer "+apiToken)
req.Header.Set("Content-Type", "application/json")
Next steps
- Media Uploads — upload images and video to attach to posts
- Authentication — manage API tokens and security
- Webhooks — receive real-time publish confirmations
- API Reference — explore all 58 endpoints
- SDKs — use a pre-built client library