The HoopAI Platform Social Planner REST API gives you complete programmatic control over social media publishing. Create and schedule posts to multiple connected accounts, manage OAuth connections for Facebook, Instagram, LinkedIn, Google My Business, Twitter/X, and TikTok, bulk-upload posts via CSV, and organize content with categories, tags, and category queues — all from your own application.
Base URL
https://services.leadconnectorhq.com
Authentication
Every request requires a Bearer token and an API version header.
Authorization: Bearer <access_token>
Version: 2021-07-28
Use an access token generated with user type Sub-Account, or a Private Integration Token from a Sub-Account. See OAuth 2.0 for details.
OAuth start endpoints (e.g. /social-media-posting/oauth/facebook/start) must be opened in a browser, not called with cURL. They redirect the user to the platform login screen and return an accountId via a window message event. Use that accountId with the corresponding attach endpoint to complete the connection.
OAuth scopes
| Scope | Access granted |
|---|
socialplanner/post.readonly | Read posts |
socialplanner/post.write | Create, update, and delete posts |
socialplanner/account.readonly | Read connected social accounts |
socialplanner/account.write | Connect and remove social accounts |
socialplanner/csv.readonly | Read CSV uploads |
socialplanner/csv.write | Upload and manage CSV bulk posts |
socialplanner/category.readonly | Read post categories |
socialplanner/tag.readonly | Read post tags |
Quick start
Create a new social media post:
curl -X POST "https://services.leadconnectorhq.com/social-media-posting/<locationId>/posts" \
-H "Authorization: Bearer <access_token>" \
-H "Version: 2021-07-28" \
-H "Content-Type: application/json" \
-d '{
"accountIds": ["<accountId>"],
"summary": "Check out our latest update!",
"scheduleDate": "2026-04-01T10:00:00.000Z"
}'
Endpoints
Posts
| Method | Path | Description |
|---|
POST | /social-media-posting/{locationId}/posts/list | Get posts |
POST | /social-media-posting/{locationId}/posts | Create post |
GET | /social-media-posting/{locationId}/posts/{id} | Get post |
PUT | /social-media-posting/{locationId}/posts/{id} | Edit post |
DELETE | /social-media-posting/{locationId}/posts/{id} | Delete post |
POST | /social-media-posting/{locationId}/posts/bulk-delete | Bulk delete posts |
Accounts
| Method | Path | Description |
|---|
GET | /social-media-posting/{locationId}/accounts | Get accounts |
DELETE | /social-media-posting/{locationId}/accounts/{id} | Delete account |
OAuth — Google
| Method | Path | Description |
|---|
GET | /social-media-posting/oauth/google/start | Start Google OAuth |
GET | /social-media-posting/oauth/{locationId}/google/locations/{accountId} | Get Google business locations |
POST | /social-media-posting/oauth/{locationId}/google/locations/{accountId} | Set Google business locations |
OAuth — Facebook
| Method | Path | Description |
|---|
GET | /social-media-posting/oauth/facebook/start | Start Facebook OAuth |
GET | /social-media-posting/oauth/{locationId}/facebook/accounts/{accountId} | Get Facebook pages |
POST | /social-media-posting/oauth/{locationId}/facebook/accounts/{accountId} | Attach Facebook pages |
OAuth — Instagram
| Method | Path | Description |
|---|
GET | /social-media-posting/oauth/instagram/start | Start Instagram OAuth |
GET | /social-media-posting/oauth/{locationId}/instagram/accounts/{accountId} | Get Instagram professional accounts |
POST | /social-media-posting/oauth/{locationId}/instagram/accounts/{accountId} | Attach Instagram professional accounts |
OAuth — LinkedIn
| Method | Path | Description |
|---|
GET | /social-media-posting/oauth/linkedin/start | Start LinkedIn OAuth |
GET | /social-media-posting/oauth/{locationId}/linkedin/accounts/{accountId} | Get LinkedIn pages and profile |
POST | /social-media-posting/oauth/{locationId}/linkedin/accounts/{accountId} | Attach LinkedIn pages and profile |
| Method | Path | Description |
|---|
GET | /social-media-posting/oauth/twitter/start | Start Twitter OAuth |
GET | /social-media-posting/oauth/{locationId}/twitter/accounts/{accountId} | Get Twitter profile |
POST | /social-media-posting/oauth/{locationId}/twitter/accounts/{accountId} | Attach Twitter profile |
OAuth — TikTok
| Method | Path | Description |
|---|
GET | /social-media-posting/oauth/tiktok/start | Start TikTok OAuth |
GET | /social-media-posting/oauth/{locationId}/tiktok/accounts/{accountId} | Get TikTok profile |
POST | /social-media-posting/oauth/{locationId}/tiktok/accounts/{accountId} | Attach TikTok profile |
GET | /social-media-posting/oauth/tiktok-business/start | Start TikTok Business OAuth |
GET | /social-media-posting/oauth/{locationId}/tiktok-business/accounts/{accountId} | Get TikTok Business profile |
OAuth — Generic
| Method | Path | Description |
|---|
GET | /social-media-posting/oauth/{platform}/start | Start OAuth for any supported platform |
GET | /social-media-posting/oauth/{locationId}/{platform}/accounts/{accountId} | Get OAuth accounts |
POST | /social-media-posting/oauth/{locationId}/{platform}/accounts/{accountId} | Attach OAuth accounts |
CSV bulk upload
| Method | Path | Description |
|---|
POST | /social-media-posting/{locationId}/csv | Upload CSV |
GET | /social-media-posting/{locationId}/csv | Get CSV upload status |
POST | /social-media-posting/{locationId}/set-accounts | Set accounts for CSV |
GET | /social-media-posting/{locationId}/csv/{id} | Get CSV post |
PATCH | /social-media-posting/{locationId}/csv/{id} | Finalize CSV |
DELETE | /social-media-posting/{locationId}/csv/{id} | Delete CSV |
DELETE | /social-media-posting/{locationId}/csv/{csvId}/post/{postId} | Delete CSV post |
| Method | Path | Description |
|---|
GET | /social-media-posting/{locationId}/categories | Get categories by location |
GET | /social-media-posting/{locationId}/categories/{id} | Get category by ID |
GET | /social-media-posting/{locationId}/tags | Get tags by location |
POST | /social-media-posting/{locationId}/tags/details | Get tags by IDs |
Statistics
| Method | Path | Description |
|---|
POST | /social-media-posting/statistics | Get social media statistics |
Category queues
| Method | Path | Description |
|---|
GET | /social-media-posting/category/queues/available-categories | Get available categories |
POST | /social-media-posting/category/queues | Create queue |
POST | /social-media-posting/category/queues/list | Fetch queues |
POST | /social-media-posting/category/queues/list/calendar | Fetch calendar list |
GET | /social-media-posting/category/queues/{queueId} | Fetch queue by ID |
PUT | /social-media-posting/category/queues/{queueId} | Update queue |
DELETE | /social-media-posting/category/queues/{queueId}/active-post | Delete active post |
POST | /social-media-posting/category/queues/{queueId}/items | Fetch queue items |
POST | /social-media-posting/category/queues/{queueId}/create/item | Create queue item |
DELETE | /social-media-posting/category/queues/{queueId}/items/{itemId} | Delete queue item |
PUT | /social-media-posting/category/queues/{queueId}/items/{itemId} | Update queue item |
PUT | /social-media-posting/category/queues/{queueId}/items/{itemId}/reset | Reset queue item |
POST | /social-media-posting/category/queues/{queueId}/items/{itemId}/clone | Clone queue item |
POST | /social-media-posting/category/queues/{queueId}/slots | Fetch queue slots |
POST | /social-media-posting/category/queues/{queueId}/edit/start | Start edit session |
POST | /social-media-posting/category/queues/{queueId}/edit/save | Save edit session |
POST | /social-media-posting/category/queues/{queueId}/edit/discard | Discard edit session |
POST | /social-media-posting/category/queues/{queueId}/edit/calendar | Fetch edit session calendar |