# Instagram account insights

> Views, reach, interactions, and accounts engaged over 28 days.

Canonical: <https://www.tryadeli.com/docs/api/analytics/instagram-account-insights>

`GET https://app.tryadeli.com/api/v1/analytics/instagram/account-insights`

Authorization: `Bearer <API key>` — see [Authentication](https://www.tryadeli.com/docs/authentication)

Returns Instagram's own insight records for a rolling 28-day window, covering
`views`, `reach`, `total_interactions`, and `accounts_engaged`.

**Query parameters**

| Name        | Type   | Required | Description                                                                       |
| ----------- | ------ | -------- | --------------------------------------------------------------------------------- |
| `accountId` | `uuid` | Yes      | A connected Instagram account.                                                    |
| `profileId` | `uuid` |          | Optional, because accountId names its profile. If you pass both, they must agree. |

> **Note: An empty insights array is normal**
>
> Instagram omits metrics entirely for accounts with too few followers or too
> little history, and its data lags by up to 48 hours. Render a missing metric as
> unavailable rather than as zero — they mean different things.

`insights` is Instagram's array, passed through unchanged. Adeli does not store
history, so each call is a live read.

**Errors** — `401 unauthorized`, `400 invalid_request`, `404 account_not_found`,
`404 profile_not_found`, `422 connection_expired`,
`422 provider_not_configured`, `502 provider_error`.

## Request examples

**cURL**

```bash
curl --fail-with-body "https://app.tryadeli.com/api/v1/analytics/instagram/account-insights?accountId=00000000-0000-4000-8000-000000000003" \
  -H "Authorization: Bearer $ADELI_API_KEY"
```

**JavaScript**

```javascript
const response = await fetch("https://app.tryadeli.com/api/v1/analytics/instagram/account-insights?accountId=00000000-0000-4000-8000-000000000003", {
  headers: {
    Authorization: `Bearer ${process.env.ADELI_API_KEY}`,
  },
});
console.log(await response.json());
```

**Python**

```python
import os

import requests

response = requests.get(
    "https://app.tryadeli.com/api/v1/analytics/instagram/account-insights",
    headers={"Authorization": f"Bearer {os.environ['ADELI_API_KEY']}"},
    params={
        "accountId": "00000000-0000-4000-8000-000000000003",
    },
)
print(response.json())
```

## Responses

### 200

```json
{
  "platform": "instagram",
  "accountId": "00000000-0000-4000-8000-000000000003",
  "profileId": "00000000-0000-4000-8000-000000000001",
  "insights": [{ "name": "reach", "values": [] }],
  "fetchedAt": "2026-04-01T12:00:00.000Z"
}
```

### 422

```json
{
  "error": {
    "code": "connection_expired",
    "message": "Instagram connection has expired"
  }
}
```
