MCP server and API

LotsSocial for
your AI agent.

Connect your social accounts once, then let your agent draft, validate, schedule and publish posts on LinkedIn, Instagram, X, Facebook, Threads, TikTok, YouTube, Pinterest, Reddit, Bluesky, Mastodon and Google Business, and read back live links and analytics.

https://api.lots.social/mcp
30Tools

Ask your agent, for example.

Once LotsSocial is connected, plain requests like these work.

  • “Schedule this week's three LinkedIn posts for 9am on weekdays.”
  • “Turn this blog post into an Instagram carousel caption and a thread for X.”
  • “Which of last month's posts got the most engagement on each network?”

Connect in two minutes.

Claude

Settings → Connectors → Add custom connector. Paste the URL, connect, and sign in with your Lots account.

ChatGPT

Settings → Apps & Connectors → Advanced → turn on Developer mode, then Create a connector with the URL and sign in.

Claude Code

claude mcp add --transport http lots-social https://api.lots.social/mcp

Codex

codex mcp add lots-social --url https://api.lots.social/mcp

Cursor, Windsurf and others

{
  "mcpServers": {
    "lots-social": {
      "url": "https://api.lots.social/mcp"
    }
  }
}

Cloud agents without MCP

Give the agent https://api.lots.social/docs.md and an API key from lotstech.com/api. It calls the REST API with Authorization: Bearer <key>.

Every server uses OAuth: your agent acts as you, inside your own roles and workspaces. You can disconnect it at any time from the app.

30 tools, also REST endpoints.

Each tool is available over MCP and as a REST endpoint under https://api.lots.social/api/v1/lotssocial.

Bulk Create Social Media Posts

POST /posts/bulk

Create up to 50 drafts or scheduled posts for one shared set of connected accounts. Brand-scoped work must pass brand_id; media-required platforms need media before scheduling.

Cancel Scheduled Post

POST /posts/:post_id/cancel

Cancel a scheduled post and return it to draft. Use list_social_posts with type=scheduled to find the post UUID.

Check product funding

GET /funding

Check plan coverage, credit funding and current capacity rates. Plan coverage is used first; capacity beyond it is paid from the owner's credits automatically, charged daily (free credits first, then plan credits, then purchased). If credits run low, give the returned settings_url so the owner can top up or choose a plan.

Complete Media Upload

POST /media/uploads/complete

Finish an upload started with create_media_upload after the file has been PUT to upload_url. Verifies the file, saves it to the media library and returns its media_id for create_social_post or update_social_post. Add a description and alt text so the file can be found and reused.

Create Brand

Create a brand (a named group of connected accounts, such as one company or client) in a workspace, optionally putting connected accounts in it straight away. An account already in another brand is moved and the response names the brand it left. Brand names are unique per workspace; a clash returns the existing brand_id. Use it when the person asks to group accounts, then pass brand_id when posting for that brand. To connect new accounts straight into the brand, call get_connect_link with its brand_id.

Create Media Upload

POST /media/uploads

Start uploading a video or image file you have locally. Returns a short-lived upload_url: PUT the raw file bytes to it with the given Content-Type header, then call complete_media_upload with the file_key to get a media_id. Use this for every video and for any image you cannot pass as a URL.

Create Social Media Post

POST /posts

Create one draft or scheduled post for selected connected accounts. Use platform_captions for account-specific copy. Brand-scoped work must pass brand_id. Media-required platforms need media before scheduling; drafts may remain incomplete.

Create Workspace

POST /workspaces

Create a new workspace owned by the person, for example one per business or client they run. Accounts, posts, media and results in different workspaces never mix. Workspaces are free and unlimited. Afterwards, use get_connect_link with the new workspace_id to connect its social accounts.

Delete Media File

DELETE /media/:media_id

Permanently deletes a media file. IMPORTANT: Requires media_id — call list_media first to get the UUID of the media file. Deletion is irreversible.

Delete Social Post

DELETE /posts/:post_id

Permanently delete a draft or scheduled post from LotsSocial. Published posts cannot be deleted: LotsSocial cannot remove a post from the network, so the refusal returns each network's live link for the person to open and delete it there while signed in. Creators can delete only their own drafts; managers and admins can delete any draft or scheduled post in their workspace.

Get Account Details

GET /accounts/:account_id

Get one connected account's profile, connection health (active, expiring or needs reconnect, with the last error) and posting record. Use it when posts to the account fail or the person asks about it; if it needs reconnecting, give them get_connect_link.

Get Aggregate Analytics

GET /analytics

Return normalized engagement totals, platform breakdowns, top posts, and analytics freshness for a workspace, brand, account subset, platform, or date range. Totals cover only posts with analytics; analytics_freshness.posts_without_analytics counts published posts that have none yet or whose network does not share them.

Get Billing Status

GET /billing

Show what LotsSocial costs this person right now: LotsTech Credits balance, which plan (if any) covers how many accounts, how many accounts are paid from credits, the monthly credit spend, and roughly how long the balance lasts. Use it when they ask about credits, cost, billing or whether they can add another account, and after they buy credits to confirm the top-up arrived. Accounts beyond a plan cost credits monthly; posts, media storage, workspaces and brands are free (fair use). Members of someone else's workspace see only whether another account can be added, since the owner pays.

Get Brand Winning Posts

GET /research/brand-winners

Return the brand’s published posts ranked against its median engagement per platform, from saved analytics. Use for requested performance analysis or relevant prior examples. Reports coverage and relative performance; it does not require a research workflow.

Get Connect Link

POST /connect-link

Create a link the person opens in their browser to connect a social account (LinkedIn, Instagram, X and the rest) to LotsSocial. Use it whenever they ask to connect, add or link an account, or when list_connected_accounts shows the account they want to post to is missing. Give them the url and ask them to open it; never open it yourself, because it signs in to their social account. The link works for one hour and can connect several accounts. Accounts beyond plan coverage are paid from credits automatically; if the balance cannot cover the account, offer get_credits_link. Afterwards call list_connected_accounts to confirm.

Get Credits Link

POST /credits/checkout

Create a checkout link to buy LotsTech Credits, which pay for connected accounts beyond plan coverage. Use it when the person asks to add credits, or when get_billing_status or get_connect_link shows there are not enough credits for what they want. Ask how much they want to spend if they have not said (minimum $10). Give them the url to pay in their browser; never ask for card details in the chat. Purchased credits never expire. Call get_billing_status afterwards to confirm they arrived.

Get Media Details

GET /media/:media_id

Retrieves details for a specific media file (image/video). IMPORTANT: Requires media_id — call list_media first to get the UUID of the media file.

Get Platform Playbook

GET /platform-playbook

Get versioned, dated platform guidance with official-policy, observed-practice, and experimental evidence kept separate. Agents must obey official rules and treat reach guidance as testable rather than guaranteed.

Get Post Analytics

GET /posts/:post_id/analytics

Return engagement analytics for one published post, per network. Use list_social_posts with type=posted to find the post UUID. A network entry with analytics_available=false has no data yet (or the network does not share it) and gives a reason: report that reason, never as zero engagement.

Get Social Post Details

GET /posts/:post_id

Retrieves complete details for a single social post including all media files, platform logs, connected accounts, publishing status, and edit history. Enforces role-based access control - creators can only access their own posts unless they have manager/admin permissions.

List Brands

GET /brands

List the brands in a workspace with how many connected accounts each holds. Brands group accounts (for example one company or client); pass a brand_id when posting so only that brand's accounts are used. Create or regroup brands with create_brand and update_brand.

List Connected Accounts

GET /accounts

List connected social accounts for you, a workspace or one brand: platform, name, connection status, brand, caption_limit (characters this account accepts; X Premium allows 25,000, free X 280) and requires_media (Instagram, YouTube, Pinterest and TikTok need an image or video). Write each caption to its account's caption_limit. When working for a brand, pass brand_id: a workspace can hold several brands' accounts.

List Media Files

GET /media

Search accessible images and videos by filename, tags, description, or alt text before asking the owner for a new asset.

List Social Posts

GET /posts

List draft, scheduled, or published posts with platform, media, creator, workspace, and optional brand filtering.

List Workspaces

GET /workspaces

Retrieves all workspaces the authenticated user is a member of. Returns workspace details including name, slug, type, owner, and the user role and join date for each workspace. Automatically checks subscription status.

Update Brand

Rename a brand or move connected accounts into or out of it. add_account_ids moves accounts in from no brand or another brand (reported as moved_from); remove_account_ids leaves them in no brand. Accounts must be connected in the brand's workspace. Use it when the person asks to regroup accounts, or when create_social_post refuses accounts from different brands and the person wants them in one brand. Scheduled posts keep their accounts.

Update Media Metadata

POST /media/metadata

Update a media asset description, alt text, or tags so people and agents can find and reuse it.

Update Social Post

PATCH /posts/:post_id

Update an existing draft or scheduled post. Supports account-specific captions and replacement platform/media selections; preserves existing attribution and fields not changed by the request.

Update Workspace

PATCH /workspaces/:workspace_id

Rename a workspace or change its description or logo. Owners and admins only. Deleting a workspace, and managing its members, are done in the LotsSocial app.

Upload Media

POST /media

Store an image or video in the LotsSocial media library from a public link (url), or an image from base64, and return its media_id and public URL. Videos (MP4, MOV, WebM up to 200 MB) are streamed from the link. For a file on your computer, use create_media_upload and complete_media_upload instead. Add a description and alt text so the asset can be found and reused.

Questions, answered.

What is the LotsSocial MCP server URL?

https://api.lots.social/mcp. Add it as a remote MCP server (custom connector) in your AI agent and sign in with your Lots account.

Which agents work with LotsSocial?

Claude, ChatGPT (developer mode), Claude Code, Codex, Cursor, Windsurf and any other client that supports remote MCP with OAuth. Agents without MCP use the REST API with an API key.

Where are the LotsSocial API docs?

https://api.lots.social/docs.md: Markdown written so an AI agent can read it. Requests go to https://api.lots.social/api/v1/lotssocial with Authorization: Bearer <your key>.

How do I get a LotsSocial API key?

Use Generate key on this page or at lotstech.com/api. Sign in with your LotsTech account, name the key and copy it once. You can revoke it there at any time.

Does MCP or API access cost extra?

No. It is included with LotsSocial. You pay only for LotsSocial's own plan or usage, and your AI provider bills its own usage.

All MCP servers · All APIs and keys