API(開発者向け・v1)
公開REST API /v1。APIキー認証・投稿/生成・データ取得・Webhook・課金/レート制限。
API(開発者向け・v1)
posti の公開 REST API を使うと、外部システムから投稿の作成・AI生成・データの取得を自動化できます。認証は API キー(Bearer トークン)です。
ブラウザで試せる API リファレンス
/v1/docs に Swagger UI(インタラクティブなAPIリファレンス)があります。全エンドポイントの入出力をその場で確認・試行できます。機械可読な仕様は /v1/openapi.json(OpenAPI 3.0)で、Postman への取り込みやSDK自動生成に使えます。
Python SDK
薄い Python クライアント(Posti クラス)を用意しています。posti.create_article(...) のように関数呼び出しで使えます。
python
from posti_sdk import Posti
posti = Posti(api_key="posti_xxxxxxxx")
art = posti.create_article(prompt="NISAの始め方", brand_id="...")
認証
- サイドバーの
設定→APIキーを開く。 - API キーを発行する(
posti_で始まる文字列。発行時のみ全体が表示されるので安全に保管してください)。 - すべてのリクエストに
Authorization: Bearer <APIキー>ヘッダを付ける。
キーは再表示できません
発行時に表示されるキー全体は一度きりです。紛失した場合は新しいキーを発行してください。キーは第三者に共有しないでください。
curl -H "Authorization: Bearer posti_xxxxxxxx" https://posti.jp/v1/accounts
キーが無い・無効な場合は 401 が返ります。
ベースURL
https://posti.jp/v1
すべてのレスポンスは JSON です。ID は文字列(UUID)、日時は ISO 8601 で返ります。
課金について
APIでもクレジット消費は同じ
投稿作成・AI生成など、Web画面で課金対象の操作は API 経由でも同じようにクレジットを消費 します。残高不足の場合は 402(insufficient credits)が返り、必要クレジット数が needed に含まれます。読み取り系(GET)は課金されません。
書き込み・生成エンドポイント
| メソッド | パス | 説明 | 課金 |
|---|---|---|---|
| POST | /v1/ads |
広告をAI生成してPAUSEDで出稿(6媒体) | AIバナー生成であり |
| POST | /v1/articles |
記事をAI生成して下書き作成(brand_id でKB・ペルソナ接地) |
実トークン従量 |
| POST | /v1/generate/batch |
複数プロンプトを一括生成(image / video / text) |
件数分 |
| POST | /v1/posts |
投稿を作成(kind = video / image / article)。作成後はキューに入る |
共有アプリ経路のX投稿のみ |
| GET | /v1/posts/{id} |
投稿の状態と各SNSの結果を取得 | 無料 |
| POST | /v1/generate/image |
画像を生成(prompt 必須) |
あり |
| POST | /v1/generate/video |
動画を生成(prompt 必須) |
あり |
| POST | /v1/generate/text |
テキストを生成(prompt 必須) |
実トークン従量 |
| GET | /v1/generations/{id} |
生成ジョブの状態・結果URLを取得 | 無料 |
投稿作成の例
curl -X POST https://posti.jp/v1/posts \
-H "Authorization: Bearer posti_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"kind":"image","media_url":"https://.../pic.png","caption":"新商品です","targets":["<account_id>"]}'
# → {"post_id":"...","status":"queued"}
targets を省略すると連携済みの全アカウントへ配信されます。scheduled_at(posti が投稿する時刻)で予約もできます。
広告作成の例
Meta / Google / TikTok / X / Pinterest / LINEヤフー の6媒体に、商材(product_id)からAIで広告を生成して出稿できます。作成される広告は必ず PAUSED(停止)状態なので、内容を確認してから各媒体の管理画面で有効化します。
# 既定は dry_run=true(下書き案のプレビュー・課金なし)。実出稿は dry_run:false を明示。
curl -X POST https://posti.jp/v1/ads \
-H "Authorization: Bearer posti_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"platform":"pinterest","product_id":"<UUID>","daily_budget_jpy":1000,"board_id":"<board>","n_variants":3,"dry_run":false}'
| パラメータ | 説明 |
|---|---|
platform |
meta / google / tiktok / x / pinterest / lineyahoo |
product_id |
商材ID(/v1/products で取得) |
daily_budget_jpy |
日予算(100以上) |
n_variants |
AI生成のバリアント数(1〜4・既定3) |
dry_run |
true(既定)=案のプレビュー・課金なし / false=実出稿・クレジット消費 |
| 媒体別必須 | Meta=page_id、Google=final_url・business_name、TikTok=identity_id、Pinterest=board_id(X は追加項目なし・LINEヤフーはlink_url任意) |
実出稿はクレジットを消費します
dry_run:false のときのみ AIバナーを生成してクレジットを消費し、実際に各媒体へ PAUSED で出稿します。残高不足なら 402 が返ります。事前に該当媒体の広告アカウント連携(認証設定)が必要です。
記事生成の例
prompt からAIで記事本文を生成し、下書き(記事ジョブ)を作成します。brand_id を渡すと、そのブランドのペルソナ+ナレッジベース(KB)に接地して生成します(口調・知識が反映されます)。auto_post:true + scheduled_at でWordPressへ予約公開もできます。
curl -X POST https://posti.jp/v1/articles \
-H "Authorization: Bearer posti_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"prompt":"初心者向けにNISAの始め方を解説する記事","brand_id":"<UUID>"}'
# → {"job_id":"...","status":"ready","title":"...","body_html":"..."}
生成した本文は body_html で返り、下書きジョブとして保存されます。body_html を直接渡した場合は生成せず下書き保存のみ(課金なし)。課金は実際に使ったトークン量に応じた従量です。
バッチ生成の例
複数のプロンプトを1回のリクエストで一括生成します。kind は image / video / text。件数分だけクレジットを消費するため、コンテンツの量産に向きます(1リクエスト最大10件)。
curl -X POST https://posti.jp/v1/generate/batch \
-H "Authorization: Bearer posti_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"kind":"image","prompts":["夏の海のポスター","秋の紅葉のポスター","冬の雪景色のポスター"]}'
# → {"kind":"image","count":3,"results":[{"generation_id":"...","status":"generating"},...]}
image / video は各件が非同期ジョブになり、GET /v1/generations/{id} で結果を取得します。text は各件の本文が results[].text に同期で返ります。残高が不足すると、その時点で処理を打ち切ります。
読み取りエンドポイント
いずれも API キーの所有者にひも付くデータのみを返します(他ユーザーのデータは返りません)。課金はありません。共通で ?limit(1〜200・既定50)と ?offset によるページングに対応します。
| メソッド | パス | 説明 |
|---|---|---|
| GET | /v1/accounts |
連携済みSNSアカウント一覧 |
| GET | /v1/brands |
事業(ブランド)一覧 |
| GET | /v1/products |
商品一覧 |
| GET | /v1/purchases |
購入(購入者)一覧。?status= で絞り込み |
| GET | /v1/leads |
フォーム営業の送信済みリード一覧 |
| GET | /v1/inbox/threads |
受信箱スレッド一覧。?channel_type= で絞り込み |
| GET | /v1/posts |
投稿一覧。?kind= で絞り込み |
| GET | /v1/analytics/sales |
所有ブランド横断の売上サマリ。?days=(1〜365・既定30) |
| GET | /v1/credits |
現在のクレジット残高 |
| GET | /v1/usage |
クレジット利用履歴と期間内の消費合計。?type=(consume/grant/refund)・?days= |
新着だけ取得(ポーリング用 since)
/v1/purchases・/v1/leads・/v1/inbox/threads・/v1/posts は ?since=<ISO8601> で「その日時以降の新規のみ」を取得できます。Zapier/Make などのポーリングトリガーで前回以降の差分を拾うのに使います(since の +00:00 は URL エンコードしてください)。
例
# 直近30日の売上サマリ
curl -H "Authorization: Bearer posti_xxxxxxxx" \
"https://posti.jp/v1/analytics/sales?days=30"
# → {"period_days":30,"since":"...","revenue_jpy":128000,"orders":9}
# 未対応の受信箱スレッドをLINEに絞って取得
curl -H "Authorization: Bearer posti_xxxxxxxx" \
"https://posti.jp/v1/inbox/threads?channel_type=line&limit=20"
返却されるのは個人情報・秘密情報を除いた安全な項目のみです(アクセストークン・決済の生ペイロード・内部IDなどは含まれません)。
Webhook(イベント通知)
posti 側のイベントを外部URLへ通知できます。
- サイドバーの
設定→Webhookを開く。 - 通知先URLと受け取るイベントを選び、作成する(署名検証用の
secretが発行される)。 - 「テスト送信」で疎通確認ができる。
通知できる主なイベント:
| イベント | 発生タイミング |
|---|---|
purchase.completed |
決済が完了した(Univapay/Stripe/PayPal) |
purchase.refunded |
返金された(PayPal) |
subscriber.created |
新しい見込み客(メール登録)が追加された |
webinar.reserved |
ウェビナーが予約された |
line.follower.added / line.follower.removed |
LINE友だちが増減した |
通知の本文は {"event": "...", "delivery_id": "...", "created_at": "...", "data": {...}} 形式で、ヘッダに X-Posti-Event と、secret 設定時は本文のHMAC-SHA256署名 X-Posti-Signature が付きます。data にはイベント別の情報(例: purchase.completed なら purchase_id / product_name / amount_jpy / email / provider / brand_id)が入ります。
Zapier / Make 連携
posti の API はキー認証の標準的な REST なので、Zapier・Make・n8n などのノーコードツールから接続できます。
トリガー(posti → 外部) — 2通り:
- ポーリング:
GET /v1/purchasesなどの一覧を?since=付きで定期取得し、新着(新しい購入・リード・受信箱メッセージ・投稿)を検知する。 - Webhook(プッシュ):
設定→Webhookで通知先URLとイベントを登録すると、イベント発生時に posti から即時通知される(署名secret付き)。
アクション(外部 → posti) — 各 POST エンドポイントをそのまま呼び出す:
- 投稿を作成(
POST /v1/posts)/記事を生成(POST /v1/articles)/広告を出稿(POST /v1/ads)/画像・動画・テキストを生成(POST /v1/generate/*・/v1/generate/batch)。
接続設定(汎用HTTPアクションの場合):
- 認証: HTTP ヘッダに
Authorization: Bearer <APIキー>を設定。 - トリガーは
GET+since(ポーリング)、またはWebhook受信。 - アクションは各エンドポイントへ
POST(JSON ボディ)。
残高の監視で自動チャージ
GET /v1/credits を定期取得し、残高が閾値を下回ったら通知・自動チャージを走らせる、といった運用も組めます。
レート制限
API キー単位でレート制限があります(目安: 1時間あたり1000リクエスト・1分あたり100リクエスト)。制限に達すると 429(rate limit exceeded)が返るので、時間を空けて再試行してください。
エラー
| ステータス | 意味 |
|---|---|
| 400 | リクエスト不正(必須項目不足など。error に理由) |
| 401 | APIキーが無い・無効 |
| 402 | クレジット残高不足(needed に必要数) |
| 404 | 対象が存在しない、または所有外 |
| 429 | レート制限 |
関連ページ
posti は招待制です。招待をお持ちの方は下記からお申し込みください。
申し込む →