# Upload-Post — how to use (mcp.ai)

Connect your Upload-Post account and use 12 tools for social media marketing straight from your AI agent. Connect with your own API key. Upload-Post publishes, schedules, and manages content across social networks through one API.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_upload_post?ms=1787293440000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `upload_post_cancel_scheduled_post`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/upload_post`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/upload_post/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/upload_post/cancel/scheduled/post` — Permanently cancel a scheduled post before publication and delete its staged assets.
  - body: { job_id: string }
- `POST https://api.mcp.ai/api/upload_post/create/profile` — Create an Upload-Post profile for a unique caller-owned username; this does not connect any social platform.
  - body: { username: string }
- `POST https://api.mcp.ai/api/upload_post/enqueue/post` — Insert one video, photo carousel, or text post into a profile's external publication queue.
  - body: { title?: string, video?: object|string, photos?: object[], platforms: string[], subreddit?: string, description?: string, content_type: string, first_comment?: string, idempotency_key?: string, facebook_page_id?: string, linkedin_page_id?: string, profile_username: string, max_posts_per_slot?: integer, pinterest_board_id?: string, google_business_location_id?: string }
- `POST https://api.mcp.ai/api/upload_post/get/upload/status` — Get the processing status and per-platform results for an asynchronous or scheduled upload.
  - body: { job_id?: string, request_id?: string }
- `POST https://api.mcp.ai/api/upload_post/list/cached/post/analytics` — Return one page of cached per-post analytics for a profile without consuming the live platform-analytics request limit.
  - body: { limit?: integer, since?: string, until?: string, platform?: string, next_cursor?: string, profile_username: string }
- `POST https://api.mcp.ai/api/upload_post/list/platform/destinations` — List selectable Facebook Pages, LinkedIn organizations, Pinterest boards, or Google Business locations for an already connected profile.
  - body: { platform: string, profile_username?: string }
- `POST https://api.mcp.ai/api/upload_post/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.
- `POST https://api.mcp.ai/api/upload_post/list/scheduled/posts` — Return one page of pending scheduled posts and the job IDs needed to edit or cancel them.
  - body: { limit?: integer, next_cursor?: string }
- `POST https://api.mcp.ai/api/upload_post/list/upload/history` — Return one page of past and in-progress Upload-Post uploads, including platform post IDs, URLs, request IDs, and failures.
  - body: { limit?: integer, next_cursor?: string }
- `POST https://api.mcp.ai/api/upload_post/publish/post` — Immediately publish one video, photo carousel, or text post to external connected platforms.
  - body: { title?: string, video?: object|string, photos?: object[], platforms: string[], subreddit?: string, description?: string, async_upload?: boolean, content_type: string, first_comment?: string, idempotency_key?: string, facebook_page_id?: string, linkedin_page_id?: string, profile_username: string, pinterest_board_id?: string, google_business_location_id?: string }
- `POST https://api.mcp.ai/api/upload_post/schedule/post` — Schedule one video, photo carousel, or text post for future external publication to connected platforms.
  - body: { title?: string, video?: object|string, photos?: object[], timezone?: string, platforms: string[], subreddit?: string, description?: string, content_type: string, first_comment?: string, scheduled_date: string, idempotency_key?: string, facebook_page_id?: string, linkedin_page_id?: string, profile_username: string, pinterest_board_id?: string, google_business_location_id?: string }
- `POST https://api.mcp.ai/api/upload_post/update/scheduled/post` — Change the future publication time, title, or caption of an existing scheduled post.
  - body: { title?: string, job_id: string, caption?: string, timezone?: string, scheduled_date?: string }

## Example prompts
- "What can I do in Upload-Post?"
- "Show me a summary of my Upload-Post account"

## More
- Page: https://mcp.ai/upload_post
- Agent spec (llms.txt): https://mcp.ai/upload_post/llms.txt
- Postman collection: https://mcp.ai/upload_post/postman.json
