アプリで公開できるものは、すべてコードからも公開できます。
APIはアプリと同じルール、同じ検証で動きます。一方で通る投稿は、もう一方でも通ります。
- スコープ付きのキー
キーは1つのワークスペースと1組の権限ごとに作成します。読み取り専用のキーでは公開できず、すべての呼び出しはレート制限の対象となり、記録されます。
- OpenAPIドキュメント
投稿、メディアのアップロード、キュー、SNSアカウント、分析、そしてAI(キャプションの作成、画像の生成、代替テキストの提案と設定)。すべての機能を記述した仕様から、クライアントを生成できます。
- 署名付きWebhook
post.publishedからconnection.revokedまで、13種類のイベント。各配信は署名され、失敗すると再試行され、アプリから再送できます。
- エージェント向けのMCP
1つのURLでAIエージェントを接続できます。エージェントは名前で投稿やメディアを探し、下書き、予約、結果の確認ができ、公開される操作や費用がかかる操作の前にはSPREVAが確認します。エージェントがSNSのトークンを見ることはありません。
- 120回/分
- ワークスペース内の1人あたり。待ち時間はエラーに含まれます。
- 10秒
- 再試行されるまでに、Webhookに応答する時間。
curl -X POST https://app.spreva.ai/api/v1/posts \
-H "Authorization: Bearer spreva_sk_..." \
-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://app.spreva.ai/api/v1/posts/$POST_ID/schedule \
-H "Authorization: Bearer spreva_sk_..." \
-d '{ "scheduledAt": "2026-10-01T09:00:00.000Z",
"timezone": "Europe/Lisbon" }'POST /hooks/spreva HTTP/1.1
x-spreva-event: target.published
x-spreva-event-id: 7f3c2d10-0000-4000-8000-000000000000
x-spreva-timestamp: 1790845202
x-spreva-signature: v1=6f1c… # HMAC-SHA256 of "timestamp.body"
{
"id": "7f3c2d10-0000-4000-8000-000000000000",
"type": "target.published",
"createdAt": "2026-10-01T09:00:02.412Z",
"workspaceId": "0b9f6c1e-0000-4000-8000-000000000001",
"data": {
"type": "TargetPublished",
"workspaceId": "0b9f6c1e-0000-4000-8000-000000000001",
"postId": "5d2a7c3e-0000-4000-8000-000000000002",
"targetId": "9a1f4b7d-0000-4000-8000-000000000003",
"provider": "instagram",
"remoteId": "17900000000000000",
"remoteUrl": "https://www.instagram.com/p/EXAMPLE/"
}
}