# Instagram User Posts (V1) API

> Returns a paginated list of posts for a specified Instagram account. Results include captions, like counts, comment counts, and media details.

Source: https://www.sandbase.ai/apis/instagram/v1/user-posts
API reference: https://www.sandbase.ai/apis/instagram/v1/user-posts/docs

## Facts

- Provider: Instagram
- Type: Data API
- Endpoint: `POST https://api.sandbase.ai/v1/api/instagram/v1/user-posts`
- Price: $0.0015 per call
- Free allowance: 100 calls per organization per UTC day, shared across eligible APIs
- Capabilities: api, instagram
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

`POST https://api.sandbase.ai/v1/api/instagram/v1/user-posts` with `Authorization: Bearer $SANDBASE_API_KEY` and the parameters as a JSON body.

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `user_id` | string | yes |  |
| `count` | integer | no |  |
| `max_id` | string | no |  |

## FAQ

### How do I use the Instagram User Posts (V1) API?

Send a POST request to https://api.sandbase.ai/v1/api/instagram/v1/user-posts with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.

### How much does the Instagram User Posts (V1) API cost?

$0.0015 per call. Every organization gets 100 free calls per UTC day, shared across eligible SandBase APIs including this one; after that each call is billed at this price from your SandBase balance. There is no subscription.

### What parameters does the Instagram User Posts (V1) API accept?

Required: user_id (string). Optional: count (integer) and max_id (string). The Parameters table and the Playground on this page list every field.

### What does the Instagram User Posts (V1) API return?

A JSON response returned in the same HTTP request (synchronous). The README on this page includes a sample response.

### Do I need a Instagram developer account or API key?

No. Instagram User Posts (V1) runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for Instagram API access separately.

## README

### Instagram User Posts (V1) API

Retrieve recent posts from an Instagram account by supplying the target `user_id`. Supports pagination via cursor parameters to browse historical media feeds.

#### Use cases

- Display an Instagram account media feed in an external application.
- Monitor engagement metrics such as likes and comments over recent posts.
- Archive captions and post metadata for specific public profiles.

#### Request

```bash
curl -X POST "https://api.sandbase.ai/v1/api/instagram/v1/user-posts" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "25025320"}'
```

#### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `user_id` | string | Yes | Instagram user ID |
| `count` | integer | No | Count per page, default 12 |
| `max_id` | string | No | Pagination cursor, omit for first request |

#### Example response

Real response for the request above, trimmed to the main fields. User names and long IDs are masked.

```json
{
  "items": [
    {
      "caption_is_edited": false,
      "coauthor_producer_can_see_organic_insights": false,
      "comment_count": 18380,
      "device_timestamp": 1790870048722622,
      "disable_caption_and_comment": false,
      "filter_type": 0,
      "id": "3998430248382584993_25025320",
      "ig_play_count": 150975683,
      "like_and_view_counts_disabled": false,
      "like_count": 642777,
      "caption": {
        "content_type": "comment",
        "media_id": 3998430248382584993,
        "private_reply_status": 0,
        "status": "Active",
        "text": "DIY fish squishy 🐟⁣ ⁣ @yano4kaa.a made this squishy using stuff she already had at home l…",
        "text_translation": "DIY fish squishy 🐟     @yano4kaa.a made this squishy using stuff she already had at home …"
      },
      "clips_metadata": {
        "audio_type": "licensed_music",
        "music_canonical_id": "18242041438023387",
        "professional_clips_upsell_type": 0
      },
      "user": {
        "account_type": 3,
        "eligible_for_text_app_activation_badge": false,
        "full_name": "Instagram",
        "id": "25025320",
        "pk_id": "25025320",
        "profile_pic_id": "3725434617063385984_25025320"
      }
    }
  ]
}
```

#### Notes

- Supply `user_id` to identify the Instagram profile.
- Pass `max_id` as the pagination cursor for requests after the first page.
- Use `count` to specify the number of posts returned per page, defaulting to 12.

#### Related APIs

- [Instagram Cities by Country](/model/instagram/v1/cities): Returns a list of Instagram cities and regions for a specified country code.
- [Instagram Hashtag Posts (V1)](/model/instagram/v1/hashtag-posts): Returns public Instagram posts associated with a specific hashtag.
- [Instagram Location Details (V1)](/model/instagram/v1/location-info): Returns detailed metadata and profile information for a specified Instagram location using its unique identifier.
