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

# Get user highlights

> Get a list of an Instagram user's highlights (Highlights). Highlights are curated story archives pinned by the user.

<div className="inline-flex items-center gap-2 px-4 py-2 bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg">
  <span className="text-base">🪙</span>
  <span className="text-sm font-medium text-yellow-900 dark:text-yellow-100"><span className="font-semibold">2 credits</span><span className="text-yellow-700 dark:text-yellow-300 ml-1">per request</span></span>
</div>

## Copy for AI

<div className="my-6 rounded-xl border border-gray-200 bg-gray-50 p-5 dark:border-gray-800 dark:bg-gray-900/40">
  <div className="min-w-0">
    <p className="text-base font-semibold text-gray-900 dark:text-gray-100">🤖 Why Code When AI Can Do It For You?</p>
    <p className="mt-1 text-sm text-gray-700 dark:text-gray-300">Stop writing code like it's 1970! Let AI do the heavy lifting - click the sparkles to copy a perfectly formatted prompt for ChatGPT, Claude, or your favorite AI assistant.</p>
  </div>

  <div className="mt-4">
    <button
      type="button"
      className="inline-flex items-center gap-2 rounded-md border border-emerald-300 bg-emerald-50 px-3 py-2 text-sm font-medium text-emerald-800 hover:bg-emerald-100 dark:border-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-100 dark:hover:bg-emerald-900/50"
      onClick={() => navigator.clipboard.writeText(`I want to make an API call to https://api.keyapi.ai/v1/instagram/fetch_user_highlights.

Please help me write code to make this API call and handle the response appropriately. Include error handling and best practices.

Here are the details:

Endpoint: GET https://api.keyapi.ai/v1/instagram/fetch_user_highlights

Description: Get a list of an Instagram user's highlights (Highlights). Highlights are curated story archives pinned by the user.

Required Headers:
--header 'Authorization: Bearer <YOUR_API_KEY>'

Parameters:
- username (Optional): Username (choose one: username or user_id). Example: javan
- user_id (Optional): User ID (choose one: user_id or username). Example: 18527

Example Response:
{
"code": 0,
"message": "success",
"data": {
"data": {
  "count": 1,
  "highlights_tray_type": "DEFAULT",
  "items": [
    {
      "can_gif_quick_reply": true,
      "can_react_with_avatar": false,
      "can_reply": true,
      "can_reshare": true,
      "contains_stitched_media_blocked_by_rm": false,
      "cover_media": {
        "crop_rect": [
          0.035046728971962614,
          0.34706397896581953,
          0.9649532710280374,
          0.8702892199824716
        ],
        "cropped_image_version": {
          "height": 150,
          "url": "https://scontent-lax3-1.cdninstagram.com/v/t51.82787-15/563420830_18120888430503568_5958508023765876008_n.jpg?stp=c44.792.1194.1194a_dst-jpg_e15_s150x150_tt6&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_oc=Q6cZ2QGESkZtffl5gGFa-i_jphOys2-IHyQ4gia-yWAqWPeCi-JE-0E2hvhpmAZPtl2RE8M&_nc_ohc=J7IfOjYBEZQQ7kNvwEZdq2A&_nc_gid=SRXzArdDf2hgbTTDQuUxnA&edm=ALbqBD0BAAAA&ccb=7-5&oh=00_Afy7rw9nNHPw-XbY6pd6GkBq_8lqtiG89Eea2JSxo--jcQ&oe=69B5774B&_nc_sid=847350",
          "width": 150
        },
        "full_image_version": null,
        "id": "2546507643239612773",
        "upload_id": null
      },
      "created_at": 1622103441,
      "highlight_reel_type": "DEFAULT",
      "id": "highlight:17927864314604086",
      "is_archived": false,
      "is_converted_to_clips": false,
      "is_nux": false,

... (truncated)`)}
    >
      <span>✨</span>
      <span>Copy for AI</span>
    </button>
  </div>
</div>


## OpenAPI

````yaml en/instagram.openapi.json GET /v1/instagram/fetch_user_highlights
openapi: 3.0.1
info:
  title: Instagram API english documentation
  description: >-
    The english reference documentation of the Instagram API includes the
    interface's purpose, parameter description, response status, and sample
    structure.
  version: 1.0.0
servers:
  - url: https://api.keyapi.ai
    description: Production
security:
  - JWT Bearer: []
tags: []
paths:
  /v1/instagram/fetch_user_highlights:
    get:
      tags: []
      summary: Get user highlights
      description: >-
        Get a list of an Instagram user's highlights (Highlights). Highlights
        are curated story archives pinned by the user.
      parameters:
        - name: username
          in: query
          description: 'Username (choose one: username or user_id)'
          required: false
          example: javan
          schema:
            type: string
            example: javan
        - name: user_id
          in: query
          description: 'User ID (choose one: user_id or username)'
          required: false
          example: '18527'
          schema:
            type: string
            example: '18527'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
              example:
                code: 0
                message: success
                data:
                  data:
                    count: 1
                    highlights_tray_type: DEFAULT
                    items:
                      - can_gif_quick_reply: true
                        can_react_with_avatar: false
                        can_reply: true
                        can_reshare: true
                        contains_stitched_media_blocked_by_rm: false
                        cover_media:
                          crop_rect:
                            - 0.035046728971962614
                            - 0.34706397896581953
                            - 0.9649532710280374
                            - 0.8702892199824716
                          cropped_image_version:
                            height: 150
                            url: >-
                              https://scontent-lax3-1.cdninstagram.com/v/t51.82787-15/563420830_18120888430503568_5958508023765876008_n.jpg?stp=c44.792.1194.1194a_dst-jpg_e15_s150x150_tt6&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_oc=Q6cZ2QGESkZtffl5gGFa-i_jphOys2-IHyQ4gia-yWAqWPeCi-JE-0E2hvhpmAZPtl2RE8M&_nc_ohc=J7IfOjYBEZQQ7kNvwEZdq2A&_nc_gid=SRXzArdDf2hgbTTDQuUxnA&edm=ALbqBD0BAAAA&ccb=7-5&oh=00_Afy7rw9nNHPw-XbY6pd6GkBq_8lqtiG89Eea2JSxo--jcQ&oe=69B5774B&_nc_sid=847350
                            width: 150
                          full_image_version: null
                          id: '2546507643239612773'
                          upload_id: null
                        created_at: 1622103441
                        highlight_reel_type: DEFAULT
                        id: highlight:17927864314604086
                        is_archived: false
                        is_converted_to_clips: false
                        is_nux: false
                        is_pinned_highlight: false
                        latest_reel_media: 1633609801
                        media_count: 34
                        prefetch_count: 0
                        ranked_position: -1633611895
                        reel_type: highlight_reel
                        seen_ranked_position: -1633611895
                        title: Wallpapers
                        updated_timestamp: 1633611895
                        user:
                          account_badges: []
                          full_name: Javan Ng
                          id: '18527'
                          interop_messaging_user_fbid: 105721380825451
                          is_creator_agent_enabled: false
                          is_private: false
                          is_verified: false
                          profile_pic_id: '3459147014560655728'
                          profile_pic_url: >-
                            https://scontent-lax3-1.cdninstagram.com/v/t51.2885-19/460170653_852233457013406_8133149038171915885_n.jpg?stp=dst-jpg_e0_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_oc=Q6cZ2QGESkZtffl5gGFa-i_jphOys2-IHyQ4gia-yWAqWPeCi-JE-0E2hvhpmAZPtl2RE8M&_nc_ohc=T43Z_QBhAnQQ7kNvwFgAFmZ&_nc_gid=SRXzArdDf2hgbTTDQuUxnA&edm=ALbqBD0BAAAA&ccb=7-5&ig_cache_key=GJ2lbRuekngQGgcDAG0GjH31v95wbkULAAAB1501500j-ccb7-5&oh=00_AfzCA1vyW8w29iC0CL4GU9XLjdw2-S0XxoIJMCM5a_lFYQ&oe=69B5A33F&_nc_sid=847350
                          username: javan
                requestId: 8b29d516-9c1d-4212-a133-ca27c157d2c1
          headers: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 400
                  data: null
                  message: 'Missing required parameter: handle'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 401
                  data: null
                  message: apiKey is null
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 402
                  data: null
                  message: apiKey quota is not enough
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 429
                  data: null
                  message: qps limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 500
                  data: null
                  message: Internal server error
      deprecated: false
      security:
        - JWT Bearer: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request GET \
              --url 'https://api.keyapi.ai/v1/instagram/fetch_user_highlights?username=javan&user_id=18527' \
              --header 'Authorization: Bearer <YOUR_API_KEY>'
        - lang: python
          label: Python
          source: |-
            import requests

            response = requests.get(
                'https://api.keyapi.ai/v1/instagram/fetch_user_highlights',
                params={"username": "javan", "user_id": "18527"},
                headers={'Authorization': 'Bearer <YOUR_API_KEY>'}
            )
            print(response.json())
        - lang: javascript
          label: JavaScript
          source: >-
            const params = new URLSearchParams({"username": "javan", "user_id":
            "18527"});


            const response = await
            fetch(`https://api.keyapi.ai/v1/instagram/fetch_user_highlights?${params}`,
            {
              method: 'GET',
              headers: { 'Authorization': 'Bearer <YOUR_API_KEY>' }
            });

            const data = await response.json();

            console.log(data);
components:
  securitySchemes:
    JWT Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |-
        API key for authentication. Format: `sk_live_xxxxxxxxxxxxx`
        Get your API key from the [Dashboard](http://keyapi.ai/app/dashboard).

````