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/mcpAsk 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.