# List trending Reels

List public trending reels up to limit or max_pages. stop_reason identifies the reached bound; next_cursor resumes after the last returned reel.

- Platform: [Instagram](https://docs.upscrape.com/docs/platforms/instagram)
- Capability ID: `instagram.reels.trending`
- Cost: 1 credit per request
- Maximum runtime: 120 seconds
- Execute endpoint: `POST https://data.upscrape.com/execute`

## Request

Use the exact public capability ID in the shared execute envelope.

```bash
curl --request POST \
  --url https://data.upscrape.com/execute \
  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Prefer: wait=30" \
  --data '{
  "input": {
    "limit": 16,
    "max_pages": 2
  },
  "capability": "instagram.reels.trending"
}'
```

## Input


| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cursor` | `string` | No | Continuation cursor returned by a previous request. |
| `limit` | `integer` | No | Maximum number of results to return. From 1 to 200. Default: `24`. |
| `max_pages` | `integer` | No | Optional page cap. Defaults to enough eight-item pages for limit, up to 25. A smaller explicit cap can return fewer than limit. From 1 to 25. |

### Example input

```json
{
  "limit": 16,
  "max_pages": 2
}
```

## Response

Successful output is returned in `results[0].data`.

Raw platform output is intentionally open-ended and may evolve with the upstream source.

### Illustrative sample output

This example shows one response. Values and optional fields vary with the data available.

```json
{
  "items": [
    {
      "data": {
        "caption": {
          "text": "Julio Rodriguez forgot how many outs there were and gifted the Brewers their 21st run of the night\n\n#mlb #baseball #sports #blooper #mariners"
        },
        "code": "DcNJ8IGMXaT",
        "comment_count": 1960,
        "has_audio": true,
        "id": "3966870561064318611",
        "image_versions2": {
          "candidates": [
            {}
          ]
        },
        "like_and_view_counts_disabled": false,
        "like_count": 107104,
        "original_height": 1280,
        "original_width": 720,
        "pk": "3966870561064318611",
        "taken_at": 1787107890,
        "user": {
          "id": "15256360155",
          "pk": "15256360155",
          "username": "jomboymedia"
        },
        "video_versions": [
          {
            "type": 101
          },
          {
            "type": 102
          },
          {
            "type": 103
          }
        ]
      }
    },
    {
      "data": {
        "caption": {
          "text": "Daddy’s just kidding!"
        },
        "code": "DcMUehfpDsG",
        "comment_count": 1527,
        "has_audio": true,
        "id": "3966635430285425414",
        "image_versions2": {
          "candidates": [
            {}
          ]
        },
        "like_and_view_counts_disabled": false,
        "like_count": 85475,
        "original_height": 1920,
        "original_width": 1080,
        "pk": "3966635430285425414",
        "taken_at": 1787079849,
        "user": {
          "id": "14799515",
          "pk": "14799515",
          "username": "treynkennedy"
        },
        "video_versions": [
          {
            "type": 101
          },
          {
            "type": 102
          },
          {
            "type": 103
          }
        ]
      }
    },
    {
      "data": {
        "caption": {
          "text": "Demons are transgender. We are in a spiritual battle over identity, truth, and the image of God.\n\nScripture teaches that God created humanity male and female. The spirit of Babylon offers confusion in place of truth and promises freedom apart from God.\n\nThe time for riding the fence is over. There is good and evil, right and wrong, life and death. We must decide whom we will trust."
        },
        "code": "DcMvkYTkRUf",
        "comment_count": 1737,
        "has_audio": true,
        "id": "3966754579991827743",
        "image_versions2": {
          "candidates": [
            {}
          ]
        },
        "like_and_view_counts_disabled": false,
        "like_count": 33091,
        "original_height": 1920,
        "original_width": 1080,
        "pk": "3966754579991827743",
        "taken_at": 1787094063,
        "user": {
          "id": "10083201",
          "pk": "10083201",
          "username": "markdriscoll"
        },
        "video_versions": [
          {
            "type": 101
          },
          {
            "type": 102
          },
          {
            "type": 103
          }
        ]
      }
    }
  ],
  "summary": {
    "emitted": 16,
    "has_more": true,
    "next_cursor": "[redacted:token]=",
    "pages": 2,
    "stop_reason": "limit"
  }
}
```
### Illustrative output fields

Derived from the sample above for orientation only. These fields are not a fixed response schema.

| Path | Observed type | Example |
| --- | --- | --- |
| `items` | `array` | 3 items |
| `items` | `array` | 3 items |
| `summary` | `object` | 5 fields |
| `summary.emitted` | `integer` | 16 |
| `summary.has_more` | `boolean` | true |
| `summary.next_cursor` | `string` | [redacted:token]= |
| `summary.pages` | `integer` | 2 |
| `summary.stop_reason` | `string` | limit |

## Execution behavior

A `200` response completed inline. A `202` response was queued; poll `GET /jobs/{id}` until the job reaches `completed` or `failed`. Use an `Idempotency-Key` when retrying must not create a duplicate logical job.

## Related documentation

- [Authentication](https://docs.upscrape.com/docs/api/authentication)
- [Jobs and results](https://docs.upscrape.com/docs/api/jobs)
- [Errors and retries](https://docs.upscrape.com/docs/api/errors)
- [Idempotency](https://docs.upscrape.com/docs/api/idempotency)
