Publiez depuis votre propre code, ou depuis votre agent IA.
Créez et programmez des publications, importez des médias, lisez les statistiques et utilisez l’IA depuis votre propre code, ou donnez à un agent IA les outils pour le faire à votre place. Commencez avec une clé pour un seul espace de travail et uniquement les autorisations nécessaires.
Tout ce que vous publiez, votre code peut le publier.
L’API applique les mêmes règles et les mêmes vérifications que l’application : une publication valide dans l’une l’est aussi dans l’autre.
- Des clés avec des portées
Une clé est créée pour un espace de travail et un ensemble d’autorisations. Une clé en lecture seule ne peut pas publier, et chaque appel est limité en débit et enregistré.
- Un document OpenAPI
Publications, import de médias, files d’attente, comptes sociaux, statistiques et IA : rédiger une légende, générer une image, suggérer et définir un texte alternatif. Toute l’API est décrite par une spécification à partir de laquelle vous pouvez générer un client.
- Des webhooks signés
Treize événements, de post.published à connection.revoked. Chaque envoi est signé, renvoyé en cas d’échec et peut être rejoué depuis l’application.
- MCP pour les agents
Connectez votre agent IA avec une seule URL. Les agents trouvent publications et médias par leur nom, rédigent, programment et lisent les résultats, et SPREVA demande votre accord avant toute action publique ou payante. Les agents ne voient jamais un jeton de réseau.
- 120 / minute
- Par personne dans un espace de travail, avec le délai d’attente indiqué dans l’erreur.
- 10 secondes
- Pour répondre à un webhook avant qu’il ne soit renvoyé.
curl -X POST https://dev-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://dev-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/"
}
}