Developers
Publish from your own code, or from your AI agent.
Create and schedule posts, upload media, read analytics and use the AI from your own code, or give an AI agent the tools to do it for you. Start with a key for one workspace and only the permissions it needs.
For developers
Everything you publish, your code can publish.
The dashboard is one client of the API, not a wrapper around it. Same endpoints, same rules, same validation.
Keys with scopes
A key is created for one workspace and one set of permissions. A read-only key cannot publish, and every call is rate limited and recorded.
An OpenAPI document
Posts, media uploads, queues, social accounts, analytics and AI: write a caption, generate an image, suggest and set alt text. The whole surface is described by a spec you can generate a client from.
Signed webhooks
Thirteen events, from post.published to connection.revoked. Each delivery is signed, retried on failure, and replayable from the dashboard.
MCP for agents
Twenty-four tools over MCP, from scheduling a post to writing a caption, suggesting alt text or generating an image, so an assistant can work for you. Agents never see a provider token.
- 120 / minute
- Rate limit per key, with the wait in the error.
- 10 seconds
- To answer a webhook before it is retried.
curl -X POST https://spreva.app/api/v1/posts \
-H "Authorization: Bearer POST_API_KEY_..." \
-H "Content-Type: application/json" \
-d '{
"content": {
"caption": "Ship day. New build is live.",
"mediaIds": ["c47e2a90-0000-4000-8000-000000000004"]
},
"targets": [
{ "connectionId": "e81b3f52-...-005", "placement": "feed" },
{ "connectionId": "a31d9f07-...-006", "placement": "reel",
"override": { "caption": "Ship day. Full notes in bio." } }
]
}'curl -X POST https://spreva.app/api/v1/posts/$POST_ID/schedule \
-H "Authorization: Bearer POST_API_KEY_..." \
-d '{ "scheduledAt": "2026-10-01T09:00:00.000Z",
"timezone": "Europe/Lisbon" }'POST /hooks/post HTTP/1.1
x-post-event: target.published
x-post-signature: v1=6f1c… # HMAC-SHA256 of "timestamp.body"
{
"id": "7f3c2d10-0000-4000-8000-000000000000",
"type": "target.published",
"createdAt": "2026-10-01T09:00:02.412Z",
"data": {
"type": "TargetPublished",
"postId": "5d2a7c3e-0000-4000-8000-000000000002",
"provider": "instagram",
"remoteUrl": "https://www.instagram.com/p/EXAMPLE/"
}
}Stop posting twelve times.
Connect your accounts, write the thing once, and get your afternoon back.
- Threads
- X
- Bluesky
- Mastodon
- TikTok
- YouTube
- Tumblr
- Google Business