Skip to main content
Empty dashboards are sad. Use the History Import API to fetch existing content from connected accounts.

How it works

This is an asynchronous job. You don’t get the posts instantly.
  1. Start: You trigger a job (“Go fetch 50 posts from Instagram”).
  2. Wait: We queue it, talk to the platform, and crunch the data.
  3. Poll: You check if we’re done.
  4. Fetch: You download the results.

Step 1: Start the Job

Endpoint: POST /api/v1/post-history-import
{
  "teamId": "team_123",
  "socialAccountType": "INSTAGRAM",
  "count": 50, // Max 100 per batch
  "withAnalytics": true
}
Limits:
  • Free: 5 posts / month (Demo mode)
  • Pro: 100 posts / month
  • Business: 250 posts / month
Why limits? Historical imports are expensive on API tokens. We have to be stingy here to keep the service cheap for everyone.

Step 2: Check Status

Endpoint: GET /api/v1/post-history-import?teamId=... You’ll see a list of jobs with statuses:
  • PENDING: In queue.
  • FETCHING_POSTS: Talking to Instagram…
  • COMPLETED: Done!
  • FAILED: Something exploded.
  • RATE_LIMITED: Platform said “slow down”. We paused it for you.

Step 3: Get the Loot

Endpoint: GET /api/v1/post-history-import/posts Once status is COMPLETED, call this to get the actual data.
{
  "posts": [
    {
      "title": "My Cat Video",
      "analytics": {
        "likes": 1337,
        "impressions": 42000
      }
    }
  ]
}

Handling Rate Limits

If a job hits RATE_LIMITED, don’t panic. It means we hit the platform’s cap (e.g. LinkedIn API limits).
  • We automatically pause the job.
  • We set a rateLimitResetAt timestamp.
  • You can retry it after that time.

Need More?

We’re flexible with import requirements. If you have a specific use case—bulk historical imports, custom date ranges, or higher volume needs-contact us. We’ll work with you to find a solution.