Use account capability discovery
Render only the formats, metrics, inbox actions, and media constraints a connected account currently supports.
Fetch GET /v1/social-accounts/:id/capabilities after connection and whenever provider access changes. Treat the returned matrix as the shared source for UI controls, validation, API decisions, and AI tool behavior instead of hardcoding platform assumptions.
What this means in practice
Fetch GET /v1/social-accounts/:id/capabilities after connection and whenever provider access changes. Treat the returned matrix as the shared source for UI controls, validation, API decisions, and AI tool behavior instead of hardcoding platform assumptions.
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
Load capabilities before opening a composer for one or more accounts.
Intersect capabilities for common controls and retain per-account overrides where support differs.
Display provider constraints before upload or schedule submission.
Refresh after reconnect, permission changes, provider migrations, or a capability-version event.
Keep unsupported metrics null and unsupported actions read-only with a provider deep link.
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.
curl --request GET \
--url 'https://postapi.app9.co/v1/social-accounts/ACCOUNT_ID/capabilities' \
--header 'Authorization: Bearer APP9_POST_API_KEY' \
--header 'X-App9-Post-Brand: BRAND_ID'Operational details
Capabilities cover publishing formats, media limits, feeds, analytics, comments, mentions, messages, replies, and remote deletion.
Two accounts on the same provider may differ because of account type, region, scopes, or provider review state.
App9 Post validates requests again on the server even when a client already used the matrix.
Common mistakes to avoid
- Do not assume every Instagram account supports identical publishing surfaces.
- Do not translate unsupported analytics into zero because that changes the meaning of reports.
- Do not let an AI assistant call tools that the selected account capability matrix forbids.