Request access
Create an Apionics account and request early access. Once approved, your workspace keeps API keys, accounts, approval rules, and audit logs isolated.
Request API accessGenerate an API key
Open your dashboard and create a key with publish scope. Store it as an environment variable before making API calls.
export APIONICS_API_KEY="apionics_live_..."
Connect a social account
Connect Instagram or Facebook from Accounts. Apionics stores account IDs such as acc_123, which you pass into publish requests.
Queue your first publish
Send a publish request with an Idempotency-Key so retries do not create duplicate jobs. The API accepts the job immediately and sends final state asynchronously.
curl -X POST https://api.apionics.com/v1/publish \
-H "Authorization: Bearer $APIONICS_API_KEY" \
-H "Idempotency-Key: quickstart-001" \
-H "Content-Type: application/json" \
-d '{
"content": "Hello from Apionics",
"platforms": ["instagram", "facebook"],
"accounts": ["acc_123"],
"schedule": "now"
}'Handle the response
A successful request returns a queued publish job. Store the post ID so your app can reconcile dashboard state, webhook events, and support logs.
{
"id": "post_789",
"status": "queued",
"platforms": ["instagram", "facebook"],
"tasks": [
{ "account_id": "acc_123", "platform": "instagram", "status": "queued" }
]
}Receive completion by webhook
Publishing is asynchronous because each platform validates media, account permissions, and rate limits differently. Use webhooks as the source of truth.
{
"event": "publish.completed",
"post_id": "post_789",
"platform": "instagram",
"account_id": "acc_123",
"status": "published"
}Verify in the dashboard
Open Posts, Logs, or Audit Logs in your Apionics dashboard. You should see the job move from queued to published, or a platform-specific failure reason if the platform rejects it.
Open dashboard