Accounts API
List and monitor your connected social media accounts across 7 platforms. Use account IDs when creating posts, and check health status to ensure accounts can publish.
/accounts
Retrieve all connected social media accounts for your organization. Each account includes platform details, display name, active status, and health information. Use the returned id values in the account_ids array when creating posts.
Example Request
curl https://app.posteverywhere.ai/api/v1/accounts \
-H "Authorization: Bearer pe_live_your_key_here"Response — 200 OK
{
"data": {
"accounts": [
{
"id": "1",
"platform": "instagram",
"account_name": "@acme",
"avatar_url": "https://cdn.posteverywhere.ai/avatars/acme-ig.jpg",
"is_active": true,
"created_at": "2026-01-15T09:00:00Z",
"health": {
"status": "healthy",
"can_post": true
}
},
{
"id": "4",
"platform": "linkedin",
"account_name": "Acme Inc.",
"avatar_url": "https://cdn.posteverywhere.ai/avatars/acme-li.jpg",
"is_active": true,
"created_at": "2026-01-15T09:05:00Z",
"health": {
"status": "healthy",
"can_post": true
}
},
{
"id": "7",
"platform": "x",
"account_name": "@acme_tweets",
"avatar_url": null,
"is_active": true,
"created_at": "2026-02-01T12:00:00Z",
"health": {
"status": "expired",
"can_post": false
}
}
]
},
"meta": {
"request_id": "req_acct_001",
"timestamp": "2026-03-10T10:00:00Z"
}
}Tip: Before creating a post, filter accounts where health.can_post is true to avoid targeting accounts that cannot publish.
/accounts/{id}
Retrieve details for a single connected account by ID, including its current health status.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The account ID (e.g., 1) |
Example Request
curl https://app.posteverywhere.ai/api/v1/accounts/1 \
-H "Authorization: Bearer pe_live_your_key_here"Response — 200 OK
{
"data": {
"id": "1",
"platform": "instagram",
"account_name": "@acme",
"avatar_url": "https://cdn.posteverywhere.ai/avatars/acme-ig.jpg",
"is_active": true,
"created_at": "2026-01-15T09:00:00Z",
"health": {
"status": "healthy",
"can_post": true
}
},
"meta": {
"request_id": "req_acct_002",
"timestamp": "2026-03-10T10:05:00Z"
}
}Account Schema
Every account object returned by the API contains the following fields.
| Field | Type | Description |
|---|---|---|
id | string | Unique account identifier. Use this in account_ids when creating posts. |
platform | enum | One of: instagram, x, linkedin, facebook, tiktok, youtube, threads |
account_name | string | Display name or username for the account (e.g., "@acme" or "Acme Inc.") |
avatar_url | string | null | URL to the account's profile picture. May be null if not available. |
is_active | boolean | Whether the account is currently active in your organization. |
created_at | string | ISO 8601 timestamp when the account was connected. |
health | object | Health status object. See Health Status below. |
Health Status
Every account includes a health object with two fields: status (the overall health state) and can_post (whether the account can currently publish). Always check can_post before targeting an account in a post.
The OAuth token is valid and the account is ready to publish.
can_post: trueThe OAuth token has expired. The user must reauthorize the account in the dashboard.
can_post: falseA platform-side issue is preventing publishing (e.g., account suspended, permissions revoked).
can_post: falseExample: Filter Healthy Accounts Before Posting
const res = await fetch('https://app.posteverywhere.ai/api/v1/accounts', {
headers: { 'Authorization': 'Bearer pe_live_your_key_here' }
});
const { data } = await res.json();
// Only target accounts that can currently publish
const healthyIds = data.accounts
.filter(a => a.health.can_post)
.map(a => a.id);
// Create a post targeting only healthy accounts
await fetch('https://app.posteverywhere.ai/api/v1/posts', {
method: 'POST',
headers: {
'Authorization': 'Bearer pe_live_your_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
content: 'Hello from the API!',
account_ids: healthyIds
})
});Supported Platforms
PostEverywhere supports 8 social media platforms. Each has specific account requirements and content types. Connect accounts through the PostEverywhere dashboard, then use the API to manage posts programmatically.
| Platform | API Value | Notes |
|---|---|---|
Instagram | instagram | Requires a Business or Creator account. Supports posts, Reels, Stories, and carousels. |
X (Twitter) | x | Supports tweets and threads. Character limit: 280 (free) or 25,000 (Premium). |
LinkedIn | linkedin | Supports personal profiles and company pages. Rich text and document posts available. |
Facebook | facebook | Supports Pages and Groups. Requires Page admin or group posting permissions. |
TikTok | tiktok | Video posts only. Requires a TikTok Business or Creator account. |
YouTube | youtube | Supports video uploads and Shorts. Requires a YouTube channel. |
Threads | threads | Text and image posts. Connected via Instagram Business account. |
Connect your accounts and start building
Connect social accounts in the dashboard, grab your API key, and start posting programmatically in minutes. All plans from $19/mo.
Frequently asked questions
How do I connect a new social media account?
What does the health status mean?
How often should I check account health?
Can I disconnect an account via the API?
Related documentation
Posts API
Create, schedule, and manage posts
Quick Start
First API call in under 5 minutes
Media API
Upload images, videos, and documents
Authentication
API keys, scopes, and security
Instagram Scheduler
Schedule Instagram posts
LinkedIn Scheduler
Schedule LinkedIn posts
X Scheduler
Schedule posts on X
Social Media Scheduler
All-in-one scheduling tool