Social Bulk Delete Setup
Delete multiple social media posts in a single API call. This is useful for cleaning up old drafts, removing failed posts, or batch-clearing scheduled content. This quick-start covers authentication, your first bulk delete, and confirming the results.
Prerequisites
Before making your first Social Bulk Delete call, confirm you have:
- A GoHighLevel sub-account with existing social media posts you want to delete
- Access to Settings > Integrations > Private Integrations in your sub-account
- A REST client such as Postman, Insomnia, or
curlin your terminal - Your sub-account’s
locationId(found in Settings > Business Profile) - The post IDs of the posts you want to delete (retrieve them via the Social Post Search endpoint first)
Set Up Authentication
The bulk delete endpoint requires a Private Integration Token (PIT) with the social-media-posting scope.
Navigate to Settings > Integrations > Private Integrations. Click Create New Integration, name it “Social Bulk Ops,” and enable the social-media-posting scope. Click Save and copy the generated token.
Pass this token in the Authorization header as a Bearer token. Set your base URL to https://services.leadconnectorhq.com. Include Content-Type: application/json and the Version: 2021-07-28 header.
Make Your First Call
Send a POST request to /social-media-posting/post/bulk-delete with an array of post IDs:
POST /social-media-posting/post/bulk-delete
Authorization: Bearer {your-pit-token}
Content-Type: application/json
{
"locationId": "your-location-id",
"postIds": [
"post-id-1",
"post-id-2",
"post-id-3"
]
}
The postIds array accepts multiple post IDs to delete in one call. This is significantly more efficient than calling DELETE /social-media-posting/post/{id} individually for each post.
To collect post IDs for deletion, first use the Social Post Search endpoint with filters like status=draft or a date range to find the posts you want to remove. Extract the id field from each result and pass them into the bulk delete request.
Handle the Response
A successful call returns a 200 status with a summary of the deletion results:
{
"success": true,
"deleted": 3,
"failed": 0
}
If some posts fail to delete, the response includes details about which post IDs failed and why. Common failure reasons include posts that are currently being published, posts that have already been deleted, or invalid post IDs.
Common errors: 400 means the postIds array is empty or malformed. 401 means your token is invalid. 404 means one or more post IDs do not exist. Posts that have already been published on external platforms will be removed from GHL but may remain visible on the platform itself.
Test Your Setup
Run through this checklist to confirm everything works:
- Create 2-3 draft posts using Social Post CRUD for testing
- Search for them with
GET /social-media-posting/posts/search?status=draftto collect their IDs - Bulk delete them with
POST /social-media-posting/post/bulk-delete - Verify the response shows the correct count in the
deletedfield - Confirm the posts no longer appear in Marketing > Social Planner in the GHL dashboard
If deletions fail, verify that the post IDs are correct and that the posts are not currently mid-publish. Re-fetch the post list to confirm the current state.
Next Steps
Read the full Social Bulk Delete Guide for patterns around safe batch cleanup and automation. From here, explore Social Post Search for building filtered queries and Social CSV Import for bulk-importing new content.