REST API across 10+ platforms. One API key unlocks posts, profiles, analytics, and webhooks. MCP server coming soon — join the waitlist.
Free tier · No card required · Upgrade when you need more
How it works
Sign up free — no card required. Generate a key in Settings → API Keys in under 60 seconds.
Get API keyHit the REST API with curl, fetch, or requests. Bearer token auth — one header, done.
Create posts, schedule content, pull analytics — all from your automation. Same pipeline as the dashboard.
Code examples
No SDK needed — just curl, fetch, or requests. Bearer token, one header.
# Schedule a post — single image, three platforms, future time.
# Idempotency-Key is optional but recommended: a duplicate retry
# inside 24h returns the original post instead of creating a second.
curl https://api.letspost.it/v1/posts \
-H "Authorization: Bearer lp_live_xxx" \
-H "Idempotency-Key: launch-2026-05-01" \
-H "Content-Type: application/json" \
-d '{
"profileId": "prof_abc123",
"content": "New drop 🔥 #launch",
"mediaUrl": "https://cdn.example.com/drop.jpg",
"platforms": ["tiktok", "instagram", "youtube"],
"scheduledFor": "2026-05-01T10:00:00Z"
}'API reference
All endpoints use bearer auth. Base URL: .../v1
| GET | /posts | List posts — filter by profile, status, platform |
| POST | /posts | Create a post — publish now or schedule |
| GET | /posts/:id | Get a single post with status + platform results |
| PATCH | /posts/:id | Update caption, platforms, or scheduled time |
| DELETE | /posts/:id | Cancel or delete a post |
| GET | /posts/:id/metrics | Engagement metrics for a published post |
| GET | /profiles | List all workspace profiles |
| POST | /profiles | Create a profile (brand / client) |
| GET | /profiles/:id | Get profile with linked accounts |
| PATCH | /profiles/:id | Update profile name or image |
| DELETE | /profiles/:id | Delete a profile |
| GET | /platform/connections | List connected social accounts |
| GET | /platform/connect/:platform | Start OAuth flow for a platform |
| DELETE | /platform/connections/:id | Disconnect a social account |
| GET | /analytics/account-metrics | Follower count, reach, impressions per account |
| GET | /analytics/post-metrics | Per-post engagement metrics, paginated |
| GET | /api-keys | List API keys for the current user |
| POST | /api-keys | Create a new API key with a label |
| DELETE | /api-keys/:id | Revoke an API key |
| GET | /webhooks | List webhooks for the current user |
| POST | /webhooks | Register a webhook URL + event list |
| DELETE | /webhooks/:id | Delete a webhook |
| GET | /auth/me | Current user profile + plan tier |
| GET | /auth/usage | Monthly post count, limits, trial status |
| GET | /billing/status | Subscription status, cancel-at date, trial end |
| GET | /billing/plans | Available plans with pricing |
| GET | /status/components | Component health (dashboard, API, publishing…) |
| GET | /status/incidents/active | Active incidents affecting the platform |
The letspost.it MCP server ships as the @letspost/mcp npm package — drop it into Claude Desktop, Cursor, or any MCP-compatible client and schedule posts in conversation. Same encrypted token storage and retry pipeline as the REST API.
{
"mcpServers": {
"letspost": {
"command": "npx",
"args": ["-y", "@letspost/mcp"],
"env": { "LETSPOST_KEY": "lp_live_xxx" }
}
}
}Free plan. No card required. API key ready in under a minute.
Free tier · No credit card