# Instagram API
> 20 endpoints for live Instagram public data — profiles, posts, reels, media, hashtags, locations, search.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/instagram-api/..."
```

## Pricing
- **Free** (Free) — 100 calls/Mo, 1 req/s
- **Basic** ($15/Mo) — 25,000 calls/Mo, 10 req/s
- **Pro** ($49/Mo) — 100,000 calls/Mo, 20 req/s
- **Mega** ($149/Mo) — 500,000 calls/Mo, 50 req/s

## Endpoints

### Users

#### `GET /api/v1/users/search` — Search users

Sucht Instagram-Nutzer per Username/Text. Query: q.

**Parameters:**
- `q` (query, required, string) — Instagram username or search text Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/users/search?q=jlo"
```

**Response:**
```json
{
    "data": {
        "count": 9,
        "users": [
            {
                "id": null,
                "link": "https://www.instagram.com/jlo",
                "username": "jlo",
                "full_name": "Jennifer Lopez",
                "is_private": false,
                "is_verified": false,
                "media_count": 1151,
                "follower_count": 245706423,
                "following_count": 1960,
                "profile_pic_url": "https://scontent-ord5-3.cdninstagram.com/v/t51.82787-19/628483964_18589580959037720_5020244042765827468_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby42NzcuYzIifQ&_nc_ht=scontent-ord5-3.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gFHWnCfSCgzaRq_93fJ6O39lx1oMs6A3sD4joRJdnBHyMCieVMA_JJysIHI-eCzkIEqfbuJ2diFNZucrBlmw6AC&_nc_ohc=TX2rtoR-q-8Q7kNvwHOuzPb&_nc_gid=hu0lET8XSt6zjxCcO_yzMw&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_Af6oc9aAUTdO3v05gSTgrX8TU69g3js_ncynzvKWvqIZCg&oe=69FE8330&_nc_sid=8b3546",
                "profile_pic_url_hd": null
            },
            {
                "id": null,
                "link": "https://www.instagram.com/jlobeauty",
                "username": "jlobeauty",
                "full_name": "JLO Beauty by Jennifer Lopez",
                "is_private": false,
                "is_verified": false,
                "media_count": 1751,
                "follower_count": 1000000,
                "following_count": 353,
                "profile_pic_url": "https://scontent
…(truncated, see openapi.json for full schema)
```

#### `GET /api/v1/users/profile` — User profile

Vollständiges Profil per Username oder ID. Query: id_or_username.

**Parameters:**
- `id_or_username` (query, required, string) — Instagram username or numeric user ID Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/users/profile?id_or_username=jlo"
```

**Response:**
```json
{
    "data": {
        "id": "305701719",
        "link": "https://www.instagram.com/jlo",
        "category": "Artist",
        "pronouns": [],
        "username": "jlo",
        "bio_links": [
            {
                "url": "https://onthejlo.com/en/home",
                "title": "ON THE JLO - JLovers HQ",
                "lynx_url": "https://l.instagram.com/?u=https%3A%2F%2Fonthejlo.com%2Fen%2Fhome&e=AUB0ED9C6iCq3Kcla3y2Y3LUuI00W1wg--kvdIKf_gMTbIxurLF5Zb_Des4hUvaefnvq2EvxIb60NsujH9JwUm2_7lCUkd8d",
                "link_type": "external"
            },
            {
                "url": "https://davidguetta.lnk.to/savemetonight",
                "title": "SAVE ME TONIGHT New Single OUT NOW",
                "lynx_url": "https://l.instagram.com/?u=https%3A%2F%2Fdavidguetta.lnk.to%2Fsavemetonight&e=AUAzORoh56dbDMPk1jgFyAnEc47gb7aE3BG5NLNNWlOgzt-N4A3Fv1LpekrTk5LRLjYiBNTPGNWIOl7HAJ1WC7gxP7Tlenuf",
                "link_type": "external"
            }
        ],
        "biography": "The #1 Single SAVE ME TONIGHT with David Guetta OUT NOW 💫 OFFICE ROMANCE coming to Netflix June 5",
        "full_name": "Jennifer Lopez",
        "is_private": false,
        "is_verified": true,
        "posts_count": 1151,
        "external_url": "https://onthejlo.com/en/home",
        "follower_count": 245706422,
        "following_count": 1960,
        "profile_pic_url": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url
…(truncated, see openapi.json for full schema)
```

#### `GET /api/v1/users/insights` — User insights

Profile-Counter, Account-Flags, Business-Felder, Public-Kontakte. Query: username.

**Parameters:**
- `username` (query, required, string) — Instagram username Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/users/insights?username=jlo"
```

**Response:**
```json
{
    "data": {
        "id": "305701719",
        "link": "https://www.instagram.com/jlo",
        "category": "Artist",
        "username": "jlo",
        "full_name": "Jennifer Lopez",
        "has_clips": true,
        "has_guides": false,
        "is_private": false,
        "has_channel": false,
        "is_verified": true,
        "media_count": 1151,
        "reels_count": 70,
        "external_url": "https://onthejlo.com/en/home",
        "follower_count": 245706423,
        "following_count": 1960,
        "public_contacts": {
            "business_email": null,
            "business_address_json": "{\"city_name\": null, \"city_id\": null, \"latitude\": null, \"longitude\": null, \"street_address\": null, \"zip_code\": null}",
            "business_phone_number": null,
            "business_contact_method": "TEXT",
            "should_show_public_contacts": true
        },
        "business_category": null,
        "is_business_account": false,
        "highlight_reel_count": 7,
        "is_professional_account": true
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:57.580Z",
        "request_id": "1c0fd81f-de4b-4f11-b071-99b8a0945680"
    },
    "status": "ok",
    "message": "User insights retrieved successfully",
    "success": true
}
```

#### `GET /api/v1/users/web-profile-info` — Web profile info

Vollständige Web-Profile-Response normalisiert. Query: username.

**Parameters:**
- `username` (query, required, string) — Instagram username Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/users/web-profile-info?username=jlo"
```

**Response:**
```json
{
    "data": {
        "id": "305701719",
        "fbid": "17841401131574776",
        "link": "https://www.instagram.com/jlo",
        "eimu_id": "112045550181677",
        "pronouns": [],
        "username": "jlo",
        "bio_links": [
            {
                "url": "https://onthejlo.com/en/home",
                "title": "ON THE JLO - JLovers HQ",
                "lynx_url": "https://l.instagram.com/?u=https%3A%2F%2Fonthejlo.com%2Fen%2Fhome&e=AUDPAVvAn_mMWkCGXIS8urGspoZ10_2YmT5ZHVBqUrsY2rZsW73KOzqfB7RC5cx7rr92qvp0VSuVykVfsh_-LOaHYWvbHB_F",
                "link_type": "external"
            },
            {
                "url": "https://davidguetta.lnk.to/savemetonight",
                "title": "SAVE ME TONIGHT New Single OUT NOW",
                "lynx_url": "https://l.instagram.com/?u=https%3A%2F%2Fdavidguetta.lnk.to%2Fsavemetonight&e=AUCGZPuCh3QkM7AP7ROABvV3ncLIRWAgOj1eM5JH87EDPMqXwIwHETd5AsY0dpW4UzaLtDWBfEI6rz4-GEL8W9Yq9E7uqgbL",
                "link_type": "external"
            }
        ],
        "biography": "The #1 Single SAVE ME TONIGHT with David Guetta OUT NOW 💫 OFFICE ROMANCE coming to Netflix June 5",
        "full_name": "Jennifer Lopez",
        "has_clips": true,
        "has_guides": false,
        "is_private": false,
        "edge_follow": {
            "count": 1960
        },
        "guardian_id": null,
        "has_channel": false,
        "is_verified": true,
        "external_url": "https://onthejlo.com/en/home",
        "ai_agent
…(truncated, see openapi.json for full schema)
```

### Posts

#### `GET /api/v1/posts` — User posts

Posts eines Users. Query: id_or_username, count.

**Parameters:**
- `id_or_username` (query, required, string) — Instagram username or user ID Example: `jlo`
- `count` (query, optional, integer) — Number of posts to return Example: `12`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/posts?id_or_username=jlo&count=12"
```

**Response:**
```json
{
    "data": [
        {
            "id": "3886742681296641734",
            "code": "DXwe-A0CR7G",
            "link": "https://www.instagram.com/p/DXwe-A0CR7G",
            "image": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Fscontent-atl3-3.cdninstagram.com%2Fv%2Ft51.82787-15%2F684400548_18612006835035379_2816000676006500936_n.jpg%3Fstp%3Ddst-jpg_e15_fr_p1080x1080_tt6%26_nc_ht%3Dscontent-atl3-3.cdninstagram.com%26_nc_cat%3D107%26_nc_oc%3DQ6cZ2gEu30XnL1lyPk5hxUaIFy4wHM1xDHpIjq66aeu1cDANKBNHdNBWVDrIOM9ws4q2nYPx66eGN-yisOZsZcDmY4y4%26_nc_ohc%3D9jyo7TA0IN8Q7kNvwHHd2Wk%26_nc_gid%3DUgUIcmhvL1_ViexBh3fLPA%26edm%3DAOQ1c0wBAAAA%26ccb%3D7-5%26oh%3D00_Af6pd9975P-yAfoC9xaestjW3e1QgyoRDOL1trV0T-vQRA%26oe%3D69FE68C1%26_nc_sid%3D8b3546",
            "owner": {
                "id": "207587378",
                "username": "netflix"
            },
            "caption": "This rom-com is NSFW… but soooo worth clocking in for. OFFICE ROMANCE premieres June 5.",
            "is_video": true,
            "location": null,
            "taken_at": 1777555800,
            "typename": "GraphVideo",
            "has_audio": true,
            "thumbnail": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Fscontent-atl3-3.cdninstagram.com%2Fv%2Ft51.82787-15%2F684400548_18612006835035379_2816000676006500936_n.jpg%3Fstp%3Dc0.420.1080.1080a
…(truncated, see openapi.json for full schema)
```

#### `GET /api/v1/posts/info` — Post info

Detail-Daten zu einem Post. Query: id_or_username, code.

**Parameters:**
- `id_or_username` (query, required, string) — Instagram username or user ID Example: `jlo`
- `code` (query, required, string) — Instagram post shortcode Example: `DXwe-A0CR7G`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/posts/info?id_or_username=jlo&code=DXwe-A0CR7G"
```

**Response:**
```json
{
    "data": {
        "id": "3886742681296641734",
        "code": "DXwe-A0CR7G",
        "link": "https://www.instagram.com/p/DXwe-A0CR7G",
        "image": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Fscontent-cdg4-2.cdninstagram.com%2Fv%2Ft51.82787-15%2F684400548_18612006835035379_2816000676006500936_n.jpg%3Fstp%3Ddst-jpg_e15_fr_p1080x1080_tt6%26_nc_ht%3Dscontent-cdg4-2.cdninstagram.com%26_nc_cat%3D107%26_nc_oc%3DQ6cZ2gFPvJeb4lgq7192Vl6E-2Gi8mvQTYP1TBdYN9qSIytTr5TE4S4ojO18dZ9ofk1aGrpPh6Ftf4Mi0T97eJvUjsSw%26_nc_ohc%3D9jyo7TA0IN8Q7kNvwHdi8O-%26_nc_gid%3DBV1gQq8cw8HLzj6kuHUCxg%26edm%3DAOQ1c0wBAAAA%26ccb%3D7-5%26oh%3D00_Af7o5G5WEuy9TgIV3crawRotSuxusHNozUOW-UFc0wpgkA%26oe%3D69FE68C1%26_nc_sid%3D8b3546",
        "owner": {
            "id": "207587378",
            "username": "netflix"
        },
        "caption": "This rom-com is NSFW… but soooo worth clocking in for. OFFICE ROMANCE premieres June 5.",
        "is_video": true,
        "location": null,
        "taken_at": 1777555800,
        "typename": "GraphVideo",
        "has_audio": true,
        "thumbnail": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Fscontent-cdg4-2.cdninstagram.com%2Fv%2Ft51.82787-15%2F684400548_18612006835035379_2816000676006500936_n.jpg%3Fstp%3Dc0.420.1080.1080a_dst-jpg_e35_s640x640_sh2.08_tt6%26_nc_ht%3Dscontent-cdg4-2.cdninstagr
…(truncated, see openapi.json for full schema)
```

#### `GET /api/v1/posts/reels` — User reels

Reels eines Users. Query: id_or_username, count.

**Parameters:**
- `id_or_username` (query, required, string) — Instagram username or user ID Example: `jlo`
- `count` (query, optional, integer) — Number of reels to return Example: `12`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/posts/reels?id_or_username=jlo&count=12"
```

**Response:**
```json
{
    "data": [
        {
            "id": "3280387870568741670",
            "code": "C2GR2NWv_sm",
            "link": "https://www.instagram.com/reel/C2GR2NWv_sm",
            "image": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Finstagram.fvlc9-1.fna.fbcdn.net%2Fv%2Ft51.71878-15%2F638289745_2087959478619757_8851635167170047033_n.jpg%3Fstp%3Ddst-jpg_e15_tt6%26_nc_ht%3Dinstagram.fvlc9-1.fna.fbcdn.net%26_nc_cat%3D101%26_nc_oc%3DQ6cZ2gGZZRf6yg0_3qdpqrd1LDip52MBEtLcGpkAyBPlY1MgkSj9xvc-vYIFnbL8uFY0afI%26_nc_ohc%3DdNhrgQ6BcWQQ7kNvwGhQHz5%26_nc_gid%3DOP9B_LEKpTQeEUVtUXzlVA%26edm%3DAOQ1c0wBAAAA%26ccb%3D7-5%26oh%3D00_Af5Nrb3Z9B2XizXvz_r62TplFvBNIOSUMft-6bjWo27J_w%26oe%3D69FE7618%26_nc_sid%3D8b3546",
            "owner": {
                "id": "305701719",
                "username": "jlo"
            },
            "caption": "SURPRISE \nCan’t Get Enough @delola #SundayService at The @abbeyweho \n#ThisIsMeNow",
            "is_video": true,
            "location": {
                "id": "134393793259389",
                "name": "The Abbey Food & Bar - West Hollywood",
                "slug": "the-abbey-food-bar-west-hollywood",
                "has_public_page": true
            },
            "taken_at": 1705272742,
            "typename": "GraphVideo",
            "has_audio": true,
            "thumbnail": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca828
…(truncated, see openapi.json for full schema)
```

### Identity

#### `GET /api/v1/identity/user-id-from-username` — User ID from username

Wandelt einen Username in die Instagram-User-ID um. Query: username.

**Parameters:**
- `username` (query, required, string) — Instagram username Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/identity/user-id-from-username?username=jlo"
```

**Response:**
```json
{
    "data": {
        "user_id": "305701719",
        "username": "jlo"
    },
    "meta": {
        "timestamp": "2026-05-04T14:00:09.529Z",
        "request_id": "0c97d400-4954-4ba8-b871-67b02d01f70e"
    },
    "status": "ok",
    "message": "User ID retrieved successfully",
    "success": true
}
```

#### `GET /api/v1/identity/media-shortcode-from-media-id` — Shortcode from media ID

Wandelt eine Media-ID in den Post-Shortcode um. Query: media_id.

**Parameters:**
- `media_id` (query, required, string) — Numeric Instagram media ID Example: `3886742681296641734`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/identity/media-shortcode-from-media-id?media_id=3886742681296641734"
```

**Response:**
```json
{
    "data": {
        "media_id": "3886742681296641734",
        "post_url": "https://www.instagram.com/p/DXwe-A0CR7G/",
        "reel_url": "https://www.instagram.com/reel/DXwe-A0CR7G/",
        "shortcode": "DXwe-A0CR7G"
    },
    "meta": {
        "timestamp": "2026-05-04T14:00:09.609Z",
        "request_id": "a2007f9c-93ea-4fbf-984b-d136ca5fb8aa"
    },
    "status": "ok",
    "message": "Media shortcode retrieved successfully",
    "success": true
}
```

#### `GET /api/v1/identity/media-id-from-shortcode` — Media ID from shortcode

Wandelt einen Post-Shortcode in die Media-ID um. Query: shortcode.

**Parameters:**
- `shortcode` (query, required, string) — Instagram post shortcode Example: `DXwe-A0CR7G`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/identity/media-id-from-shortcode?shortcode=DXwe-A0CR7G"
```

**Response:**
```json
{
    "data": {
        "media_id": "3886742681296641734",
        "shortcode": "DXwe-A0CR7G"
    },
    "meta": {
        "timestamp": "2026-05-04T14:00:09.678Z",
        "request_id": "0a540f8d-6322-430e-8fb2-cfc9a0b72f90"
    },
    "status": "ok",
    "message": "Media ID retrieved successfully",
    "success": true
}
```

#### `GET /api/v1/identity/media-id-from-url` — Media ID from URL

Extrahiert die Media-ID aus einer Instagram-Post-URL. Query: url.

**Parameters:**
- `url` (query, required, string) — Instagram post URL Example: `https://www.instagram.com/p/DXwe-A0CR7G/`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/identity/media-id-from-url?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FDXwe-A0CR7G%2F"
```

**Response:**
```json
{
    "data": {
        "url": "https://www.instagram.com/p/DXwe-A0CR7G/",
        "media_id": "3886742681296641734",
        "shortcode": "DXwe-A0CR7G"
    },
    "meta": {
        "timestamp": "2026-05-04T14:00:09.748Z",
        "request_id": "e2720d89-ae00-4742-94ab-3b9ba1465f46"
    },
    "status": "ok",
    "message": "Media ID retrieved successfully",
    "success": true
}
```

### Media

#### `GET /api/v1/media/info` — Media info

Detail-Daten zu einem Post — wahlweise per url oder media_id. Query: id_or_username + (url|media_id).

**Parameters:**
- `id_or_username` (query, required, string) — Instagram username or user ID Example: `jlo`
- `media_id` (query, optional, string) — Numeric Instagram media ID — pass either media_id or url Example: `3886742681296641734`
- `url` (query, optional, string) — Instagram post URL — pass either media_id or url Example: `https://www.instagram.com/p/DXwe-A0CR7G/`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/media/info?id_or_username=jlo&media_id=3886742681296641734&url=https%3A%2F%2Fwww.instagram.com%2Fp%2FDXwe-A0CR7G%2F"
```

**Response:**
```json
{
    "data": {
        "id": "3886742681296641734",
        "code": "DXwe-A0CR7G",
        "link": "https://www.instagram.com/p/DXwe-A0CR7G",
        "image": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Fscontent-lga3-3.cdninstagram.com%2Fv%2Ft51.82787-15%2F684400548_18612006835035379_2816000676006500936_n.jpg%3Fstp%3Ddst-jpg_e15_fr_p1080x1080_tt6%26_nc_ht%3Dscontent-lga3-3.cdninstagram.com%26_nc_cat%3D1%26_nc_oc%3DQ6cZ2gFObCpzojm_WqBe2JRjPsfRSWgNkMDqaP39YC_FYVwY14fHVjkJJe-3_aBDeJwJ2X8%26_nc_ohc%3D9jyo7TA0IN8Q7kNvwHz5iHx%26_nc_gid%3Dk0QNC3lTLJebctssRLHBOA%26edm%3DAOQ1c0wBAAAA%26ccb%3D7-5%26oh%3D00_Af4oV85VkW619aqWs4zV-M2u3U-1_aLHk2s5dviL9_vPBw%26oe%3D69FE68C1%26_nc_sid%3D8b3546",
        "owner": {
            "id": "207587378",
            "username": "netflix"
        },
        "caption": "This rom-com is NSFW… but soooo worth clocking in for. OFFICE ROMANCE premieres June 5.",
        "is_video": true,
        "location": null,
        "taken_at": 1777555800,
        "typename": "GraphVideo",
        "has_audio": true,
        "thumbnail": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Fscontent-lga3-3.cdninstagram.com%2Fv%2Ft51.82787-15%2F684400548_18612006835035379_2816000676006500936_n.jpg%3Fstp%3Dc0.420.1080.1080a_dst-jpg_e35_s640x640_sh2.08_tt6%26_nc_ht%3Dscontent-lga3-3.cdninstagram.com%26_nc_cat%3D1%26
…(truncated, see openapi.json for full schema)
```

#### `GET /api/v1/media/download` — Download link

Direkter Download-Link für Bild oder Video. Query: id_or_username + (url|media_id).

**Parameters:**
- `id_or_username` (query, required, string) — Instagram username or user ID Example: `jlo`
- `media_id` (query, optional, string) — Numeric Instagram media ID — pass either media_id or url Example: `3886742681296641734`
- `url` (query, optional, string) — Instagram post URL — pass either media_id or url Example: `https://www.instagram.com/p/DXwe-A0CR7G/`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/media/download?id_or_username=jlo&media_id=3886742681296641734&url=https%3A%2F%2Fwww.instagram.com%2Fp%2FDXwe-A0CR7G%2F"
```

**Response:**
```json
{
    "data": {
        "id": "3886742681296641734",
        "code": "DXwe-A0CR7G",
        "is_video": true,
        "image_url": "https://image.proxy.oanor.com/fetch?api_key=668a72ad226dfadbb8a82355e4bcab1333ddca82850a1c9374bd73b70cd71e4c&url=https%3A%2F%2Fscontent-cdg4-2.cdninstagram.com%2Fv%2Ft51.82787-15%2F684400548_18612006835035379_2816000676006500936_n.jpg%3Fstp%3Ddst-jpg_e15_fr_p1080x1080_tt6%26_nc_ht%3Dscontent-cdg4-2.cdninstagram.com%26_nc_cat%3D107%26_nc_oc%3DQ6cZ2gGibgsVJgYpHaSJdgsm-YaqCUp9o91tNlE5cQ-JxyB_248k-y_5CKFmzNlIdcwoki9mtKY9YSX_ENvz0ZL9xT4O%26_nc_ohc%3D9jyo7TA0IN8Q7kNvwFaF_pH%26_nc_gid%3DXeVLmrDX-WGyUDg0tPlcpg%26edm%3DAOQ1c0wBAAAA%26ccb%3D7-5%26oh%3D00_Af7Id-6qpwAXPbTKDOU9mA6uW1RnhUCCLI__mmc3mwC4OA%26oe%3D69FE68C1%26_nc_sid%3D8b3546",
        "media_url": "https://scontent-cdg4-2.cdninstagram.com/o1/v/t2/f2/m86/AQMGh4tQPeeVBuIgmW86F37fqlAPMgodf2W9LiEcWXBu5k394he_juU09uDUOtAXi0s6h6_dKjS13rMF75SZmTIHV48_xh0nMCYvG18.mp4?_nc_cat=107&_nc_sid=5e9851&_nc_ht=scontent-cdg4-2.cdninstagram.com&_nc_ohc=El8ojyRduQoQ7kNvwHLbK_B&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuMTI3Ni5kYXNoX2Jhc2VsaW5lXzFfdjEiLCJ4cHZfYXNzZXRfaWQiOjIxNzM4NTgxNjM0MTczNzIsImFzc2V0X2FnZV9kYXlzIjo0LCJ2aV91c2VjYXNlX2lkIjoxMDA5OSwiZHVyYXRpb25fcyI6MTUwLCJ1cmxnZW5fc291cmNlIjoid3d3In0%3D&ccb=17-1&vs=7cfaac813485a027&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC8xRjRGQTNDQzE1RTlGN0E1N0UzOEFBOTMyM0E3NjJCMV92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lb
…(truncated, see openapi.json for full schema)
```

### Hashtags

#### `GET /api/v1/hashtags/search` — Search hashtags

Hashtag-Suche per Volltext. Query: q, count.

**Parameters:**
- `q` (query, required, string) — Hashtag search text Example: `football`
- `count` (query, optional, integer) — Number of hashtags to return Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/hashtags/search?q=football&count=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "source": "brave_instagram_search",
        "hashtags": [
            {
                "link": "https://www.instagram.com/explore/tags/footballpost/",
                "name": "footballpost",
                "hashtag": "#footballpost"
            },
            {
                "link": "https://www.instagram.com/explore/tags/footballprogram/",
                "name": "footballprogram",
                "hashtag": "#footballprogram"
            },
            {
                "link": "https://www.instagram.com/explore/tags/villagefootball/",
                "name": "villagefootball",
                "hashtag": "#villagefootball"
            },
            {
                "link": "https://www.instagram.com/explore/tags/uofhfootball/",
                "name": "uofhfootball",
                "hashtag": "#uofhfootball"
            },
            {
                "link": "https://www.instagram.com/explore/tags/footballinterview/",
                "name": "footballinterview",
                "hashtag": "#footballinterview"
            },
            {
                "link": "https://www.instagram.com/explore/tags/novemberfootball/",
                "name": "novemberfootball",
                "hashtag": "#novemberfootball"
            },
            {
                "link": "https://www.instagram.com/explore/tags/collegefootballhighlights/",
                "name": "collegefootballhighlights",
                "hashtag": "#collegefoot
…(truncated, see openapi.json for full schema)
```

#### `GET /api/v1/hashtags/media` — Media by hashtag

Posts zu einem Hashtag. Query: hashtag, count.

**Parameters:**
- `hashtag` (query, required, string) — Hashtag name (without #) Example: `football`
- `count` (query, optional, integer) — Number of posts to return Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/hashtags/media?hashtag=football&count=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "media": [
            {
                "code": "ChGvFgSjBo_",
                "link": "https://www.instagram.com/p/ChGvFgSjBo_/",
                "shortcode": "ChGvFgSjBo_",
                "matched_hashtag": "#football"
            },
            {
                "code": "B1dZa6QnSeg",
                "link": "https://www.instagram.com/p/B1dZa6QnSeg/",
                "shortcode": "B1dZa6QnSeg",
                "matched_hashtag": "#football"
            },
            {
                "code": "CmUY7wnt1dH",
                "link": "https://www.instagram.com/p/CmUY7wnt1dH/",
                "shortcode": "CmUY7wnt1dH",
                "matched_hashtag": "#football"
            },
            {
                "code": "ClN9K2cNTa-",
                "link": "https://www.instagram.com/p/ClN9K2cNTa-/",
                "shortcode": "ClN9K2cNTa-",
                "matched_hashtag": "#football"
            },
            {
                "code": "CwU1vwEsY7a",
                "link": "https://www.instagram.com/p/CwU1vwEsY7a/",
                "shortcode": "CwU1vwEsY7a",
                "matched_hashtag": "#football"
            },
            {
                "code": "DDZCZA7yImJ",
                "link": "https://www.instagram.com/p/DDZCZA7yImJ/",
                "shortcode": "DDZCZA7yImJ",
                "matched_hashtag": "#football"
            },
            {
                "code": "BjScegABoQs",
                "link": "http
…(truncated, see openapi.json for full schema)
```

### Locations

#### `GET /api/v1/locations/search` — Search locations

Location-Suche per Volltext. Query: q, count.

**Parameters:**
- `q` (query, required, string) — Location search text Example: `paris`
- `count` (query, optional, integer) — Number of locations to return Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/locations/search?q=paris&count=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "source": "brave_instagram_search",
        "locations": [
            {
                "id": "6889842",
                "link": "https://www.instagram.com/explore/locations/6889842/paris-france",
                "name": "paris france",
                "slug": "paris-france",
                "location_id": "6889842"
            },
            {
                "id": "5774837",
                "link": "https://www.instagram.com/explore/locations/5774837/paris-france",
                "name": "paris france",
                "slug": "paris-france",
                "location_id": "5774837"
            },
            {
                "id": "16504455",
                "link": "https://www.instagram.com/explore/locations/16504455/paris",
                "name": "paris",
                "slug": "paris",
                "location_id": "16504455"
            },
            {
                "id": "216296278",
                "link": "https://www.instagram.com/explore/locations/216296278/parisfrance",
                "name": "parisfrance",
                "slug": "parisfrance",
                "location_id": "216296278"
            },
            {
                "id": "283413217",
                "link": "https://www.instagram.com/explore/locations/283413217/le-paris",
                "name": "le paris",
                "slug": "le-paris",
                "location_id": "283413217"
            },
            {
                "id": "20807
…(truncated, see openapi.json for full schema)
```

#### `GET /api/v1/locations/media` — Media by location

Posts an einer Location. Query: location_id, q, count.

**Parameters:**
- `location_id` (query, required, string) — Numeric Instagram location ID Example: `6889842`
- `q` (query, required, string) — Location name as fallback Example: `Paris France`
- `count` (query, optional, integer) — Number of posts to return Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/locations/media?location_id=6889842&q=Paris+France&count=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "media": [
            {
                "code": "DOwclCFjO3B",
                "link": "https://www.instagram.com/p/DOwclCFjO3B/",
                "shortcode": "DOwclCFjO3B",
                "location_id": "6889842"
            },
            {
                "code": "DLA8XU6sMqK",
                "link": "https://www.instagram.com/p/DLA8XU6sMqK/",
                "shortcode": "DLA8XU6sMqK",
                "location_id": "6889842"
            },
            {
                "code": "DRe1O0NAuZ5",
                "link": "https://www.instagram.com/p/DRe1O0NAuZ5/",
                "shortcode": "DRe1O0NAuZ5",
                "location_id": "6889842"
            },
            {
                "code": "CWGh8rJILhb",
                "link": "https://www.instagram.com/p/CWGh8rJILhb/",
                "shortcode": "CWGh8rJILhb",
                "location_id": "6889842"
            },
            {
                "code": "DL2W9a1xM8h",
                "link": "https://www.instagram.com/p/DL2W9a1xM8h/",
                "shortcode": "DL2W9a1xM8h",
                "location_id": "6889842"
            },
            {
                "code": "CM1XCSFhjHq",
                "link": "https://www.instagram.com/p/CM1XCSFhjHq/",
                "shortcode": "CM1XCSFhjHq",
                "location_id": "6889842"
            },
            {
                "code": "DWpCZ1GjJB3",
                "link": "https://www.instagram.com/p/DWpCZ1GjJB3/
…(truncated, see openapi.json for full schema)
```

### Discover

#### `GET /api/v1/search/global` — Global search

Users + Hashtags + Locations in einem Aufruf. Query: q, count.

**Parameters:**
- `q` (query, required, string) — Search text Example: `jlo`
- `count` (query, optional, integer) — Number of results per category Example: `8`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/instagram-api/api/v1/search/global?q=jlo&count=8"
```

**Response:**
```json
{
    "data": {
        "query": "jlo",
        "users": [
            {
                "id": null,
                "link": "https://www.instagram.com/jlo",
                "username": "jlo",
                "full_name": "Jennifer Lopez",
                "is_private": false,
                "is_verified": false,
                "media_count": 1151,
                "follower_count": 245706428,
                "following_count": 1960,
                "profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.82787-19/628483964_18589580959037720_5020244042765827468_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby42NzcuYzIifQ&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gE8Y-fugon_LFu-MzwxWGZkMQPuv53k1i8olPS4IDCSa5-WFJF0VUW7jML6cSR7uE0&_nc_ohc=TX2rtoR-q-8Q7kNvwGajEGE&_nc_gid=mbsL5h4v5pOT7PaF9Egzgw&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_Af5fOlevMuqpbR3k68NDab5hCex4UfZ1VL8MCOZKnx9fgA&oe=69FE8330&_nc_sid=8b3546",
                "profile_pic_url_hd": null
            },
            {
                "id": null,
                "link": "https://www.instagram.com/jlobeauty",
                "username": "jlobeauty",
                "full_name": "JLO Beauty by Jennifer Lopez",
                "is_private": false,
                "is_verified": false,
                "media_count": 1751,
                "follower_count": 1000000,
                "following_count": 353,
                "profile_pic_url": "https://scontent-lhr6-2.cdninstag
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/instagram-api
OpenAPI spec: https://www.oanor.com/api/instagram-api/openapi.json
