Référence de l’API
Obtenir une clé APIChaque endpoint de Sofia API v1 avec ses paramètres, ses scopes et ses exemples, et un playground pour tester chacun avec votre propre clé d’API.
URL de base https://api.sofia-post.com/api · Document OpenAPI
OAuth
GET
/v1/oauth/authorizeDémarrer une autorisationÀ ouvrir dans le navigateur. Un client inconnu ou une redirect_uri non enregistrée renvoie un 400 ; sinon, redirection vers l’écran de consentement de Sofia.GET/.well-known/oauth-authorization-server/api/v1/oauthLire les métadonnées du serveurRenvoie les métadonnées du serveur d’autorisation OAuth 2.0 de Sofia API (RFC 8414), pour qu’un client découvre les endpoints et les options prises en charge.POST/v1/oauth/tokenÉmettre un jeton d’accèsÉchange des client_credentials, un authorization_code avec PKCE ou un refresh_token à usage unique contre un jeton opaque de 3600 s pour un Workspace.Compte
Plateformes
Établissements
GET
/v1/establishmentsLister les établissementsListe les établissements du Workspace du jeton. Utilisez leurs identifiants comme establishmentId pour publier, lister les médias ou lire les statistiques.GET/v1/establishments/{id}/accountsLister les comptes connectésListe les réseaux connectés à un établissement, sans jeton ni secret de réseau, seulement de quoi nommer un compte et le choisir comme accountId.POST/v1/establishments/{id}/connection-linksCréer un lien de connexionRenvoie un lien hébergé où la personne autorise un réseau auprès de Sofia, sans qu’aucun jeton de réseau ne vous parvienne. Valable 30 minutes, en live.GET/v1/establishments/{id}/insightsLire les statistiquesRenvoie les derniers chiffres valides collectés par Sofia pour chaque compte connecté. Un compte pas encore collecté affiche awaiting, jamais zéro.Médias
GET
/v1/mediaLister les médiasListe la médiathèque d’un établissement, les plus récents d’abord, page par page, avec des URL signées pour la fenêtre en cours. Fonctionne en test et en live.POST/v1/mediaImporter ou téléverser un médiaAjoute à la médiathèque d’un établissement un fichier (multipart) ou une URL https que Sofia récupère. Exige une application live et un abonnement actif.GET/v1/media/{id}Lire un médiaRenvoie un média de la médiathèque avec une URL signée valable pour la fenêtre en cours, pour que vous puissiez réutiliser son identifiant dans une publication.DELETE/v1/media/{id}Retirer un médiaRetire un média de la médiathèque de son établissement, comme le fait l’app. Le fichier n’est pas détruit et une publication programmée garde son visuel.Publications
GET
/v1/postsLister les publicationsListe les publications des établissements accessibles au jeton, les plus récentes d’abord, filtrées par établissement, statut, dates et auteur, page par page.POST/v1/postsPublier une publicationUne application live publie aussitôt, programme ou enregistre un brouillon ; en test, elle simule. Avec ?dry_run=true, tout est vérifié et rien n’est écrit.GET/v1/posts/{id}Lire une publicationRenvoie une publication avec l’état de chaque réseau, son lien et son erreur éventuelle. En live, toute publication du Workspace ; en test, une simulée.PATCH/v1/posts/{id}Modifier une publicationAvant l’envoi sur un réseau, remplace les targets, fixe scheduledAt ou passe la publication de draft à scheduled et inversement. Champs omis conservés.DELETE/v1/posts/{id}Supprimer une publicationSupprime une publication comme l’app : rien de programmé n’est envoyé et une publication en ligne est retirée de son réseau. En test, rien de réel à supprimer.Webhooks
GET
/v1/webhooksLister les webhooksListe les webhooks de l’application sans leur secret de signature, qui n’est renvoyé qu’à l’enregistrement du webhook.POST/v1/webhooksEnregistrer un webhookEnregistre une URL https que Sofia appelle avec un événement JSON signé, rejoué jusqu’à cinq fois en cas d’échec. Secret affiché une fois ; 10 webhooks max.DELETE/v1/webhooks/{id}Supprimer un webhookSupprime un webhook. Il ne reçoit plus rien, pas même les envois qui attendaient encore une nouvelle tentative, et l’appel ne renvoie aucun corps.POST/v1/webhooks/{id}/testEnvoyer un événement de testEnvoie un événement webhook.test signé comme les autres, sans attendre le récepteur, pour que vous vérifiiez votre signature. Cinq au maximum par minute.