- You request an import for a specific social account.
- The system queues the job and processes it in the background.
- You can poll the status of the import.
- Once completed, you can retrieve the imported posts and their analytics.
Limits: There is a monthly limit on the number of posts you can import per social account, depending on your subscription tier.
- Free: 5 posts / month
- Pro: 100 posts / month
- Business: 250 posts / month
- We can set custom limits depending on your needs
Step 1: Start an Import
Initiate a new import job. You must specify the team ID and the social account type. Endpoint:POST /api/v1/post-history-import
Parameters
teamId(required) — The ID of the team where the social account is connected.socialAccountType(required) — The platform to import from. Supported values:FACEBOOK,INSTAGRAM,THREADS,TIKTOK,YOUTUBE,LINKEDIN,PINTEREST,REDDIT,MASTODON,BLUESKY.count(required) — Number of posts to import (max 100 in one import).withAnalytics(optional) — Whether to fetch analytics data for the posts (default:true).
PENDING status.
Step 2: Check Import Status
You can check the progress of your imports. The status can bePENDING, FETCHING_POSTS, FETCHING_ANALYTICS, COMPLETED, FAILED, or RATE_LIMITED.
Endpoint: GET /api/v1/post-history-import
Query Parameters
teamId(required)socialAccountType(optional) — Filter by platform.
GET /api/v1/post-history-import/{importId}
Step 3: Retrieve Imported Posts
Once the import isCOMPLETED, you can fetch the posts.
Endpoint: GET /api/v1/post-history-import/posts
Query Parameters
teamId(required)socialAccountType(required)limit(optional) — Max number of posts to return (default 50, max 100).offset(optional) — Pagination offset (default 0).
Step 4: Retry (If needed)
If an import fails (e.g., due to temporary network issues), you can retry it. Endpoint:POST /api/v1/post-history-import/{importId}/retry
Body
teamId(required)
Handling Rate Limits
If an import enters theRATE_LIMITED status, it means the social platform’s API rate limits have been hit. The system will automatically pause and may retry later, or you can manually retry after the rateLimitResetAt time passed.