Returns campaigns for the authenticated user. Supports view, search, limit, and offset.
Request
curl "https://creatortool.net/api/social/campaigns?view=scheduled&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"success": true,
"message": "OK",
"data": [
{
"id": 19,
"title": "Launch week rollout",
"master_title": "New collection now live",
"media_asset_id": 42,
"media_title": "Launch reel",
"media_type": "video",
"status": "scheduled",
"status_label": "Scheduled",
"publish_mode": "schedule",
"scheduled_at": "2026-07-10 14:00:00",
"target_count": 4
}
]
}
POST
/social/campaign/create
Creates a draft, publish-now, or scheduled campaign. You can reference existing media IDs, upload multipart media, or import media from public HTTPS URLs.
Common fields: title, master_title, master_caption, media_asset_id, slideshow_media_asset_ids, publish_mode, scheduled_at, social_account_ids, targets.
targets may be supplied with social_account_ids to add destination-specific title_override, caption_override, privacy_setting, and extra_payload values.
TikTok direct publishing requires an allowed privacy_setting plus explicit tiktok_music_usage_confirmed and tiktok_upload_consent_confirmed values in that target's extra_payload.
Single media sources: media_asset_id, multipart media_file, or media_url/file_url.
Slideshow sources: slideshow_media_asset_ids, multipart slideshow_media_files[], or slideshow_media_urls[].
Request
curl -X POST "https://creatortool.net/api/social/campaign/create" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Launch week rollout",
"master_title": "New collection now live",
"master_caption": "Master caption here",
"media_asset_id": 42,
"publish_mode": "publish_now",
"social_account_ids": [14, 18],
"targets": [
{
"social_account_id": 18,
"privacy_setting": "PUBLIC_TO_EVERYONE",
"extra_payload": {
"tiktok_music_usage_confirmed": true,
"tiktok_upload_consent_confirmed": true
}
}
]
}'
Response
{
"success": true,
"message": "Campaign saved.",
"data": {
"campaign_id": 19
}
}
POST
/social/campaign/schedule
Creates a scheduled campaign. This route sets publish_mode to schedule and requires scheduled_at in the future.
Request
curl -X POST "https://creatortool.net/api/social/campaign/schedule" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Friday reel push",
"master_title": "Weekend drop",
"master_caption": "Short master caption",
"media_asset_id": 42,
"scheduled_at": "2026-07-12 14:00:00",
"targets": [
{
"social_account_id": 14,
"caption_override": "Instagram version",
"privacy_setting": "public"
}
]
}'
Response
{
"success": true,
"message": "Campaign saved.",
"data": {
"campaign_id": 20
}
}
GET
/social/campaign/{id}
Returns one campaign owned by the authenticated user.
Request
curl "https://creatortool.net/api/social/campaign/19" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"success": true,
"message": "OK",
"data": {
"id": 19,
"title": "Launch week rollout",
"status": "scheduled",
"publish_mode": "schedule",
"scheduled_at": "2026-07-10 14:00:00",
"target_count": 4
}
}
GET
/social/campaign/{id}/targets
Returns destination-level targets for a campaign.
Request
curl "https://creatortool.net/api/social/campaign/19/targets" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"success": true,
"message": "OK",
"data": [
{
"id": 77,
"campaign_id": 19,
"social_account_id": 14,
"platform": "instagram",
"platform_label": "Instagram Pro",
"account_name": "Brand Studio",
"target_status": "processing",
"status_label": "Publishing",
"scheduled_for": "2026-07-10 14:00:00",
"last_error": ""
}
]
}