100 free credits. No credit card required.Start building
Logo
How-to guide

How to track an Instagram account and catch every new post

Call instagram/profile/posts with the handle and set since to the date of your previous run, written as YYYY-MM-DD. Posts come back newest first, so each daily run reads only what is new and you pay only for the pages the walk reads, often just one. A run costs 1 credit.

The calls, in order

Each step is one request to the SocialCrawl API. Copy the curl, add your key and run it.

  1. List Instagram user posts

    since is the date of your previous run, as YYYY-MM-DD; leave it out on the first run.

    1 credit per call
    curl
    curl -H "x-api-key: YOUR_API_KEY" \
      "https://www.socialcrawl.dev/v1/instagram/profile/posts?handle=instagram&since={last_run_date}"
    Try this call on its endpoint page: List Instagram user posts

What comes back

A real response from instagram/profile/posts, captured from the SocialCrawl API, with long lists cut to two rows.

JSON
{
  "success": true,
  "platform": "instagram",
  "endpoint": "/v1/instagram/profile/posts",
  "data": {
    "items": [
      {
        "post": {
          "id": "3998430248382584993",
          "url": "https://www.instagram.com/instagram/p/Dd9RyBWBVih/",
          "content": {
            "text": "DIY fish squishy 🐟⁣\n⁣\n@yano4kaa.a made this squishy using stuff she already had at home like paper, tape and a balloon.⁣\n⁣\n“You don’t need a lot of specialized materials to be creative. I love showing people that even simple, everyday things can be turned into something fun and unique.”⁣\n⁣\nVideo by @yano4kaa.a⁣\n⁣\nMusic by @stuckinreboot",
            "media_urls": "https://scontent-lga3-1.cdninstagram.com/user_2352da/v/t2/f2/m86/AQPSpP2QuNVX3DLKJj_iVnYb1-7O4TvN-6jnTrP6GilIPrOETMuukhTDS4u1TIP4bPclqcmkRt5xRhf_riabqCVglEj4OOOd7urAGH4.mp4?_nc_cat=1&_nc_sid=5e9851&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_ohc=KOrZ8GyXaWAQ7kNvwF0Qd_1&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MjU1MzkwMTk1ODM2NDg1MywiYXNzZXRfYWdlX2RheXMiOjAsInZpX3VzZWNhc2VfaWQiOjEwMDk5LCJkdXJhdGlvbl9zIjoxNiwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=c75ac1ac96fb374e&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC8xNkRGOEU0RDYwODg0OTE3OEJERDEyREJBMUI5MDJCRV92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyL0VGMkI3RUJGRkJDMzQyNjZCRjg4ODhCMEU1MzBFMzU4X2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACbq-qew1LCJCRUCKAJDMywXQDC7peNT988YEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=G3uMBN09BK9EqSVNHLn79w&_nc_ss=7a3ba&_nc_zt=28&oh=00_AQM73m7l70TnxGhZdIHtm0tElD_rkP0hp0IxwdvsbUR_KA&oe=6AC132A4",
            "thumbnail_url": "https://scontent-lga3-1.cdninstagram.com/user_4c9448/t51.82787-15/830594125_18798964129001321_5625309391674938800_n.jpg?stp=dst-jpg_e15_p480x480_tt6&_nc_cat=1&ig_cache_key=Mzk5ODQzMDI0ODM4MjU4NDk5MzE4Nzk4OTY0MTI2MDAxMzIx.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEwODAuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=96cE-ef30S0Q7kNvwHGr9Kl&_nc_oc=Adr0sX7ZPbPM3cFgNKkRAzrGPna4jH-mGW_UqPU6wKOnqQPm3pft9dKzpqRr_u7qMow&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_gid=G3uMBN09BK9EqSVNHLn79w&_nc_ss=7a3ba&oh=00_AQN_OuJN18aiFezdriVwh5-QqdzuOynH1LD3yY26gXNAIA&oe=6AC54485",
            "duration_seconds": 16.74
          },
          "author": {
            "username": "instagram",
            "display_name": "Instagram",
            "avatar_url": "https://example.com/redacted",
            "verified": true
          },
          "engagement": {
            "views": 72071593,
            "likes": 328198,
            "comments": 4498,
            "shares": null,
            "saves": null
          },
          "flags": {
            "nsfw": null,
            "spoiler": null,
            "pinned": false,
            "deleted": false
          },
          "published_at": "2026-10-01T15:59:45.000Z",
          "ext": {
            "author_id": "user_040e32",
            "media_type": "video",
            "published_at_epoch": 1790870385,
            "coauthors": []
          }
        },
        "computed": {
          "engagement_rate": 0.004616,
          "language": "en",
          "content_category": "lifestyle",
          "estimated_reach": 86485912,
          "vs_creator": {
            "ratio": null,
            "metric": "views",
            "reason": "too_young"
          },
          "labels": {
            "sponsored": {
              "p": 0.03,
              "disclosed": false,
              "undisclosed": false,
              "brand": null
            },
            "intent": {
              "label": null,
              "confidence": 0.45,
              "buyer": false,
              "seller": 0.18,
              "fits_offer": null,
              "urgency": 0.01
            },
            "niche": {
              "label": "diy_crafts",
              "confidence": 1,
              "taxonomy": "sc-niche-v1"
            }
          }
        }
      },
      {
        "post": {
          "id": "3997798548002238943",
          "url": "https://www.instagram.com/instagram/p/Dd7CJkhPvHf/",
          "content": {
            "text": "Four dancers, one crew 🔥💃⁣\n⁣\n@hook_dancekorea mixes Korean traditional culture, K-pop and hip-hop into their own style.⁣\n⁣\n“We capture a lot of the free-spirited vibes that naturally emerge during our practice sessions. Since our members have diverse hobbies outside of dance, we bring a rich variety of styles into our work.”⁣\n⁣\nVideo by @hook_dancekorea⁣\n⁣\nMusic by @xuminghao_o⁣ and @vernonline\n⁣\nChoreography by @teamsame_official",
            "media_urls": "https://scontent-lga3-1.cdninstagram.com/user_2352da/v/t2/f2/m86/AQOXIkIK55DzAi2_DogPBk6_wrFDq3NlAAmqrvawi52g7mxe5kqFrQwSNR_rZc8vWAtbyKzIR4K9CHxAhzKfICYK_a3sydtZtRnmDE4.mp4?_nc_cat=1&_nc_sid=5e9851&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_ohc=to3rRxWBcRsQ7kNvwF6Gyvz&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTA4MjYwMzQ5MTAzMjI5MSwiYXNzZXRfYWdlX2RheXMiOjEsInZpX3VzZWNhc2VfaWQiOjEwMDk5LCJkdXJhdGlvbl9zIjoxOSwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=6debc38ce296c7dd&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC8xRTdBODY2M0Q2MEQ0QjU3ODg0MUVENEY1Qjc5QUZBRV92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzU1RDRGQTgzNzQ2MDQ5RUY5QkI1NTU3NEY2OTkzNDlBX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACbG85_I6KfsAxUCKAJDMywXQDM7peNT988YEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=G3uMBN09BK9EqSVNHLn79w&_nc_ss=7a3ba&_nc_zt=28&oh=00_AQN618Yr0iG64BVsraQbKpygXq5AIjV_w80QI72hRddhTQ&oe=6AC15183",
            "thumbnail_url": "https://scontent-lga3-1.cdninstagram.com/user_4c9448/t51.82787-15/830434625_18798675220001321_2218595363940657891_n.jpg?stp=dst-jpg_e15_p480x480_tt6&_nc_cat=1&ig_cache_key=Mzk5Nzc5ODU0ODAwMjIzODk0MzE4Nzk4Njc1MjE3MDAxMzIx.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEwODAuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=9ZwQwwKfriMQ7kNvwE2MbNk&_nc_oc=AdpRD9nYhmsx6I_RwJ6iCkbSsrmevou8dSGfJt6kndpdDdSsxqyQ4fyhcV3BfTfz5ws&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_gid=G3uMBN09BK9EqSVNHLn79w&_nc_ss=7a3ba&oh=00_AQMSFhlbr0Zy1lDOVyVxq_iRp2QCSOsJTzeVKE2llECQ2A&oe=6AC546AD",
            "duration_seconds": 19.248
          },
          "author": {
            "username": "instagram",
            "display_name": "Instagram",
            "avatar_url": "https://example.com/redacted",
            "verified": true
          },
          "engagement": {
            "views": 74760320,
            "likes": 609412,
            "comments": 6808,
            "shares": null,
            "saves": null
          },
          "flags": {
            "nsfw": null,
            "spoiler": null,
            "pinned": false,
            "deleted": false
          },
          "published_at": "2026-09-30T19:04:54.000Z",
          "ext": {
            "author_id": "user_040e32",
            "media_type": "video",
            "published_at_epoch": 1790795094,
            "coauthors": []
          }
        },
        "computed": {
          "engagement_rate": 0.008243,
          "language": "en",
          "content_category": "other",
          "estimated_reach": 89712384,
          "vs_creator": {
            "ratio": null,
            "metric": "views",
            "reason": "too_young"
          },
          "labels": {
            "sponsored": {
              "p": 0.03,
              "disclosed": false,
              "undisclosed": false,
              "brand": null
            },
            "intent": {
              "label": "promoting",
              "confidence": 0.63,
              "buyer": false,
              "seller": 0.25,
              "fits_offer": null,
              "urgency": 0
            },
            "niche": {
              "label": "dance",
              "confidence": 1,
              "taxonomy": "sc-niche-v1"
            }
          }
        }
      }
    ],
    "next_cursor": "sc2.eyJzIjoiYiIsImMiOiIzOTkzNTU4MTg3MDAxMTkxMDc5XzI1MDI1MzIwIn0",
    "total": null,
    "creator_baseline": {
      "baseline": {
        "rows_used": 9,
        "median_views": 49348093,
        "median_likes": 257224,
        "median_comments": 5814,
        "median_gap_hours": 9.51,
        "median_saves_per_view": null,
        "median_shares_per_view": null
      },
      "reason": null,
      "rows_used": 9,
      "cadence": "measured"
    },
    "labels": {
      "presets": [
        "sponsored",
        "intent"
      ],
      "rows": 12,
      "labelled": 12,
      "cached": 12,
      "skipped": 0,
      "unjudged": 0,
      "dropped": 0,
      "dropped_ids": [],
      "extra_credits": 0,
      "methodology_version": "labels/1",
      "mode": "default",
      "status": "complete",
      "pending": 0,
      "pending_ids": []
    },
    "dropped": 0
  },
  "credits_used": 1,
  "request_id": "req_example000000",
  "cached": false,
  "pagination": {
    "next_cursor": "sc.eyJ2IjoyLCJjIjoic2MyLmV5SnpJam9pWWlJc0ltTWlPaUl6T1Rrek5UVTRNVGczTURBeE1Ua3hNRGM1WHpJMU1ESTFNekl3SW4wIiwiZSI6Imluc3RhZ3JhbS9wcm9maWxlL3Bvc3RzIiwicCI6Im5leHRfbWF4X2lkIn0",
    "has_more": true,
    "page_size": 12,
    "stopped_at": null
  },
  "credits_remaining": 9999,
  "source": "captured",
  "captured_at": "2026-10-02T07:22:40.039Z",
  "redacted": true
}

Hand this job to your coding agent

Paste this prompt into Claude Code, Cursor or any agent that can make HTTP requests. It names every endpoint and parameter the job needs.

Prompt
Use the SocialCrawl API for this job: Poll a creator's new posts every day and pay only for the pages with posts you do not have yet.
Base URL: https://www.socialcrawl.dev. Send the API key in the x-api-key header (an Authorization: Bearer header also works). Values in braces are placeholders to fill.
1. GET /v1/instagram/profile/posts?handle=instagram&since={last_run_date} (since is the date of your previous run, as YYYY-MM-DD; leave it out on the first run.)
Every response is JSON with data, credits_used and request_id. The full endpoint reference is at https://www.socialcrawl.dev/llms.txt.
FAQ

Have a question? We got answers

Find answers to frequently asked questions about SocialCrawl's API, pricing, and capabilities.

Contact us
What do I set since to on the first run?
Leave since out on the first run, which returns the newest posts and a cursor into older ones. On every later run set it to the date of the previous run, as YYYY-MM-DD, and only newer posts are returned.
What does each post contain?
Each post has the caption, like and comment counts, media url, media type and timestamp, plus a computed engagement rate, language and estimated reach. The response also gives a creator baseline of median likes and comments.
Do I get share counts?
This endpoint does not return them. The registry says profile/posts/full adds per-post share counts, so use that one when shares matter and this one for a plain feed pull.
How do I handle collab posts?
On a collab post the author is whoever created it, so read ext.coauthors to see everyone on the post. Count every coauthor when you attribute reach or engagement to the account you are tracking.
How do I run this every day?
Schedule the call with your own cron job or worker and store the date of each successful run to feed the next since value. The request is the same every time, so the only state you keep is that date.
How much does one run cost?
One run of the example above costs 1 credit across one API call. Every new account gets 100 free credits, credits for failed or empty calls are refunded automatically, and there is no subscription.

Ask AI about SocialCrawl