Skip to main content
Social is the distribution primitive. Naive wraps social infrastructure behind a consistent API so agents can connect social media accounts, create and publish posts across multiple platforms, schedule content, and retrieve analytics — all without custom OAuth flows or frontend components.

CLI First

Tools

Dashboard Connection UI

In the naive dashboard, navigate to Primitives > Social to connect accounts visually. The page:
  • Auto-activates social media on first visit
  • Shows a grid of connected accounts with platform icons and status
  • Provides per-platform “Connect” buttons that open OAuth in a new tab
  • Allows disconnecting accounts directly from the UI
  • Syncs accounts automatically to pick up new connections

Activation

Before posting, social media must be activated for the company.
Response:

Connecting Accounts

The API returns an OAuth URL. The user or agent opens this URL in a browser to authorize the social account. No custom frontend is needed.

Single Platform

Response:

Multi-Platform Portal

For connecting several platforms at once, use the portal endpoint:
After the user connects accounts, call POST /v1/social/sync to refresh the local account list.

Creating Posts

Response (202):

Parameters

If neither publish_now nor scheduled_at is set, the post is created as a draft. Drafts can be edited and published later with POST /v1/social/posts/:id/publish.

Video Post Example (YouTube + TikTok)

Platform Defaults

When you omit platform_data, the API applies sensible defaults per platform. You can override any field by passing platform_data.

Overriding Defaults

Pass platform_data to customize per-platform behavior:
Overrides are merged on top of defaults — you only need to specify the fields you want to change.

Media Handling

There are two ways to attach media to a post:

Option 1: media_urls (auto-upload)

When media_urls are provided, the server downloads and uploads each URL to the social media service, then attaches them to media-capable platforms (YouTube, Instagram, TikTok, Facebook, Pinterest). Text-only platforms are unaffected.

Option 2: upload_ids (pre-uploaded media)

If you’ve already uploaded media via POST /v1/social/upload or have assets in the Media Asset Manager, pass their Bundle upload IDs directly using upload_ids. This avoids re-uploading and prevents duplicate assets.
The Media Asset Manager returns upload_id on each asset — use this value in upload_ids when creating posts from assets in your library.

Scheduling & Drafts

Omit both publish_now and scheduled_at to create a draft:
Edit with PATCH /v1/social/posts/:id, then publish with POST /v1/social/posts/:id/publish.

Analytics

Retrieve performance metrics for published posts:
Response:
Analytics data varies by platform. The shape depends on which platforms the post was published to.
Account-level analytics:

Supported Platforms

Error Handling

Typical Workflow