Skip to main content

Documentation Index

Fetch the complete documentation index at: https://usenaive.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Overview

CommandDescriptionCost
naive social statusCheck activation and connected accountsFree
naive social activateActivate social media featureFree
naive social connectGet OAuth URL for a platformFree
naive social portalGet multi-platform portal URLFree
naive social accountsList connected accountsFree
naive social label <account-id>Set a label on an accountFree
naive social disconnect <account-id>Disconnect an accountFree
naive social syncSync connected accountsFree
naive social uploadUpload media for postsFree
naive social postsList postsFree
naive social post <content>Create a new post (draft by default)1 credit if publishing
naive social get <post-id>Get post detailsFree
naive social edit <post-id>Edit a draft postFree
naive social delete <post-id>Delete a postFree
naive social publish <post-id>Publish a draft post1 credit
naive social analytics <post-id>Get post analyticsFree
naive social comments <post-id>Get post commentsFree
naive social account-analytics <account-id>Get account-level analyticsFree

Check Status

Check whether social media is activated and see connected accounts at a glance.
naive social status

Output

{
  "success": true,
  "action": "social.status",
  "result": {
    "activated": true,
    "team_count": 1,
    "accounts": [
      {
        "id": "acc-uuid-001",
        "platform": "TWITTER",
        "username": "myhandle",
        "display_name": "My Handle",
        "avatar_url": "https://pbs.twimg.com/profile_images/.../photo.jpg",
        "label": null,
        "status": "active"
      }
    ]
  },
  "next_steps": [
    { "command": "naive social accounts", "description": "List connected accounts" }
  ],
  "hints": ["Social media is active"]
}

Activate

Activate the social media feature for your company. One-time setup step.
naive social activate

Output

{
  "success": true,
  "action": "social.activate",
  "result": {
    "activated": true,
    "team_count": 1,
    "bundle_team_id": "bundle-team-uuid-123"
  },
  "next_steps": [
    { "command": "naive social connect --platform twitter --redirect-url https://example.com", "description": "Connect a social account" },
    { "command": "naive social portal --redirect-url https://example.com", "description": "Open multi-platform connect portal" }
  ],
  "hints": ["Social media activated. Connect accounts to start posting."]
}

Connect

Get an OAuth URL to connect a specific social media platform.
naive social connect --platform twitter
naive social connect --platform youtube --redirect-url https://myapp.com/callback

Options

FlagRequiredDescription
--platform <platform>YesPlatform: TWITTER, LINKEDIN, INSTAGRAM, FACEBOOK, TIKTOK, YOUTUBE, THREADS, PINTEREST, REDDIT, BLUESKY
--redirect-url <url>NoURL to redirect after connection (default: https://usenaive.ai/developers)

Output

{
  "success": true,
  "action": "social.connect",
  "result": {
    "url": "https://social.usenaive.ai/oauth/twitter?token=abc123"
  },
  "next_steps": [
    { "command": "naive social sync", "description": "Sync accounts after connecting" },
    { "command": "naive social accounts", "description": "List connected accounts" }
  ],
  "hints": [
    "Open this URL to connect your TWITTER account:",
    "https://social.usenaive.ai/oauth/twitter?token=abc123",
    "After connecting, run 'naive social sync' to refresh accounts."
  ]
}

Portal

Get a portal URL to connect multiple social media platforms at once.
naive social portal
naive social portal --platforms twitter,youtube,tiktok
naive social portal --redirect-url https://myapp.com/callback

Options

FlagRequiredDescription
--redirect-url <url>NoURL to redirect after connection (default: https://usenaive.ai/developers)
--platforms <list>NoComma-separated platform list to show

Output

{
  "success": true,
  "action": "social.portal",
  "result": {
    "url": "https://social.usenaive.ai/portal?token=xyz789"
  },
  "next_steps": [
    { "command": "naive social sync", "description": "Sync accounts after connecting" }
  ],
  "hints": [
    "Open this URL to connect multiple social accounts:",
    "https://social.usenaive.ai/portal?token=xyz789"
  ]
}

List Accounts

List all connected social media accounts.
naive social accounts

Output

{
  "success": true,
  "action": "social.accounts",
  "result": {
    "accounts": [
      {
        "id": "acc-uuid-001",
        "platform": "TWITTER",
        "username": "myhandle",
        "display_name": "My Handle",
        "avatar_url": "https://pbs.twimg.com/profile_images/.../photo.jpg",
        "external_id": "ext-123",
        "label": null,
        "status": "active",
        "bundle_team_id": "bundle-team-uuid-123"
      }
    ]
  },
  "next_steps": [
    { "command": "naive social post \"Hello!\" --platforms twitter", "description": "Create a post" },
    { "command": "naive social connect --platform <platform> --redirect-url <url>", "description": "Connect more accounts" }
  ],
  "hints": ["1 connected account(s)"]
}

Label Account

Set a label on a connected social media account. Useful for distinguishing multiple accounts on the same platform.
naive social label acc-uuid-001 --label "Personal"
naive social label acc-uuid-002 --label "Company Brand"

Options

FlagRequiredDescription
account-idYesAccount ID (positional argument)
--label <label>YesLabel text to set

Output

{
  "success": true,
  "action": "social.label",
  "result": {
    "account_id": "acc-uuid-001",
    "label": "Personal"
  },
  "next_steps": [
    { "command": "naive social accounts", "description": "List accounts" }
  ],
  "hints": ["Label set to \"Personal\""]
}

Disconnect

Disconnect a social media account by its ID.
naive social disconnect acc-uuid-001

Output

{
  "success": true,
  "action": "social.disconnect",
  "result": {
    "disconnected": true,
    "account_id": "acc-uuid-001"
  },
  "next_steps": [
    { "command": "naive social accounts", "description": "List remaining accounts" }
  ],
  "hints": ["Account disconnected"]
}

Sync Accounts

Sync connected accounts. Run this after connecting new platforms via OAuth or the portal.
naive social sync

Output

{
  "success": true,
  "action": "social.sync",
  "result": {
    "synced": 3,
    "team_count": 1
  },
  "next_steps": [
    { "command": "naive social accounts", "description": "View synced accounts" }
  ],
  "hints": ["Synced 3 account(s)"]
}

Upload Media

Upload media from a public URL for use in social posts.
naive social upload --url https://example.com/video.mp4

Options

FlagRequiredDescription
--url <url>YesPublic URL of the media file

Output

{
  "success": true,
  "action": "social.upload",
  "result": {
    "id": "upload-uuid-456",
    "type": "video",
    "url": "https://cdn.usenaive.ai/uploads/upload-uuid-456.mp4"
  },
  "next_steps": [
    { "command": "naive social post \"content\" --platforms youtube --media-url <url>", "description": "Create a post with media" }
  ],
  "hints": ["Media uploaded. Use the upload ID or pass media_urls when creating posts (auto-upload)."]
}

List Posts

List your social media posts with optional filters.
naive social posts
naive social posts --status draft --limit 5
naive social posts --status published --limit 10 --offset 20

Options

FlagRequiredDescription
--status <status>NoFilter by status: draft, scheduled, published, failed
--limit <n>NoMax results (default: 50)
--offset <n>NoPagination offset (default: 0)

Output

{
  "success": true,
  "action": "social.posts",
  "result": {
    "posts": [
      {
        "id": "post-uuid-001",
        "title": "Excited to announce our new feature!",
        "content": "Excited to announce our new feature!",
        "platforms": ["TWITTER", "LINKEDIN"],
        "platform_data": { "TWITTER": { "text": "Excited to announce our new feature!" }, "LINKEDIN": { "text": "Excited to announce our new feature!" } },
        "upload_ids": null,
        "status": "published",
        "bundle_post_id": "bundle-post-uuid-001",
        "scheduled_at": null,
        "posted_at": "2026-05-03T10:30:05.000Z",
        "error": null,
        "analytics": null,
        "created_at": "2026-05-03T10:30:00.000Z",
        "updated_at": "2026-05-03T10:30:05.000Z"
      }
    ],
    "count": 1,
    "limit": 50,
    "offset": 0
  },
  "next_steps": [
    { "command": "naive social post \"content\" --platforms twitter", "description": "Create a new post" }
  ],
  "hints": ["1 post(s) returned"]
}

Create Post

Create a social media post. Posts are created as drafts by default. Pass --publish to publish immediately, or --schedule-at to schedule.

Examples

naive social post "Just shipped a major update!" --platforms twitter,linkedin
naive social post "New video is live!" --platforms youtube --media-url https://example.com/video.mp4 --youtube-type SHORT
naive social post "Coming soon..." --platforms twitter --schedule-at "2026-05-10T14:00:00Z"
naive social post "Check this out" --platforms twitter,linkedin --publish
naive social post "My take on this" --platforms reddit --platform-data '{"REDDIT":{"sr":"programming"}}'
naive social post "Hello world" --platforms twitter --account-ids acc-uuid-001,acc-uuid-002
naive social post "Big news" --platforms twitter --title "Product Launch"

Options

FlagRequiredDescription
contentYesPost content (positional argument)
--platforms <list>YesComma-separated platforms: twitter,linkedin,youtube,...
--publishNoPublish immediately (default: create as draft)
--title <title>NoPost title (auto-generated from content if omitted)
--media-url <url>NoMedia URL (auto-uploaded for video/image platforms)
--youtube-type <type>NoYouTube type: SHORT (vertical, under 3min) or VIDEO (landscape). No CLI default; service defaults to SHORT
--platform-data <json>NoPer-platform overrides as JSON
--account-ids <ids>NoComma-separated account UUIDs to post from
--schedule-at <datetime>NoISO 8601 datetime to schedule the post

Output (draft)

{
  "success": true,
  "action": "social.post",
  "result": {
    "id": "post-uuid-003",
    "status": "draft",
    "platforms": ["TWITTER", "LINKEDIN"],
    "hint": "Draft created. Publish with POST /v1/social/posts/post-uuid-003/publish"
  },
  "next_steps": [
    { "command": "naive social publish post-uuid-003", "description": "Publish this draft" },
    { "command": "naive social analytics post-uuid-003", "description": "View post analytics (after publishing)" }
  ],
  "hints": ["Draft created. Use 'naive social publish' to publish, or re-run with --publish."]
}

Output (published — with --publish)

{
  "success": true,
  "action": "social.post",
  "result": {
    "id": "post-uuid-003",
    "bundle_post_id": "bundle-post-uuid-003",
    "status": "publishing",
    "platforms": ["TWITTER", "LINKEDIN"],
    "scheduled_at": null,
    "hint": "Post queued for immediate publishing. Check status with GET /v1/social/posts/post-uuid-003"
  },
  "next_steps": [
    { "command": "naive social get post-uuid-003", "description": "Check post status" },
    { "command": "naive social analytics post-uuid-003", "description": "View post analytics (after publishing)" }
  ],
  "hints": ["Post queued for publishing. 1 credit deducted."]
}

Output (scheduled — with --schedule-at)

{
  "success": true,
  "action": "social.post",
  "result": {
    "id": "post-uuid-003",
    "bundle_post_id": "bundle-post-uuid-003",
    "status": "publishing",
    "platforms": ["TWITTER"],
    "scheduled_at": "2026-05-10T14:00:00Z",
    "hint": "Post scheduled for 2026-05-10T14:00:00Z. Check status with GET /v1/social/posts/post-uuid-003"
  },
  "next_steps": [
    { "command": "naive social get post-uuid-003", "description": "Check post status" },
    { "command": "naive social analytics post-uuid-003", "description": "View post analytics (after publishing)" }
  ],
  "hints": ["Post scheduled. 1 credit deducted."]
}

Get Post

Get full details of a specific post.
naive social get post-uuid-001

Output

{
  "success": true,
  "action": "social.get",
  "result": {
    "id": "post-uuid-001",
    "title": "Excited to announce our new feature!",
    "content": "Excited to announce our new feature!",
    "platforms": ["TWITTER", "LINKEDIN"],
    "platform_data": { "TWITTER": { "text": "Excited to announce our new feature!" }, "LINKEDIN": { "text": "Excited to announce our new feature!" } },
    "upload_ids": null,
    "status": "published",
    "bundle_post_id": "bundle-post-uuid-001",
    "scheduled_at": null,
    "posted_at": "2026-05-03T10:30:05.000Z",
    "error": null,
    "analytics": null,
    "created_at": "2026-05-03T10:30:00.000Z",
    "updated_at": "2026-05-03T10:30:05.000Z"
  },
  "next_steps": [
    { "command": "naive social analytics post-uuid-001", "description": "View analytics" },
    { "command": "naive social comments post-uuid-001", "description": "View comments" }
  ],
  "hints": ["Post status: published"]
}

Edit Post

Edit a draft post. Only draft posts can be edited.
naive social edit post-uuid-002 --content "Updated content here"
naive social edit post-uuid-002 --platforms youtube,tiktok
naive social edit post-uuid-002 --platform-data '{"REDDIT":{"sr":"javascript"}}'

Options

FlagRequiredDescription
post-idYesPost ID (positional argument)
--content <text>NoUpdated post content
--platforms <list>NoUpdated comma-separated platform list
--platform-data <json>NoUpdated per-platform overrides as JSON

Output

{
  "success": true,
  "action": "social.edit",
  "result": {
    "id": "post-uuid-002",
    "title": "Updated content here",
    "content": "Updated content here",
    "platforms": ["YOUTUBE", "TIKTOK"],
    "platform_data": { "YOUTUBE": { "text": "Updated content here", "type": "SHORT", "privacy": "PUBLIC", "madeForKids": false }, "TIKTOK": { "text": "Updated content here", "privacy": "PUBLIC_TO_EVERYONE" } },
    "upload_ids": null,
    "status": "draft",
    "bundle_post_id": null,
    "scheduled_at": null,
    "posted_at": null,
    "error": null,
    "analytics": null,
    "created_at": "2026-05-04T08:15:00.000Z",
    "updated_at": "2026-05-04T09:00:00.000Z"
  },
  "next_steps": [
    { "command": "naive social publish post-uuid-002", "description": "Publish the updated draft" }
  ],
  "hints": ["Draft updated"]
}

Delete Post

Delete a post by ID. If the post was published, it is also deleted from the social media service.
naive social delete post-uuid-002

Output

{
  "success": true,
  "action": "social.delete",
  "result": {
    "deleted": true,
    "post_id": "post-uuid-002"
  },
  "next_steps": [
    { "command": "naive social posts", "description": "View remaining posts" }
  ],
  "hints": ["Post deleted"]
}

Publish Post

Publish a draft post. Sends the post to all specified platforms. Costs 1 credit.
naive social publish post-uuid-003

Output

{
  "success": true,
  "action": "social.publish",
  "result": {
    "id": "post-uuid-003",
    "bundle_post_id": "bundle-post-uuid-003",
    "status": "publishing",
    "platforms": ["TWITTER", "LINKEDIN"],
    "hint": "Post queued for publishing. Check status with GET /v1/social/posts/post-uuid-003"
  },
  "next_steps": [
    { "command": "naive social get post-uuid-003", "description": "Check post status" },
    { "command": "naive social analytics post-uuid-003", "description": "View analytics" }
  ],
  "hints": ["Post published (1 credit deducted)"]
}

Post Analytics

Get analytics for a published post. Returns performance data (impressions, likes, shares, etc.).
naive social analytics post-uuid-001

Output

{
  "success": true,
  "action": "social.analytics",
  "result": {
    "post_id": "post-uuid-001",
    "analytics": { "...": "platform-specific analytics" }
  },
  "next_steps": [
    { "command": "naive social comments post-uuid-001", "description": "View comments" }
  ],
  "hints": ["Post analytics retrieved"]
}
If the post has not been published yet, analytics will be null with a hint field explaining why.

Post Comments

Get comments on a published post.
naive social comments post-uuid-001

Output

{
  "success": true,
  "action": "social.comments",
  "result": {
    "post_id": "post-uuid-001",
    "comments": [ "...comments from social media service..." ]
  },
  "next_steps": [
    { "command": "naive social analytics post-uuid-001", "description": "View analytics" }
  ],
  "hints": ["Post comments retrieved"]
}
If the post has not been published yet, comments will be [] with a hint field.

Account Analytics

Get analytics for a specific connected account.
naive social account-analytics acc-uuid-001

Output

{
  "success": true,
  "action": "social.account-analytics",
  "result": {
    "account_id": "acc-uuid-001",
    "platform": "TWITTER",
    "analytics": { "...": "platform-specific analytics" }
  },
  "next_steps": [
    { "command": "naive social accounts", "description": "List all accounts" }
  ],
  "hints": ["Account analytics retrieved"]
}

Platform Tips

PlatformTip
YouTubeUse --youtube-type SHORT for Shorts (vertical, under 3min) or VIDEO for landscape uploads. No CLI default; service defaults to SHORT.
TikTokPrivacy is auto-set to PUBLIC_TO_EVERYONE.
InstagramVideo posts default to Reel type. Provide media via --media-url.
TwitterContent is auto-truncated to 280 characters.
BlueskyContent is auto-truncated to 300 characters.
RedditUses uppercase REDDIT key. Pass --platform-data '{"REDDIT":{"sr":"yoursubreddit"}}' to set the subreddit via the sr field.
PinterestA title is auto-generated from content (first 100 chars).
Supported platforms: TWITTER, LINKEDIN, INSTAGRAM, FACEBOOK, TIKTOK, YOUTUBE, THREADS, PINTEREST, REDDIT, BLUESKY

Credit Behavior

  • Publishing a post costs 1 credit — triggered by --publish, --schedule-at, or naive social publish
  • Drafts are free — creating, editing, and deleting drafts costs nothing
  • All other commands — connecting, syncing, uploading, analytics, comments — are free
  • Credits are deducted at publish time, not at draft creation
  • Use naive usage to audit credit deductions