# Influencer Search and Creator Data API - Phyllo (`nabeelbaghoor/creator-data-connected-accounts-api`) Actor

Search Instagram, YouTube, TikTok, Twitch and X creators by followers, engagement, audience age, gender, language and location. Pull public profile analytics with audience demographics and credibility, and read creator-connected accounts, posts and audience data. Read only, bring your own keys.

- **URL**: https://apify.com/nabeelbaghoor/creator-data-connected-accounts-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Social media, Marketing, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 creator or account founds

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/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

## Influencer Search and Creator Data API - Phyllo

Search public Instagram, YouTube, TikTok, Twitch and X creators with audience filters, pull a full public profile analytics report for any creator, and read the accounts, posts and audience demographics of creators who connected their accounts to your own app, as clean rows ready for a CRM, a spreadsheet or a creator marketing pipeline.

### What it collects

- **Creator discovery search**: public creators on one platform matching your filters: follower or subscriber range, engagement rate, average likes and views, creator gender and language, creator location, audience gender, age band, languages and locations with a minimum share, audience credibility score, bio keywords and bio phrase, hashtags and mentions used, lookalike creators or lookalike audiences, verified, has contact details, must have an email, sponsored posts (Instagram), account type and last post date. Up to 500 creators per search, sorted by followers, engagement rate, likes, views, content count, follower growth, reels views or bio keyword relevance.
- **Public profile analytics**: per profile URL, username or handle. Followers, engagement rate, average likes, comments, views and reels views, creator location, gender, age group and language, public contacts and emails, top hashtags, interests and brand affinities, top content, lookalike profiles, and the audience: credibility score, gender and age split, top countries, cities, languages and interests, and real, suspicious, influencer and mass follower shares. The provider's whole report is kept under `raw`.
- **Connected accounts**: every account creators linked to your app, with platform, username, connection status and the data products enabled.
- **Connected account profiles**: name, bio, URL, followers, following, subscribers, content count, verified and business flags, emails and phone numbers the platform shares with your app.
- **Connected account content**: each post, video, reel or story with likes, comments, views, shares, saves, organic and paid reach and impressions, hashtags and mentions, over an optional date window.
- **Connected account audience**: audience countries, cities and gender by age split for each connected account.
- Read only, pay per result, bring your own keys.

### Input

| Field | What it does |
| --- | --- |
| What to read | Discovery search (default), public profile analytics, connected accounts, profiles, content or audience. |
| Platform | Instagram, YouTube, TikTok, Twitch or X, for discovery and profile analytics. |
| Identifiers | Profile analytics: profile URLs or handles. Connected profiles, content, audience: connected account ids. |
| Followers, engagement rate, average likes, average views | Discovery: minimum and maximum ranges. |
| Creator gender, language, location ids | Discovery: who the creator is. |
| Audience gender, age band, languages, location ids, credibility | Discovery: who the audience is, each with a minimum share. |
| Bio keywords, bio phrase, hashtags, mentions | Discovery: what the creator says. |
| Creators like, audience like | Discovery: lookalike search from a handle. |
| Verified, has contact details, must have an email, has sponsored posts, account type, posted within days | Discovery: more creator filters. |
| Sort by | Discovery: the order of results, highest first. |
| Include the full report | Profile analytics: keep the whole report under `raw`. |
| Connected account platform, user id | Connected accounts and profiles: narrow to one platform or one user. |
| Content from date, content to date | Connected content: the publishing window. |
| Environment | Production, staging or sandbox (mock data, never charged). |
| Maximum results | Row cap for the run. |
| Requests per minute | Pacing for calls to the provider, which allows 10 per second. |
| Client secret, client id | Your own credentials, both as secret inputs. |

Filters that do not apply to the chosen platform are left off with a warning in the log.

### Example output

A public profile analytics row:

```json
{
  "service": "profileAnalytics",
  "requested": "https://www.instagram.com/trailrunner.jo/",
  "found": true,
  "platform": "instagram",
  "username": "trailrunner.jo",
  "fullName": "Jo Trail Runner",
  "url": "https://www.instagram.com/trailrunner.jo",
  "isVerified": false,
  "followers": 284000,
  "engagementRate": 3.4,
  "averageLikes": 9100,
  "averageComments": 240,
  "creatorCountry": "United States",
  "emails": ["press@example.com"],
  "audienceCredibilityScore": 0.71,
  "audienceGender": { "female": 46.2, "male": 53.8 },
  "audienceAge": { "13-17": 4.1, "18-24": 29.5, "25-34": 38.7, "35-44": 17.3, "45-64": 10.4 },
  "audienceCountries": [{ "code": "us", "percent": 18.4 }, { "code": "in", "percent": 9.7 }],
  "followerTypes": [{ "name": "REAL", "percent": 64.1 }, { "name": "MASS_FOLLOWERS", "percent": 18.3 }],
  "topHashtags": ["trailrunner.jo", "wildlife"],
  "note": null
}
```

A connected content row:

```json
{
  "service": "connectedContents",
  "requested": "3f1c2a9e-7b4d-4e8a-9c21-5d6e7f8a9b0c",
  "found": true,
  "platform": "youtube",
  "accountId": "3f1c2a9e-7b4d-4e8a-9c21-5d6e7f8a9b0c",
  "contentType": "VIDEO",
  "contentFormat": "VIDEO",
  "title": "A week in the Alps",
  "publishedAt": "2026-09-14T16:00:00",
  "likes": 18400,
  "comments": 912,
  "views": 402331,
  "shares": 1210,
  "reach": 380002,
  "impressions": 655120
}
```

Values are illustrative.

### FAQ

#### What is this influencer search and creator data API used for?

Finding, vetting and reporting on creators for influencer marketing and creator economy products. A brand team searches TikTok for creators with 50,000 to 500,000 followers, an engagement rate above 3 percent and a mostly female audience aged 18 to 34 in the United States, then pulls the public profile analytics of the shortlist to check audience credibility and fake follower shares. A creator platform reads the posts and audience demographics of creators who connected their YouTube or Instagram accounts, to verify their reach before a campaign or a payout.

#### Which data source does this actor read?

The Phyllo API, through the routes of its public documentation at docs.getphyllo.com: `POST /v1/social/creators/profiles/search` for discovery, `POST /v1/social/creators/profiles/analytics` for public profile analytics, `GET /v1/work-platforms` to look up platform ids, and `GET /v1/accounts`, `GET /v1/profiles`, `GET /v1/social/contents` and `GET /v1/audience` for connected accounts. Nothing is written: users, connection links, refresh jobs, publishing and webhooks are not called.

#### What is the difference between public and connected data?

Public data (discovery search and profile analytics) covers any public creator profile, built by the provider from publicly available signals. Connected data covers only creators who linked their accounts to your app through the provider's connect flow, and comes from the platform itself with the creator's permission: exact reach and impressions per post, private audience demographics and profile contacts. Connected services take the account ids your app received; the connected accounts service lists them.

#### Do I need API keys?

Yes. This actor is bring-your-own-key and never ships one. The provider issues a client id and a client secret on its dashboard, one pair per environment. Paste the secret into the client secret input and the id into the client id input, or set them once as the `DATA_API_KEY` and `DATA_API_AUTH_ID` environment secrets. They are sent as HTTP Basic authorization to the API host only. A missing or refused key ends the run cleanly with a message saying which it was.

#### Which environment should I use?

Production for real data, which is what your plan bills. Staging for internal testing with real accounts, limited to 25 connections. Sandbox returns mock data for any request, which is useful to test a key and the output shape; sandbox rows are never charged by this actor.

#### What is the audience credibility score?

A score from 0 to 1 for how much of a creator's audience the provider judges to be genuine people rather than bots, inactive or mass-following accounts. It is returned in public profile analytics together with the follower type split, and it can be used as a minimum in the discovery search.

#### How do location filters work?

The creator and audience location filters take the provider's own location ids, which are UUIDs from its location dictionary, such as the id for France or for Los Angeles. Paste them into the creator or audience location ids input; anything that is not a UUID is refused before a call is made. The dictionary route itself is documented but not served by the API today, so this actor does not list it.

#### What happens when there is nothing for a profile or account?

It becomes its own row with `found: false` and a note: profile not found, account id unknown, account disconnected or session expired, or no audience data yet. Those rows are never charged.

#### How is it priced?

Pay per result: $0.005 per creator found by a search, connected account or connected profile, $0.005 per connected content item, $0.01 per connected audience report and $0.02 per public profile analytics report. Sandbox rows and rows for requests that produced nothing are free. Your provider plan applies separately.

### Pricing

| Event | Price |
| --- | --- |
| Creator or account found (search, connected accounts, connected profiles) | $0.005 per row |
| Content item returned (connected content) | $0.005 per item |
| Connected audience report returned | $0.01 per report |
| Public profile analytics returned | $0.02 per report |

### Keyword map

influencer search API, creator discovery API, influencer analytics API, creator data API, public profile analytics, audience demographics API, audience credibility score, fake follower check, Instagram influencer search, TikTok creator search, YouTube channel analytics, Twitch streamer search, X creator search, connected creator accounts, creator content engagement, creator economy data, influencer vetting, Phyllo API, Phyllo creator search, Phyllo profile analytics.

# Actor input Schema

## `service` (type: `string`):

Creator discovery search finds public creators on one platform with the filters below and needs no identifiers, so it is the default. Public profile analytics reads the full report of each public profile in the identifiers input: audience credibility, gender, age, countries, cities, languages and interests, engagement, top content, lookalikes and contacts. The four connected services read accounts that creators linked to your own app through the provider's connect flow: the accounts, their profiles, their content items with engagement, and their audience demographics.

## `platform` (type: `string`):

Creator discovery search and public profile analytics: the platform to search, or the platform the profiles belong to.

## `identifiers` (type: `array`):

One per line. Public profile analytics: profile URLs, usernames or handles. Connected profiles, content and audience: connected account ids (UUIDs from the connected accounts service); connected profiles with none lists every profile. The discovery search and connected accounts read none.

## `followersMin` (type: `integer`):

Discovery: followers (subscribers on YouTube) at least this many.

## `followersMax` (type: `integer`):

Discovery: followers (subscribers on YouTube) at most this many.

## `engagementRateMin` (type: `number`):

Discovery: engagement rate in percent, at least this value.

## `averageLikesMin` (type: `integer`):

Discovery: average likes per post.

## `averageLikesMax` (type: `integer`):

Discovery: average likes per post.

## `averageViewsMin` (type: `integer`):

Discovery: average views per post or video.

## `averageViewsMax` (type: `integer`):

Discovery: average views per post or video.

## `creatorGender` (type: `string`):

Discovery: the creator's gender. Organization applies to Twitch only.

## `creatorLanguage` (type: `string`):

Discovery: two-letter code of the language the creator posts in, such as en.

## `creatorLocationIds` (type: `array`):

Discovery: the provider's location ids (UUIDs from its location dictionary) of where the creator is.

## `audienceGender` (type: `string`):

Discovery: the gender the audience leans to, with more than the share below.

## `audienceGenderMinPercent` (type: `integer`):

Discovery: the audience share of that gender must be above this.

## `audienceAgeMin` (type: `integer`):

Discovery: youngest age of the audience age band, 13 or over.

## `audienceAgeMax` (type: `integer`):

Discovery: oldest age of the audience age band.

## `audienceAgeMinPercent` (type: `integer`):

Discovery: the least share of the audience inside the age band.

## `audienceLanguages` (type: `array`):

Discovery: two-letter codes of languages the audience speaks, each at least the share below.

## `audienceLanguageMinPercent` (type: `integer`):

Discovery: the least audience share for each audience language.

## `audienceLocationIds` (type: `array`):

Discovery: the provider's location ids (UUIDs from its location dictionary) the audience must come from, each above the share below.

## `audienceLocationMinPercent` (type: `integer`):

Discovery: the audience share each audience location must be above.

## `audienceCredibilityMin` (type: `number`):

Discovery: audience credibility score from 0 to 1, the share of the audience the provider judges genuine.

## `bioKeywords` (type: `string`):

Discovery: keywords found in the bio, description, or YouTube video phrases and captions.

## `bioPhrase` (type: `string`):

Discovery: an exact phrase the creator uses in the bio.

## `hashtags` (type: `array`):

Discovery: hashtags the creator uses, with or without #.

## `mentions` (type: `array`):

Discovery: accounts the creator mentions, with or without @.

## `creatorLookalike` (type: `string`):

Discovery: find creators whose posts look like this handle's.

## `audienceLookalike` (type: `string`):

Discovery: find creators whose audience looks like this handle's audience.

## `isVerified` (type: `string`):

Discovery: platform verification status.

## `hasContactDetails` (type: `string`):

Discovery: only creators that list contact details publicly.

## `mustHaveEmail` (type: `boolean`):

Discovery: only creators with a public email address.

## `hasSponsoredPosts` (type: `string`):

Discovery, Instagram only: creators that have or have not posted sponsored content.

## `accountType` (type: `string`):

Discovery: the platform account type.

## `postedWithinDays` (type: `integer`):

Discovery: the creator posted within this many days.

## `sortBy` (type: `string`):

Discovery: the order results come in, highest first. Reels views is for Instagram only. Description sorts by relevance to the bio keywords.

## `includeRawReport` (type: `boolean`):

Public profile analytics: keep the provider's whole report under raw, alongside the flattened columns.

## `accountPlatform` (type: `string`):

Connected accounts and profiles: only accounts on this platform, or all.

## `connectedUserId` (type: `string`):

Connected accounts and profiles: only the accounts of this user (the UUID your app created for the creator).

## `fromDate` (type: `string`):

Connected content: items published on or after this date (YYYY-MM-DD).

## `toDate` (type: `string`):

Connected content: items published on or before this date (YYYY-MM-DD), not after today.

## `environment` (type: `string`):

Which host to call. Production returns real data, staging is for testing with real accounts, sandbox returns mock data and is never charged. Each issues its own client id and secret.

## `maxResults` (type: `integer`):

Stop after this many rows. A discovery search serves at most 500 creators.

## `requestsPerMinute` (type: `integer`):

Pacing ceiling for calls to the provider, which allows 10 per second. Rate limited answers are retried after the wait the provider gives.

## `apiKey` (type: `string`):

Your own client secret, issued on the provider dashboard. This actor is bring-your-own-key and never ships one. Leave blank to use the DATA_API_KEY environment secret. It is sent only to the API host, in the Basic authorization header, and is never written to a row or logged.

## `clientId` (type: `string`):

Your client id, issued with the secret. Required with the secret. Leave blank to use the DATA_API_AUTH_ID environment secret.

## `baseUrl` (type: `string`):

Override the host the actor calls. Only useful for testing against a different environment.

## Actor input object example

```json
{
  "service": "creatorSearch",
  "platform": "instagram",
  "creatorGender": "ANY",
  "audienceGender": "ANY",
  "audienceGenderMinPercent": 50,
  "audienceAgeMinPercent": 25,
  "audienceLanguageMinPercent": 20,
  "audienceLocationMinPercent": 20,
  "isVerified": "any",
  "hasContactDetails": "any",
  "mustHaveEmail": false,
  "hasSponsoredPosts": "any",
  "accountType": "ANY",
  "sortBy": "FOLLOWER_COUNT",
  "includeRawReport": true,
  "accountPlatform": "any",
  "environment": "production",
  "maxResults": 100,
  "requestsPerMinute": 300
}
```

# Actor output Schema

## `records` (type: `string`):

One row per creator, profile report, connected account, profile, content item or audience report.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/creator-data-connected-accounts-api").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/creator-data-connected-accounts-api").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 '{}' |
apify call nabeelbaghoor/creator-data-connected-accounts-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nabeelbaghoor/creator-data-connected-accounts-api"
        }
    }
}
```

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/BeDhfl5cjd6UxBqeq/builds/kfhebaiu3kU2l6Kvs/openapi.json
