One request. The whole profile.
Authenticate with an apikey header and hit a single endpoint. You get the profile
and its 12 latest posts and reels back synchronously — no run to start, no dataset to poll. The
field names match Apify’s instagram-profile-scraper one-to-one.
$ curl -H "apikey: $GRABD_KEY" \ grabd.co/profile/leomessi
{
"id": "427553890",
"username": "leomessi",
"fullName": "Leo Messi",
"followersCount": 512207927,
"postsCount": 1522,
"verified": true,
"latestPosts": [{
"type": "Video",
"shortCode": "DZ_VUPItcc3",
"likesCount": 6038573,
"videoViewCount": 20183713,
"timestamp": "2026-06-25T01:06:30.000Z"
}, /* … 11 more */ ]
} Less to learn. Less to run. Less to pay.
Apify is a whole platform. If all you need is Instagram profile data, most of it is overhead. grabd does the one thing — returns the same shape you already parse, in a single round trip, for a fraction of the price.
Built for developers who just want the data.
- drop-in
Apify-compatible shape
Field-for-field parity with the instagram-profile-scraper actor. If you read items[0], read the body instead — that’s the whole migration.
- sync
One synchronous endpoint
GET /profile/:username. No actors to configure, no runs to start, no datasets to poll. Request in, JSON out.
- posts
Profile + 12 latest posts
Followers, bio, verification and business fields, plus the 12 most recent posts and reels with captions, likes, views, and timestamps.
- media
Signed CDN media URLs
Profile pictures, images, and video URLs come through as signed, time-limited CDN links — download promptly if you need to keep them.
- limits
Per-key rate limiting
600 requests per minute per key by default, with standard rate-limit headers. A runaway loop can’t surprise you.
- proxy
Pure proxy, no storage
We fetch live and return it. Your requested profiles and media are never persisted — only a short cache keeps repeat lookups fast.
Instagram data inside your AI agent. coming soon
An MCP server for Claude, Cursor, and other agents — no glue code, no SDK. Not built yet: ask for it when you request access and we’ll queue you up.
Planned tools
-
get_profileFetch a public Instagram profile and its 12 latest posts. -
get_postsFetch the latest posts and reels for a username.
Works with
- Claude
- Claude Code
- Cursor
- Windsurf
- any MCP client
{
"mcpServers": {
"grabd": {
"url": "https://mcp.grabd.co",
"headers": { "apikey": "$GRABD_KEY" }
}
}
} Preview of the intended configuration. The endpoint above is not live yet.
Join the MCP waitlist →Simpler pricing than Apify. Pay for volume, nothing else.
No compute units, no actor rental, no platform fee to reverse-engineer. Tell us the volume you expect and we’ll send a key and a number. Early access pricing is deliberately low.
-
Starter
Under 10k / month
Kicking the tires or a side project.
Request access → - most common
Growth
10k – 1M / month
A product in production that needs Instagram data.
Request access → -
Scale
1M+ / month
High volume. Dedicated capacity and a rate limit to match.
Request access →
Get a key.
Tell us where to reach you and roughly how many requests you expect per month. We’ll send an API key and early-access pricing. No credit card, no sales call.
- Drop-in replacement for the Apify actor
- Usage-based, early-access pricing
- Reply from a human, usually same day
Questions developers ask.
How is grabd different from Apify?
grabd is a single synchronous endpoint that returns Instagram profile data in the exact shape of Apify’s instagram-profile-scraper actor. No actors, runs, datasets, or polling — and a fraction of the price. If your code already parses that actor’s output, you change one URL.
Is grabd a drop-in replacement for Apify’s instagram-profile-scraper?
Yes, for profile lookups. grabd returns the same field names as the instagram-profile-scraper actor, so the migration is changing one URL and reading the response body directly instead of items[0]. You keep your existing parsing code.
Why is grabd faster than an Apify actor?
An actor run has to cold-start a container, execute, write to a dataset, and then be polled before you can read anything. grabd is a single synchronous HTTP request — the data comes back in the same call. There is no cold start to wait through, and a short (~5 minute) cache makes repeat lookups near-instant.
Does grabd have an MCP server?
Not yet — an MCP server is in development so agents like Claude and Cursor can pull public Instagram profile data directly, without glue code. Mention MCP when you request access and we’ll notify you when it ships.
What data does grabd return?
Public profile information — the same data a signed-out visitor sees on instagram.com: username, full name, bio, follower and post counts, verification and business fields, plus the 12 most recent public posts and reels with captions, likes, views, and timestamps.
Which platforms does grabd support?
Instagram public profile data today: a profile plus its 12 latest posts and reels. More platforms are on the roadmap.
Does grabd store my data?
No. grabd is a pure proxy — it fetches live and returns it, and never persists the profiles or media you request. A short (~5 minute) cache keeps repeat lookups fast.
What are the rate limits?
Requests are limited per API key — 600 per minute by default, with standard rate-limit headers. Exceeding it returns HTTP 429; retry after a short pause. Higher limits are available for Scale volume.
What about media URLs?
Profile pictures, images, and videos are returned as signed, time-limited Instagram CDN URLs. If you need to keep the media, download or re-host it promptly rather than storing the URL.