# Upload-Post

```json
{
  "name": "Upload-Post",
  "slug": "upload_post",
  "url": "https://composio.dev/toolkits/upload_post",
  "markdown_url": "https://composio.dev/toolkits/upload_post.md",
  "logo_url": "https://logos.composio.dev/api/upload_post",
  "categories": [
    "social media"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-08-10T12:34:44.363Z"
}
```

![Upload-Post logo](https://logos.composio.dev/api/upload_post)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Upload-Post MCP or direct API to publish posts, schedule content, manage social campaigns, and review queued updates through natural language.

## Summary

Upload-Post is a social publishing API for posting, scheduling, and managing content across social networks.
Use it to run multi-channel content workflows through one clean API instead of separate platform integrations.

## Categories

- social media

## Toolkit Details

- Tools: 12

## Images

- Logo: https://logos.composio.dev/api/upload_post

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Upload-Post.
  - Setup:
    - Configure Api Key credentials for Upload-Post.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Schedule LinkedIn and Twitter product updates
- Publish Instagram posts for campaign launch
- List scheduled social posts for review

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `UPLOAD_POST_CANCEL_SCHEDULED_POST` | Cancel Scheduled Post | Permanently cancel a scheduled post before publication and delete its staged assets. |
| `UPLOAD_POST_CREATE_PROFILE` | Create Profile | Create an Upload-Post profile for a unique caller-owned username; this does not connect any social platform. |
| `UPLOAD_POST_ENQUEUE_POST` | Enqueue Post | Insert one video, photo carousel, or text post into a profile's external publication queue. |
| `UPLOAD_POST_GET_UPLOAD_STATUS` | Get Upload Status | Get the processing status and per-platform results for an asynchronous or scheduled upload. |
| `UPLOAD_POST_LIST_CACHED_POST_ANALYTICS` | List Cached Post Analytics | Return one page of cached per-post analytics for a profile without consuming the live platform-analytics request limit. |
| `UPLOAD_POST_LIST_PLATFORM_DESTINATIONS` | List Platform Destinations | List selectable Facebook Pages, LinkedIn organizations, Pinterest boards, or Google Business locations for an already connected profile. |
| `UPLOAD_POST_LIST_PROFILES` | List Profiles | List Upload-Post profiles and their connected social accounts. Use this before publishing to verify the profile exists and inspect platform connection or reauthentication prerequisites. |
| `UPLOAD_POST_LIST_SCHEDULED_POSTS` | List Scheduled Posts | Return one page of pending scheduled posts and the job IDs needed to edit or cancel them. |
| `UPLOAD_POST_LIST_UPLOAD_HISTORY` | List Upload History | Return one page of past and in-progress Upload-Post uploads, including platform post IDs, URLs, request IDs, and failures. |
| `UPLOAD_POST_PUBLISH_POST` | Publish Post | Immediately publish one video, photo carousel, or text post to external connected platforms. |
| `UPLOAD_POST_SCHEDULE_POST` | Schedule Post | Schedule one video, photo carousel, or text post for future external publication to connected platforms. |
| `UPLOAD_POST_UPDATE_SCHEDULED_POST` | Update Scheduled Post | Change the future publication time, title, or caption of an existing scheduled post. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Upload-Post Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Upload-Post actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Schedule a LinkedIn post for tomorrow at 9 AM announcing our new product launch'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Schedule a LinkedIn post for tomorrow at 9 AM announcing our new product launch'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Upload-Post
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Upload-Post tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('List all scheduled social posts for this week and flag anything missing a caption')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'List all scheduled social posts for this week and flag anything missing a caption'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Upload-Post Integration

- Supports both Upload-Post MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable post creation, scheduling, and campaign updates
- Rich coverage for publishing, managing, and querying Upload-Post social content

### 2. Managed Auth

- Secure API key handling without hard-coding Upload-Post credentials in your agent code
- Set up access with auth_configs.create() and connect users with connected_accounts.link()
- Per user and per environment credentials, so staging and production stay cleanly separated

### 3. Agent Optimized Design

- Tools are shaped for AI agents, so prompts like “schedule this LinkedIn update” map cleanly to Upload-Post actions
- Comprehensive execution logs so you know what was published, scheduled, or changed, and on whose behalf
- MCP sessions can be created with mcp.create() when you want agent-ready Upload-Post access over MCP

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can publish through Upload-Post
- Scoped, least privilege access to Upload-Post posting and scheduling workflows
- Full audit trail of social publishing actions to support review, approvals, and compliance

## Use Upload-Post with any AI Agent Framework

Choose a framework you want to connect Upload-Post with:

- [ChatGPT Work](https://composio.dev/toolkits/upload_post/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/upload_post/framework/claude-cowork)

## Related Toolkits

- [Twitter](https://composio.dev/toolkits/twitter) - Twitter is a social media platform for sharing real-time updates, conversations, and news. Stay connected, informed, and engaged with communities worldwide.
- [Instagram](https://composio.dev/toolkits/instagram) - Instagram is a social platform for sharing photos, videos, and stories with your audience. It helps brands and creators engage, grow, and analyze their online presence.
- [Ayrshare](https://composio.dev/toolkits/ayrshare) - Ayrshare is a Social Media API for managing, automating, and analyzing posts across multiple platforms. It helps you streamline social media workflows and centralize analytics.
- [DEV Community](https://composio.dev/toolkits/devto) - DEV Community (dev.to) is a social publishing platform for software developers. Use it to share technical articles, grow a developer audience, and join community discussions.
- [Dotsimple](https://composio.dev/toolkits/dotsimple) - Dotsimple is a social media management platform for planning, creating, and publishing content. It helps teams boost their reach with AI-powered content generation and actionable analytics.
- [Strava](https://composio.dev/toolkits/strava) - Strava is a social fitness network and app for cyclists and runners. It's perfect for tracking workouts, sharing progress, and joining active communities.
- [Tiktok](https://composio.dev/toolkits/tiktok) - Tiktok is a short-form video platform for creating, sharing, and discovering viral content. It helps creators and brands reach massive audiences with creative tools and global social features.
- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Google Calendar](https://composio.dev/toolkits/googlecalendar) - Google Calendar is a time management service for scheduling meetings, events, and reminders. It streamlines personal and team organization with integrated notifications and sharing options.
- [Google Drive](https://composio.dev/toolkits/googledrive) - Google Drive is a cloud storage platform for uploading, sharing, and collaborating on files. It's perfect for keeping your documents accessible and organized across devices.
- [Outlook](https://composio.dev/toolkits/outlook) - Outlook is Microsoft's email and calendaring platform for unified communications and scheduling. It helps users stay organized with powerful email, contacts, and calendar management.
- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Supabase](https://composio.dev/toolkits/supabase) - Supabase is an open-source backend platform offering scalable Postgres databases, authentication, storage, and real-time APIs. It lets developers build modern apps without managing infrastructure.
- [Composio](https://composio.dev/toolkits/composio) - Composio is an integration platform that connects AI agents with hundreds of business tools. It streamlines authentication and lets you trigger actions across services—no custom code needed.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Slack](https://composio.dev/toolkits/slack) - Slack is a channel-based messaging platform for teams and organizations. It helps people collaborate in real time, share files, and connect all their tools in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Google Docs](https://composio.dev/toolkits/googledocs) - Google Docs is a cloud-based word processor that enables document creation and real-time collaboration. Its seamless sharing and version history make team editing and content management a breeze.
- [Google Super](https://composio.dev/toolkits/googlesuper) - Google Super is an all-in-one suite combining Gmail, Drive, Calendar, Sheets, Analytics, and more. It gives you a unified platform to manage your digital life, boosting productivity and organization.
- [HubSpot](https://composio.dev/toolkits/hubspot) - HubSpot is an all-in-one marketing, sales, and customer service platform. It lets teams nurture leads, automate outreach, and track every customer interaction in one place.

## Frequently Asked Questions

### Do I need my own developer credentials to use Upload-Post with Composio?

Yes, Upload-Post requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
