SendIt
AI-native social media publishing to LinkedIn, Instagram, Threads, TikTok, and X.
Publish content to social media platforms. MEDIA RULES: • mediaUrl must be a public HTTPS URL — NOT a local file path. • If the user shares an image/video in chat, call create_upload_session FIRST to get a browser upload link, then use the returned URL here. • Text-only works on: LinkedIn, Threads, X, Facebook. • Image required: Instagram, Pinterest. • Video required: TikTok, YouTube. Call validate_content to check before publishing.
Schedule content for future publishing. Same media rules as publish_content apply. • mediaUrl must be a public HTTPS URL — call create_upload_session if user shares a file in chat. • Content is validated at schedule time, not publish time.
Get engagement analytics for recent posts.
List all connected social media accounts. Pass team_id to see a team's accounts instead of your personal ones.
List all pending scheduled posts.
Cancel a scheduled post before it's published.
Delete a published post from a platform. Supports: X, Facebook, LinkedIn, Threads, YouTube, Pinterest, Bluesky, Mastodon, Telegram. Provide the post ID (database ID returned when published through SendIt), the platform post ID, or the post URL.
Validate content against platform requirements BEFORE publishing. USE THIS WHEN: • Unsure if content will work on target platforms • Publishing to multiple platforms with different requirements • Want to catch errors before attempting publish Returns specific errors (e.g., 'TikTok requires video', 'Instagram needs media') and warnings (e.g., 'text close to character limit').
Get detailed content requirements for a platform. Returns: Character limits, media specifications, rate limits, and special notes. Call this when you need specifics like exact character counts, file size limits, or supported formats. The publish_content description has a quick reference, but this tool provides complete details.
Create a browser upload link for media files. ALWAYS use this when the user shares an image or video in chat — their file is local and cannot be passed directly to publish_content. WORKFLOW: 1. Call this tool to get an uploadUrl 2. Give the user the link to open in their browser and upload their file 3. After upload, call get_upload_session to get the public media URL(s) 4. Use the returned URL with publish_content or schedule_content Supports up to 20 files per session. Expires in 15 minutes.
Check the status of an upload session and get the media URL(s) once uploaded. Call this after the user clicks the upload link to see if they've completed the upload. Returns: • status: 'pending' - User hasn't uploaded yet • status: 'uploaded' - Upload complete, includes mediaUrl, mediaUrls, fileCount, mediaItems • status: 'expired' - Session expired (15 min limit)
Generate a visual preview of how content will appear on each platform. USE THIS WHEN: • Before publishing to see how posts will look • To validate content against platform requirements • To check character counts, hashtag limits, and media requirements Returns an HTML preview mockup for each platform with validation results: • Character count vs limit • Hashtag count (Instagram has 30 max) • Media requirement check • Platform-specific warnings and errors
Connect a platform dynamically by platform ID. Returns OAuth URL, webhook setup details, or credential form contract depending on the platform auth method.
Manually trigger a scheduled post to publish immediately.
| Timestamp | Status | Latency | Conformance |
|---|---|---|---|
| Apr 3, 2026 | success | 44.2ms | Pass |
| Apr 3, 2026 | success | 89.6ms | Pass |
| Apr 3, 2026 | success | 104.4ms | Pass |
| Apr 3, 2026 | success | 63.2ms | Pass |
| Apr 3, 2026 | success | 60.9ms | Pass |
| Apr 3, 2026 | success | 116ms | Pass |
| Apr 3, 2026 | success | 131.8ms | Pass |
| Apr 3, 2026 | success | 117ms | Pass |
| Apr 3, 2026 | success | 53.5ms | Pass |
| Apr 3, 2026 | success | 119.4ms | Pass |