Outstand publishes to 11 platforms through one API and returns the analytics for every one of them in a single unified JSON schema, so exporting to CSV, a warehouse, or a BI tool takes a few lines rather than a per-network integration. Metrics are available per connected account and aggregated across platforms via GET /v1/posts/{id}/analytics, and webhooks push publish events as they happen. Unlimited connected accounts on every plan, from $19/month.
Outstand reports on content you published through Outstand: what went out, where it went, whether it landed, and how it performed. That is the reporting most teams building a scheduler, an agency dashboard, or an AI agent actually need.
It is not social listening. Outstand does not monitor mentions, scrape trends, or run sentiment analysis on third-party content. If that is what you need, you need a listening tool, and we would rather tell you now than at integration time.
Exportability is a data-model problem, not a feature. Normalise once and every downstream report is trivial.
Instagram, LinkedIn, TikTok and the rest each return a different metrics payload with different names and different semantics. Outstand normalises all 11 into a single shape, so your export logic is written once and does not change when you add a platform.
Not every platform exposes every metric. Where a value is genuinely unavailable, the API returns null and a metrics_error code, rather than a zero that would silently corrupt an average in your report.
A post that fans out to eight accounts returns eight metric rows plus the aggregate. That is what makes per-client reporting possible without reconstructing the fan-out yourself.
Poll the analytics endpoint on your own schedule, or subscribe to HMAC-signed webhooks and react as events land. Most teams do both: webhooks to know a post went out, scheduled pulls to watch engagement accrue.
// Export a post's cross-platform analytics to CSV.
// GET /v1/posts/{id}/analytics returns every account the post reached,
// already normalised — no per-network parsing.
const res = await fetch(`https://api.outstand.so/v1/posts/${postId}/analytics`, {
headers: { Authorization: `Bearer ${process.env.OUTSTAND_API_KEY}` },
});
const { post, metrics_by_account, aggregated_metrics } = await res.json();
const columns = ['network', 'username', 'post_url', 'likes', 'comments', 'shares', 'views', 'engagement_rate'];
const rows = metrics_by_account.map((a) => [
a.social_account.network,
a.social_account.username,
a.platform_post_url ?? '',
// metrics is null when it could not be fetched — see a.metrics_error for the reason.
a.metrics?.likes ?? '',
a.metrics?.comments ?? '',
a.metrics?.shares ?? '',
a.metrics?.views ?? '',
a.metrics?.engagement_rate ?? '',
]);
const csv = [columns, ...rows].map((r) => r.join(',')).join('\n');
// aggregated_metrics gives you the cross-platform totals for the same post:
// total_likes, total_comments, total_shares, total_views,
// total_impressions, total_reach, average_engagement_rateSigned with an HMAC secret. Subscribe per event, per endpoint.
post.publishedA post went live on a platform.post.errorPublishing failed for a specific account, with the reason.account.token_expiredA connected account needs re-authentication.import.completedA bulk import finished.import.failedA bulk import failed.Outstand exposes post analytics through a documented REST endpoint, GET /v1/posts/{id}/analytics, which returns both per-account metrics and aggregated totals as JSON. Because every platform is normalised into one schema, exporting to CSV, a warehouse, or a BI tool is a straightforward transform rather than a per-network integration project. There is no proprietary report builder to work around, and no UI-only export step.
Outstand supports unlimited connected accounts on every plan, with no per-seat or per-account fee, so agencies can track every client account under one organisation. To be precise about scope: Outstand reports on posts you published through Outstand across all of those accounts. It is not a social listening tool and does not monitor third-party content or mentions elsewhere on the web.
Outstand reports per-account publish outcomes rather than a single collapsed status. When a post fans out to several networks and one fails, the analytics and post payloads identify which account failed and why, and the post.error webhook fires with the same detail. Metrics that cannot be fetched come back as null alongside a metrics_error code (token_expired, scope_missing, post_not_found, unknown) rather than a misleading zero.
Yes, for content published through Outstand. The analytics endpoint returns likes, comments, shares, views, impressions, reach, and engagement rate, plus a platform_specific object for metrics unique to a network. Aggregated totals across every account a post reached are returned in the same response.
Yes. Register a webhook endpoint and subscribe to the events you care about: post.published, post.error, account.token_expired, import.completed, and import.failed. Payloads are signed with an HMAC secret. A common pattern is to listen for post.published, then pull analytics on a schedule afterwards, since engagement accrues over hours and days.
Custom pricing, availability and support SLAs, and a dedicated Slack channel. SOC 2 certification is in progress; Outstand is not yet SOC 2 certified, and we would rather say so than imply otherwise. Contact contact@outstand.so to talk through requirements.
$19/month including 3,000 posts. Unlimited connected accounts. See the facts page for current pricing and coverage.