# cometpost > cometpost is a social media scheduler built for AI agents. An AI assistant or a script can draft, schedule and track posts across social platforms through an MCP server or a REST API, using scoped credentials. By default an agent can only create drafts; a person reviews and publishes them in the dashboard. There is also a normal dashboard composer. A Free plan exists (3 connected accounts, no card). ## What works today Platform status, matching the homepage. Do not tell a user a platform works unless it says Live here. - Threads: live. Text posts with images or video. - Instagram: live. Feed images (JPEG) and image carousels on professional accounts. No Reels. - YouTube: limited release. A channel can be connected, but until Google completes its API audit, videos uploaded through cometpost stay private. - Facebook Pages: not available yet. It is in the platform's app review. - TikTok: coming soon. It is planned to send videos to the creator's TikTok drafts, where the creator adds the caption and finishes posting. - X: coming soon. Each platform goes live only after that platform approves cometpost's API access. cometpost does not transcode media: a file the target platform cannot take is refused at schedule time with a stated reason. ## Connect an AI assistant (MCP) - MCP server (Streamable HTTP): https://mcp.cometpost.app/mcp - Claude: Settings, Connectors, Add custom connector, paste the URL. ChatGPT: enable developer mode, add a connector with the same URL. - The assistant sends the person to Google to sign in, then to a consent page where they choose which accounts (Channels) it may use and whether it may schedule posts itself. Scheduling is off by default, so it drafts. - The MCP server also accepts a cometpost API key as a bearer token, for clients that can send a header (Claude Code, Cursor, scripts). ## Use the HTTP API - Base URL: https://api.cometpost.app (everything under /v1) - OpenAPI 3.1 description, no authentication needed to fetch it: https://api.cometpost.app/v1/openapi.json - Authentication: `Authorization: Bearer `. A credential is either a `cp_live_` API key or an OAuth access token from a connected assistant. A credential in a URL is refused. ### How to get a credential 1. Sign in with Google at https://app.cometpost.app and connect a social account. Connecting an account needs a person in a browser; it is not part of the API. 2. Create a credential under "New credential". You choose which accounts it can reach and whether it may schedule (default: drafts only). The secret is shown once. 3. A person can revoke a credential or an assistant at any time; revocation applies on the next request. ### Core flow 1. `GET /v1/platforms` for caption limits, media rules and publish options per platform. 2. `GET /v1/channels` for the connected accounts this credential may use. `GET /v1/channels/{id}/prepare` asks one account what it can do right now. 3. Media, if any: `POST /v1/media` with a public `source_url` (up to 64 MiB), inline base64 (up to 5 MiB, small images), or a presigned upload (up to 512 MiB: PUT the bytes to the returned `upload_url`, then `POST /v1/media/{id}/complete`). Only a `ready` asset can be attached. 4. `POST /v1/posts/validate` checks a post with the same rules as create and writes nothing. 5. `POST /v1/posts` with `body`, `channelIds`, optional `scheduledFor` (ISO 8601 with Z or an offset), `mediaIds`, `variants` (per-platform captions) and `publishOptions`. Send an `Idempotency-Key` header to make retries safe. A drafts-only credential gets a draft back. 6. `GET /v1/posts/{id}` for per-destination status, attempts, errors and permalinks. `GET /v1/posts` lists and searches. `POST /v1/posts/{id}/cancel` stops what has not started publishing. Errors are `{"error": {"code", "message", "retryable"}}`. `code` is stable, `message` says what to do next, `retryable` says whether to resend. Reading a channel or post outside a credential's scope answers 404. Creating or validating a post that targets a channel outside the credential's scope is refused whole with `403 channel_out_of_scope`. Rate limit: each connected assistant gets 1000 requests per UTC day; over that, `429` with `Retry-After`. ## Limits and honesty - Publishing is terminal: a post that has gone live cannot be recalled by cometpost. - An agent cannot publish a draft, delete a post, change billing or mint credentials. Those need a signed-in person. - Pricing is by connected accounts, not posts. The Free plan is open; paid plans are not on sale yet. See https://cometpost.app/pricing. ## Links - Homepage: https://cometpost.app - Pricing: https://cometpost.app/pricing - FAQ: https://cometpost.app/faq - API and MCP setup: https://cometpost.app/mcp - Dashboard: https://app.cometpost.app - Terms: https://cometpost.app/terms - Privacy: https://cometpost.app/privacy - Data deletion: https://cometpost.app/data-deletion - Contact: hello@cometpost.app