投稿とスケジュール

API キーを取得

投稿は店舗に属し、1 つまたは複数のネットワーク(ターゲット)へ送られます。各ターゲットには、独自のテキスト、メディア、フォーマット、状態があります。

投稿のボディ

フィールド意味
establishmentId投稿する店舗(GET /v1/establishments)
targets[]ネットワークごとに 1 件:platform、text、任意の media、format、accountId
targets[].media[]ライブラリのメディアを id で指定、または公開 https の url と type(image または video)で指定
targets[].accountId店舗にそのネットワークのアカウントが複数ある場合に使うアカウント
scheduledAt未来の ISO 8601 日時。省略すると今すぐ公開
statusdraft で、公開されない下書きとして保存(その場合 scheduledAt は指定しない)

状態

状態意味
draft保存済み。公開されない
scheduledscheduledAt に公開される
publishingネットワークへ送信中
published公開済み。permalink あり
failedネットワークに拒否された。理由は error に記載
sent_to_inboxネットワークのアプリに送信済み。オーナーがそこで仕上げる(TikTok)

投稿の status は、そのターゲットの状態をまとめたものです。あるネットワークは公開され、別のネットワークは失敗した場合は partial になります。

公開前の編集

PATCH /v1/posts/{id} で、ターゲットの書き換え、scheduledAt の変更、status の変更ができます。draft にすると日時が外れて内容は残り、scheduled にすると再び予約されます。いずれかのネットワークが投稿を送信した後は、409 post_not_editable で応答されます。

bash
curl -X PATCH https://api.sofia-post.com/api/v1/posts/$POST_ID \
  -H "Authorization: Bearer $SOFIA_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"status":"scheduled","scheduledAt":"2026-11-20T09:00:00Z"}'

削除

DELETE /v1/posts/{id} は 204 で応答します。ネットワークが投稿を送信している間は 409 post_in_flight で応答されるので、少し待って再試行してください。

投稿の一覧取得

GET /v1/posts は、トークンでアクセスできるすべての投稿を新しい順に返します。establishmentId、status、from、to、createdBy(me または app)で絞り込めます。いずれかのネットワークがその状態であれば、投稿は status に一致します。ページネーションも参照してください。