# Instagram username search: three lookups for agents

Instagram username search for agents: look up a public profile by username, turn a user ID into a username, or find accounts by keyword. Real outputs.

## Summary

An Instagram username search through looot covers three lookups. A username returns the public profile behind it. A numeric user ID returns the username it belongs to today. A keyword returns accounts whose Google-indexed bios match it. Each is one call to a catalog endpoint, and none of them needs an Instagram account or login.

The questions people type show the need: "how to search instagram username", "instagram user id search" and "instagram username search without account". Opening the app works for one name. It does not work when your agent has a list of three hundred handles to check, or a column of IDs from an export. This guide runs each lookup for real on 2026-10-13 UTC, shows the shortened output, and says where each one stops.

## How do you search an Instagram username without an account?

You send the username to a profile endpoint and read the public profile back as JSON. Nobody logs in to Instagram, so you need no Instagram account. Pick the lookup by what you start from.

| You start from | Endpoint | You get back |
|---|---|---|
| A username | scrapecreators-instagram-profile | Name, bio, links, follower and following counts, verified and private flags, the numeric ID, recent posts |
| A numeric user ID | scrapecreators-instagram-basic-profile | The username, full name, bio, counts and account flags |
| A topic or niche | scrapecreators-instagram-search-profiles | Accounts whose Google-indexed profile or captions match, with how each matched |

All three are from Scrape Creators and run through one looot token. The CLI setup is one line, `npx looot init`, which logs you in if needed and offers to connect Claude Code, Cursor or Codex.

## Look up an Instagram profile by username

Send the handle without the @. `trim` asks for a shorter response.

Shortened output from the run at 23:19 UTC:

Save the `id`. It is the key for the next lookup. The full response also carries the bio links, recent posts with their likes and comments, and a list of related profiles.

## Find the username behind an Instagram user ID

Some data sources give you a numeric ID instead of a handle. Send it as `userId`.

Shortened output from the run at 23:20 UTC, about 35 seconds after the first:

Two things to notice. The follower count differed by 13 between the two calls, so store the time of each call next to any count. And `media_count` came back null. The catalog notes that Instagram sometimes returns it that way and points to scrapecreators-instagram-profile-post-count when you need the total number of posts.

## Instagram username search by keyword

When you do not know the username, search by what the account is about.

The run returned 15 profiles on the first page, shortened here to two:

Read this result as a list of candidates, not a ranking. The `source` is Google: the endpoint matches keywords in Google-indexed profile pages, bios and captions, and its catalog entry calls itself best effort and not complete. All 15 profiles came back with `follower_count` null, so a second call per account, the username lookup above, fills in the numbers. The search pages with a `cursor`, up to page 11.

For creator discovery across TikTok, X and YouTube as well, see [the creator search use case](https://looot.ai/use-cases/find-creators-by-keyword).

## What does an Instagram username search cost?

Each lookup is one call from a prepaid balance. The runs above reported their cost in `actualCost`. The table reads the live price from the looot catalog when the page loads.

Instagram lookups, live price per call. Prices read on 2026-10-14 from the live looot catalog. They change when a provider changes its price.

| Option | Cheapest provider | Price per call |
|---|---|---|
| Look up a profile by username or ID | Bright Data | $0.0015 per call |
| Find accounts by keyword | ScrapeCreators | $0.00188 per call |

Other providers in the catalog do the same lookups with different inputs, read with `looot inspect` on 2026-10-14:

| Endpoint | Provider | You send | Notes |
|---|---|---|---|
| brightdata-instagram-profile | Bright Data | Up to 20 profile URLs per call | Runs as a job, billed per record, slow targets can take minutes |
| tikhub-api-instagram-fetch-user-info-by-username-v2 | TikHub | `username` | User information by username |
| tikhub-api-instagram-user-id-to-username | TikHub | `user_id` | User information by ID |

The [Scrape Creators MCP page](https://looot.ai/mcp/scrapecreators) lists what else that provider covers, and [the Instagram platform page](https://looot.ai/platforms/instagram) groups every Instagram job looot can run.

## Run it with an agent

Paste this into Claude Code, Cursor or any agent that reads a skill file. It prices first and stops after five calls.

For posts, reels and comments on top of profiles, read [the Instagram API guide for agents](https://looot.ai/blog/instagram-api-for-agents).

## What this post does not cover

- Searching by phone number or email address. None of the endpoints in this guide take one, and this guide does not cover finding a person from contact details.
- Private content. The endpoints return public profile data. We did not run a private account for this post, so we cannot say which fields come back for one.
- Old usernames. The username lookup finds the current handle only.
- Watching an account for changes. That needs scheduled runs, not available yet. Your agent runs the lookup when you ask.
- Username availability for sign-up. Checking whether a handle is free to register is a job for Instagram's own sign-up page.

Last checked 2026-10-14. The outputs above are from real runs on 2026-10-13 between 23:19 and 23:21 UTC. Endpoint details come from `looot inspect` on 2026-10-14, and prices in the table are read from the live catalog when the page loads.

## Questions

### How do I search an Instagram username?

Send the username to a profile endpoint and read the public profile back. With looot that is one command, `looot run scrapecreators-instagram-profile` with the handle as input, and an agent does the same from the prompt on this page.

### Can I do an Instagram username search without an account?

Yes. The lookups in this guide read public profile data, so nobody logs in to Instagram. You need a looot account with a balance to run them.

### How do I find a username from an Instagram user ID?

Send the numeric ID to scrapecreators-instagram-basic-profile as `userId`. In the run on this page, ID 528817151 returned the username nasa with its name, counts and flags.

### How do I find someone's Instagram username by name or topic?

Search by keyword with scrapecreators-instagram-search-profiles. It matches Google-indexed profile pages, bios and captions, so it finds accounts that describe themselves with your words. It is best effort and can miss accounts.

### Can I find someone on Instagram by their old username?

Not from the old username alone, because the lookup finds current handles. If you kept the account's numeric user ID, the ID lookup returns the username that ID has today.

### Can I search Instagram by phone number or email?

Not with the endpoints in this guide. They take a username, a numeric ID or a keyword.

### Is there an Instagram username search API?

Yes. The looot catalog lists username, ID and keyword lookups from Scrape Creators, Bright Data and TikHub, called with one looot token through the CLI, the REST API or MCP.

### How much does an Instagram profile lookup cost?

One call per lookup, at the price in the live table on this page. Each run also reports its cost in the `actualCost` field, and inspecting an endpoint before the run is free.

## For agents

### Code (bash)

```bash
looot run scrapecreators-instagram-profile --input '{"handle":"nasa","trim":true}' --wait=60
```

### Code (json)

```json
{
  "status": "completed",
  "result": {
    "data": {
      "user": {
        "id": "528817151",
        "username": "nasa",
        "full_name": "NASA",
        "is_verified": true,
        "is_private": false,
        "external_url": "https://www.nasa.gov",
        "edge_followed_by": { "count": 104343917 },
        "edge_follow": { "count": 90 }
      }
    },
    "credits_charged": 1
  },
  "actualCost": 0.00188
}
```

### Code (bash)

```bash
looot run scrapecreators-instagram-basic-profile --input '{"userId":"528817151"}' --wait=60
```

### Code (json)

```json
{
  "status": "completed",
  "result": {
    "id": "528817151",
    "username": "nasa",
    "full_name": "NASA",
    "is_verified": true,
    "is_private": false,
    "follower_count": 104343930,
    "following_count": 90,
    "media_count": null
  },
  "actualCost": 0.00188
}
```

### Code (bash)

```bash
looot run scrapecreators-instagram-search-profiles --input '{"query":"espresso"}' --wait=60
```

### Code (json)

```json
{
  "result": {
    "query": "espresso",
    "source": "google",
    "profiles": [
      { "username": "thepressespresso", "full_name": "THE PRESS ESPRESSO", "matched_from": "profile", "follower_count": null },
      { "username": "espressoeastcoffee", "full_name": "Espresso East | Dorchester Coffee Trailer", "matched_from": "profile", "follower_count": null }
    ],
    "credits_charged": 1
  },
  "actualCost": 0.00188
}
```

### Look up five Instagram usernames

```text
Use looot to look up these Instagram usernames: <handle 1> to <handle 5>. First set up https://looot.ai/skill.md. Inspect scrapecreators-instagram-profile and tell me its price per call before you run anything. Run it once per handle with trim set to true. Return a table with username, full name, numeric ID, followers, following, verified, private and external link, plus the time of each call. Mark any handle that returned nothing. Report the total cost. Do not run more than 5 calls.
```
