Social Post Search Setup
Search and filter social media posts by platform, status, and date range. This quick-start covers authentication, building your first search query, and paginating through results.
Prerequisites
Before making your first Social Post Search call, confirm you have:
- A GoHighLevel sub-account with existing social media posts (scheduled, published, or draft)
- 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)
You do not need connected social accounts to search existing posts, but you will need them to have posts to search in the first place.
Set Up Authentication
All Social Post Search endpoints require a Private Integration Token (PIT) with the social-media-posting scope.
Navigate to Settings > Integrations > Private Integrations. Click Create New Integration, name it “Social Search API,” and enable the social-media-posting scope. Click Save and copy the generated token.
Pass this token in the Authorization header of every request as a Bearer token. Set your base URL to https://services.leadconnectorhq.com. Include the Version: 2021-07-28 header with each request.
Make Your First Call
Search posts using GET /social-media-posting/posts/search with query parameters:
GET /social-media-posting/posts/search?locationId=your-location-id&status=published&limit=20&offset=0
Authorization: Bearer {your-pit-token}
Supported filter parameters include:
locationId(required) — your sub-account IDstatus— filter by"scheduled","published","draft", or"failed"platform— filter by"facebook","instagram","twitter","linkedin","gmb", or"tiktok"startDateandendDate— ISO 8601 date range for filtering by schedule or publish datelimit— number of results per page (default 20, max 100)offset— pagination offset for fetching subsequent pages
Combine multiple filters to narrow results. For example, add &platform=instagram&status=published to find only published Instagram posts.
Handle the Response
A successful call returns a 200 status with an array of post objects and pagination metadata:
{
"posts": [
{
"id": "post-123",
"post": "Your caption text here",
"status": "published",
"platform": "instagram",
"scheduleDate": "2026-03-05T10:00:00Z",
"accountIds": ["acct-456"]
}
],
"total": 47,
"limit": 20,
"offset": 0
}
Use total, limit, and offset to calculate pagination. If total exceeds your limit, increment offset by limit and repeat the call until you have fetched all results.
Common errors: 400 means a filter parameter is malformed. 401 means your token is invalid. If the response returns an empty posts array, verify that your locationId is correct and that posts exist for the given filters.
Test Your Setup
Run through this checklist to confirm everything works:
- Search all posts with just
locationIdand verify results return - Filter by status — add
status=draftand confirm only drafts appear - Filter by platform — add
platform=facebookand confirm only Facebook posts return - Test pagination — set
limit=5and incrementoffsetto page through results - Filter by date — add
startDateandendDateto confirm date filtering works
If searches return unexpected results, double-check your locationId and ensure posts exist in the GHL Social Planner for the filters you are using.
Next Steps
Read the full Social Post Search Guide for advanced search patterns and reporting workflows. From here, explore Social Post CRUD for creating and managing posts and Social Tags for organizing content by tag.