Справочник API
Получить ключ APIКаждый endpoint Sofia API v1 с параметрами, scope и примерами, а также playground, чтобы проверить любой из них с вашим собственным ключом API.
Базовый URL https://api.sofia-post.com/api · Документ OpenAPI
OAuth
GET
/v1/oauth/authorizeНачать авторизациюОткройте в браузере. Неизвестный клиент или незарегистрированный redirect_uri даёт 400; иначе перенаправление на экран согласия Sofia.GET/.well-known/oauth-authorization-server/api/v1/oauthПолучить метаданные сервераВозвращает метаданные сервера авторизации OAuth 2.0 Sofia API (RFC 8414), чтобы клиент нашёл endpoint и поддерживаемые параметры.POST/v1/oauth/tokenВыдать токен доступаОбменивает client_credentials, authorization_code с PKCE или одноразовый refresh_token на непрозрачный токен на 3600 с для одного Workspace.Аккаунт
Платформы
Заведения
GET
/v1/establishmentsСписок заведенийПеречисляет заведения Workspace токена. Используйте их идентификаторы как establishmentId для публикации, списка медиа и чтения статистики.GET/v1/establishments/{id}/accountsСписок подключённых аккаунтовПеречисляет сети, подключённые к заведению, без токенов и секретов сети, только то, что нужно, чтобы назвать аккаунт и выбрать его как accountId.POST/v1/establishments/{id}/connection-linksСоздать ссылку для подключенияВозвращает размещённую ссылку, где человек разрешает сети доступ к Sofia, и токен сети не попадает в ваше приложение. Действует 30 минут; только live.GET/v1/establishments/{id}/insightsПолучить статистику заведенияВозвращает последние действительные данные, собранные Sofia по каждому подключённому аккаунту. Ещё не собранный аккаунт показывает awaiting, но не ноль.Медиа
GET
/v1/mediaСписок медиаПеречисляет медиатеку заведения, сначала новые, постранично, с URL, подписанными на текущее окно. Работает в тесте и в live.POST/v1/mediaИмпортировать или загрузить медиаДобавляет в медиатеку заведения файл (multipart) или URL https, который Sofia скачивает сама. Нужны live-приложение и активная подписка.GET/v1/media/{id}Получить медиаВозвращает медиа из медиатеки с подписанным URL на текущее окно, чтобы вы могли использовать его идентификатор в публикации.DELETE/v1/media/{id}Убрать медиаУбирает медиа из медиатеки его заведения, как это делает приложение. Файл не уничтожается, запланированная публикация сохраняет своё изображение.Публикации
GET
/v1/postsСписок публикацийПеречисляет публикации заведений, доступных токену, сначала новые, с фильтрами по заведению, статусу, датам и автору, постранично.POST/v1/postsОпубликовать публикациюLive-приложения публикуют сразу, планируют по дате или сохраняют черновик; тестовые только имитируют. С ?dry_run=true всё проверяется, ничего не записывается.GET/v1/posts/{id}Получить публикациюВозвращает публикацию с состоянием каждой сети, ссылкой после публикации и ошибкой. В live любая публикация Workspace, в тесте имитированная.PATCH/v1/posts/{id}Изменить публикациюПока ни одна сеть не начала отправку, заменяет targets, задаёт scheduledAt или переводит публикацию между draft и scheduled. Пропущенное сохраняется.DELETE/v1/posts/{id}Удалить публикациюУдаляет публикацию, как это делает приложение: запланированное не отправится, а опубликованное снимается с сети. У тестовых приложений нечего удалять.Вебхуки
GET
/v1/webhooksСписок вебхуковПеречисляет вебхуки приложения без их секрета подписи: секрет возвращается только в момент регистрации вебхука, повторно получить его нельзя.POST/v1/webhooksЗарегистрировать вебхукРегистрирует URL https, который Sofia вызывает с подписанным JSON-событием, до пяти повторов при сбое. Секрет виден один раз; не больше 10 вебхуков.DELETE/v1/webhooks/{id}Удалить вебхукУдаляет вебхук. Он больше ничего не получает, даже доставки, ожидавшие повтора, а вызов не возвращает тела ответа, только код 204.POST/v1/webhooks/{id}/testОтправить тестовое событиеДоставляет подписанное событие webhook.test как любое другое, не дожидаясь получателя, чтобы вы проверили подпись. Не более пяти в минуту.