Jump to section

Documentation

Learn how to connect SendIt to your AI assistant and start publishing to social media with natural language.

Overview

SendIt is an MCP (Model Context Protocol) server that enables AI assistants to publish content to social media platforms. Once connected, you can post to LinkedIn, Instagram, and more using natural conversation.

Instant Publishing

Post text, images, carousels, and videos directly through your AI assistant.

Smart Scheduling

Schedule posts for optimal times with automatic timezone handling.

Analytics

Track engagement, impressions, and reach across all platforms.

Multi-Platform

32 platforms across social, community, messaging, content, creative, local, streaming, newsletter, and tech categories.

Connect Flow Coverage

SendIt supports OAuth2, API key/token, webhook, and custom connect flows across the full platform catalog. Use GET /api/v1/connect/{platform} for the platform action, POST /api/v1/connect/token for token/custom credentials, and POST /api/v1/connect/webhook for webhook platforms.

Canonical Capability Matrix

For machine-readable, always-current platform and tool availability use GET /api/v1/capabilities or MCP resource sendit://meta/capabilities. In conservative GA mode, beta tools are hidden automatically.

Authentication

SendIt uses API keys to authenticate your AI assistant. This ensures your social media accounts are only accessible by you.

Multi-User Support

Each user gets their own API key. Your connected social accounts and posts are completely private and isolated from other users.

Getting Your API Key

Sign in to SendIt

Go to sendit.infiniteappsai.com/login and enter your email address. We'll send you a magic link - no password needed.

Open the Dashboard

After clicking the magic link, you'll be redirected to your dashboard.

Create an API Key

In the API Keys section, click "Create New Key". Give it a name (e.g., "Claude Desktop") and click Create.

Copy Your Key

The full API key is shown only once. Copy it immediately and store it securely.

Important: One-Time Display

Your API key is only shown once when created. If you lose it, you'll need to create a new one.

API Key Format

SendIt API keys follow this format:

sk_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Keys always start with sk_live_ followed by 32 characters.

Configuring Your AI Assistant

Once you have your API key, configure it in your AI assistant. See the platform-specific instructions below:

Tier Limits

API key limits depend on your subscription tier:

Feature Free Creator Team Agency
API Keys 1 3 10 Unlimited
Posts/Month 30 200 Unlimited Unlimited
Platforms 2 5 Unlimited Unlimited
Rate Limit 30/min 60/min 120/min 300/min

Upgrade at sendit.infiniteappsai.com/dashboard/billing

Quick Start

Get started in three simple steps:

Connect your AI assistant

Add SendIt to Claude, Gemini, Grok, or ChatGPT using the MCP configuration. See the AI Platforms section for setup instructions.

Connect your social accounts

Use connect_platform (or connect_instagram/connect_linkedin) to authenticate with OAuth, token, webhook, or custom setup flows. See the Social Media section for details.

Start publishing

Ask your AI assistant to post content. For example: "Post to LinkedIn: Excited to share our latest update!"

Supported Platforms

Use these platform IDs in MCP tools (for example connect_x) and in REST endpoints like GET /api/v1/connect/{platform}, publish_content, and schedule_content.

Release Gate

Some platforms may be gated until the full catalog is enabled. Operators can control this with SENDIT_FULL_CATALOG_ENABLED (global) and SENDIT_KILLED_PLATFORMS (per-platform kill switch).

ID Name Auth Mode Category
xX (Twitter)oauth2officialsocial
linkedinLinkedInoauth2officialsocial
linkedin-pageLinkedIn Pageoauth2officialsocial
facebookFacebookoauth2officialsocial
instagramInstagramoauth2officialsocial
threadsThreadsoauth2officialsocial
blueskyBlueskyapi_keyofficialsocial
mastodonMastodonoauth2officialsocial
nostrNostrcustomunofficialsocial
youtubeYouTubeoauth2officialvideo
tiktokTikTokoauth2officialvideo
lemmyLemmyapi_keyofficialcommunity
discordDiscordwebhookofficialmessaging
slackSlackwebhookofficialmessaging
telegramTelegramapi_keyofficialmessaging
pinterestPinterestoauth2officialsocial
dribbbleDribbbleoauth2officialcreative
devtoDEV.toapi_keyofficialcontent
hashnodeHashnodeapi_keyofficialcontent
gmbGoogle My Businessoauth2officiallocal
whopWhopapi_keyunofficialcommunity
producthuntProduct Huntoauth2officialtech
Where to Find Limits

For authoritative, machine-readable limits use get_platform_requirements or GET /api/v1/requirements?platform=<id>. For platform-specific publish settings use get_platform_settings_schema or GET /api/v1/platforms/schema.

Publishing

SendIt supports multiple content types across platforms.

publish_content

Publish content immediately to one or multiple platforms.

Parameters

  • platforms - Array of platform IDs (e.g. ["linkedin"], ["instagram"])
  • content - Content payload object
  • content.text - Post caption/text (required)
  • content.mediaUrl - Optional single media URL (image/video) or local path (TikTok)
  • content.mediaUrls - Optional array of media URLs (carousels/multi-image)
  • content.mediaType - Optional hint: image, video, or auto
  • content.firstComment - Optional first comment (Instagram)
  • content.boardId / content.boardName - Optional Pinterest board targeting
  • content.platformSettings - Optional per-platform settings map (advanced)

Examples

Text post to LinkedIn
"Post to LinkedIn: Just launched our new product! Check it out at example.com"
Image post to Instagram
"Post this image to Instagram with caption 'Behind the scenes at the office'"
[Attach or provide image URL]
Carousel post to Instagram
"Create an Instagram carousel with these 5 images about our company culture"
[Provide 2-10 image URLs]
Tip: Media Uploads

Claude Desktop users: Use upload_media with a local file path to get a public URL.

AI assistants (Claude.ai, ChatGPT): Use create_upload_session to generate a one-click upload link for the user.

Dashboard Features

The SendIt dashboard at sendit.infiniteappsai.com/dashboard provides additional features for composing and publishing content:

  • AI Hashtag Suggestions - Get instant and AI-powered hashtag recommendations based on your post content
  • First Comment - Automatically post hashtags as the first comment on Instagram for cleaner captions
  • Pinterest Board Selector - Visual board picker to select exactly where your pin goes
  • Platform Previews - See how your post will look on each platform before publishing
  • Character Counters - Real-time character limits with platform-specific validation
  • External URL Import - Paste Google Drive, Dropbox, OneDrive, or Box share links directly in the composer or media library. Links are automatically resolved to direct download URLs. Supports bulk paste (one URL per line) for importing multiple files at once.
  • Upload Progress - Per-file progress bars shown during media upload with SHA-256 dedup to skip re-uploading identical files
  • Save to Media Library - Toggle to permanently save uploaded media to your library when scheduling a post. Unchecked media auto-expires after 30 days.
  • Direct Library Upload - Upload files or import URLs directly from the Media Library page without going through the composer

AI Content Generation

Generate platform-optimized content using AI. Analyzes your media and creates tailored captions, hashtags, and descriptions for each platform.

Smart Content Generation

AI automatically respects each platform's character limits and hashtag best practices. For videos, it analyzes key frames to understand the content.

generate_content

Generate AI-powered content from media or prompts without publishing.

Parameters

  • platforms - Target platforms for content generation
  • mediaUrl - Optional URL to image or video for AI analysis
  • prompt - Optional additional context or instructions
  • generation - Optional generation settings object
  • generation.tone - Optional tone: professional, casual, energetic, informative
  • generation.style - Optional style: storytelling, promotional, educational, entertaining
  • generation.callToAction - Optional call to action to include
  • hashtags - Hashtag mode: on, off, or platform_auto
  • strictAi - If true, fail when AI is unavailable instead of using fallback templates
  • contentOverrides - Optional manual overrides for generated content (title, caption, hashtags)
Example
"Generate social media content for this product video for LinkedIn, Instagram, and TikTok"
[Provide video URL]

publish_ai

Generate AI content and publish to platforms in one step.

Additional Parameters

  • mediaUrl - Optional media URL for the post (image/video)
  • mediaUrls - Optional array of media URLs (carousels/multi-image)
  • mediaType - Optional hint: image, video, or auto
  • prompt - Optional creative prompt for AI content generation
  • generation - Optional generation settings (tone, style, callToAction)
  • hashtags - Hashtag mode: on, off, or platform_auto
  • strictAi - If true, fail when AI is unavailable instead of using fallback templates
  • contentOverrides - Optional manual overrides (title, caption, hashtags)
Example
"Create AI content from this video and publish to Instagram, TikTok, and YouTube Shorts"
[Provide video URL]

Platform Content Defaults

Platform Text Limit Default Hashtags
LinkedIn 3,000 Off
Instagram 2,200 On (up to 30)
TikTok 2,200 On (up to 5)
Threads 500 On
X 280 Off
Facebook 63,206 Off
YouTube Title: 100, Desc: 5,000 Off
Pinterest 500 Off

Scheduling

Schedule posts for future publication with automatic execution.

schedule_content

Schedule a post for a specific date and time.

Parameters

  • platforms - Target platforms
  • content - Content payload object (same shape as publish_content)
  • content.text - Post caption/text (required)
  • content.mediaUrl / content.mediaUrls - Optional media URL(s)
  • scheduledTime - ISO 8601 datetime in UTC
Example
"Schedule for tomorrow at 9am EST: Big announcement coming soon! Stay tuned."

get_scheduled_posts

View all pending scheduled posts.

"Show my scheduled posts"
"What posts do I have scheduled for LinkedIn?"

delete_scheduled_post

Cancel a scheduled post before it's published.

"Cancel my scheduled post with ID xyz123"

trigger_scheduled_post

Publish a scheduled post immediately instead of waiting.

"Publish my scheduled post xyz123 now"

Analytics

Track performance of your posts across all platforms.

Complete Account Analytics

TikTok, Instagram, Threads, and X: Fetch ALL posts from your account directly via platform API — not limited to posts made through SendIt.

LinkedIn: Returns analytics only for posts published through SendIt (LinkedIn API limitation).

Note: X free tier has rate limits (~17 calls/day).

get_analytics

Retrieve engagement metrics for your posts on a platform.

Metrics by Platform

Metric LinkedIn Instagram TikTok Threads X
Impressions/Views Yes Yes* Yes Yes Yes**
Likes Yes Yes Yes Yes Yes
Comments/Replies Yes Yes Yes Yes Yes
Shares/Retweets Yes Yes Yes Yes Yes
Saves/Bookmarks No Yes No No Yes
Engagement Rate Yes Yes Yes Yes Yes

* Instagram views only available for Reels/Videos. ** X impressions only for tweets <30 days old.

Example
"Get my LinkedIn analytics"
"Show Instagram engagement for my recent posts"
"How are my TikTok videos performing?"
"Show X analytics"

Media Upload

Upload local images and videos to cloud storage for use in posts.

TikTok Direct Upload

TikTok supports direct local file uploads — no need to use upload_media first!

Just pass the local file path directly to publish_content for TikTok.

upload_media

Get a public URL for media. Required for Instagram, LinkedIn, Threads, and X when posting images.

Supported formats

  • Images: JPEG, PNG, GIF, WebP (max 10MB)
  • Videos: MP4, MOV, WebM (max 100MB)
Claude Desktop vs AI Assistants (Claude.ai, ChatGPT)

Claude Desktop: Use local file paths (e.g., ~/Pictures/photo.jpg) — SendIt uploads to Cloudinary and returns a URL.

AI Assistants: Use create_upload_session for a seamless one-click upload experience (see below).

Claude Desktop workflow
1. "Upload this image from my desktop ~/Pictures/product.jpg"
2. [SendIt returns public URL]
3. "Now post that image to Instagram with caption 'New product shot'"

AI Assistant Upload Sessions

For users of Claude.ai, ChatGPT, and other web-based AI assistants, SendIt provides a seamless upload flow:

AI creates an upload link

When you drag an image into the chat or say "post this image", the AI calls create_upload_session to generate a one-click upload link.

User clicks the link

A new tab opens with a clean drag-and-drop interface. The user drops the same image they showed the AI.

Upload completes automatically

The file uploads to secure cloud storage. User sees "Done! You can close this tab."

AI retrieves the URL

The AI calls get_upload_session to get the uploaded image URL, then uses it to publish.

AI Assistant (Claude.ai, ChatGPT) workflow
User: "Post this image to Instagram" [drags image into chat]
AI: "Click here to upload your image: [upload link]"
User: [Clicks link, uploads image in new tab]
AI: "Got it! Posting to Instagram..." [success]
Why Upload Sessions?

Web-based AI assistants can see images you share, but they can't access the raw file data needed for uploading. Upload sessions solve this with a simple one-click flow — just click the link, drop your image, and you're done!

Example workflow - Video (TikTok Direct)
"Post ~/Videos/product-demo.mp4 to TikTok with caption 'Check out our new product!'"
[No upload_media needed - SendIt handles it automatically!]

Dashboard App

The SendIt Dashboard is a full-featured web application for managing your social media presence. Access it at sendit.infiniteappsai.com/dashboard.

Beyond AI Assistants

While SendIt's MCP tools let you publish via AI assistants, the dashboard provides a visual interface with additional features like platform previews, hashtag suggestions, and analytics charts.

Dashboard Features

Post Composer

Visual composer with real-time platform previews, character counters, and media uploads.

AI Hashtag Suggestions

Get instant and AI-powered hashtag recommendations based on your post content and platform.

First Comment (Instagram)

Automatically post hashtags as the first comment for cleaner captions.

Pinterest Board Picker

Visual board selector to choose exactly where your pins go.

Content Calendar

View and manage all your scheduled posts in a calendar layout.

Analytics Dashboard

Visual charts and metrics for engagement across all your connected platforms.

Platform Previews

The dashboard shows real-time previews of how your post will appear on each platform:

  • Instagram - Feed post preview with profile picture and username
  • Facebook - Page post preview with reactions and sharing
  • LinkedIn - Professional post preview with engagement metrics
  • X (Twitter) - Tweet preview with character count
  • Threads - Thread post preview
  • TikTok - Video post preview
  • YouTube - Video/Shorts preview with title and description
  • Pinterest - Pin preview with board selection

Team Features

Team and Agency plans include collaborative features:

  • Team Workspaces - Shared accounts and content libraries
  • Role-Based Access - Owner, Admin, Editor, and Viewer roles
  • Audit Logs - Track who published what and when
  • Client Management - Manage multiple brands (Agency plan)

Dashboard V2 API (Beta)

The Dashboard V2 API powers the next-generation dashboard experience. These endpoints live under /api/v2/* and return a standard response envelope.

V2 response envelope
{
  "success": true,
  "data": { "...": "..." },
  "meta": {
    "requestId": "v2_...",
    "timestamp": "2026-01-01T00:00:00.000Z",
    "pagination": {
      "hasMore": false,
      "nextCursor": "..."
    }
  }
}

Auth + Scope

  • Auth: cookie session auth (same session as /dashboard)
  • Team scope: pass team_id as a query parameter (omit for personal scope)
  • Pagination: cursor-based with cursor + limit (default 25, max 100)

Core endpoints

Connecting accounts: Use POST /api/v2/accounts/connect for api_key/webhook/custom platforms. OAuth platforms redirect via /api/auth/:platform/start.

Endpoint Purpose
GET /api/v2/bootstrap Aggregated dashboard bootstrap data (user/workspace/permissions/capabilities/subscription/health)
GET /api/v2/me Current user snapshot (id/email/displayName/tier/defaultTimezone)
PATCH /api/v2/me Update user settings (currently supports defaultTimezone)
GET /api/v2/channels List connected channels in the current scope
GET /api/v2/accounts List connected accounts with display names, avatars, and token status
POST /api/v2/accounts/connect Connect an account for api_key/webhook/custom platforms (OAuth redirect flows use /api/auth/:platform/start)
POST /api/v2/accounts/disconnect Disconnect a connected account in the current scope (team requires admin/owner)
GET /api/v2/platforms Platform catalog (capabilities, limits, and connection health)
GET /api/v2/usage Usage stats + limits for the current scope (posts/platforms/scheduled/apiKeys)
GET /api/v2/overview Command Center aggregated overview (accounts, usage, analytics, upcoming, queue slots)
GET /api/v2/onboarding Onboarding checklist state for the current scope
PATCH /api/v2/onboarding Update onboarding progress (dismiss/snooze/reset)
GET /api/v2/capabilities Capabilities snapshot (tool catalog, platform catalog, and operator state)
GET /api/v2/teams List teams the current user belongs to
POST /api/v2/teams Create a new team (Team/Agency tier, CSRF required)
GET /api/v2/team?team_id=<teamId> Get team details + current user membership
PATCH /api/v2/team?team_id=<teamId> Update team settings (admin/owner, CSRF required)
DELETE /api/v2/team?team_id=<teamId> Delete a team (owner only, CSRF required)
GET /api/v2/team/members?team_id=<teamId> List team members in the current team scope
PATCH /api/v2/team/members/<memberId>?team_id=<teamId> Update member role (admin/owner, CSRF required)
DELETE /api/v2/team/members/<memberId>?team_id=<teamId> Remove member (admin/owner) or self-leave (non-owner), CSRF required
GET /api/v2/team/invitations?team_id=<teamId> List pending team invitations (admin/owner)
POST /api/v2/team/invitations?team_id=<teamId> Create a team invitation (admin/owner, CSRF required)
DELETE /api/v2/team/invitations/<invitationId>?team_id=<teamId> Cancel a pending invitation (admin/owner, CSRF required)
POST /api/v2/team/leave?team_id=<teamId> Leave a team (non-owner only, CSRF required)
GET /api/v2/organizations List organizations the current user belongs to (Agency tier)
POST /api/v2/organizations Create a new organization (Agency tier, CSRF required)
GET /api/v2/organizations/<orgId> Get organization details + membership role + counts
PATCH /api/v2/organizations/<orgId> Update organization settings (admin/owner, CSRF required)
DELETE /api/v2/organizations/<orgId> Delete an organization (owner only; blocked if org has teams, CSRF required)
GET /api/v2/organizations/<orgId>/teams List teams in an organization
POST /api/v2/organizations/<orgId>/teams Add an existing team to an organization (org admin/owner + team owner, CSRF required)
GET /api/v2/organizations/<orgId>/analytics Organization analytics across teams (admin/owner)
GET /api/v2/organizations/<orgId>/branding Get organization branding (admin/owner)
PUT /api/v2/organizations/<orgId>/branding Upsert organization branding (admin/owner, CSRF required)
GET /api/v2/keys/list List API keys (masked) for the current scope
POST /api/v2/keys/create Create an API key (returns fullKey once)
POST /api/v2/keys/revoke Revoke an API key in the current scope
GET /api/v2/brand-voice Manage brand voice profiles (list/create/update/delete/set default)
GET /api/v2/media-presets Optional media presets used by the composer uploader (scoped personal/team)
GET /api/v2/audit/export Export audit log as CSV (filters match /api/v2/audit/events)
GET /api/v2/report-shares List report share links for the current scope (team requires admin/owner)
POST /api/v2/report-shares Create a report share link (supports optional password + expiry)
DELETE /api/v2/report-shares?id=<shareId> Revoke a report share link
GET /api/v2/notification-destinations Manage team notification delivery (Slack webhook + email)
GET /api/v2/inbox/canned-replies Manage Inbox canned replies (personal or team scope)
POST /api/v2/channels/<channelId>/test Run a lightweight connection diagnostic for a channel (CSRF recommended)
POST /api/v2/posts/validate Validate draft content against platform requirements for target accounts
POST /api/v2/posts/content-score Score draft content quality for selected platforms
POST /api/v2/ai/compose AI Studio: rewrite/improve/expand/shorten draft text (returns variants + suggestions)
POST /api/v2/ai/insights AI Insights: generate an analytics narrative + key findings + next best actions
POST /api/v2/ai/feedback Submit user feedback (rating/notes) for AI results
GET /api/v2/ai/best-times Best times to post by platform (supports ?platform= + ?limit=)
POST /api/v2/ai/content-score AI Studio: content scoring (V2 wrapped)
POST /api/v2/ai/hashtags/suggest AI Studio: hashtag suggestions (V2 wrapped)
POST /api/v2/ai/schedule AI Studio: schedule content (includes A/B test scheduling)
POST /api/v2/ai/workspace/session AI Hub: create/update/load resumable workspace session state
POST /api/v2/ai/workspace/run AI Hub: run orchestrated actions (drafts, scoring, hashtags, scheduling, A/B plans, voice, avatar, thumbnail, pipeline runs)
GET /api/v2/ai/providers AI provider registry for the current workspace (capabilities, health, connection mode, success metrics)
POST /api/v2/ai/providers/connect Connect/update an AI provider in managed or byok credential mode
POST /api/v2/ai/providers/<providerId>/test Validate provider credentials and update provider connection health
POST /api/v2/ai/providers/<providerId>/webhook Webhook ingest endpoint for async provider status events (idempotent event logging + signature tracking)
POST /api/v2/ai/pipelines/run Start a pipeline template run (brief → generation steps → approval gate → staged autopublish)
GET /api/v2/ai/pipelines/<runId> Fetch pipeline run details with step-by-step provider lineage and status
POST /api/v2/ai/pipelines/<runId>/retry-step Retry a single failed pipeline step without rerunning the whole pipeline
GET /api/v2/ai/artifacts List normalized AI artifacts (script/image/video/audio/avatar/thumbnail metadata) by workspace/provider/job
POST /api/v2/ai/voice/generate Create a voice generation job through the unified provider adapter layer
POST /api/v2/ai/avatar/generate Create an avatar generation job through the unified provider adapter layer
POST /api/v2/ai/thumbnails/generate Create a thumbnail generation job through the unified provider adapter layer
POST /api/v2/ai/mention-summary AI Listening: summarize mention clusters
GET /api/v2/imports/template Migration Assistant: download import templates or list sources
POST /api/v2/imports/validate Migration Assistant: validate and map an import file
POST /api/v2/imports/run Migration Assistant: run an import (creates scheduled posts)
GET /api/v2/bulk-import/template Bulk Import: download CSV template or retrieve JSON template metadata
POST /api/v2/bulk-import/validate Bulk Import: validate a CSV/XLSX file
POST /api/v2/bulk-import/ai-rewrite Bulk Import: AI rewrite suggestions for invalid/weak rows
POST /api/v2/bulk-import/import Bulk Import: import validated rows (creates scheduled posts)
POST /api/v2/posts/schedule Schedule posts from the composer (supports multi-account targeting)
POST /api/v2/posts/publish Publish immediately from the composer
GET /api/v2/posts/scheduled?id=<postId> Fetch a scheduled post payload for detail/edit views
PATCH /api/v2/posts/scheduled?id=<postId> Edit a pending scheduled post (content, platforms, and recurrence scope)
GET /api/v2/calendar/events Calendar feed for scheduled/published content
GET /api/v2/calendar/recommendations Best posting time recommendations for selected platforms
POST /api/v2/calendar/duplicate?id=<postId> Duplicate a scheduled post (creates a new pending post)
POST /api/v2/calendar/bulk-actions Bulk update scheduled posts (shift, cancel, set_time, move_to_queue)
GET /api/v2/calendar/ics Export an ICS feed for the current calendar filters
GET /api/v2/calendar/shares List calendar share links for the current scope (team requires admin/owner)
POST /api/v2/calendar/shares Create a calendar share link (supports optional password + filters)
DELETE /api/v2/calendar/shares?id=<shareId> Revoke a calendar share link
GET /api/v2/queue-slots List queue slots used for queue scheduling
PUT /api/v2/queue-slots Replace queue slots (team scope requires admin/owner)
POST /api/v2/queue-slots/suggest Suggest queue slots from best-time-to-post insights
GET /api/v2/pinterest/boards List Pinterest boards for selection when publishing/scheduling
POST /api/v2/composer/hashtags/suggest Hashtag suggestions (instant + AI)
GET /api/v2/composer/hashtag-sets List saved hashtag sets (personal or team scope)
GET /api/v2/analytics/overview Dashboard analytics overview (KPIs, timeseries summary, top content)
GET /api/v2/analytics Aggregated analytics (legacy-style dashboard payload) in V2 envelope
GET /api/v2/analytics/export Export aggregated analytics as CSV
GET /api/v2/analytics/post?id=<postId> Post-level analytics drilldown (snapshots over time)
GET /api/v2/analytics/reports List saved analytics reports
POST /api/v2/analytics/reports Create a saved analytics report
POST /api/v2/analytics/report-run?id=<reportId> Run a saved analytics report and return the computed analytics payload
GET /api/v2/analytics/anomalies List analytics anomalies (alerts)
PATCH /api/v2/analytics/anomalies Dismiss an anomaly alert (CSRF required)
GET /api/v2/analytics/audience Audience snapshots (followers/following over time)
GET /api/v2/analytics/ab-tests List A/B test groups and variant performance

Claude Desktop

Connect SendIt to Claude's desktop application.

Get your API key

Sign in at sendit.infiniteappsai.com/login and create an API key from your dashboard.

Open Claude Desktop settings

Go to Settings → Developer → Edit Config to open claude_desktop_config.json

Add SendIt configuration

Add the following MCP server configuration with your API key:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "sendit": {
      "url": "https://sendit.infiniteappsai.com/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_YOUR_API_KEY_HERE"
      }
    }
  }
}
Replace with your API key

Replace sk_live_YOUR_API_KEY_HERE with the API key from your dashboard.

Alternative: Environment Variable

You can also use an environment variable to keep your key out of the config file:

{
  "mcpServers": {
    "sendit": {
      "url": "https://sendit.infiniteappsai.com/mcp",
      "env": {
        "SENDIT_API_KEY": "sk_live_YOUR_API_KEY_HERE"
      }
    }
  }
}

MCP Apps (Interactive UIs)

SendIt supports MCP Apps - interactive HTML interfaces that render directly inside compatible AI hosts like Claude Desktop, VS Code, and other MCP Apps-compatible clients.

What are MCP Apps?

MCP Apps is an extension to MCP that allows tools to return interactive UI components instead of just text. When you use SendIt tools in a compatible host, you'll see rich interfaces for composing posts, managing accounts, and viewing analytics.

Available Apps

App Description Triggered by Tools
Publish Composer Compose and publish posts with platform selection, character counts, and real-time validation publish_content, validate_content
Teams List your teams and operate in team context across all tools list_teams
Connected Accounts View connection status for all platforms and connect new accounts list_connected_accounts, connect_*
Analytics Dashboard View post engagement metrics per platform get_analytics
Scheduler Manager Manage scheduled posts - view, trigger, or delete get_scheduled_posts, schedule_content
Upload Interface Create upload sessions and track media uploads create_upload_session, get_upload_session

Supported Hosts

  • Claude Desktop - Full MCP Apps support
  • VS Code (Insiders) - Full MCP Apps support via Copilot integration
  • Goose - Full MCP Apps support
  • Postman - Full MCP Apps support
Host Compatibility

MCP Apps require host support. If your AI assistant doesn't render the interactive UIs, it will fall back to text-based tool responses which work with all MCP clients.

App Catalog

The App Catalog is a marketplace of installable mini-apps inside the SendIt dashboard. Each app extends your workflow with specialized tools for content creation, media management, link tracking, and team collaboration.

Browsing & Installing Apps

Navigate to Apps in the dashboard sidebar to browse the catalog. Click Install on any app to activate it. Installed apps appear in the sidebar for quick access and can be opened at /apps/{slug}.

Available Apps

AppDescription
Hashtag ManagerSave hashtag sets, discover trending tags with AI, and track hashtag performance across platforms.
Bulk SchedulerImport posts in bulk via CSV/XLSX and view import history with status breakdowns.
Link ShortenerCreate tracked short links with UTM parameters, view click analytics, and manage UTM templates.
AI Content WriterFull AI writing studio with prompt, tone, brand voice, platform variants, content scoring, and hashtag suggestions.
Content Calendar ProEnhanced calendar view with configurable default view, queue slot visibility, and platform color coding.
Social Listening (Beta)Monitor keywords and mentions across social platforms with alerts and digest reports.
Team ApprovalsMulti-step approval workflows with role-based reviewers, SLA tracking, and platform-specific policies.
Media Library PlusOrganize media assets into collections, bulk-tag files, edit alt text, browse with filters, upload directly to library, and bulk-import from Google Drive, Dropbox, OneDrive, and Box via URL paste.

Configuration

Some apps support per-user configuration (e.g., Content Calendar Pro default view). Configuration is stored per install and can be modified from within each app's settings panel.

Claude.ai Web

Connect SendIt to Claude's web interface using the remote MCP endpoint.

Get your API key

Sign in at sendit.infiniteappsai.com/login and create an API key from your dashboard.

Open Claude.ai Settings

Go to claude.ai and click on Settings in the sidebar.

Navigate to Connectors

Find the "Connectors" or "MCP Servers" section in settings.

Add SendIt

Click "Add Connector" and enter the following:

MCP URL
https://sendit.infiniteappsai.com/mcp
Authorization Header
Bearer sk_live_YOUR_API_KEY_HERE
Replace with your API key

Replace sk_live_YOUR_API_KEY_HERE with the API key from your dashboard.

Gemini CLI

Connect SendIt to Google's Gemini CLI.

First, get your API key from sendit.infiniteappsai.com/login and your dashboard.

~/.gemini/settings.json
{
  "mcpServers": {
    "sendit": {
      "url": "https://sendit.infiniteappsai.com/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_YOUR_API_KEY_HERE"
      }
    }
  }
}
Replace with your API key

Replace sk_live_YOUR_API_KEY_HERE with the API key from your dashboard.

Note

Gemini's web interface does not currently support custom MCP servers. Use the CLI for MCP integration.

Grok (xAI)

Connect SendIt to Grok using the xAI SDK.

First, get your API key from sendit.infiniteappsai.com/login and your dashboard.

Python example
from xai_sdk import XAI

client = XAI(api_key="xai-...")
response = client.chat.completions.create(
    model="grok-3",
    messages=[{"role": "user", "content": "Post to LinkedIn: Hello world!"}],
    mcp_servers=[{
        "url": "https://sendit.infiniteappsai.com/mcp",
        "headers": {
            "Authorization": "Bearer sk_live_YOUR_API_KEY_HERE"
        }
    }]
)
Replace with your API key

Replace sk_live_YOUR_API_KEY_HERE with the API key from your dashboard.

Note

Grok's web app does not support custom MCP. Use the xAI SDK (v1.4.0+) for MCP integration.

ChatGPT

Connect SendIt to ChatGPT for an immersive social media publishing experience. Use the ChatGPT App path for OAuth-based MCP integration.

ChatGPT App (Recommended)

The ChatGPT App integration provides an interactive in-chat experience with rich widgets for publishing, scheduling, analytics, and account management—all without leaving ChatGPT.

Features

  • Interactive Widgets — Visual cards and carousels display results, account status, and analytics directly in chat
  • One-Click Actions — Trigger follow-up actions like "View Analytics" or "Schedule Another" from widget buttons
  • Real-time Status — See publishing progress and platform-specific results with live feedback
  • Media Upload — Upload images and videos through a secure browser link, then publish instantly

Available Widgets

Widget Purpose
Publish Result Displays publishing results with platform links, success/error states, and follow-up actions
Accounts Carousel Horizontal carousel showing all supported platforms with connection status and expiry warnings
Analytics Card Interactive analytics dashboard with Chart.js visualizations, metrics grid, and top posts
Scheduled List List of pending scheduled posts with relative time display, trigger/cancel actions
Upload Session Media upload flow with secure upload link, session status, and file previews
OAuth Prompt Platform authorization prompt with connection instructions and help options
Validation Result Pre-publish validation showing platform compatibility matrix, errors, and warnings
Schedule Result Confirmation card for scheduled posts with reschedule and cancel actions

Setup Instructions

Canonical setup guide: https://sendit.infiniteappsai.com/documentation.html#chatgpt

To add SendIt as a ChatGPT App:

  1. Open chatgpt.com and go to Settings → Apps
  2. Click Add App and enter the SendIt MCP endpoint URL
  3. Complete OAuth authorization when prompted
  4. Start chatting! Try "Show my connected accounts" or "Post hello world to LinkedIn"

MCP Server URL

https://sendit.infiniteappsai.com/mcp

Canonical ChatGPT submission endpoint. Backward-compatible alias: /api/mcp/chatgpt. The full advanced endpoint remains /api/mcp.

For the always-current tool and platform matrix, use GET /api/v1/capabilities or MCP resource sendit://meta/capabilities.

Authentication

The ChatGPT App uses OAuth 2.1 + PKCE.

Authorization URL: https://sendit.infiniteappsai.com/oauth/authorize
Token URL: https://sendit.infiniteappsai.com/oauth/token
Registration URL: https://sendit.infiniteappsai.com/oauth/register
Metadata: https://sendit.infiniteappsai.com/.well-known/oauth-authorization-server
Interactive Experience

After each action, you'll see interactive widgets in the chat. Click buttons like "View Analytics" or "Schedule Another" to continue the conversation naturally.

Custom GPT Actions (Alternative)

If you prefer using Custom GPTs, import the SendIt OpenAPI spec for REST API access:

https://sendit.infiniteappsai.com/api/openapi.yaml

REST API Base URL

https://sendit.infiniteappsai.com/api/v1

Authentication Header

Add this header to all API requests:

Authorization: Bearer sk_live_YOUR_API_KEY_HERE

Optional Integration Attribution Headers

For integration analytics and attribution, you can also send:

X-SendIt-Integration: openclaw
X-SendIt-Integration-Version: 0.1.0
X-SendIt-Skill-Pack: sendit-openclaw
Replace with your API key

Replace sk_live_YOUR_API_KEY_HERE with the API key from your dashboard.

REST API Endpoints

MethodEndpointDescription
POST/publishPublish immediately
POST/scheduleSchedule for later
POST/publish-aiAI-generate content and publish
POST/ai/generate-contentAI-generate content without publishing
GET/scheduledList scheduled posts
GET/accountsList connected accounts
GET/platforms/schema?platform=<platformId>Platform settings schema for content.platformSettings.<platformId>
POST/validateValidate content
GET/POST/brand-voiceList or create brand voices
GET/PATCH/DELETE/brand-voice/:idGet, update, or delete brand voice
POST/brand-voice/:id/defaultSet default brand voice
GET/approvalsList pending approvals
POST/approvals/:postId/approveApprove a post
POST/approvals/:postId/rejectReject a post
GET/POST/campaignsList campaigns or generate AI plan
POST/campaigns/:id/scheduleSchedule campaign posts
GET/inboxList social inbox threads
POST/inbox/:threadId/replyReply to inbox thread
POST/inbox/:threadId/statusUpdate thread status
GET/best-timesGet best posting times
POST/content-scoreScore content quality
GET/dead-letterList dead letter posts
POST/dead-letter/:id/requeueRequeue failed post
POST/dead-letter/:id/discardDiscard failed post
GET/POST/ai-mediaList or create AI media jobs
GET/ai-media/:idGet AI media job status
GET/audit-logQuery audit log entries
GET/listening/keywordsList monitored keywords
POST/listening/refreshTrigger listening data refresh
Which to Choose?

Use the ChatGPT App for the best interactive experience with rich widgets. Use Custom GPT Actions if you need custom instructions or want to combine SendIt with other actions in your GPT.

OpenClaw

Use the official @sendit/openclaw plugin to run SendIt social automation directly in OpenClaw with prefixed tools and a bundled orchestration skill pack.

Install Plugin

openclaw plugins install @sendit/openclaw

Authenticate

API key mode:

openclaw sendit auth login --mode api-key --api-key sk_live_YOUR_KEY

OAuth mode:

openclaw sendit auth login --mode oauth
openclaw models auth login --provider sendit

Run Health Checks

openclaw sendit auth status
openclaw sendit doctor

Install Skill Pack (Optional)

clawhub install sendit-openclaw

Tool Surface (75+ tools)

Core Tools (12)

  • sendit_capabilities — Discover features, platforms, tool capabilities
  • sendit_list_accounts — List connected social accounts
  • sendit_connect_account — Get OAuth URL to connect a platform
  • sendit_requirements — Get platform content requirements
  • sendit_validate — Validate content against platform constraints
  • sendit_upload_media — Upload local file or register media URL
  • sendit_publish — Publish content immediately
  • sendit_schedule — Schedule content for future publish
  • sendit_list_scheduled — List pending scheduled posts
  • sendit_trigger_scheduled — Publish a scheduled post immediately
  • sendit_delete_scheduled — Cancel a scheduled post
  • sendit_analytics — Fetch per-platform engagement analytics

Growth Tools (13)

  • sendit_inbox — Unified inbox: list, get, reply, update_status
  • sendit_listening — Social listening: keywords, mentions, alerts, summary
  • sendit_campaigns — Campaign planning: list, create_plan, schedule
  • sendit_brand_voice — Brand voice profiles: CRUD + set_default
  • sendit_content_library — Content library: save, organize, retrieve
  • sendit_approvals — Approval workflows: list_pending, approve, reject
  • sendit_dead_letter — Failed post recovery: list, requeue
  • sendit_bulk_schedule — Bulk CSV scheduling: template, validate, import
  • sendit_webhooks — Webhook management: CRUD, test, events_catalog
  • sendit_audit_log — Activity audit trail with filters
  • sendit_ai_media — AI media generation: generate, status
  • sendit_best_times — AI-recommended optimal posting times
  • sendit_content_score — Content quality scoring (0-100)

Advanced MCP Tools (12)

  • sendit_ai_draft_reply — AI-drafted reply for mentions
  • sendit_ai_summarize_mentions — Mention clustering and summarization
  • sendit_ai_generate_post_bundle — Multi-variant post generation
  • sendit_ai_critique_post — AI critique and scoring for drafts
  • sendit_unified_analytics — Cross-platform analytics dashboard
  • sendit_anomaly_alerts — Engagement anomaly detection
  • sendit_benchmark — Industry benchmark comparisons
  • sendit_ads — Ad campaigns: accounts, campaigns, creatives, performance
  • sendit_crm — Social CRM: conversations, replies, escalation
  • sendit_agents — AI agent orchestration: invoke, monitor, policies
  • sendit_workflows — Workflow automation: create, trigger, monitor
  • sendit_connectors — External integrations: connect, health, execute

Connector Tools (7)

  • list_connectors — List available connectors by category
  • get_connector_capabilities — Get connector operations and auth strategy
  • connect_connector — Authenticate and connect an external service
  • disconnect_connector — Disconnect an external service
  • get_connector_health — Check connector connection health
  • execute_connector_operation — Run a connector operation
  • list_connector_runs — List recent connector execution runs

Ads & Paid Media Tools (7)

  • list_ad_accounts — List connected ad accounts
  • create_ad_campaign — Create an ad campaign
  • list_ad_campaigns — List campaigns with status filters
  • create_ad_creative — Create ad creative content
  • get_ad_performance — Get campaign performance metrics
  • get_attribution_report — Cross-channel attribution report
  • update_ad_campaign — Update campaign settings

Workflow Automation Tools (7)

  • create_workflow — Create automated workflow with steps
  • list_workflows — List workflows with status filter
  • update_workflow — Update workflow configuration
  • trigger_workflow — Manually trigger a workflow
  • list_workflow_runs — List workflow execution history
  • get_workflow_run — Get details of a workflow run
  • delete_workflow — Delete a workflow

CRM & Conversation Tools (6)

  • list_conversations — List social inbox conversations
  • get_conversation — Get conversation thread details
  • reply_to_conversation — Reply to a conversation
  • update_conversation — Update conversation status/labels
  • escalate_to_support — Escalate conversation to support
  • get_conversation_analytics — Conversation response metrics

AI Agent Tools (6)

  • invoke_agent — Invoke an AI agent with a task
  • list_agents — List available AI agents
  • get_agent_run — Get agent run status and output
  • list_agent_runs — List agent execution history
  • update_agent_policy — Update agent permissions and policies
  • cancel_agent_run — Cancel a running agent

Dynamic Platform Connection Tools (32+)

Auto-generated connect_<platform> tools for each supported platform (e.g., connect_linkedin, connect_instagram, connect_tiktok). These generate OAuth URLs or accept credentials for token/webhook-based platforms.

n8n

Integrate SendIt with n8n to automate social media publishing in your workflows. n8n is a fair-code licensed workflow automation platform that lets you connect SendIt with hundreds of other apps.

Prerequisites

Before installing, get your API key by following the Authentication guide. You'll need a SendIt account and an API key (format: sk_live_...).

Installation

Install the SendIt community node in your n8n instance:

Method 1: GUI Installation (Recommended)

Open Community Nodes

In your n8n instance, go to SettingsCommunity Nodes.

Install the Package

Click Install a community node and enter: n8n-nodes-sendit

Restart n8n

Restart your n8n instance if prompted to complete the installation.

Method 2: NPM Installation

For manual installation or Docker setups:

# In your n8n custom directory
cd ~/.n8n/custom
npm install n8n-nodes-sendit

# Restart n8n
n8n start

Configure Credentials

Add SendIt Credential

In n8n, go to CredentialsNew Credential → search for SendIt API.

Enter Your API Key

Paste your SendIt API key (from your dashboard) and click Save.

Test the Connection

n8n will automatically test the connection. If successful, you're ready to use SendIt in your workflows.

Available Nodes

The SendIt package includes two nodes:

SendIt Node (Actions)

Operation Description
Publish Post Publish content immediately to selected platforms
Schedule Post Schedule content for future publishing
List Scheduled Posts Get all pending scheduled posts
Cancel Scheduled Post Cancel a scheduled post
Trigger Scheduled Post Publish a scheduled post immediately
List Accounts Get all connected social media accounts
Validate Content Check content against platform requirements

SendIt Trigger Node (27 Webhook Events)

Event Description
Post PublishedTriggers when a post is successfully published
Post ScheduledTriggers when a new post is scheduled
Post FailedTriggers when a post fails to publish
Post DeletedTriggers when a scheduled post is cancelled
Post Dead LetteredTriggers when a post exhausts all retries
Account ConnectedTriggers when a social account is connected
Account DisconnectedTriggers when a social account is disconnected
Account Token ExpiringTriggers when a token is near expiry
Account Token Refresh FailedTriggers when token refresh fails
Account Reconnect RequiredTriggers when reconnection is needed
Account Refresh RecoveredTriggers when a token refresh recovers
Account Auth Recovery CompletedTriggers when auth-blocked posts are requeued
Mention DetectedTriggers when a tracked keyword mention is found
Mention Negative SentimentTriggers when negative sentiment is detected
Team Member JoinedTriggers when a member joins a team
Team Member LeftTriggers when a member leaves a team
Team Member Role ChangedTriggers when a member's role changes
Team Invitation SentTriggers when a team invitation is sent
Team Invitation AcceptedTriggers when a team invitation is accepted
Team Invitation DeclinedTriggers when a team invitation is declined
Approval SubmittedTriggers when a post enters approval workflow
Approval Step ApprovedTriggers when an approval step is approved
Approval Changes RequestedTriggers when changes are requested
Approval RejectedTriggers when a post is rejected
Analytics Anomaly DetectedTriggers when an analytics anomaly is flagged
API Key Rotation DueTriggers when an API key rotation is due
Critical Audit EventTriggers for critical security/compliance events

Example Workflow

Here's a simple workflow that publishes a post when triggered:

// 1. Add a Manual Trigger or Schedule Trigger
// 2. Add the SendIt node
// 3. Select "Publish Post" operation
// 4. Choose platforms: LinkedIn, Instagram, etc.
// 5. Enter your post text
// 6. Execute the workflow
Self-Hosted n8n Required

The SendIt community node is currently available for self-hosted n8n instances only. n8n Cloud users cannot install unverified community nodes. We're working on getting verified for n8n Cloud availability.

Need Help?

Check the package on npm or the GitHub repository for more details and issue reporting.

Connect Instagram

Link your Instagram account to start publishing.

Important: Business or Creator Account Required

Instagram's API only supports Business and Creator accounts. Personal accounts cannot be connected. See below for how to convert your account.

Requirements

  • Instagram Business or Creator account (not Personal)
  • A Facebook Page linked to your Instagram account

Convert to Business/Creator Account

Open Instagram Settings

Go to your profile, tap the menu icon, then Settings and Privacy.

Find Account Type

Scroll to "Account type and tools" or "For professionals".

Switch to Professional

Select "Switch to professional account" and choose Business or Creator.

Connect Facebook Page

Follow the prompts to connect or create a Facebook Page for your account.

Connect to SendIt

Once you have a Business/Creator account, ask your AI assistant:

"Connect my Instagram account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Content Types

  • Single Image Posts - Standard feed posts with one image
  • Carousel Posts - 2-10 images in a slideshow format
  • Reels - Short-form video (5-90 seconds for Reels tab eligibility)

First Comment Feature

Instagram's algorithm favors clean captions. Use the First Comment feature to automatically post your hashtags as the first comment instead of cluttering your caption.

Pro Tip: Hashtag Strategy

Move hashtags to the first comment for a cleaner look. This is a common strategy used by brands and influencers to keep captions readable while maintaining discoverability.

When using the SendIt dashboard, enable "Add hashtags as first comment" to automatically move hashtags from your caption to the first comment after publishing.

Comment Management

SendIt can read and reply to comments on your Instagram posts through the Social Inbox. Comments are synced automatically and you can reply directly from the dashboard.

Direct Messages

SendIt can access your Instagram DM conversations for Business/Creator accounts. You can view conversations and send replies through the dashboard API.

24-Hour Messaging Window

Instagram's messaging API only allows sending messages to users who have messaged you within the last 24 hours. This is an Instagram platform restriction.

Connect Facebook

Link your Facebook Page to start publishing posts, photos, and videos.

Important: Facebook Page Required

Facebook's API only supports publishing to Pages, not personal profiles. You must have a Facebook Page to use SendIt with Facebook.

Requirements

  • A Facebook Page (personal profiles are not supported)
  • Admin or Editor access to the Page

Connect to SendIt

Ask your AI assistant:

"Connect my Facebook account"

SendIt will provide an OAuth link. Click it to authorize access and select your Facebook Page, then return to your AI assistant.

Supported Content Types

  • Text Posts - Standard text updates to your Page
  • Photo Posts - Single image posts
  • Multi-Photo Posts - Up to 10 images in a single post
  • Video Posts - Native video uploads
  • Link Posts - Posts with link previews
Token Expiration

Facebook Page tokens are long-lived and don't expire as long as the Page connection remains valid.

Connect LinkedIn

Link your LinkedIn account to start publishing.

Requirements

  • A LinkedIn account
  • Permission to post on your behalf

Connect to SendIt

Ask your AI assistant:

"Connect my LinkedIn account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Content Types

  • Text Posts - Standard text updates
  • Image Posts - Posts with a single image attachment
  • Video Posts - Native video uploads (up to 5GB, 10 minutes)
Token Expiration

LinkedIn access tokens expire after 60 days. You'll need to reconnect your account when prompted.

Connect TikTok

Link your TikTok account to publish short-form videos.

Important: Video-Only Platform

TikTok only supports video content. Images and text-only posts are not supported. All videos must be 3-600 seconds in length.

Sandbox Mode Notice

Until your app is approved by TikTok, all videos will be published as private (SELF_ONLY). You can see them in your TikTok profile, but they won't be public until you complete TikTok's audit process.

Requirements

  • A TikTok account
  • Videos hosted at a public URL (MP4, MOV, or WebM format)

Connect to SendIt

Ask your AI assistant:

"Connect my TikTok account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Content Types

  • Video Posts - Short-form videos (3-600 seconds)

Video Requirements

Requirement Value
Formats MP4, MOV, WebM
Duration 3-600 seconds
Max size 4GB
Token Refresh

TikTok access tokens expire after 24 hours. SendIt automatically refreshes tokens using the 1-year refresh token, so you shouldn't need to reconnect frequently.

Connect YouTube

Link your YouTube channel to upload videos and Shorts directly from your AI assistant.

Shorts & Long-Form Videos

YouTube supports both short-form Shorts (up to 60 seconds, vertical video) and long-form videos (up to 12 hours). In the dashboard composer (create and schedule flows), YouTube mode now defaults to Short, and you can switch to Standard per post.

Requirements

  • A YouTube channel
  • Video files accessible via URL (HTTPS) or local upload

Connect to SendIt

Ask your AI assistant:

"Connect my YouTube account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Content Types

  • Shorts - Vertical videos up to 60 seconds (9:16 aspect ratio)
  • Regular Videos - Long-form videos up to 12 hours

Video Requirements

Requirement Value
Formats MP4, MOV, AVI, WMV, FLV, WebM, 3GPP
Shorts duration Up to 60 seconds
Regular video duration Up to 12 hours
Max file size 256GB (or 12 hours, whichever is less)
Resolution Up to 4K (3840x2160)

Publish Options

Option Description
Title Video title (up to 100 characters)
Description Video description (up to 5,000 characters)
Tags Comma-separated keywords for discoverability
Privacy public, unlisted, or private
Category YouTube category (e.g., Entertainment, Education)
YouTube mode short (default in dashboard composer) or standard
Token Refresh

YouTube access tokens expire after 1 hour. SendIt automatically refreshes tokens using the refresh token, so you shouldn't need to reconnect.

Connect Threads

Link your Threads account to publish text posts, images, videos, and carousels.

Unique Feature: Text-Only Posts

Unlike Instagram, Threads supports text-only posts—no media required! This makes it perfect for quick thoughts, announcements, and text-based content.

Requirements

  • A Threads account
  • For media posts: publicly accessible URLs (HTTPS)

Connect to SendIt

Ask your AI assistant:

"Connect my Threads account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Content Types

  • Text Posts - Up to 500 characters (no media required)
  • Image Posts - Single images with optional caption
  • Video Posts - Videos up to 5 minutes with optional caption
  • Carousel Posts - 2-20 items (can mix images and videos!)

Delete Posts

Post deletion is supported on X, Facebook, LinkedIn, LinkedIn Page, Threads, YouTube, Pinterest, Bluesky, Mastodon, and Telegram. You can delete any post you've published:

"Delete my post with ID 12345678901234567"

The post ID is returned when you publish content.

Edit Posts

Some platforms allow editing a published post's text or metadata. Supported platforms: YouTube (title/description/tags), LinkedIn, Facebook, Mastodon, Telegram, and Bluesky. Not supported on X, Threads, Instagram, Pinterest, or TikTok.

"Edit my LinkedIn post 12345 to say 'Updated announcement'"

Content Specifications

Type Requirements
Text 500 characters max
Images JPEG, PNG (up to 8MB)
Videos MP4, MOV (up to 5 minutes, 100MB)
Carousels 2-20 items, can mix images and videos
Token Expiration

Threads access tokens are valid for 60 days. You'll need to reconnect your account when prompted.

Connect X (Twitter)

Link your X (Twitter) account to publish tweets with text, images, and videos.

Important: Free Tier Rate Limits

X's free API tier has strict rate limits of approximately 17 tweets per 24 hours. Consider upgrading to X Basic ($100/mo) for higher limits if needed.

Requirements

  • An X (Twitter) account
  • For image tweets: publicly accessible URLs (HTTPS)
  • For video tweets: MP4 or MOV format (up to 512MB)

Connect to SendIt

Ask your AI assistant:

"Connect my X account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Content Types

  • Text Tweets - Up to 280 characters
  • Image Tweets - Up to 4 images per tweet (JPEG, PNG, GIF, WebP)
  • Video Tweets - MP4/MOV videos up to 2 minutes 20 seconds (512MB max)

Content Specifications

Type Requirements
Text 280 characters max
Images JPEG, PNG, GIF, WebP (up to 5MB each, max 4 images)
Video MP4, MOV (up to 512MB, max 2 min 20 sec)
Token Refresh

X access tokens expire every 2 hours. SendIt automatically refreshes tokens, so you shouldn't need to reconnect frequently.

Connect Pinterest

Link your Pinterest account to create pins and manage your boards from your AI assistant.

Visual Discovery Platform

Pinterest is ideal for visual content, product showcases, and driving traffic to your website. Each pin can include a destination link, making it great for e-commerce and content marketing.

Requirements

  • A Pinterest Business or Personal account
  • At least one board to pin to
  • Images accessible via URL (HTTPS) or local upload

Connect to SendIt

Ask your AI assistant:

"Connect my Pinterest account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Content Types

  • Standard Pins - Single images with title, description, and link
  • Video Pins - Videos up to 15 minutes
  • Idea Pins - Multi-page story pins (images or videos)

Content Specifications

Type Requirements
Image formats PNG, JPEG, GIF, WebP
Image max size 32MB
Recommended aspect ratio 2:3 (1000x1500px optimal)
Title length 100 characters max
Description length 500 characters max
Video formats MP4, MOV
Video duration 4 seconds to 15 minutes

Board Selection

When publishing to Pinterest, you can specify a board or let SendIt use your default board automatically.

Via AI Assistant

Specify the board name when publishing:

"Post this image to my 'Recipe Ideas' board on Pinterest"

Via Dashboard

The SendIt dashboard provides a board selector dropdown that shows all your Pinterest boards. Select the board before publishing to ensure your pin goes to the right place.

Automatic Fallback

If no board is specified, SendIt will automatically use your first available board. You can always specify a board explicitly for more control.

Token Refresh

Pinterest access tokens are long-lived. SendIt will notify you if reconnection is needed.

Connect Product Hunt

Link your Product Hunt account to create maker goals and track your product analytics.

Important: Write Access Requires Whitelisting

Read operations (profile, analytics) work immediately. Write operations (creating goals, upvoting) require app whitelisting by Product Hunt. Contact hello@producthunt.com to request write access.

Requirements

  • A Product Hunt account
  • Maker/Hunter status for analytics features

Connect to SendIt

Ask your AI assistant:

"Connect my Product Hunt account"

SendIt will provide an OAuth link. Click it to authorize access, then return to your AI assistant.

Supported Features

  • Maker Goals - Create and track personal goals (requires whitelisting)
  • Product Analytics - View votes, comments, and reviews for your products
  • Profile - Access your Product Hunt profile information
  • Upvoting - Vote on products (requires whitelisting)

Content Specifications

Type Requirements
Goal Title 280 characters max
Content Type Text-only (goals are text-based)
Long-Lived Tokens

Product Hunt tokens do not expire. Once connected, you won't need to reconnect unless you revoke access.

Content Library

Save, organize, repurpose, and publish your content across all supported platforms with the Content Library. Store drafts, create templates, and set up evergreen content for automatic republishing.

Repurpose Using Existing AI Tools

Generate platform-optimized variants with generate_content, publish in one step with publish_ai, and save reusable drafts/templates with save_to_library (alias: create_library_item).

Content Types

  • Drafts - Work-in-progress content you can edit and publish later
  • Templates - Reusable content structures with placeholders
  • Evergreen - High-performing content that can be automatically republished

Supported Platforms

Content Library supports all supported platforms:

  • LinkedIn - 3,000 character limit
  • Instagram - 2,200 character limit
  • TikTok - 2,200 character limit
  • Threads - 500 character limit
  • X (Twitter) - 280 character limit
  • Facebook - 63,206 character limit
  • YouTube - 5,000 character limit
  • Pinterest - 500 character limit
  • Product Hunt - 280 character limit

Using the Library

Ask your AI assistant:

"Save this post to my content library as a draft"
"Show me my content library"
"Create a template for weekly tips"
"Publish from my library item about product updates"
"Generate variants for LinkedIn, Instagram, and X, then save them as templates"

Generating Variants

Use generate_content to create platform-specific variants. You can then publish with publish_content or save reusable content with save_to_library.

Content Actions

Action Description
Save Save a draft/template/evergreen item to your library (save_to_library)
List Browse/search items in your library (list_library)
Edit Update an existing library item (update_library_item)
Delete Delete a library item (delete_library_item)
Publish Publish directly from the library to connected accounts (publish_from_library)

Evergreen Content

Evergreen content is timeless content that can be republished periodically to maintain engagement. When you mark content as evergreen, you can set up automatic republishing schedules.

Organization Features

Feature Description
Categories Organize content with custom categories and tags
Platform Targeting Specify which platforms each item is designed for
Search & Filter Find content by type, category, platform, status, or text search

AI Personalization

All AI features automatically personalize content based on your historical performance data. The system builds a compact context block from:

  • Top performing content — Excerpts from your highest-engagement posts
  • Best hashtags — Your top 5 performing hashtags
  • Writing style — Average text length, emoji frequency, CTA patterns
  • Optimal posting times — Your best times per platform
  • Brand voice — Your default brand voice profile tone and personality

Personalization context is cached for 24 hours and refreshed automatically. You can disable it per-request by setting usePersonalization: false.

Environment Variables

VariableDescriptionDefault
OPENROUTER_MODEL_CONTENTModel for content generation tasksanthropic/claude-3-haiku-20240307
OPENROUTER_MODEL_VISIONModel for multimodal/vision tasksanthropic/claude-3-haiku-20240307
OPENROUTER_MODEL_ANALYSISModel for analytics/insight tasksanthropic/claude-3-haiku-20240307

Multi-Variant Generation

Generate multiple content variants and let AI pick the best one. Available on content generation, compose, and campaign planning endpoints.

New Parameters

ParameterTypeDescription
variantCountnumber (1-5)Number of variants to generate. Default: 1
returnAlternativesbooleanInclude non-winning variants in response
includeRationalebooleanInclude AI explanation for why the best variant won
usePersonalizationbooleanInject personalization context into prompts. Default: true

Response Fields

FieldTypeDescription
qualityScorenumber (0-100)Content quality score of the best variant
rationalestringAI explanation for variant selection
alternativesarrayNon-winning variants with their scores

AI Social (Mentions & Replies)

AI-powered tools for managing social mentions and drafting replies.

Mention Summarization

Cluster and summarize your social mentions by theme and sentiment. Available via:

  • POST /api/dashboard/ai/mention-summary — Dashboard endpoint
  • summarize_mentions — MCP tool

Reply Drafting

Generate AI-powered reply drafts with brand voice and safety flags. Available via:

  • POST /api/dashboard/ai/reply-suggestions — Dashboard endpoint
  • draft_reply — MCP tool

AI Feedback

Rate AI-generated content quality to improve future suggestions:

  • POST /api/dashboard/ai/feedback — Submit rating (1-5) and optional notes for any AI log entry

Bulk Import

Import hundreds of posts at once from CSV or XLSX files. The V2 bulk import system supports multi-platform rows, intelligent validation, AI-assisted content rewriting, and partial import with retry capability.

Multi-Platform Per Row

Post the same content to multiple platforms with a single row. Use pipe (|) delimiters to target multiple platforms: linkedin|x|threads. The system validates against each platform's requirements and warns about conflicts.

V2 File Format

The V2 format uses a strict schema with pipe-delimited values for multi-platform support:

Column Required Description
platforms Yes Pipe-delimited list (e.g., linkedin|x|threads)
text Yes Post content (validated against each platform's limits)
scheduled_at Yes ISO 8601 datetime (e.g., 2024-03-15T10:00:00Z)
timezone No IANA timezone (e.g., America/New_York). Falls back to team/user default.
media_urls No Pipe-delimited media URLs for images/videos
first_comment No Instagram first comment (hashtags, etc.)
hashtags No Additional hashtags to append
pinterest_board_id If Pinterest Required when targeting Pinterest

Example CSV

platforms,text,scheduled_at,timezone,media_urls
linkedin|x|threads,"Excited to share our product update!",2024-03-15T10:00:00Z,America/New_York,
instagram,"Behind the scenes",2024-03-16T14:00:00Z,UTC,https://example.com/img1.jpg|https://example.com/img2.jpg
tiktok,"Watch how we build!",2024-03-17T16:00:00Z,,https://example.com/video.mp4

4-Step Import Wizard

  1. Upload - Upload CSV or XLSX file (max 500 rows, 10MB)
  2. Validate - Review validation results with filtering (All/Errors/Warnings/Ready)
  3. AI Rewrite - Optional AI-assisted content optimization for rows with issues
  4. Import - Execute import with progress tracking and retry CSV for failures

Multi-Platform Conflict Detection

When targeting multiple platforms in one row, the system detects conflicts:

Conflict Example Resolution
Character limit exceeded X (280) + LinkedIn (3000) Split into separate rows or shorten text
Video-only + text platforms TikTok + LinkedIn Split TikTok to separate row with video
Missing media Instagram without media Add media URL or remove Instagram
Pinterest without board Pinterest target, no board_id Add pinterest_board_id column

AI Rewrite Feature

Select rows with validation issues and use AI to generate optimized rewrites:

  • Automatic adaptation - AI adjusts content to fit platform limits while preserving meaning
  • Side-by-side comparison - Review original vs. suggested text
  • Approve/Reject/Edit - Full control over each suggestion
  • Bulk approve - Apply all suggestions at once

Partial Import & Retry

If some rows fail during import:

  • Successfully scheduled posts are committed
  • Failed rows are collected with error details
  • Download a retry CSV containing only failed rows
  • Fix issues and re-import the retry file

Supported Platforms

Bulk import supports all supported platforms:

  • linkedin - Text or text+image (3,000 chars)
  • instagram - Requires media (2,200 chars)
  • tiktok - Requires video (2,200 chars)
  • threads - Text, images, videos, carousels (500 chars)
  • x - Text or text+images (280 chars)
  • facebook - Text, images, videos (63,206 chars)
  • youtube - Requires video (5,000 chars)
  • pinterest - Requires media + board (500 chars)
  • producthunt - Text only (280 chars)

Accessing Bulk Import

In the Dashboard, navigate to Dashboard > Bulk Import or go to /dashboard#/bulk-import.

Template Downloads

Download pre-formatted templates from the Bulk Import page:

  • CSV Template - Standard CSV with example rows
  • XLSX Template - Excel format with all columns

Migration Assistant

Switch from Buffer, Hootsuite, or Later to SendIt with our 5-step migration wizard. Automatically detect your export format, map columns, and import your scheduled posts.

Seamless Competitor Import

Export your scheduled posts from your current tool and import them directly into SendIt. The wizard auto-detects your source format and maps columns automatically.

Supported Sources

Source Auto-Detected Columns Date Format
Buffer Text, Posting Time, Image URL, Profile ISO 8601
Hootsuite Message, Scheduled Date, Media URL, Social Profile MM/DD/YYYY HH:mm
Later Caption, Scheduled Time, Media URL, Account YYYY-MM-DD HH:mm:ss
SendIt platforms, text, scheduled_at, media_urls ISO 8601

5-Step Migration Wizard

  1. Select Source - Choose Buffer, Hootsuite, Later, or SendIt format
  2. Upload File - Drag-and-drop your exported CSV
  3. Map Columns - Auto-detected mappings with manual adjustment options
  4. Review & Validate - See ready/warning/error status for each row
  5. Import - Execute import with progress tracking

Column Mapping

The wizard automatically detects and maps columns based on common naming conventions:

  • Text/Content - Maps from: Text, Message, Caption, Content, Post, Body
  • Scheduled Time - Maps from: Posting Time, Scheduled Date, Scheduled Time, scheduled_at
  • Media - Maps from: Image URL, Media URL, Attachment, media_urls
  • Platform - Maps from: Profile, Social Profile, Account, platforms

Validation

Each row is validated before import:

  • Ready - Row can be imported with no issues
  • Warning - Minor issues (e.g., past date) but still importable
  • Error - Missing required fields or invalid data

Accessing Migration Assistant

In the Dashboard, navigate to Dashboard > Migration Assistant or go to /dashboard#/migration-assistant.

Social Listening Coming Soon

Monitor keywords, track brand mentions, and get alerts for important conversations across supported platforms.

Coming Soon

Social Listening is not yet available. This feature is currently in development and will be enabled in a future release. Note: X (Twitter) is not supported due to API cost constraints.

Supported Platforms

Social listening works across all supported platforms. Platforms marked with Active Ingestion support automated polling for mentions via connected accounts:

  • X (Twitter) - Real-time discussions (Active Ingestion)
  • YouTube - Video comments and mentions (Active Ingestion)
  • Facebook - Pages and groups (Active Ingestion)
  • Instagram - Visual content and stories (Active Ingestion)
  • LinkedIn - Professional network monitoring
  • TikTok - Short-form video mentions
  • Threads - Text-based conversations
  • Pinterest - Visual discovery
  • Product Hunt - Product launches and discussions

Keyword Types

  • Brand - Monitor mentions of your brand name
  • Hashtag - Track specific hashtags in your industry
  • Competitor - Keep an eye on competitor mentions
  • Topic - Follow general topics relevant to your business

Setting Up Monitoring

Ask your AI assistant:

"Add a keyword to monitor: SendIt"
"Monitor the hashtag #socialmedia"
"Show my listening summary"
"Get mentions for my brand keywords"

Bulk Actions

Efficiently manage large volumes of mentions and alerts:

  • Bulk Mark Read - Select multiple mentions and mark them all as read
  • Bulk Archive - Archive multiple mentions at once to declutter your inbox
  • Bulk Dismiss Alerts - Dismiss multiple alerts simultaneously
  • Select All - Quickly select all visible items for bulk operations

Advanced Filtering

Find exactly what you're looking for:

  • Search - Search by content, author, or matched keyword
  • Sentiment - Filter by positive, neutral, or negative sentiment
  • Platform - View mentions from specific platforms
  • Read Status - Show all, read only, or unread only
  • Sort Options - Sort by newest, highest engagement, or negative first

Alerts & Notifications

Get notified when important events occur:

Alert Type Description
Mention Spike Unusual increase in mentions of your keywords
Sentiment Change Shift in overall sentiment (positive/negative) for a keyword
Trending Your keyword is trending on a platform
New Mention Real-time notification for new mentions

Notification Options

  • Email Alerts - Receive email notifications for important mentions
  • Webhook Integration - Send alerts to Slack, Discord, or custom endpoints
  • In-App Notifications - View alerts in your SendIt dashboard

Sentiment Analysis

SendIt automatically analyzes the sentiment of mentions:

  • Positive - Favorable mentions and praise
  • Neutral - Informational or neutral mentions
  • Negative - Complaints or negative feedback
  • Mixed - Contains both positive and negative elements
Sentiment Filtering

Filter your mentions by sentiment to quickly identify and respond to negative feedback or celebrate positive engagement.

Brand Voice

Define your brand's personality and writing style to ensure consistent AI-generated content across all platforms.

What is Brand Voice?

Brand Voice profiles contain your brand's tone, personality, writing style, and content rules. When set, all AI content generation (compose, repurpose, hashtags) will respect your brand voice guidelines.

Profile Settings

Setting Description
ToneThe emotional tone of your content (e.g. professional, casual, witty, inspirational)
PersonalityYour brand's character traits (e.g. friendly, authoritative, playful)
Writing StyleHow you write (e.g. short sentences, storytelling, data-driven)
Do RulesThings your content should always include (e.g. "Always use active voice")
Don't RulesThings to never include (e.g. "Never use industry jargon")
Approved HashtagsHashtags to prioritize in generated content
Banned WordsWords that should never appear in your content
Key PhrasesSignature phrases or slogans to incorporate
Default Profile

Set one profile as default and it will automatically apply to all AI content generation. You can create multiple profiles for different campaigns or platforms.

Campaigns Coming Soon

Plan and execute multi-post marketing campaigns with AI-powered content generation.

Coming Soon

Campaigns is not yet available. This feature requires media attachment support and is currently in development. It will be enabled in a future release.

How Campaigns Work

  1. Create a campaign — Provide a name, brief/description, target platforms, and date range
  2. AI generates a post plan — AI creates a sequence of posts optimized for each platform, respecting your brand voice and optimal posting times
  3. Review and edit — Review each post in the campaign timeline and make adjustments
  4. Schedule all posts — One click to schedule the entire campaign

Campaign Statuses

  • Draft — Campaign is being planned, posts not yet scheduled
  • Active — Posts are scheduled and being published
  • Completed — All posts have been published
  • Cancelled — Campaign was stopped before completion

Social Inbox

Manage comments and replies on your published posts from a unified inbox.

Supported Platforms

Platform Read Comments Reply
X (Twitter)YesYes
ThreadsYesYes
InstagramYesYes
FacebookYesYes
YouTubeYesYes
LinkedInNo APINo API
PinterestNo APINo API
TikTokNo APINo API

Thread Management

  • Open — Active conversations requiring attention
  • Closed — Resolved conversations
  • Archived — Old conversations stored for reference
Auto-Sync

Comments on your published posts are automatically synced every 10 minutes for the past 7 days of posts.

Approval Workflow

Require approval before scheduled posts are published. Available in team contexts.

How Approvals Work

  1. Team admins enable approvals in Team Settings
  2. When editors or viewers create scheduled posts, they're automatically flagged for approval
  3. Admins and owners see pending approvals in the Approvals queue
  4. Posts can be approved, rejected (with reason), or have comments added
  5. Only approved posts are published by the scheduler

Approval Statuses

  • Pending — Awaiting review
  • Approved — Ready for publishing
  • Rejected — Not approved, with feedback

AI Media Generation

Generate and manage AI media assets with dynamic provider adapters, durable queues, and normalized artifact lineage.

Supported Providers

Provider Type Description
HeyGenAvatar/VideoAvatar-led spokesperson video generation
ElevenLabsVoiceVoice-over generation and speech workflows
HiggsfieldImage/VideoHigh-fidelity generation with async job status APIs
Runway MLImage/VideoImage-to-video and text-to-video generation
Sora (OpenAI)VideoText-to-video generation for social clips
Adobe FireflyImageBrand-safe image generation and derivatives
BannerbearThumbnail/ImageProgrammatic thumbnail generation
CloudinaryImage/Video/ThumbnailTransformations and derivative asset generation
Pika via falVideoFast-follow Pika routing through fal adapter

How It Works

  1. Connect provider credentials in Managed or Bring your own key mode.
  2. Submit generation requests through unified provider adapters.
  3. Jobs execute through durable queues: ai_provider_dispatch, ai_provider_poll, ai_provider_finalize.
  4. Webhook callbacks are processed first when available, with polling fallback for stale/missing callbacks.
  5. Artifacts are normalized into a shared model for pipeline lineage and downstream publishing flows.
Usage + Budget Controls

Managed mode records estimated/actual costs in a usage ledger and enforces workspace-level budget checks before dispatch.

AI Hub

AI Hub is the primary AI destination: campaign brief, draft generation, voice/avatar/thumbnail labs, provider integrations, pipelines, approval queue, and learn loop.

Workflow Sections

  1. Integrations — Provider registry with capability tags, credential mode, health, and success-rate telemetry
  2. Pipelines — Prebuilt templates (launch reel, thought leadership, UGC batch) with retry-step support
  3. Campaign Brief — Objective, audience, offer, CTA, tone, language, and platform targeting
  4. Draft Lab — Variant generation, quality scoring, and hashtag reasoning
  5. Voice & Avatar Lab — Dedicated generation actions for narration and avatar-led video workflows
  6. Visual/Thumbnail Lab — Thumbnail generation with provider selection and lineage capture
  7. Schedule Autopilot — Queue suggestions + A/B scheduling path
  8. Learn Loop — Performance drivers, experiments, and provider-level quality metrics
  9. Action Queue — Approval/edit/skip states with explicit gate before publish
Approval Enforcement

Autopublish flows never publish directly in default mode. Pipeline autopublish steps are blocked until approval is explicitly granted.

AI Studio

Compose, score, and optimize your content with AI-powered tools. AI Studio provides real-time feedback on content quality and suggestions for improvement.

Features

  • AI Compose - Generate content suggestions with optional strategic context (goal, audience, angle)
  • Content Score - Get real-time scores on engagement potential, clarity, and platform fit
  • Best Times - Analyze audience timezone distribution to find optimal posting times
  • Hashtag Generator - Auto-suggest and rank hashtags with score + reasoning
  • A/B Scheduling - Configure exact or queue schedule mode with optional recurrence rules

Content Scoring

The content scorer provides three key metrics:

Metric Description Ideal Range
EngagementLikelihood of comments, shares, and interactions70-100
ClarityMessage coherence and readability for audience80+
Platform FitRelevance and format suitability for the platform75+
Real-Time Scoring

Scores update automatically as you type. Debounced to avoid excessive API calls while maintaining responsiveness.

Audit Log

Track all actions performed on your account with a detailed audit trail. Available in team contexts.

Tracked Actions

  • Post publishing, scheduling, and failures
  • Account connections and disconnections
  • Content library changes (create, update, delete)
  • Social listening keyword management
  • Webhook subscription changes
  • Team member actions and role changes
  • API key management

Filtering

Filter audit log entries by action type, resource type, and date range. Entries include timestamps, actor information, and detailed JSON context.

Connectors OS

Unified connector runtime for partner app discovery, credentialed connection, health monitoring, and operation execution.

MCP Tools

Tool Description
list_connectors List all available connectors (organic, paid_media, automation, workspace).
get_connector_capabilities Get a connector’s supported operations and constraints.
connect_connector Connect a connector (OAuth redirect, API key storage, or webhook registration).
disconnect_connector Disconnect and revoke credentials for a connector.
list_connected_connectors List connected connectors and their connection status.
get_connector_health Get health status and SLO metrics for a connector.
execute_connector_operation Execute a specific connector operation (read/write) with operation-specific input.

CRM OS

Conversation-centric CRM layer for inbound threads, AI-assisted replies, and escalation routing.

MCP Tools

Tool Description
list_conversations List and filter unified inbox conversations.
get_conversation Fetch a conversation thread with all messages.
reply_to_conversation Send an outbound reply (requires reply routing metadata to be configured on the conversation).
update_conversation Update status, priority, assignment, sentiment, or tags.
get_inbox_summary Inbox summary metrics across recent conversations.
escalate_to_support Queue an escalation to support platforms (Zendesk/Intercom/etc.) via durable jobs.

Note: outbound replies are delivered asynchronously via durable_jobs. For non-platform connectors, configure reply routing on the conversation (stored in conversations.metadata.replyRouting).

Analytics/Attribution OS

Cross-channel measurement layer for conversion attribution, funnel diagnostics, and executive reporting.

MCP Tools

Tool Description
get_unified_analytics Get cross-platform analytics (organic + paid) for a date range.
get_attribution_report Generate an attribution report for a date range using a selected model.
get_anomaly_alerts List recent anomaly alerts across key metrics.
get_benchmark_comparison Compare your metrics against industry benchmarks.
create_scheduled_report Create a recurring analytics report with automated delivery.

AI Agent OS

Agent runtime with 12 specialized agents for planning, execution, quality control, and optimization, governed by centralized policy controls.

MCP Tools

Tool Description
list_agents List all 12 available AI agents and their capabilities.
invoke_agent Run a specific agent with structured input and policy checks.
get_agent_run Fetch details and output of a specific agent run.
list_agent_runs List recent agent runs with status and summary.
get_agent_policies Get active policies/guardrails for an agent.
update_agent_policy Create or update an agent policy/guardrail.

Workflows OS

Composable automation engine to orchestrate multi-step execution across Connectors OS, Paid Media OS, CRM OS, and AI Agent OS.

MCP Tools

Tool Description
list_workflows List automation workflows with status and trigger info.
create_workflow Create a workflow with trigger + ordered steps.
update_workflow Update workflow configuration (steps, name) or toggle active state.
delete_workflow Delete a workflow permanently.
trigger_workflow Enqueue a workflow run for async execution (durable jobs).
list_workflow_runs List recent runs for a workflow.
get_workflow_run Fetch step-by-step execution logs and outputs for a run.

Workflow runs are executed asynchronously from durable_jobs by the cron worker /api/cron/process-durable-jobs.

Currently supported workflow step types:

  • connector_action (alias: connector_operation) — execute a connector operation using a connector_credentials record.
  • agent_invoke — run one of the 12 AI agents.
  • delay — wait using durable job deferral.
  • transform — merge values into workflow variables (vars).
  • notify — create in-app notification (and team destinations if configured).
  • http_request — make an outbound HTTP request (restricted hostnames for safety).

Launch Gate Checklist

Use this concise gate before GA launch or major release rollout.

  • Connector coverage: 80 connectors discovered, authenticated, and passing health checks.
  • Agent readiness: all 12 agents available with policy controls validated in production-like conditions.
  • Durable jobs: cron worker /api/cron/process-durable-jobs enabled to drain durable_jobs queues for async operations (ads sync, workflows, connector tasks).
  • Required conformance checks: connector contract conformance, policy enforcement conformance, attribution schema conformance, and workflow execution conformance.

Platform Limits

Content specifications and rate limits for each platform.

Authoritative Limits API

Limits evolve. For the canonical limits that match the current deployment use GET /api/v1/requirements?platform=<id> (public) or the MCP tool get_platform_requirements.

LinkedIn

Limit Value
Text length 3,000 characters
Image formats PNG, JPEG, GIF
Video max size 5GB
Video max length 10 minutes
Daily rate limit 150 posts/day

Facebook

Limit Value
Text length 63,206 characters
Image formats JPEG, PNG, GIF, WebP
Image max size 4MB
Video formats MP4, MOV
Video max size 10GB
Video max length 240 minutes
Daily rate limit 200 posts/day (Page)
Token expiry 60 days (long-lived)

Instagram

Limit Value
Caption length 2,200 characters
Hashtags 30 maximum (3-5 recommended, use First Comment for cleaner captions)
Image formats JPEG, PNG
Image max size 8MB
Image dimensions 320x320 to 1440x1440px
Image aspect ratio 4:5 to 1.91:1
Video max size 100MB
Reels duration 5-90 seconds (for Reels tab)
Carousel images 2-10 images
Daily rate limit 25 API posts/day
First Comment Supported (dashboard feature for hashtag strategy)

YouTube

Limit Value
Title length 100 characters
Description length 5,000 characters
Video formats MP4, MOV, AVI, WMV, FLV, WebM, 3GPP
Shorts duration Up to 60 seconds
Regular video duration Up to 12 hours
Max file size 256GB
Max resolution 4K (3840x2160)
Daily upload limit ~50 videos/day
Token expiry 1 hour (auto-refresh enabled)

Pinterest

Limit Value
Title length 100 characters
Description length 500 characters
Image formats PNG, JPEG, GIF, WebP
Image max size 32MB
Recommended aspect ratio 2:3 (1000x1500px optimal)
Video formats MP4, MOV
Video duration 4 seconds to 15 minutes
Daily rate limit 1,000 pins/day
Board selection Required (dashboard has visual picker, AI assistant uses default)
Token expiry Long-lived

TikTok

Limit Value
Caption length 2,200 characters
Hashtags 5 maximum (3-5 recommended)
Video formats MP4, MOV, WebM
Video duration 3-600 seconds
Video max size 4GB
Daily rate limit ~15 posts/day
Token expiry 24 hours (auto-refresh enabled)
Sandbox mode Posts are private until audit approval

Threads

Limit Value
Text length 500 characters
Text-only posts Supported (unique to Threads)
Image formats JPEG, PNG
Image max size 8MB
Video formats MP4, MOV
Video duration Up to 5 minutes
Video max size 100MB
Carousel items 2-20 items (images and/or videos)
Daily rate limit 250 posts/day
Token expiry 60 days

X (Twitter)

Limit Value
Text length 280 characters
Text-only posts Supported
Image formats JPEG, PNG, GIF, WebP
Image max size 5MB
Images per tweet 4 maximum
Daily rate limit ~17 tweets/day (free tier)
Token expiry 2 hours (auto-refresh enabled)

Product Hunt

Limit Value
Goal title length 280 characters
Content type Text-only
Write access Requires app whitelisting
Token expiry No expiration

Edit & Delete Support by Platform

Platform Edit Delete Edit Notes
X No Yes
Facebook Yes Yes Text/caption
LinkedIn Yes Yes Text/caption
LinkedIn Page Yes Yes Text/caption
Threads No Yes
Instagram No No
YouTube Yes Yes Title, description, tags
Pinterest No Yes
TikTok No No
Bluesky Yes Yes Text/caption
Mastodon Yes Yes Text/caption
Telegram Yes Yes Text/caption

All Tools Reference

Complete list of available MCP tools.

Note: conservative GA deployments may hide beta tools. Query /api/v1/capabilities for active availability. Beta tools are disabled when SENDIT_GA_MODE=1; set SENDIT_GA_MODE=0 to enable them in dev/self-hosted environments.

Publishing

Tool Description
publish_content Publish immediately to one or multiple platforms. Pinterest: use boardId or boardName to specify target board.
schedule_content Schedule posts for future publishing
trigger_scheduled_post Manually publish a scheduled post early
bulk_schedule Schedule multiple posts from CSV content
preview_content Preview how posts will appear on each platform with validation

AI Content Generation

Tool Description
generate_content Generate AI-powered platform-specific content from media or prompts. Analyzes videos/images and creates optimized captions.
publish_ai Combined AI content generation and publishing in one step. Generates optimized content and publishes to all specified platforms.

AI generation uses video frame analysis for videos and respects each platform's character limits and hashtag best practices.

Account Management

Tool Description
connect_platform Generic connection tool. Pass any supported platform ID to get OAuth, token, webhook, or custom setup action.
connect_* Backward-compatible per-platform aliases generated from the platform catalog (for example connect_linkedin, connect_discord, connect_bluesky).
get_platform_settings_schema Returns the platform-specific schema contract for content.platformSettings.<platformId>.
sendit://meta/platform-settings MCP resource with schema contracts for all platform settings in one machine-readable snapshot.
list_teams List all teams you belong to (returns team IDs, names, slugs, and your role)
list_connected_accounts View all connected social accounts. Pass team_id to see a team's accounts.

Team Context

SendIt supports team-based workflows. Use list_teams to discover your teams, then pass the team_id parameter to tools like list_connected_accounts, publish_content, schedule_content, and get_scheduled_posts to operate in team context.

If your API key is team-scoped (created for a specific team), all tools automatically operate in that team's context — no team_id parameter needed.

Scheduling

Tool Description
get_scheduled_posts List all pending scheduled posts
delete_scheduled_post Cancel a scheduled post

Content Management

Tool Description
delete_post Delete a published post. Supported on X, Facebook, LinkedIn, LinkedIn Page, Threads, YouTube, Pinterest, Bluesky, Mastodon, and Telegram.
edit_post Edit a published post's text/caption. Supported on YouTube (title/description/tags), LinkedIn, Facebook, Mastodon, Telegram, and Bluesky. Not supported on X, Threads, Instagram, Pinterest, or TikTok. Parameters: postId (required), text, title, description, tags.

Analytics

Tool Description
get_analytics Get engagement metrics (fetches ALL posts for TikTok/Instagram/Threads/X; SendIt-only for LinkedIn)

Product Hunt

Tool Description
create_goal Create a new maker goal on Product Hunt (requires whitelisting)
complete_goal Mark a goal as complete or incomplete (requires whitelisting)
upvote_product Upvote a product on Product Hunt (requires whitelisting)
get_producthunt_analytics Get product metrics (votes, comments, reviews)

Media & Uploads

Tool Description
upload_media Upload local files to cloud storage (Claude Desktop only)
create_upload_session Generate a one-click upload link for users (Claude.ai, ChatGPT, web assistants)
get_upload_session Check upload status and retrieve the media URL after user uploads

Utilities

Tool Description
get_platform_requirements View platform content specifications
validate_content Validate content against platform requirements before publishing

Content Library

Tool Description
save_to_library Save content to library (draft, template, or evergreen)
create_library_item Alias for save_to_library (backward-compatible)
list_library List all items in your content library
get_library_item Get a specific library item by ID
update_library_item Update an existing library item
delete_library_item Delete an item from your content library
publish_from_library Publish content directly from a library item

Planned: library item duplication, starring, archiving, and first-class platform variants.

Social Listening

Tool Description
add_keyword Add a keyword to monitor (brand, hashtag, competitor, or topic)
list_keywords List all monitored keywords
update_keyword Update keyword settings (platforms, notifications, filters)
delete_keyword Stop monitoring a keyword
get_mentions Get mentions matching your monitored keywords
mark_mentions_read Mark mentions as read
get_alerts Get alerts for spikes, sentiment changes, and trending topics
dismiss_alerts Dismiss alerts
get_listening_summary Get a summary of all listening activity

Brand Voice

Tool Description
list_brand_voices List all brand voice profiles
create_brand_voice Create a new brand voice profile with tone, personality, and rules
set_default_brand_voice Set a brand voice profile as the default for AI generation

Campaigns

Tool Description
plan_campaign Generate an AI-powered campaign plan with multi-post sequence
list_campaigns List all campaigns
schedule_campaign Schedule all posts in a campaign

Approval Workflow

Tool Description
list_pending_approvals List posts waiting for approval
approve_post Approve a pending post for publishing
reject_post Reject a post with feedback

Social Inbox

Tool Description
list_inbox List inbox threads with comment conversations
reply_to_comment Reply to a comment thread on the platform
refresh_mentions Trigger a fresh poll of mentions across all platforms

AI Media Generation

Tool Description
generate_ai_media Generate AI images or videos (Sora, Runway, Pika, Adobe Express)
check_ai_media_status Check the status of an AI media generation job

Analytics Intelligence

Tool Description
get_best_times Get optimal posting times based on historical engagement data
score_content Score content quality 0-100 before publishing

AI Social & Intelligence

Tool Description
draft_reply Generate an AI reply draft for a mention with brand voice and safety flags
summarize_mentions Cluster and summarize mentions by theme and sentiment
generate_post_bundle Generate multiple content variants with quality scoring and rationale
critique_post Score and critique content quality with AI-powered suggestions

Enterprise

Tool Description
get_audit_log Retrieve audit log entries for your account
list_dead_letter List posts in the dead letter queue (exhausted retries)
requeue_dead_letter Retry a failed post from the dead letter queue

Connectors OS

Tool Description
list_connectors List all available connectors by category and status
get_connector_capabilities Get operations and constraints for a connector
connect_connector Connect a connector (OAuth redirect, token, or webhook)
disconnect_connector Disconnect and revoke credentials for a connector
list_connected_connectors List connected connectors and connection status
get_connector_health Get connector health status and SLO metrics
execute_connector_operation Execute a connector operation with operation-specific input

Paid Media OS

Tool Description
list_ad_accounts List connected ad accounts across platforms
create_ad_campaign Create a new ad campaign (async sync via durable jobs)
list_ad_campaigns List campaigns for an ad account
update_ad_campaign Update campaign settings and status
create_ad_creative Create an ad creative for a campaign or ad set
get_ad_performance Fetch performance metrics for account/campaign/ad_set/creative
get_unified_ad_report Get a cross-platform aggregated ad report

CRM OS

Tool Description
list_conversations List conversations and filter by status/priority/sentiment
get_conversation Get a conversation with full message thread
reply_to_conversation Send an outbound reply (async delivery via durable jobs)
update_conversation Update status, priority, assignment, sentiment, or tags
get_inbox_summary Get inbox summary metrics
escalate_to_support Escalate a conversation to a support connector

Analytics/Attribution OS

Tool Description
get_unified_analytics Get unified organic + paid analytics for a date range
get_attribution_report Generate an attribution report using a selected model
get_anomaly_alerts List recent anomaly alerts across metrics
get_benchmark_comparison Compare performance against benchmarks
create_scheduled_report Create a recurring analytics report with delivery

AI Agent OS

Tool Description
list_agents List all available AI agents
invoke_agent Invoke a specific agent with structured input
get_agent_run Get a specific agent run output
list_agent_runs List recent agent runs
get_agent_policies Get policies/guardrails for an agent
update_agent_policy Create or update an agent policy

Workflows OS

Tool Description
list_workflows List workflows with trigger and active status
create_workflow Create a workflow with trigger + ordered steps
update_workflow Update workflow configuration or toggle active state
delete_workflow Delete a workflow
trigger_workflow Enqueue a workflow run (async via durable jobs)
list_workflow_runs List recent runs for a workflow
get_workflow_run Get run details and step logs

Future Features

SendIt is actively evolving. Here are potential features we're considering for future releases.

Advanced Discovery

Enhanced discovery features to complement social listening:

Competitor Deep Analysis

Detailed competitor content analysis with engagement benchmarking and content strategy insights.

Trending Content Research

Discover trending content and popular posts in your niche to inspire your own content creation.

Cross-Platform Discovery

Find accounts and content across multiple platforms that match your interests.

Influencer Identification

Discover and track influencers in your industry for potential partnerships.

Planned Features

  • Visual Content Calendar - Drag-and-drop scheduling interface
  • Bluesky Integration - Publishing to the decentralized social network
  • Google Business Profile - Local business posting and reviews
  • Snapchat Integration - Publishing to Snapchat Stories
  • White-Label Dashboard - Custom-branded dashboard for agencies
Feature Requests

Have a feature you'd like to see? Let us know! We prioritize development based on user feedback.