# Get an Instagram user's public profile

Returns an Instagram user's public profile, with bio, follower count and post count. Use it to look up an account and get the user ID that instagram.user.posts takes.

Tool `instagram.user.profile` on Instagram. Contract version 1, released 2026-10-27.

## Example call

Over REST, send the input in the body. Over MCP, pass the same input to `call_tool`.

cURL:

```bash
curl https://api.voxoria.ai/v1/tools/instagram.user.profile/calls \
  -H "Authorization: Bearer $VOXORIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"username":"instagram"}}'
```

Python:

```python
import os

import httpx

response = httpx.post(
    "https://api.voxoria.ai/v1/tools/instagram.user.profile/calls",
    headers={"Authorization": f"Bearer {os.environ['VOXORIA_API_KEY']}"},
    json={"input": {"username": "instagram"}},
    timeout=60,
)
print(response.json())
```

TypeScript:

```ts
const response = await fetch("https://api.voxoria.ai/v1/tools/instagram.user.profile/calls", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VOXORIA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"input": {"username": "instagram"}}),
});
console.log(await response.json());
```

MCP (`tools/call` params):

```json
{
  "name": "call_tool",
  "arguments": {
    "tool": "instagram.user.profile",
    "input": {
      "username": "instagram"
    }
  }
}
```

Both return [the full response](/docs/call-response.md): the call's ID, status and cost, with this tool's result in `output`.

## Input

| Input | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `username` | string | Yes |  | The user's handle, without the @. |

## Output

A successful call returns these blocks in its `output`. A field not marked required can be `null`.

### user

One object. Can be `null`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | No | Instagram's numeric identifier of the user, as a string, which instagram.user.posts takes as user_id. |
| `username` | string | Yes | The user's handle, without the @. The profile is at https://www.instagram.com/ followed by it. |
| `name` | string | No | The user's display name. |
| `bio` | string | No | The text of the user's profile. |
| `bio_link` | string | No | The link on the user's profile. |
| `image_url` | string | No | Address of the user's profile picture. Instagram's media addresses expire. |
| `verified` | boolean | No | Whether Instagram marks the user as verified. |
| `private` | boolean | No | Whether the account is private, its posts shown only to approved followers. |
| `follower_count` | integer | No |  |
| `following_count` | integer | No | Number of accounts the user follows. |
| `post_count` | integer | No | Number of posts the user published. |

## Example output

The `output` of a real call, each list cut to 3 items.

```json
{
  "user": {
    "id": "25025320",
    "username": "instagram",
    "name": "Instagram",
    "bio": "Discover what's new on Instagram 🔎✨",
    "bio_link": "http://help.instagram.com/",
    "image_url": "https://scontent-cdg4-2.cdninstagram.com/v/t51.82787-19/550891366_18667771684001321_1383210656577177067_n.jpg?stp=dst-jpg_s320x320_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-cdg4-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gHCPdPzip48vz1dN4mR6jDiGAd7Isi8tCbACRX5C6eBu3N0TwgGsSOwPeJukOGso5w&_nc_ohc=wuiGsK4s3KsQ7kNvwE7_yQM&_nc_gid=0XHsmOGW6OGsxf4kuzk7tA&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AQS6SIdGlfmFxZp7RPpv_e_yOHNmCVbVCH-3ywEs5cDBEA&oe=6AE73467&_nc_sid=8b3546",
    "verified": true,
    "private": false,
    "follower_count": 686413019,
    "following_count": 159,
    "post_count": 8626
  }
}
```
