投稿とスケジュール
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 日時。省略すると今すぐ公開 |
status | draft で、公開されない下書きとして保存(その場合 scheduledAt は指定しない) |
状態
| 状態 | 意味 |
|---|---|
draft | 保存済み。公開されない |
scheduled | scheduledAt に公開される |
publishing | ネットワークへ送信中 |
published | 公開済み。permalink あり |
failed | ネットワークに拒否された。理由は error に記載 |
sent_to_inbox | ネットワークのアプリに送信済み。オーナーがそこで仕上げる(TikTok) |
投稿の status は、そのターゲットの状態をまとめたものです。あるネットワークは公開され、別のネットワークは失敗した場合は partial になります。
公開前の編集
PATCH /v1/posts/{id} で、ターゲットの書き換え、scheduledAt の変更、status の変更ができます。draft にすると日時が外れて内容は残り、scheduled にすると再び予約されます。いずれかのネットワークが投稿を送信した後は、409 post_not_editable で応答されます。
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 に一致します。ページネーションも参照してください。