> ## Documentation Index
> Fetch the complete documentation index at: https://docs.veedcrawl.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/instagram/profile — Instagram Profiles

> Fetch an Instagram creator's profile with real follower and following counts and up to 24 recent posts including video, image, and carousel types.

`GET /v1/instagram/profile` returns a creator's public Instagram profile with verified status, real follower and following counts, and recent posts. Each post includes engagement stats, media type, and — for video posts — a direct `videoUrl` you can pipe straight into `/v1/transcript` or `/v1/extract`.

**Credits:** Free — 0 credits consumed.

## Endpoint

```
GET https://api.veedcrawl.com/v1/instagram/profile
```

## Authentication

This endpoint requires an `x-api-key` header.

## Parameters

<ParamField query="username" type="string">
  Instagram username, with or without the leading `@`. Required if `url` is not provided.
</ParamField>

<ParamField query="url" type="string">
  Full Instagram profile URL — e.g. `https://www.instagram.com/natgeo/`. Required if `username` is not provided.
</ParamField>

<ParamField query="limit" type="number">
  Number of recent posts to return. Min `1`, max `24`. Defaults to `12`.
</ParamField>

## Examples

```bash theme={null}
# By username
curl "https://api.veedcrawl.com/v1/instagram/profile?username=natgeo&limit=12" \
  -H "x-api-key: YOUR_KEY"

# By profile URL
curl "https://api.veedcrawl.com/v1/instagram/profile?url=https://www.instagram.com/natgeo/" \
  -H "x-api-key: YOUR_KEY"
```

## Response

```json theme={null}
{
  "platform": "instagram",
  "type": "profile",
  "username": "natgeo",
  "url": "https://www.instagram.com/natgeo/",
  "description": "Experience the world through the eyes of National Geographic photographers.",
  "author": {
    "username": "natgeo",
    "displayName": "National Geographic",
    "avatarUrl": "https://instagram.f.../profile_pic.jpg",
    "verified": true
  },
  "stats": {
    "followers": 283000000,
    "following": 170,
    "posts": 31400
  },
  "videos": [
    {
      "platform": "instagram",
      "type": "video",
      "id": "3383000000000000000",
      "url": "https://www.instagram.com/p/ABC123XYZ/",
      "title": "The Amazon is disappearing faster than ever before.",
      "description": "The Amazon is disappearing faster than ever... #Amazon #Nature",
      "stats": {
        "views": 4800000,
        "likes": 612000,
        "comments": 4300,
        "shares": null
      },
      "media": {
        "type": "video",
        "thumbnailUrl": "https://...",
        "videoUrl": "https://....mp4"
      },
      "createdAt": "2026-05-01T09:14:00.000Z",
      "additionalData": { "shortcode": "ABC123XYZ" }
    },
    {
      "platform": "instagram",
      "type": "post",
      "media": { "type": "image", "thumbnailUrl": "https://..." },
      "stats": { "views": null, "likes": 1200000, "comments": 8100, "shares": null }
    }
  ]
}
```

<ResponseField name="platform" type="string">
  Always `"instagram"` for this endpoint.
</ResponseField>

<ResponseField name="type" type="string">
  Always `"profile"` for this endpoint.
</ResponseField>

<ResponseField name="username" type="string">
  The creator's Instagram username.
</ResponseField>

<ResponseField name="url" type="string">
  The canonical profile URL.
</ResponseField>

<ResponseField name="description" type="string">
  The account's bio text.
</ResponseField>

<ResponseField name="author" type="object">
  Creator identity fields: `username`, `displayName`, `avatarUrl`, and `verified`.
</ResponseField>

<ResponseField name="stats" type="object">
  Aggregate account statistics: `followers`, `following`, and `posts` (total post count).
</ResponseField>

<ResponseField name="videos" type="array">
  Array of recent posts. Each item has a `type` of `"video"`, `"post"` (image), or `"sidecar"` (carousel), along with `id`, `url`, `title`, `description`, `stats`, `media`, and `createdAt`.
</ResponseField>

<Note>
  Instagram returns real follower and following counts from Instagram's web profile API. Post `type` is one of `"video"`, `"post"` (image), or `"sidecar"` (carousel). Video posts include a direct `videoUrl` inside the `media` object — pass it straight into `/v1/transcript` or `/v1/extract`.
</Note>

<Tip>
  This endpoint is on the light rate limit tier — 120 requests per minute. At 24 posts per call, a single agent can retrieve performance data for up to 2,880 posts in one minute.
</Tip>
