# Instagram Search Scraper (no cookies) (`mina_safwat/instagram-search-scraper-no-cookies`) Actor

Search Instagram by keyword and get matching accounts, posts, reels or hashtags — without a session cookie.

- **URL**: https://apify.com/mina\_safwat/instagram-search-scraper-no-cookies.md
- **Developed by:** [Mina](https://apify.com/mina_safwat) (community)
- **Categories:** Social media, AI, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Instagram Search Scraper

### What does Instagram Search Scraper do?

**Search [Instagram](https://www.instagram.com) by keyword and get back the matching accounts, posts, reels or hashtags as structured data** — the link, a title and a short description of each one.

No Instagram account, login, or cookie is needed. Type what you are looking for, choose what kind of result you want, press Start, and download the results as JSON, CSV or Excel — or pull them straight from the Apify API.

### Why use Instagram Search Scraper?

- **Find creators and influencers** — search by niche and location, and export the accounts in one go.
- **Research a topic** — collect posts and reels about a subject and see who is making them.
- **Find hashtags** — discover which tags are used around a theme before you post.
- **Build a prospect list** — find businesses by what they do and where they are.
- **Feed other tools** — the links this Actor returns drop straight into the Instagram Profile or Post Actor for the full details.

### How to use Instagram Search Scraper

1. Enter your **Search keywords**, for example `travel photographer bali`.
2. Choose **What to search for** — accounts, posts, reels or hashtags.
3. Set **Maximum results** to how many you want.
4. Optionally add **Extra search terms** to narrow it down.
5. Click **Start**, then open the **Output** tab when it finishes.

#### Getting better results

A few ways to sharpen a search:

- Put a phrase in quotes to require it exactly: `"wedding photographer"`
- Add a city or brand to narrow things down: `coffee roaster Melbourne`
- Put a minus in front of a word to exclude it: `bakery -franchise`

### Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| **Search keywords** (`keywords`) | string | Yes | What to look for. |
| **What to search for** (`search_type`) | select | No | Accounts, posts, reels or hashtags. Default accounts. |
| **Maximum results** (`limit`) | integer | No | How many results to return. Default 50. |
| **Extra search terms** (`extra_terms`) | string | No | Extra words to add to the search. |
| **Language** (`language`) | string | No | Two-letter language code. Default `en`. |

Example input:

```json
{
  "keywords": "travel photographer bali",
  "search_type": "profiles",
  "limit": 20
}
```

### Output

One record per Instagram page found:

```json
{
  "url": "https://www.instagram.com/sutarahady",
  "identifier": "sutarahady",
  "title": "Bali Photographer | Suta (@sutarahady)",
  "snippet": "Bali based photographer · 12K followers",
  "search_type": "profiles",
  "search_keywords": "travel photographer bali"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data fields

| Field | Description |
| --- | --- |
| `url` | Link to the Instagram page. |
| `identifier` | The username for an account, the short code for a post or reel, or the tag name. Handy as a unique key. |
| `title` | The page's title, usually the account name or the start of the caption. |
| `snippet` | A short description of the page. |
| `search_type` | Which kind of result this is. |
| `search_keywords` | The search that produced this row, handy when you merge several runs. |

### What it returns

For every match you get the link, a title and a short description — enough to review a list of results, sort it, or hand it to something else.

Fuller detail such as follower counts, full captions, like counts or a post's images is not part of a search result. To get those, run the links through:

- **Instagram Profile Scraper** — for account links, to get followers, bio and post count.
- **Instagram Post Scraper** — for post and reel links, to get the caption, likes, comments and media.

Two other things worth knowing:

- **Results come back by relevance, not newest first.** Something posted in the last few hours may not appear straight away.
- **Very large result counts are not possible.** A search realistically returns up to a couple of hundred results; narrow the keywords instead of raising the limit.

### How much does it cost to search Instagram?

Very little. Twenty results took about twenty seconds and cost around a cent. Cost scales with how many results you ask for.

### Tips

- **Be specific.** `wedding photographer tuscany` returns far more useful results than `photographer`.
- **Run several narrow searches** rather than one broad one — you will get better coverage overall.
- **Search hashtags first** when you are exploring a new niche, then search accounts using the tags you found.
- **Chain it.** Search here, then feed the links into the Profile or Post Actor to enrich them.

### FAQ and support

**Do I need an Instagram account or cookie?** No. Nothing to log in with and nothing to keep alive.

**Why is there no follower count or caption?** Those are not part of a search result. Use the Profile or Post Actor on the links to get them.

**Why do I get fewer results than the limit I set?** Because the search ran out of matches. Broaden the keywords or try a different phrasing.

**Is scraping Instagram legal?** This Actor collects only publicly available data. You are responsible for how you use it, and you should not collect personal data without a legal basis. If in doubt, take legal advice.

Found a bug, or need a field that is not here? Open an issue on the **Issues** tab.

# Actor input Schema

## `keywords` (type: `string`):

What to look for, e.g. "travel photographer bali" or "vegan bakery london".

## `search_type` (type: `string`):

Accounts, posts, reels or hashtag pages.

## `limit` (type: `integer`):

How many results to return.

## `extra_terms` (type: `string`):

Extra words to narrow the search, e.g. a city or a brand name.

## `language` (type: `string`):

Two-letter language code for the results.

## Actor input object example

```json
{
  "keywords": "travel photographer bali",
  "search_type": "profiles",
  "limit": 50,
  "language": "en"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": "travel photographer bali"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mina_safwat/instagram-search-scraper-no-cookies").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": "travel photographer bali" }

# Run the Actor and wait for it to finish
run = client.actor("mina_safwat/instagram-search-scraper-no-cookies").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": "travel photographer bali"
}' |
apify call mina_safwat/instagram-search-scraper-no-cookies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mina_safwat/instagram-search-scraper-no-cookies"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/F9dZMrTIseMA84ayT/builds/jFvPLE6gmVQduEZfi/openapi.json
