Provider readinessInterfaces and provider certification may evolve. Check account capabilities before production use.Read the readiness contract

Choose draft, scheduled, or immediate mode

Use the required mode field to make every publishing intention explicit and auditable.

Direct answer

Every post requires mode: draft, scheduled, or immediate. Draft stores content without dispatch, scheduled requires an ISO-8601 publish_at, and immediate requests dispatch only after authorization and approval rules are satisfied. App9 Post never guesses that missing schedule data means publish now.

What this means in practice

Every post requires mode: draft, scheduled, or immediate. Draft stores content without dispatch, scheduled requires an ISO-8601 publish_at, and immediate requests dispatch only after authorization and approval rules are satisfied. App9 Post never guesses that missing schedule data means publish now.

Use the documented brand and account boundaries consistently across the scheduler, REST API, SDK, MCP tools, SSE consumers, and webhooks. That makes the same social operation explainable to an operator and reproducible by an integration.

Implementation checklist

  1. Use draft for incomplete content, collaboration, or approval preparation.

  2. Use scheduled only with an explicit publish_at and brand timezone context.

  3. Use immediate only after a clear user action or trusted server-side rule.

  4. Preview the final per-account payload before moving beyond draft.

  5. Record the post and target states instead of treating the request response as final delivery.

Example request

This example uses a server-side API key and an explicit brand selection. Replace placeholder values and keep credentials out of browser bundles, client logs, and source control.

Shell
curl --request POST \
  --url 'https://postapi.app9.co/v1/social-posts' \
  --header 'Authorization: Bearer APP9_POST_API_KEY' \
  --header 'X-App9-Post-Brand: BRAND_ID' \
  --header 'Content-Type: application/json' \
  --data '{
  "caption": "Launch day is here.",
  "mode": "scheduled",
  "publish_at": "2026-08-20T15:00:00Z",
  "timezone": "America/New_York",
  "target_account_ids": [
    "acct_instagram",
    "acct_linkedin"
  ],
  "media_ids": []
}'

Operational details

A mode describes intent; workflow state describes what has actually happened.

Approval policy can keep a scheduled or immediate post in review until an approver acts.

API keys need posts:publish and brand permission to bypass review where allowed.

Common mistakes to avoid

Protect intent, tenant boundaries, and provider state.
  • Do not infer immediate mode from a missing publish_at.
  • Do not label a queued target as published before provider confirmation.
  • Do not change mode silently when a provider cannot support a requested draft behavior.

Was this useful? This documentation is reviewed against the public App9 Post contract. Use the API reference and live capability response for machine-enforced details.

Open API reference