Let AI manage your social media.
Or build it yourself with the API.
Tell ChatGPT or Claude what to post — they call Solnk and publish to 9 platforms. Or use the REST API directly in your own code.
Install the AI Skill
Use /publish in Claude Code to post from a conversation.
npx skills add solnk-dev/solnk-api-skillMCP server
LiveConnect Solnk to your AI client
Our Model Context Protocol server lets Claude, Cursor, and any MCP-compatible client connect to Solnk natively — no custom API wiring. Connect once, then publish to 9 platforms straight from your AI client.
Server URL
https://mcp.solnk.com/mcpAdd to your MCP client config
{
"mcpServers": {
"solnk": {
"command": "npx",
"args": [
"mcp-remote", "https://mcp.solnk.com/mcp",
"--header", "Authorization: Bearer sk_..."
]
}
}
}Clients with native remote-MCP support (e.g. Cursor) can add the server URL directly with an Authorization: Bearer header. Get your API key at Settings → API Keys.
How it works with AI
You talk. AI publishes.
Connect your social accounts in Solnk. Then just tell any AI what to post — it handles the API call, formatting, and delivery.
You say
“Write a casual post about our launch and publish to X, LinkedIn, and Threads.”
AI does
1Writes the content
2Calls Solnk API
3Live on 3 platforms
Works with
ChatGPT & Custom GPTs
Add Solnk as a Custom Action — users publish through conversation.
Claude & Claude Code
Install the /publish skill — draft, schedule, and publish in one chat.
Zapier, Make, n8n
HTTP request module — trigger posts from any event or workflow.
LangChain, CrewAI, AutoGen
Import the OpenAPI spec — your agent gets social publishing built in.
One request, nine platforms
Or let your AI write this call for you — either way it's the same endpoint.
curl -X POST https://api.solnk.com/api/v1/publishes \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"content": "Just shipped our new feature!",
"targets": [
{ "account_id": "acc_x_01" },
{ "account_id": "acc_linkedin_01" },
{ "account_id": "acc_threads_01" }
],
"publish_mode": "immediate"
}'v1 reference
Every endpoint in one place
Posts, accounts, groups, approvals, and webhooks — fifteen endpoints cover the entire publishing surface. Each one carries a fine-grained scope.
GET/v1/postsList postsposts:readPOST/v1/postsCreate a postposts:writeGET/v1/posts/:idGet a single postposts:readDELETE/v1/posts/:idDelete a postposts:writeGET/v1/accountsList connected social accountsaccounts:readGET/v1/team-membersList team members (read-only)accounts:readGET/v1/account-groupsList account groupsaccounts:readPOST/v1/account-groupsCreate an account groupaccounts:writePATCH/v1/account-groups/:idUpdate an account groupaccounts:writeDELETE/v1/account-groups/:idDelete an account groupaccounts:writeGET/v1/approvalsList posts awaiting approvalposts:readGET/v1/webhooksList webhook subscriptionswebhooks:readPOST/v1/webhooksCreate a webhook subscriptionwebhooks:writePATCH/v1/webhooks/:idUpdate a subscriptionwebhooks:writeDELETE/v1/webhooks/:idDelete a subscriptionwebhooks:writeWhat the API covers
Multi-platform publish — one call, up to 9 platforms
Scheduling — future date with timezone support
Delivery tracking — per-platform status via poll or webhook
Media uploads — presigned URL or by-URL ingest, up to 500 MB (PNG/JPEG/WebP/GIF, MP4/MOV/WebM)
Webhooks — HMAC-SHA256 signed, retried automatically
Account groups — bundle accounts for one-call fan-out
Approval queue — review drafts before they go live
Team-aware keys — scope a key to one team or your whole user
Authentication
Bearer token via Settings → API Keys. Every key carries an explicit set of scopes, so a CMS integration that only needs to publish can be locked out of webhook config and billing.
Rate limits
Publishing: 30 req/min. Others: 120 req/min. Use Idempotency-Key to prevent duplicate publishes.
Scopes
Seven fine-grained permissions you can mix on any key.
posts:readRead posts and approvalsposts:writeCreate, delete postsaccounts:readRead accounts, members, groupsaccounts:writeManage account groupswebhooks:readList webhook subscriptionswebhooks:writeCreate, update, delete subscriptionsbilling:readRead plan + usageTeam-aware API
Two flavors of API keys
One token model, two intents. Pick the one that matches who is allowed to touch which accounts — the API enforces the rest.
User key
sk_…
The default. Scoped to your user — every team you belong to, every account you can see in the dashboard, all reachable through the same key.
Team key
sk_… (tagged at creation time)
Locked to a single team at creation time. Cross-team requests are rejected automatically — handy for agency clients, contractor access, or per-brand pipelines.
Same sk_ prefix — the team scope is stored server-side at key creation. A team key carries its team context implicitly: no extra header, no team_id in the body.
curl https://api.solnk.com/v1/accounts \
-H "Authorization: Bearer sk_xxx"
# Response is automatically scoped to that team's
# accounts. A request for an account in another team
# returns 403 — even if the key owner is a member of both.Every post the API creates is stamped with its origin so you can attribute it back to a teammate or a workflow.
{
"id": "post_01HXY…",
"content": "Launch day!",
"team_id": "team_01HXY…",
"created_by": "user_01HXY…",
"status": "scheduled"
}Webhooks
Approval loops that close themselves
Subscribe once, get notified for every state change a post goes through. Pair it with the approval queue and your CMS stays in sync without polling.
Events
post.pending_approvalpost.approvedpost.rejectedpost.publishedsoonpost.failedsoonApproval events fire today. Publish/fail events ship as the worker delivery pipeline lands — subscribe now and you'll receive them as soon as they go live.
Signed deliveries
Every payload is signed with HMAC-SHA256 using your subscription secret. Verify the header before you trust the body.
X-Solnk-Signature: sha256=<hex>Retries that give up cleanly
Non-2xx responses are retried with exponential backoff. Persistent failures eventually disable the subscription so a broken endpoint never blocks the queue — you'll see the disabled state in the dashboard.
How it flows
1
Your CMS
Pushes a draft post to Solnk.
2
Approval queue
Editor reviews in the Solnk dashboard.
3
Webhook fires
post.approved or post.rejected lands on your endpoint.
4
External system
Reacts — schedules, archives, or notifies the author.
By design
What we deliberately keep out of the API
A few admin actions stay in the dashboard on purpose. It is the same line the rest of the industry draws — these are identity-sensitive moves, and we'd rather they leave a human paper trail than sit behind an automation token.
Member invitations
Invite, remove, and resend flows live in the team admin UI.
Role changes
Owner / admin / editor assignments happen in the dashboard.
Approve / reject actions
A human clicks the decision in the approval queue — the API just reads it.
Pair these UI flows with the approval webhook above and your external system still sees every outcome — without holding the privileges to override a human decision.
Ready to automate your publishing?
API access is included with the Pro plan.