# Instagram Profile Scraper - Email, Phone, Socials (`parsebird/instagram-profile-scraper`) Actor

Scrape Instagram profiles: bio, followers, following, posts, verified badge, bio links, plus emails, phone numbers and social links found in the bio and on Linktree or lnk.bio pages. No login.

- **URL**: https://apify.com/parsebird/instagram-profile-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 5 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.99 / 1,000 profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Instagram Profile Scraper - Email, Phone, Socials

Instagram Profile Scraper extracts **public Instagram profile data and contact details**: name, bio, followers, following, post count, verified badge, bio links, plus the **emails, phone numbers and social media links** found in the bio and, optionally, on the profile's Linktree or lnk.bio page.

<table><tr>
<td style="border-left:4px solid #E1306C;padding:12px 16px;font-weight:600">
Paste usernames or profile URLs and get one clean row per account with emails, phones, social links and websites already separated, ready for influencer outreach, lead lists or CRM import. No Instagram login or account needed.
</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="3" style="padding:10px 14px;background:#E1306C;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">ParseBird Instagram Suite</span>
<span style="color:#FFD1E3;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Profiles, Reels, audio &amp; highlights</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FDEBF2">
<a href="https://apify.com/parsebird/instagram-profile-scraper" style="color:#E1306C;text-decoration:none;font-weight:700;font-size:13px">Instagram Profile Scraper</a><br>
<span style="color:#E1306C;font-size:11px;font-weight:600">You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/instagram-reels-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Instagram Reels Search &amp; Trend Discovery</a><br>
<span style="color:#78716C;font-size:11px">Reels by keyword, trending content</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/instagram-reels-audio-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Instagram Reels Audio Scraper</a><br>
<span style="color:#78716C;font-size:11px">Reels using any sound or song</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
<a href="https://apify.com/parsebird/instagram-highlights-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Instagram Highlights Scraper</a><br>
<span style="color:#78716C;font-size:11px">Story highlights, photos &amp; videos</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
</td>
</tr>
</table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Use the Apify actor "parsebird/instagram-profile-scraper" (actor ID: parsebird~instagram-profile-scraper) to scrape Instagram profiles and contact details, via the ApifyClient: client.actor("parsebird/instagram-profile-scraper").call(run_input={"usernames": ["bigfootvlog", "@instagram", "https://www.instagram.com/cristiano/"], "expandBioLinks": true}). Inputs: usernames (array of strings, required: usernames, @handles or profile URLs; one result per account); expandBioLinks (boolean, default false: also open Linktree and lnk.bio pages from the bio and add their links and emails); proxyConfiguration (object, default Apify residential proxy). Output: one dataset row per username with name, username, id, profileUrl, bio, bioLinks [{title, url, linkType}], homepage, followers, follows, imageCount (post count; exact below 10,000, rounded above, e.g. 11K -> 11000), imageCountText, facebookId, linkedFacebookPage {name, id, url}, threadsUsername, isPrivate, isVerified, isMemorialized, hasClips, highlightReelCount, pronouns, profileImage, profileImageStandard, allEmails, allPhoneNumbers, socialLinks, websiteLinks, expandedLinks [{source, platform, title, url}] (null when expandBioLinks is off), hasContacts, input, success, error (null, "profile_not_found" or "blocked_or_unavailable"). Fields Instagram shows only to logged-in viewers (category, businessCategory, overallCategory, categoryEnum, businessContactMethod, businessEmail, businessPhone, isBusinessAccount, isProfessionalAccount, hasGuides, hasChannel, pinnedChannelsListCount, videoCount, videos, images, savedCount, collectionsCount, relatedProfiles, biographyWithEntities) are kept for a stable shape and are always empty. Pricing: pay per profile scraped, plus a small charge per profile whose link-in-bio page was expanded; failed items are not charged. Full API spec: https://apify.com/parsebird/instagram-profile-scraper/api. Get your token: https://console.apify.com/account/integrations.
```

### What is Instagram Profile Scraper?

**Instagram Profile Scraper** is an **Instagram profile scraper and Instagram email finder** that works without logging in. Give it a list of [Instagram](https://www.instagram.com) usernames or profile URLs and it returns each account's public profile details together with every contact detail it can find: email addresses and phone numbers written in the bio, the links in the bio, the linked Facebook page and, if you turn it on, the links and emails on the account's Linktree or lnk.bio page.

Use it to:

- Build **influencer outreach lists** with emails, follower counts and verified badges.
- Enrich a list of Instagram handles in your CRM with **phones, websites and other social profiles**.
- Find a creator's **YouTube, TikTok, Spotify, Facebook and website** links in one place.

The easiest way to try it: click **Start** with the example input. It scrapes three profiles in a few seconds.

### What can Instagram Profile Scraper do?

- 👤 **Profile data**: name, bio, followers, following, post count, verified and private flags, profile picture, pronouns, highlight count, Reels flag, Threads username and linked Facebook page.
- 📧 **Contact extraction**: emails and phone numbers from the bio go to `allEmails` and `allPhoneNumbers`.
- 🔗 **Links sorted for you**: every link from the bio text and the bio-link buttons is split into `socialLinks` (Facebook, TikTok, YouTube, X, LinkedIn, Spotify, WhatsApp, Telegram and more) and `websiteLinks`. Instagram's `l.instagram.com` redirects are unwrapped to the real URL.
- 🌳 **Link-in-bio expansion**: with **Expand Linktree and lnk.bio pages** on, the actor opens those pages and adds every link and email listed there, with the source page and link title in `expandedLinks`.
- 🧾 **Stable output**: every row, including a failed one, has the same columns, so exports and integrations never break. `success` and `error` tell you what happened.
- 🔁 **Flexible input**: usernames, @handles and full profile URLs, mixed in one list. Duplicates are removed.
- ⏱️ **Runs on Apify**: [schedule](https://docs.apify.com/platform/schedules) runs to keep follower counts fresh, call it from the [Apify API](https://docs.apify.com/api/v2) or [Apify MCP](https://docs.apify.com/platform/integrations/mcp), and send results to Google Sheets, HubSpot, Make, Zapier or webhooks with [integrations](https://apify.com/integrations). Export as **JSON, CSV, Excel**, HTML or XML.

### What data can you extract from Instagram profiles?

| Field | Description |
|-------|-------------|
| `username`, `name`, `id`, `profileUrl` | Account handle, display name, Instagram user ID and profile link |
| `bio`, `pronouns` | Biography text and pronouns shown on the profile |
| `followers`, `follows`, `imageCount` | Followers, following and number of posts |
| `isVerified`, `isPrivate`, `hasClips`, `highlightReelCount` | Verified badge, private account, has Reels, number of story highlights |
| `bioLinks`, `homepage` | Links from the bio (title, url, link type) and the first one |
| `allEmails`, `allPhoneNumbers` | Emails and phone numbers found in the bio and on expanded link-in-bio pages |
| `socialLinks`, `websiteLinks` | Social media links and other websites from the bio, bio links and expanded pages |
| `expandedLinks` | Every link on the profile's Linktree or lnk.bio page (source, platform, title, url) |
| `linkedFacebookPage`, `facebookId`, `threadsUsername` | Linked Facebook page, the account's Meta-scoped ID and Threads handle |
| `profileImage`, `profileImageStandard` | Profile picture links |
| `hasContacts`, `success`, `error` | Whether any email, phone or link was found, and the result status |

### How to scrape Instagram profiles and emails

1. Open [Instagram Profile Scraper](https://console.apify.com/actors/parsebird~instagram-profile-scraper/input) in Apify Console.
2. Add usernames or profile URLs to **Usernames or profile URLs**, one per line.
3. Turn on **Expand Linktree and lnk.bio pages** if you also want the links and emails on those pages.
4. Click **Start**. A few profiles take seconds; 30 profiles with link expansion took about 30 seconds in our test.
5. Open the **Output** tab and download the profiles as JSON, CSV or Excel, or read them through the API.

### Input example

```json
{
    "usernames": ["bigfootvlog", "@instagram", "https://www.instagram.com/cristiano/"],
    "expandBioLinks": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `usernames` | array | **Yes** | — | Usernames, @handles or profile URLs. One result per account |
| `expandBioLinks` | boolean | No | `false` | Open Linktree and lnk.bio pages from the bio and add their links and emails |
| `proxyConfiguration` | object | No | Apify residential | Proxy used when Instagram limits the direct connection |

### Output example

```json
{
    "name": "Gary Vay-Ner-Chuk",
    "username": "garyvee",
    "id": "1697296",
    "profileUrl": "https://www.instagram.com/garyvee/",
    "bio": "✈️CEO/Chairman @vaynermedia\n🐈‍⬛CEO/Founder   @veefriends\n🔮Investor FB,Venmo,Twitter,Liquid Death\n📲Text me 1-212-931-5731\n🍱@vcrgroup partner",
    "bioLinks": [
        { "title": "Garyvee Attention", "url": "http://garyvee.com/attention", "linkType": "external" },
        { "title": "Build for The Love of Building", "url": "https://garyvee.com/buildfortheloveofbuilding", "linkType": "external" },
        { "title": "RSVP to Tea With GaryVee- this Friday 7am ET", "url": "https://garyvee.com/tea", "linkType": "external" }
    ],
    "homepage": "http://garyvee.com/attention",
    "followers": 12029694,
    "follows": 7640,
    "imageCount": 11000,
    "imageCountText": "11K posts",
    "facebookId": "17841400998880026",
    "linkedFacebookPage": { "name": "Gary Vaynerchuk", "id": "51535068349", "url": "https://www.facebook.com/51535068349" },
    "threadsUsername": "garyvee",
    "isPrivate": false,
    "isVerified": true,
    "isMemorialized": false,
    "hasClips": true,
    "highlightReelCount": 4,
    "pronouns": [],
    "profileImage": "https://scontent-iad6-1.cdninstagram.com/v/t51.2885-19/447913595_12414...",
    "profileImageStandard": "https://scontent-iad6-1.cdninstagram.com/v/t51.2885-19/447913595_12414...",
    "allEmails": [],
    "allPhoneNumbers": ["1-212-931-5731"],
    "socialLinks": ["https://www.facebook.com/51535068349"],
    "websiteLinks": ["http://garyvee.com/attention", "https://garyvee.com/buildfortheloveofbuilding", "https://garyvee.com/tea"],
    "expandedLinks": null,
    "hasContacts": true,
    "category": null,
    "businessEmail": "",
    "businessPhone": "",
    "isBusinessAccount": null,
    "input": "garyvee",
    "success": true,
    "error": null
}
```

With **Expand Linktree and lnk.bio pages** on, a profile whose bio links to a Linktree gets entries like these (from `chloe_t`, whose Linktree also gave the email `hello@chloeting.com`):

```json
"expandedLinks": [
    { "source": "https://linktr.ee/chloe_t", "platform": "linktree", "title": "Download my new FREE app!", "url": "https://apps.apple.com/us/app/core-by-chloe-ting/id6446920639" },
    { "source": "https://linktr.ee/chloe_t", "platform": "linktree", "title": "Free Workout Programs", "url": "https://www.chloeting.com/program/" }
]
```

A username that does not exist returns the same columns with `"success": false`, `"error": "profile_not_found"` and empty values.

### How much does it cost to scrape Instagram profiles?

Instagram Profile Scraper uses pay-per-event pricing with two events. Failed items (not found or blocked) are saved so your export is complete, but they are not charged.

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| Profile scraped (per 1,000) | **$7.99** | **$6.99** | **$6.49** | **$5.99** |
| Link-in-bio page expanded (per 1,000 profiles) | **$1.49** | **$1.29** | **$1.09** | **$0.89** |

The link-in-bio event is charged only when **Expand Linktree and lnk.bio pages** is on and the profile actually had such a page that returned links. For example, 1,000 profiles of which 300 have a Linktree cost about $7.99 + $0.45 = $8.44 on the Free plan. You can set a maximum cost per run in the run options, and the actor stops when it is reached.

### Python and JavaScript API examples

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/instagram-profile-scraper").call(run_input={
    "usernames": ["selenagomez", "chloe_t", "zachking"],
    "expandBioLinks": True,
})
for p in client.dataset(run["defaultDatasetId"]).iterate_items():
    if p["success"]:
        print(p["username"], p["followers"], p["allEmails"], p["socialLinks"][:3])
```

**JavaScript:**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/instagram-profile-scraper').call({
    usernames: ['https://www.instagram.com/khaby00/', '@lelepons'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.filter((p) => p.allEmails?.length).forEach((p) => console.log(p.username, p.allEmails.join(', ')));
```

See the [API tab](https://apify.com/parsebird/instagram-profile-scraper/api) for more clients and endpoints.

### FAQ

**Where do the emails and phone numbers come from?**
From what the account shows publicly: the bio text, the bio-link buttons and, with expansion on, the account's Linktree or lnk.bio page. In a test of 95 usernames with expansion on, 89 profiles were found; 10 had at least one email and 80 had at least one contact detail (email, phone or link).

**Why are `businessEmail`, `businessPhone` and `category` empty?**
Instagram only shows the contact buttons and business category to logged-in viewers. This actor does not log in, so those fields are always empty; they are kept so the output has the same columns as other Instagram profile tools. Emails and phones written in the bio are still extracted into `allEmails` and `allPhoneNumbers`.

**Is the post count exact?**
`imageCount` comes from the public profile summary, which Instagram rounds above 10,000 posts (for example `11K`). Below that it is exact. `imageCountText` keeps the original text. Followers and following are exact.

**Why did a real account come back as `profile_not_found`?**
Instagram hides some accounts from logged-out visitors: deactivated, renamed, age-restricted or region-restricted accounts. Instagram returns no data for these, so the actor reports them as not found. In our tests, a handful of well-known accounts behaved this way even though they show up for logged-in users.

**Does it work for private accounts?**
It returns what Instagram shows publicly for a private account: name, bio, bio links and follower counts, with `isPrivate: true`. Posts are not part of this actor's output.

**Can it get posts, Reels or followers lists?**
No. This actor is focused on profile and contact data. For Reels, see [Instagram Reels Search & Trend Discovery](https://apify.com/parsebird/instagram-reels-search-scraper) and [Instagram Reels Audio Scraper](https://apify.com/parsebird/instagram-reels-audio-scraper).

**Which link-in-bio services are supported?**
Linktree (`linktr.ee`) and lnk.bio. For Beacons, Komi, link.me and others, use [Bio-Link Scraper](https://apify.com/parsebird/biolink-scraper) on the `websiteLinks` from this actor.

**Do I need a proxy or an Instagram account?**
No account. Keep the default residential proxy: Instagram sends data-center IP addresses to its login page for profile pages, and the actor uses the proxy only for the requests that need it.

**Can I schedule runs and connect other tools?**
Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) for recurring runs and [integrations](https://docs.apify.com/platform/integrations) for Google Sheets, HubSpot, Zapier, Make, n8n or webhooks.

**Something is missing or broken?**
Open an issue in the **Issues** tab. We read every report and fix problems quickly.

### Is it legal to scrape Instagram profiles?

Instagram Profile Scraper only collects information that Instagram shows to anyone without logging in. It does not log in, and it does not access private posts or messages. Names, emails and phone numbers are still personal data under laws such as the EU GDPR and the California CCPA, so make sure you have a lawful basis to store them and follow anti-spam rules (such as CAN-SPAM and GDPR consent rules) when you contact people. You should also check Instagram's terms of use. If you are unsure, ask a lawyer. Read more in Apify's blog post [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/).

### Other social media and lead generation scrapers

- [Instagram Reels Search & Trend Discovery](https://apify.com/parsebird/instagram-reels-search-scraper): search Instagram Reels by keyword
- [Instagram Reels Audio Scraper](https://apify.com/parsebird/instagram-reels-audio-scraper): find the Reels using any Instagram sound
- [Bio-Link Scraper](https://apify.com/parsebird/biolink-scraper): contact links from Linktree, Beacons, Komi, link.me and more
- [Threads Scraper - Profiles, Posts & Search](https://apify.com/parsebird/threads-scraper): profiles and posts from Meta's Threads
- [Social Handle Checker](https://apify.com/parsebird/social-handle-checker): check whether a handle exists on TikTok, X, Snapchat, Twitch and GitHub
- [LinkedIn B2B Phone Number Scraper](https://apify.com/parsebird/linkedin-b2b-phone-number-scraper): business phone numbers and emails published on public LinkedIn pages
- [DeviantArt Email Scraper](https://apify.com/parsebird/deviantart-email-scraper): emails from DeviantArt artist profiles

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/instagram-profile-scraper/changelog.md

# Actor input Schema

## `usernames` (type: `array`):

Add Instagram accounts, one per line: a username (<code>bigfootvlog</code>), a handle (<code>@instagram</code>) or a profile URL (<code>https://www.instagram.com/cristiano/</code>). One result is saved per account.

## `expandBioLinks` (type: `boolean`):

Also open Linktree and lnk.bio pages linked from the bio and add the links and email addresses listed there. Adds one request per page and is charged once per profile whose page was expanded.

## `proxyConfiguration` (type: `object`):

Instagram limits requests per IP address. The run starts on the direct connection and switches to this proxy if Instagram starts refusing requests. Residential proxies are recommended.

## Actor input object example

```json
{
  "usernames": [
    "bigfootvlog",
    "@instagram",
    "https://www.instagram.com/cristiano/"
  ],
  "expandBioLinks": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

No description

## `runSummary` (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 = {
    "usernames": [
        "bigfootvlog",
        "@instagram",
        "https://www.instagram.com/cristiano/"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/instagram-profile-scraper").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 = {
    "usernames": [
        "bigfootvlog",
        "@instagram",
        "https://www.instagram.com/cristiano/",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/instagram-profile-scraper").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 '{
  "usernames": [
    "bigfootvlog",
    "@instagram",
    "https://www.instagram.com/cristiano/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call parsebird/instagram-profile-scraper --silent --output-dataset

```

## MCP server setup

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

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/HxiVYaPSUkKd5IYPC/builds/CNNaLJln30GFZjCv2/openapi.json
